Home
  Academia
    Computación 3
      Ej. curso
        Assembler

Relacionado:
  Bibliografía
  Varios

Pascal
  Unidades
  Punteros(simple)
  Punteros(arbol)
  Gráficos
  Librería
  Complejos
  Más gráfica
Assembler
  Ejemplos
  Sintoniz.
  Programador

Computación 3:
 Pascal/Assembler/C
Práctico: controlador para programador de PIC

Esta es una tarea a realizar como práctico. Se propone de realizar una rutina que controla las líneas que se conectarán al PIC a programar. Estas líneas comprenden (en el PIC a programar):

Pin original Dirección En modo programación Comentarios
RB6 Entrada Clock Señales de reloj
RB7 Ent/sal Data Comandos y datos hacia y desde el PIC
-MCLR Alimentación Vtest/Vpp Varia entre 0, 5 y 13V para la programación
VDD Alimentación VDD Alimentada con 5 V durante programación o lectura
VSS Alimentación VSS Siempre 0 V

Entonces, vemos que las líneas RB6 y RB7, las podemos controlar directamente con líneas de nuestro PIC controlador. MCLR, y VDD sin embargo, son más complicadas: MCLR tiene que subir hasta 12 V mínimo en modo programar. VDD varia de 0 a 5V, pero es una línea de alimentación, y es probable que el consumo excede la salida normal de un PIC. Estas dos líneas necesitan de un circuito extra! La conexión completa se ve en el diagrama que sigue (nota: la parte del MAX232 es lo visto en la clase anterior, comunicación serial):

Qué significa para el programa? En la tabla que sigue aparecen las señales que debemos enviar por RA2, RA3, RA4 para obtener las tensiones en cada operación:

RA2 RA3 RA4 VDD MCLR Operación
0 0 0 0V 0V Insertar/extraer el PIC
1 0 0 +5V 0V Alimentación aplicada, reset activado
1 1 0 +5V +5V Alimentación aplicada, funcionamiento normal (No utilizado por nosotros)
1 1 1 +5V +12V Alimentación aplicada, modo programación! En este momento está dispuesta a recibir comandos.

La secuencia de programación
Para programar un PIC tenemos que seguir los siguientes pasos:

    1) Antes de empezar: sin alimentación para enchufar el integrado
    2) Inicio de programación: aplicar +5V a VCC, luego +12V a MCLR
    3) Envio del comando: enviar 6 bits según diagrama de tiempo
    4) Envio del dato: enviar 16 bits que contienen el dato
    pasos 3, 4 se repiten tantas veces como necesario
    5) Apagar MCLR (a 0V) y luego apagar VCC

Para el práctico nos limitamos a programar y quisiera recibir las siguientes rutinas en assembler:

    - Rutina 'reset' que apaga las tensiones del PIC
    - Rutina 'programar' que enciende VCC y MCLR como descrito arriba
    - Rutina 'comando' que envia 6 bits por RB6 y RB7,
        y que toma su dato de algún 'file'
    - Rutina 'dato' que envia 16 bits, por RB6 y RB7,
        y que toma sus datos de dos registros (files) consecutivos

El diagrama de tiempos es así: (los tiempos en si no importan, ya que son muy cortos (en el orden de 1 us cada uno):

Presentación
Recuerden: para la presentación:

    - El código .asm del programa
    - Un comentario sobre los problemas si hubiera.

Nota: Hay mas datos en el CD o en el sitio de Microchip. Entrar en procesadores PIC, luego al capítulo Literature, Programming Specifications. Los gráficos de esta página fueron tomados de la especificación del PIC16C84.


(c) John Coppens ON6JC/LW3HAZ correo