Programación PIC
Publicado: 15 Jul 2009 01:31
En este hilo se tratará todo aquello relacionado con el PIC, su programación y el Firmware HEX.
También podéis dejar vuestras dudas al respecto.
Gracias
Manual de programación del PIC por GABONI
1. HARDWARE
1.1 El programador
Para programar el PIC18F4550, es necesario disponer de un programador compatible con microcontroladores PIC de Microchip. Los más habituales son los programadores JDM y TE-20, aunque hay más. Estos programadores pueden encontrarse fácilmente, pero si lo deseais, podéis construiros vosotros mismo el vuestro siguiendo las indicaciones de este enlace:
http://perso.wanadoo.es/pictob/jdm.htm
Los programadores JMD y TE-20 utilizan el puerto serie del ordenador para aplicar las señales necesarias para programar el PIC. Un aspecto muy importante es que el programador necesita apróximadamente unos -9V en el puerto serie para poder alcanzar la tensión de programación, por lo que es muy probable que el PIC no pueda ser programado correctamente utilizando un conversor USB-Puerto serie RS-232. Podéis comprobar la tensión de vuestro puerto serie midiendo con un voltímetro entre los pines 3 y 5 del conector DB9 del ordenador. Con un valor de entre -9V y -12V no debería haber problema.
La conexión entre el programador y el ordenador debe realizarse mediante un cable serie plano o punto a punto.
1.2 Equivalencia entre diferentes formatos de PIC
Los PIC de Microchip pueden ser de 18, 28 o 40 patillas en su versión DIP. El PIC18F4550 es un circuito integrado de 40 pines, y es muy probable que nuestro programador sólo disponga de un zócalo de 18 o de 28 pines. Afortunadamente, las señales utilizadas en la programación de los PIC son las mismas en todos los modelos, por lo que podemos programar el PIC utilizando un zócalo diferente.
Para realizar esta adaptación será necesario disponer de una placa de tipo proto-board o similiar en la que podamos pinchar el PIC, y con la que podamos unir los pines del PIC con su equivalente en el zócalo del programador.
Este es el esquema de las equivalencias entre pines de los PIC de 18, 28 y 40 pines:
Y este es un ejemplo de cómo hacer un adaptador para programar el PIC de 40 pines usando un programador JMD con un zócalo del 18 pines:
2. SOFTWARE
2.1 Utilidad de programación
Existen varias utilidades para programar PIC. Nosotros hemos utilizado el programa WinPIC800 y nos ha funcionado correctamente, así que es el que recomendaríamos usar.
Podéis descargar el software aquí: http://www.winpic800.com/
2.2 Configuración del WinPIC800
Tras instalar la aplicación, es necesario configurar el programa para que funcione correctamente con el programador del que dispongamos. Para ello, seleccionamos en el menú: "Configuración" -> "Hardware". Aparecerá una ventana en la que debemos seleccionar el programador del que disponemos, y el puerto serie del ordenador en el que lo tenemos conectado:
A continuación, debemos seleccionar el tipo de PIC que vamos a programar en dos recuadros que aparecen en la parte derecha del programa. Debemos seleccionar "PIC 18F" y "18F4550".
Podemos realizar un test para comprobar que todo está correcto, seleccionando en el menu "Dispositivo" -> "Test Hardware".
2.3 Carga de Firmware en el PIC
Una vez tenemos el programador con el PIC en su sítio, con el cable del puerto serie conectado, y el programa configurado; podemos proceder con la carga del firmware en el PIC.
En primer lugar, seleccionar el fichero .HEX que queremos cargar, eligiendo en el menú la opción "Archivo" -> "Abrir". En la pantalla del programa aparecerá el código hexadecimal, los datos y las opciones con las que se va a programar el PIC. No tocar nada, ya que al cargar el fichero .HEX todo se configura automáticamente.
Para comenzar con el proceso, seleccionar en el menú "Dispositivo" -> "Programar Todo". Aparecerá una barra de progreso que avanzará según se vaya completando la programación del PIC, y en la que aparecerá un mensaje confirmando que el PIC se ha programado correctamente, o bien un mensaje de error en el caso de que algo haya fallado.
___________________________________________
Si encontráis cualquier error o cualquier cosita, decídmelo y lo edito.
Saludos!
También podéis dejar vuestras dudas al respecto.
Gracias
Manual de programación del PIC por GABONI
1. HARDWARE
1.1 El programador
Para programar el PIC18F4550, es necesario disponer de un programador compatible con microcontroladores PIC de Microchip. Los más habituales son los programadores JDM y TE-20, aunque hay más. Estos programadores pueden encontrarse fácilmente, pero si lo deseais, podéis construiros vosotros mismo el vuestro siguiendo las indicaciones de este enlace:
http://perso.wanadoo.es/pictob/jdm.htm
Los programadores JMD y TE-20 utilizan el puerto serie del ordenador para aplicar las señales necesarias para programar el PIC. Un aspecto muy importante es que el programador necesita apróximadamente unos -9V en el puerto serie para poder alcanzar la tensión de programación, por lo que es muy probable que el PIC no pueda ser programado correctamente utilizando un conversor USB-Puerto serie RS-232. Podéis comprobar la tensión de vuestro puerto serie midiendo con un voltímetro entre los pines 3 y 5 del conector DB9 del ordenador. Con un valor de entre -9V y -12V no debería haber problema.
La conexión entre el programador y el ordenador debe realizarse mediante un cable serie plano o punto a punto.
1.2 Equivalencia entre diferentes formatos de PIC
Los PIC de Microchip pueden ser de 18, 28 o 40 patillas en su versión DIP. El PIC18F4550 es un circuito integrado de 40 pines, y es muy probable que nuestro programador sólo disponga de un zócalo de 18 o de 28 pines. Afortunadamente, las señales utilizadas en la programación de los PIC son las mismas en todos los modelos, por lo que podemos programar el PIC utilizando un zócalo diferente.
Para realizar esta adaptación será necesario disponer de una placa de tipo proto-board o similiar en la que podamos pinchar el PIC, y con la que podamos unir los pines del PIC con su equivalente en el zócalo del programador.
Este es el esquema de las equivalencias entre pines de los PIC de 18, 28 y 40 pines:
Y este es un ejemplo de cómo hacer un adaptador para programar el PIC de 40 pines usando un programador JMD con un zócalo del 18 pines:
2. SOFTWARE
2.1 Utilidad de programación
Existen varias utilidades para programar PIC. Nosotros hemos utilizado el programa WinPIC800 y nos ha funcionado correctamente, así que es el que recomendaríamos usar.
Podéis descargar el software aquí: http://www.winpic800.com/
2.2 Configuración del WinPIC800
Tras instalar la aplicación, es necesario configurar el programa para que funcione correctamente con el programador del que dispongamos. Para ello, seleccionamos en el menú: "Configuración" -> "Hardware". Aparecerá una ventana en la que debemos seleccionar el programador del que disponemos, y el puerto serie del ordenador en el que lo tenemos conectado:
A continuación, debemos seleccionar el tipo de PIC que vamos a programar en dos recuadros que aparecen en la parte derecha del programa. Debemos seleccionar "PIC 18F" y "18F4550".
Podemos realizar un test para comprobar que todo está correcto, seleccionando en el menu "Dispositivo" -> "Test Hardware".
2.3 Carga de Firmware en el PIC
Una vez tenemos el programador con el PIC en su sítio, con el cable del puerto serie conectado, y el programa configurado; podemos proceder con la carga del firmware en el PIC.
En primer lugar, seleccionar el fichero .HEX que queremos cargar, eligiendo en el menú la opción "Archivo" -> "Abrir". En la pantalla del programa aparecerá el código hexadecimal, los datos y las opciones con las que se va a programar el PIC. No tocar nada, ya que al cargar el fichero .HEX todo se configura automáticamente.
Para comenzar con el proceso, seleccionar en el menú "Dispositivo" -> "Programar Todo". Aparecerá una barra de progreso que avanzará según se vaya completando la programación del PIC, y en la que aparecerá un mensaje confirmando que el PIC se ha programado correctamente, o bien un mensaje de error en el caso de que algo haya fallado.
___________________________________________
Si encontráis cualquier error o cualquier cosita, decídmelo y lo edito.
Saludos!