Cómo programar microcontroladores de la familia PIC de Microchip en GNU/Linux

Introducción

Si tienes un programador serie de la familia T20 o derivados estás de suerte. Ahora, con una mínima modificación en tu programador, puedes programar microcontroladores PIC utilizando la herramienta PICPROG que actualmente se encuentra en su versión 1.7 (y tu programador seguirá siendo compatible con icprog

Qué necesitamos

Hablaremos del software. Lo único que nos hace falta es tener instalado picprog. Bajamos el paquetito debian que vemos (a la hora de escribir éste documento es picprog-1.7-2_i386.deb Cuando tengamos el archivo, lo instalamos. Como root tecleamos
~# dpkg -i picprog-1.7-2_i386.deb
Después de la instalación ya estaremos listos para utilizarlo como se muestra a continuación.

Utilización

Borrado del microcontrolador

Para borrar por completo el microcontrolador escribimos:
~#  sudo picprog --erase --burn  -d pic16f84a --pic-serial-port /dev/ttyS0
Las opciones son las siguientes:
  • --erase Borra el chip.
  • --burn Si no utilizamos ésta opción, en realidad no haremos nada sobre el micro, tan solo simularemos la operación, lo cual nos sirve para verificar que la sintaxis ha sido correcta.
  • -d pic16f84 Microcontrolador sobre el que operar. Picprog es capaz de autodetectar gran cantidad de micros por si mismo, pero no está de mas ayudarle un poco.
  • -pic /dev/ttyS0 Puerto a utilizar para comunicarnos con el programador. Por defecto se utiliza /dev/ttyS0, pero tampoco está de mas indicárselo. No debemos olvidar dar los permisos necesarios a los puertos para poderlos utilizar.

Programación

Para programar el micro:
~# sudo picprog --input prjs/brujulaPIC/compas.hex --burn  -d pic16f84a --pic-serial-port /dev/ttyS0
La única opción nueva aquí es --input que como habremos imaginado sirve para indicar cual es el archivo con extensión .hex a utilizar.

Lectura

Por último como leer del micro:
~# picprog --output mi_archivo.hex --burn -d pic16f84 --pic-serial-port /dev/ttyS0
Con la opción --output le decimos a picprog dónde queremos que guarde los datos leídos.

Notas

  • Es útil indicar que se pueden realizar varias operaciones a la vez, como por ejemplo el borrado y la programación en una misma llamada, para ello solo hay que indicar las dos opciones a la vez y picprog borrará y después programará nuestro micro con el archivo que le indiquemos.
  • Para los menos versados en el tema que seguro que se preguntan que qué pasa con los fusibles, con la EEPROM, etc... Bueno, tanto los fusibles como el espacio de EEPROM pertenecen al espacio de direcciones de los micros, por lo que solo hay que buscar en la documentación de cada micro e indicarle al ensamblador con las directivas adecuadas qué valores hay que almacenar en cada dirección de memoria (usualmente suelen utilizarse directivas db para éso.

El hardware

Para poder utilizar el programador T20 con picprog (y aún así que sigua siendo compatible con icprog) deberemos hacer una pequeña modificación en el hardware. Ésta modificación consiste tan solo en cortar un par de pistas e introducir un transistor MOS 2N7000 o compatible. En el siguiente enlace sobre modificación del T20 podremos ver de forma gráfica éste proceso. Es muy sencillo, y si no nos atrevemos nosotros seguro que conocemos a alguien que se atreva a hacerlo por nosotros.

Enlaces



blog comments powered by Disqus