La programación de los microcontroladores Pic se realiza mediante un protocolo serial sincrónico llamado “In Circuit Serial Programing†comúnmente llamado ICSP o programación serie en circuito. Por este método puede grabarse la memoria de programa, memoria de datos Eeprom y registro/s de configuración, directamente en la placa y de esta forma programar o bien actualizar el software del microcontrolador sin tener que retirar a este de la tarjeta de circuito.
No es necesario conocer o estudiar los fundamentos teóricos del protocolo ICSP (comandos, flujo de datos, temporizaciones, etc), solamente tenemos que estar familiarizados con las señales que lo conforman para evitar tener problemas a la hora de implementar un conexionado, fabricar un conector o diseñar una placa que soporte el ICSP.
La comunicación ICSP requiere de las siguientes señales:
1- ICSPDAT o PGD: Datos de Programación; es una línea de datos bidireccional sincrónica serial.
2- ICSPCLK o PGC: Reloj de Programación; es una línea unidireccional sincrónica serial de reloj que va desde el programador hasta el microcontrolador.
3- VPP: Voltaje de Programación; cuando es aplicado, el microcontrolador entra en el modo Programación.
4- VDD: Suministro de voltaje positivo.
5- VSS: Negativo
La mayoría de los programadores de microcontroladores tienen un conector con las anteriores señales pero puede variar la disposición del conexionado.
En caso de programar un microcontrolador individualmente sobre un zócalo para después trasladarlo a la aplicación, el diagrama de conexionado es como el de la figura 1.
Figura 1
Para la programación “In-Circuitâ€, el circuito de la aplicación debe estar diseñado para permitir que todas las señales de programación se conecten al microcontrolador sin que las mismas se distorsionen por los diversos componentes del circuito. La Figura 2 muestra un circuito típico como punto de partida para diseñar un circuito de aplicación para ICSP.
Figura 2
Nota: En los microcontroladores PIC con capacidad de programación a bajo voltaje LVP, configurar esta función como LVP = off en los registros de configuración. En su defecto es necesario conectar el pin PGM hacia VSS para evitar errores en la programación como se indica en las figuras 1 y 2.
Como podemos ver, para la programación es necesario suministrar dos tensiones: una de alimentación al microcontrolador (VDD) con un valor nominal de 5 volts y otra de programación (VPP) con un valor nominal de 12 – 13 volts. Toda la familia de microcontroladores 12Fxxx 16Fxxx 18Fxxxx trabaja con estos valores. Existen además otros microcontroladores Pic cuyo margen máximo de tensión es de 3.3 volts tanto para VDD como para VPP, estos Pic son referenciados en su nomenclatura con la letra “Jâ€. Un ejemplo es la línea de microcontroladores 18FxxJxx.
Cabe aclarar que la tensión VPP sólo es necesaria para la programación del dispositivo.
Bueno gente, después lo continuamos.