En esta entrada encontraras lo necesario para programar un pic usando un quemador pickit2 original, pickit2 clon, k150, cualquiera de estos. Tambien el software necesario, el compilador, alguna ayuda y un ejemplo al final.

Vamos antes que nada debemos instalar el compilador sdcc, que bueno en todas las distribucciones o en su gran mayoría, este paquete esta disponible en sus repositorios, procedemos a la instalación, en mi caso que uso GNU-Linux ARCH es así

sudo pacman -S sdcc

Ahora instalamos un paquete que es una coleccion de herramientas para microcontroladores Microchip

sudo pacman -S gputils

Programador Pickit2, usamos pk2cmd

sku_269990_2

Ahora vamos si tienes el quemador Pickit2 cual sea su procedencia debes instalar el siguiente programador compatible.

sudo pacman -S pk2cmd

Una vez instalado estos son los comandos basicos para su uso.

  • Para saber si todo esta bien, conectamos el pickit2 y ejecutamos el siguiente comando. Si sale algo como operation succeded, porque hay algo mal de seguro no esta reconociendo el hardware, que bueno eso nunca deberia pasar, no me ha pasado, a menos que se programador diferente al pickit2.
pk2cmd /?v

 

  • Para verificar que autodecta el PIC conectado

    pk2cmd -p
  • Para leer el archivo .hex que tiene guardado
    pk2cmd -p -gf/home/$USER/actual.hex
  • Para grabar al PIC un nuevo archivo .hex

    pk2cmd -p -m -f/home/$USER/archivo.hex

     

     

En la ultima accion de grabar debes colocar el nombre y la ruta donde se encuentra realmente el archivo he puesto esa ruta como por dar un ejemplo.

Programador Universal k150 (Made in China),  usamos picro

lowest-price-font-b-pic-b-font-k150-icsp-font-b-programmer-b-font-font-b

Para aquellos que tienen este tipo de programador luego les estare mostrando una interfaz grafica para este programador, que luego tambien tambien voy a integrar pk2cmd.

Hablemos de picro, este es un programa creado por un ingles llamado Thomas Parslow, que basicamente el programa hace lo que debe hacer, es muy basico de hecho pk2cmd tiene mas opciones. Picro es un programa hecho en python que se maneja desde la terminal.

Pagina del proyecto picro:  https://github.com/almost/picprogrammer/blob/master/picpro.py

Vamos a descargar el script. Este programa es un archivo de python, recordemos que para ejecutar un programa de python debemos ubicarnos en ese directorio

dmesg | grep tty

Para usar picro debemos conocer el puerto serial donde esta conectado el programador, como es un script de python debemos enviarle el puerto y la ruta del .hex. Para saber en que puerto esta conectado hacemos lo siguiente: abrimos una terminal y tipeamos

dmesg | grep tty

El puerto debe ser algo como /dev/ttyUSB#  o /dev/ttyACM#, luego de conocer el puerto debemos dirigirnos a la carpeta donde esta el script, debemos saber la ruta donde tenemos el programa que vamos a guardar, ya sabiendo todo tipeamos el siguiente comando donde pondremos la ruta del programa y el puerto de la siguiente forma:

./picpro.py -i ~/Desktop/piscaled.hex --pic_type=16f628a -p /dev/ttyUSB0

Hay otros programas como piklab, pikdeb, que quizas son mas completos pero en este momento no voy hablar de esos.

 

Ya tengo todo ahora que hago?

Comencemos a programar, podemos usar un editor de texto cualquiera puede ser kate, kwrite, gedit…  Abrimos el editor y programamos nuestro codigo, como sabemos si hay algo mal, bueno el compilador nos dira si hay algo mal y ademas nos genera un arhcivo producto de la compilacion, para compilar debemos diriginor al directorio donde tenemos el archivo “.c” que estasmos programando y luego ejecutamos

sdcc programa.c

suponiendo que archivo tiene el nombre “programa”. Si no hay ningun error se genera el archivo de compilacion, sino nos saldra algo en la terminal.

Tambien puedes hacer esto

sdcc -mpic14 –use-non-free -p16f677 –debug -I -c ejemplo.c

Me siento en la Era Pica piedra

Bueno realmente tomar un editor de texto y mandar a compilar desde una terminal no me parece aburrido, me gusta, tampoco necesito un IDE que este lleno de botones CON colores y cosas. Ahora compilar y que te salgan warning y errores que no tengas la minima idea del porque aparecen es triste, me siento en aquella epoca donde se encontraba poca informacion de GNU-Linux, pero bueno para todo se necesita paciencia. A la final pude compilar varios programas, parece que sdcc se ha actualizado y han cambiado algunas cosas. Yo trate de instalar MPLAB en ARCH y fue algo problematico, piklab tambien a la final se puede instalar, pero estos dos trabajan con los programadores pickit, entonces de nada me sirve, porque tengo el programador k-150.

Otra cosa es que no hay mucha gente que use Distribuciones con kernel Linux, que sean estudiantes o profesionales en el area de la electronica y que ademas aporten con al menos sus experiencias, documenten solución de problemas. Si tienes este perfil deberias ayudar a toda la comunidad, recuerda que si enseñas aprenderás el doble.

Resumen de lo que debes hacer para programar un PIC

  1. Instalar el compilador sdcc y gputils, que son necesarios para obtener los archivos compilados en un lenguaje de maquina.
  2. Si no tienes programador debes mirar precios y que pics quieres usar, para tomar la desicion de cual porgramador comprar. Dependiendo de eso debes usar pk2cmd que se usa para programar pic con la tarjeta pickit2, si comprar una tajeta k-150 debes usar picro.
  3. Para comenzar a programar debes bajarte el datasheet del PIC y analaizar que macros le puedes poner. Estos macros se generan solos si usas un IDE como MPLAB o PIKLAB, pero si vas a programar de forma pica piedra como yo,  debes investigar un poquito.
  4. Abrimos un editor de texto y creamos un archivo con el nombre que deseemos y le ponemos la extencion “.c” que significa que estamos trabajando con C++, para ver si lo que estamos programando va bien compilamos el archivo usando el compilador sdcc con el comando antes mencionado.

 

 

Ejemplos:

Aqui en este blog hay un ejemplo : http://blog.ars-electronica.com.ar/2012/01/programacion-de-pic-con-sdcc_3816.html

Recomendaciones

Bueno, ya se…  Haz tratado de compilar unos cuantos codigos que encontraste en internet y ninguno compila con exito, no te preocupes porque no eres el unico y es que el compilador SDCC ha hecho algunos cambios, por ejemplo al parecer antes se definia el pic de la siguiente forma #include “pic16f877.h” y eso ahora es incorrecto para el compilador, debes colocar en vez de las comillas ponerlo asi  #include . No es el unico detalle hay mas por ejemplo si consigues compilar, solo te va generar el archivo “.asm”  o el “.ihx” y necesitamos el archivo el archivo “.hex” para programar el PIC, bueno hay convertidores para convertir el “.ihx”  a “.hex”, tambien existen algunos comandos para desde sdcc generar el archivos .hex

Fuentes

Les recomiendo que lean estas fuentes, asi refuerzan el conocimiento, hay un foro que se llama todopiclinux donde se abren unos debates buenos. Para todo aque que quiera aprender de verdad y darse duro, sigan investigando y trabajen si tienen dudas pregunten. Al parecer len GNU-Linux los Atemega tienen mas soporte que los PIC, pero bueno seguimos luchando para que  todo se vaya mejorando, por lo menos hoy es mejor que hace algunos años

http://pic-linux.forosactivos.net/

En definitiva recomiendo la siguiente entrada, explican muchas cosas interesantes.

http://www.danielclemente.com/placa_pi/

http://www.electroons.com/blog/stm8-development-tools-set-up-in-gnulinux-systems/

http://ecee.colorado.edu/~mcclurel/make_overview_10-12-2012.pdf

Anuncios