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 |
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 |
- 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 |