Una de las ventajas que ofrece Miuva Pro es que cuenta con su propio programador compatible con Pickit 2 de Microchip, el cual además de servir para programar el PIC 18F87J50 que tiene Miuva Pro se puede utilizar para programar microcontroladores externos a la tarjeta utilizando el módulo ICSP. En este caso aprenderás como programar un PIC 12F675.
ICSP
ICSP es el acrónimo de “In Circuit Serial Programmer”, es muy común tener que estar programando constantemente nuestro microcontrolador cuando estamos realizando un proyecto, ya que tenemos que realizar cambios constantes en nuestro código e ir probando si funciona correctamente o no, por lo cual es muy incómodo y poco útil el tener que estar quitando el microcontrolador de nuestra protoboard y colocarlo en el programador, para después tener que regresarlo a nuestro proyecto y comprobar su funcionamiento. Por lo tanto esta tecnología permite la programación del microcontrolador sin que sea necesario removerlo del circuito donde está funcionando.
Para esto utilzaremos 5 pines:
- VDD: Voltaje de alimentación
- GND: Tierra
- VPP: Voltaje de programación, normalmente entre 12 y 14V, es utilizado para poner el PIC en modo programación, estará conectado (regularmente) al pin del Master Clear del PIC.
- PGD: La línea serial de datos.
- PGC: La línea de reloj.
Será importante colocar un diodo y una resistencia de 10kOhm entre el voltaje de programación y el voltaje del sistema.
CONEXIONES
Es importante cuando vamos a programar un PIC externo revisar en la hoja de datos el diagrama del mismo, por ejemplo, si revisamos la hoja del PIC 12F675, encontraremos lo siguiente:
Podemos notar que en las conexiones vienen especificados los pines de los que hablamos anteriormente (VDD, VSS, VPP, ICSPDAT [PGD] y ICSPCLK [PGC]) por lo tanto la forma de conectarlo se vuelve muy sencilla (todo se conecta directamente, a excepción de lo que comentamos para VPP).
12F675 (PIC C Compiler)
Para probar si fue programado correctamente nuestro PIC vamos a crear un código muy sencil, con el cual vamos a hacer parpadear un led, conectado a GP0, cada segundo; ésto se puede realizar de la siguiente forma:
#include <12f675.h> //Librería del PIC #fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR //Fusibles #use delay(clock = 4M) //Reloj void main(){ //Programa principal set_tris_a(0x00); //Configuramos puerto como salida while(true){ //Ciclo infinito output_toggle(PIN_A0); //Invertimos el valor actual de salida del pin GP0 delay_ms(1000); //Esperams 1 segundo } }
¡A programar!
Primero necesitamos remover los jumpers que trae Miuva Pro por defecto:
Posteriormente utilizaremos los pines mencionados a continuación (recordando el diodo y la resistencia explicados anteriormente para VPP) de la siguiente forma:
PGC -> GP1/AN1/CIN-/VREF/ICSPCLK
PGD -> GP0/AN0/CIN+/ICSPDAT
GND -> VSS
VCC -> VDD
VPP -> GP3/MCLR/VPP
Ahora conectamos nuestra Miuva Pro por medio del cable USB, y abrimos Pickit 2, nos debe de reconocer el PIC 12F675.
NOTA: En caso de que no aparezca el PIC, selecciona Tools -> Check Communication.
Después de que lo haya reconocido basta cargar el programa como lo haces usualmente, seleccionas el archivo .HEX, lo escribes en el PIC y ¡LISTO!
Tu PIC 12F675 fue programado exitosamente desde Miuva Pro, ahora solo falta revisar si el código funciona correctamente, para esto necesitas conectar una resistencia y un led en serie al puerto GP0, y ver como parpadea cada segundo.