Cómo programar PIC 16f84 en linux

Voy a intentar recopilar en un solo sitio toda la información que hay en internet acerca de programar pics en linux


“NO voy a contestar a ningún comentario preguntando sobre cómo piratear ningún tipo de aparato electrónico lease, tarjetas del digital, consolas, etc… no porque no quiera, si no porque no tengo ni idea y como digo, este tutorial lo he hecho a partir de otros de internet y a mi personalmente no me ha dado ningún problema y no se como resolver ningún problema que de..”


¿Qué es un pic?
Un pic, para que todo el mundo lo entienda, es un chip electrónico que podemos programar a nuestro gusto para que haga cosas, en ámbito electrónico claro.El más conocido por su sencillo de uso y su bajo coste es el pic16f84. Más claro en wikipedia.
¿Qué me hace falta?
Lo primero de todo un pic que lo podemos comprar en cualquier tienda de electrónica. Lo segundo un programador para el pic. Esto es un poco más complicado. El programador en concreto para el 16f84 es el t-20. Esto hace años lo podiamos comprar en cualquier tienda de electrónica pero yo he preguntao en casi todas las que conozco (unas 5) y eso ya no lo tienen en stock. Otra opción es mirar por ebay que siempre puede haber uno. Y otra opción y la más barata es hacerselo uno mismo.¿Cómo hago un programador t-20?
Lo primero de todo los esquemas eléctricos son estos:Cara de componentes
Free Image Hosting at www.ImageShack.usCara de pistas
Free Image Hosting at www.ImageShack.us

Y los componentes a usar son:

CN1 Conector hembra 9 pines
C2 Condensador 100uf /16v
C3 Condensador 22uf / 16v
D2 Diodo Zener 5v1
D3, D4, D5,D7 Diodo 1N4148
D6 Diodo Zener 8V2
Q2, Q1 Transistor BC237
Q3 Transistor BC307
R1 Resistencia 10K
R2 Resistencia 1K5
R3 Resistencia 100K
U1 Zocalo 18 pines
U2 Zócalo 8 pines
Circuito impreso 77x50mm

¿Cómo programo el pic?

Una vez que tenemos el programador y el pic es hora de meterle el programa (normalmente fichero .hex). Primero hay que hacer un fichero .asm con cualquier editor de texto, una vez lo tengamos, lo compilamos a un fichero .hex con gpasm (disponible en el paquete gputils).

editando el fichero .asm

Antes de programar el pic hay que editar un poco el fichero .asm para decirle que vamos a usar el pic16f84 y la configuración. Arriba del todo añadimos al fichero .asm las siguientes lineas.Link con fichero p16f84.inc

INCLUDE<P16F84.INC>

LIST P=16F84
__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC

Lo guardamos y ahora si lo compilamos.

$gpasm -p 16f84 fichero.asm

con el parámetro ‘-p 16f84’ le decimos para qué pic queremos el fichero hex.

Una vez compilado tenemos que grabar el .hex en el pic. Para ello usaremos el programa picprog(incluido en los repositorios). Lo primero de todo es borrar el contenido del chip con el comando:

$picprog –erase –burn -d pic16f84 –pic /dev/ttyS0

para luego grabar el fichero .hex que compilamos anteriormente:

$picprog –burn –device=pic16f84 –input led_on.hex –pic /dev/ttyS0

Y si no da ningún error, el pic estará preparado para poder usarlo en el circuito que hayamos diseñado.

Bibliografia:

Recomendada

http://netandtech.wordpress.com/hardware/empezando-con-pics/

Libro Microcontrolador PIC16f84 de la editorial RA-MA (isbn8478976914)
http://crysol.org/node/65
http://acm.escet.urjc.es/documentos/acmlux/html/x303.html
http://www.iearobotics.com/personal/andres/proyectos/picmin/pic1.html

Cómo programar PIC 16f84 en linux