Microcontroladores

Hace unos meses volví a oir hablar de unos viejos conocidos: los microcontroladores de la casa “microchip”; la razón es que Cristobal los utiliza en su fantástico OSD “DakarOSD”, circuito imprescindible para volar FPV con seguridad que nos permite visualizar datos del vuelo como la velocidad, altura, distancia, etc.  Así es que me puse a rebuscar entre mis trastos de electrónico aficionado y encontré que tenía bastante equipo abandonado que podría volver a utilizar, por ejemplo, el grabador de PICs “PICKit 1Flash Starter Kit“, nueve PICs aún sin usar, infinidad de circuitos de la serie 74 (circuitos lógicos de la familia TTL), etc.

El programador

Para trabajar con microcontroladores es imprescindible el uso de un programador que permite introducir la programación del microcontrolador en su memoria EEPROM. El programador que yo tengo lo compré hace bastante tiempo, así es que lo primero que hago es comprobar si aún sirve para algo. La programación se hace desde un ordenador, en mi caso un portátil, así es que el primer paso es instalar el software. Existen dos programas para grabar PICs con este programador:

  1. PICKit 1 Classic
  2. PICKit 1 Baseline Flash


Desde la web de Microchip descargo el primer programa: PICkit 1 Classic Setup.exe. Funciona correctamente y reporta que la versión del Firmware es la 1.0.0, un poco antigua porque la última versión es la 2.0.2.

El segundo programa, PICkit 1 Baseline Setup.exe, también funciona y reporta lo mismo, la versión del firmware es la 1.0.0, sin embargo parece que este programa no funciona conversiones inferiores a la 2.0.0.

De la web de microchip puedes descargarte una actualización del firmware a la 2.0.2. Es un hex para grabar el 16C745, lo que no sé es cómo grabar ese chip! Sin esa actualización, el segundo programa, PICKit 1 Baseline Flash, no funciona, y me parece que el ICSP (hablaré de qué es esto más adelante) tampoco. Microchip vende un “upgrade kit”, con part numer UK164101, por sólo 3,39 euros. El problema es que con los portes, 5€ de manipulación y el IVA se pone en unos 25 euros la gracia! Así es que mejor me lo pienso…

Otra cosa que también es necesaria es el entorno de programación que permite programar, depurar y grabar nuestro programas. De momento he instalado MPLAB IDE versión 8.20, que distribuye la casa microchip gratuitamente. Este me permite grabar directamente ciertos PICs, por ejemplo el 12F675 de los que tengo alguno en reserva (cuatro exactamente).

En realidad este programador permite grabar todos estos PICs:

- PIC12F629, 635, 675, 683,
– PIC16F630, 636, 676,
– PIC16F684, 685, 687, 688, 689, 690, 785
– PIC16F913, 914, 916, 917, 946

Con la versión 2.0.X del firmware se podrían grabar estos PICs además:

• PIC12F508/509 and PIC16F505
• PIC10F200/202/204/206
• PIC16F54/57/59

Sin embargo por desgracia este grabador no me va a permitir grabar PICs como el 18F252 que utiliza el Dakar OSD, así es que me estoy planteando comprar un PICKit 2. Encuentro por 36$ uno en esta URL y quizá acabe comprándolo: http://mcuboards.ecrater.com/product.php?pid=3887299.

ICSP

Este es un protocolo para poder grabar los PICS en el propio circuito sin tener que desoldar nada. ICSP significa “In Circuit Serial Programming“.

Al parecer el PICKit 1 es un grabador ICSP, por lo tanto se podrían sacar del PICKit los cinco hilos necesarios para grabar chips que soporten este standard. El pineado es este:

Pin J3 (grabador) Función grabador Pin Socket
13 Vdd 1
14 Vss (ground) 14
7 ICSPData 13
8 ICSPClk 12
3 MCLR 4


Monto un cable paralelo entre el grabador y el PIC y compruebo que lee y escribe correctamente los datos.

ICSP para Dakar OSD

Para programar el Dakar OSD de Cristobal voy a fabricar un cable ICSP para poder grabar desde mi PICKit 1. Para hacer el cable, compruebo cómo coloca Cristóbal los cinco pines de ICSP en su Dakkar OSD. Con esos datos, la disposición del pineado y de cable es ésta:

Pin Socket Pin J3 Función Pin Dakar
1 13 Vdd 5
14 14 Vss (GND) 4
13 7 ICSPData 2
12 8 ICSPClk 3
4 3 MCLR 1 (pin superior)

(la info sobre el pineado para ICSP la saco de esta URL: http://groups.google.com/group/pickit-devel/browse_thread/thread/947b12781eb12874?pli=1)

El PIC que utiliza Cristobal es el 18F252. PROBLEMA —> PARECE QUE EL PICKit1 NO PUEDE PROGRAMAR ESTE CHIP!!! Parece que definitivamente tendré que pasarme al PICKit 2.

Inventario de PICS

Estos son los PICs que tengo ahora mismo por casa

PIC Info
12F675

Se pueden programar con el PICKit 1
1024 bytes de memoria de programa y 64 bytes de memoria de datos.
Tengo 4.

12C508A

No se pueden programar con el PICKit 1 y MPLAB.
Tengo 5, 3 grabados.

24AA64 Esto son memorias EEPROM I2C (serie) de 64K
18F252 Este es el PIC del DakarOSD. No lo tengo suelto, sino que lo tengo integrado dentro del Dakar, pero mi intención es poder programarlo gracias al interfaz ICSP.

.