Programando un PIC externo con Miuva Pro (ICSP)

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, como se puede observar en el siguiente diagrama:

Imagen1. Diagrama de conexión para VPP

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:

Imagen2. PIC 12F675

 

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)

Resultado de imagen para pic 12f675

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:

Imagen3. Jumpers de Miuva Pro

Posteriormente utilizaremos los pines mostrados a continuación (a excepción de AUX):

Imagen4. Pines a utilizar para ICSP

Conectaremos (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:

Imagen5. Reconocimiento del PIC en Pickit2

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.

Menú