Uso de Hid Boot Loader de Microchip Con Proton

download Uso de Hid Boot Loader de Microchip Con Proton

of 17

Transcript of Uso de Hid Boot Loader de Microchip Con Proton

USODEHIDBOOTLOADERDE MICROCHIPCONPROTONHola Bakunos, pues aqu dejo una manera muy verstil de programar un microcontrolador de la serie 18f2550 o 18f4550 de microchip la cual al menos de manera personal y a una buena cantidad de robticos de bajo presupuesto nos ha servido de manera soberbia. Sabemos de antemano que habr por ah una infinidad de puristas que podrn tener sus contras al modo en como funciona este sistema, pero bueno si son puristas o como decimos en Mxico muy chinguetas; dejen en paz a los que no lo somos ya que solo pretendemos hacer cosillas con un microcontrolador de manera sencilla o amateur, sin pasar por el tedio casi infinito de aprender muchsimas cosas sobre los microcontroladores y tener todas las herramientas necesarias. As que el presente proyecto esta enfocado a principiantes o hobistas interesados en obtener resultados casi inmediatos. Dado por sentado lo anterior debo exponer sin embargo en que se basa este sistema, cuales son sus principales ventajas y de donde surge la idea. La idea nace cuando vi a un compaero de modelismo (ferromodelismo) que tuvo la oportunidad de adquirir un Arduino (http://www.arduino.cc/es/) y sin mas, comenz a hacer sus pequeas grandes cosas con sus trenes y dioramas, a tal grado que sorprende a muchos por la facilidad de programar a travs de su sistema, ya que no hay que saber prcticamente nada sobre microntroladores salvo que hay que cargarle el programa que requerimos para hacer algo y listo. Donde a mi amigo ya le doli el codo, fue cuando quiso tener varios arduinos para hacer ms cosas: vamos! adquirir muchos arduinos ya cuesta una buena cantidad de dinero. De ah que me pregunto si exista la alternativa de fabricarse su propio arduino, cosa que es muy factible pues el arduino finalmente es open source, pero desgraciadamente en Mxico los microcontroladores AVR prcticamente no se comercializan y ah comenz mi bsqueda por algo parecido pero basado en Microchip, que en Mxico existen casi en cualquier tienda de componentes

electrnicos del pas. En esta bsqueda me encontr con el proyecto Pingino (http://www.hackinglab.org/pinguino/index_pinguino.html), que tambin es open source y es totalmente utilizable y factible, a manera personal lo que no me gusto a diferencia del arduino: es que no existe todava un manual del usuario de programacin formal, as que hay que andarle investigando mucho y se requiere ser casi un experto en C++ para irle descubriendo sus cositas. Cosa que no solucionaba en nada lo que buscaba, ni mi amigo ni yo. El salto cuntico que me provoco conocer tanto al arduino como al pingino, fue saber que por medio de un bootloader podra solucionarse en gran porcentaje el tedio que yo mismo sufr y que seguramente sufrieron muchos de ustedes cuando comenzaron con un microcontrolador; en mis aos mozos recuerdo las horas que me cost hacer que un maldito led encendiera y apagara. Como todos sabemos cuando compras un microcontrolador, este viene en ceros, esta muerto, si lo conectas no hace nada el maldito, alguien que ya paso por el proceso de hacer algo, es muy fcil. Pero para el pobre principiante que apenas tiene el primer encuentro con este mundo, puede ser toda una noche o semanas de angustias y frustraciones, verificando; el circuito, el grabador (eso si tiene el dinero para comprarlo), que si el primer programa, el compilador, etc, etc. Ustedes sabrn de qu hablo. En contra parte si te llega a tus manos un microcontrolador vivo tienes un avance de un 80% sobre el hardware y el software, de tal suerte que puedes ponerte a hacer tus programas y olvidarte en gran medida de todo lo expuesto en el prrafo anterior y disfrutar verdaderamente del ocio y de tus hobbies. El software que en este caso mantiene vivo a nuestro microcontrolador es el Bootloader de microchip escrbanlo en Google y ah encontraran mil y un paginas sobre el tema, y como dije al principio, aqu no me voy a meter en discutir o ensear nada de lo que ya esta hecho, quien quiera saber a fondo ah esta la pagina de microchip http://www.microchip.com/ y puede beberse todo lo que guste, aqu solo compartir los archivos .hex que contienen el bootloader uno para el 18f2550 y el otro para el 18f4550, los diagramas respectivos y como utilizar nuestro sistema que expongo, tambin dejo el compilador de

Basic Proton 3.5.2.7 con su respectiva medicina, para comenzar a hacer cosas lo mas rpido posible.

Descargando todo lo necesarioEl link de descarga de mi proyecto esta en el servidor 4shared y el link es http://www.4shared.com/rar/O_VBrtfI/CIBERTLAN.htm . Este link de descarga contiene un archivo empacado en winrar con un password que es CIBERTLAN. Este password es meramente para evitar que borren la liga de descarga los de 4shared y bueno para obligar de alguna manera a que lean este texto y saber de mi parte que esta siendo de utilidad para alguien. Dentro de este archivo encontraran todo lo necesario para comenzar y para hacerlo consta de un paso vital para todo el proceso y que es grabar el archivo .hex (firmware) correspondiente al microcontrolador que van a utilizar. Veamos a ms detalle: Una vez que descarguen y desempaquen el archivo cibertlan.rar tendrn cincos carpetas: Bootloader Proton Diagramas Ejemplos Datasheet

Dentro de la carpeta Bootloader encontraran 2 archivos: 18f2550.hex y 18f4550.hex estos archivos son el programa (firmware) del hidbootloader para los respectivos microcontroladores , que se debern grabar dentro del microcontrolador que escojan va un grabador de chips, acudiendo con un amigo (que lo tenga), o acudiendo a una tienda especializada (cobran 15 pesos)en el centro de la ciudad de Mxico o si cuentan con un grabador de chips, pues ustedes mismo lo pueden hacer, en mi caso tengo el famoso pickit2 y a travs de ah grabe mi programa.

Una vez teniendo nuestro microntrolador grabado, encontraran

dentro

de la carpeta diagramas los respectivos dibujos para montar el circuito base para nuestros proyectos aqu vale la habilidad de cada quien para fabricarlos, en mi caso los monte en una tarjeta perforada universal que servir de a su vez de tarjeta madre, que se podr insertar en un Protoboard.

Ya que se tiene montada toda la circuitera, podrn energizar el circuito y apreciar su trabajo; ya que tendrn titilando el led de grabacin a razn de un segundo con lo que dar acuse que todo va por buen camino. Si es as: felicidades!, ya tenemos el camino muy avanzado. Ahora nos toca verificar la conectividad entre la computadora y el microcontrolador va el puerto USB. Para esto deberemos conectar nuestro circuito a un puerto USB disponible a nuestra computadora. Comento que, este HID BOOTLOADER no requiere de drivers para instalarse en nuestra computadora ya que al ser basado en el driver universal HID, todos los controladores vienen implantados desde Windows, ya sea XP, Vista o Windows 7, con lo que no tendrn que embromarse con instalaciones tediosas, el Windows hace lo propio de manera automtica. Sin embargo lo que explicare a continuacin es de vital importancia para entender el funcionamiento del HID Bootloader.

Carga de programas al Microcontrolador

Como podrn haber apreciado nuestro proyecto cuenta con dos switchs o botones reinicio y dos LEDS, un switch que sirve para hacer un reset microcontrolador, y el otro para lograr poner o el del

microcontrolador en modo de grabacin. Los leds sirven uno para indicar que esta energizado el circuito y el otro para indicarnos que se esta en modo grabacin. De manera natural el microcontrolador esta en modo run o sea que se esta ejecutando el programa actualmente cargado. Ahora bien; si solo pulsamos el switch de Reset, veremos que el led deja de parpadear y si lo soltamos vuelve a iniciarse la secuencia y sigue corrindose el programa de manera normal. Por otro lado; si pulsamos los dos switchs al mismo tiempo, el de reset y programa, pero en secuencia solo soltamos el switch de reset, de manera inmediata veremos que la computadora nos diara que se a encontrado hardware nuevo y se ejecutara la respectiva instalacin de drivers sin preguntarnos nada y el led de nuestra tarjeta titilara pero de manera muy rpida, con esto ya tendremos nuestro microcontrolador en modo grabacin. Para poder grabar programas nuevos a nuestro microcontrolador lo debemos hacer a travs de la herramienta HIDBootloader (Windows).exe que encontraremos en la carpeta BOOTLOADER, al correr esta herramienta tendremos la siguiente pantalla cuando nuestro microntrolador esta en modo run:

Mientras que cuando grabacin nuestra

hacemos tarjeta,

la secuencia de poner en veremos la siguiente

modo

pantalla:

Como podr apreciarse, el programa USB BOOTLOADER anuncia si el microcontrolador esta conectado o no: Device Detached cuando esta en modo run, corriendo el programa actual o Device Attached cuando se esta en modo Grabacin, Cuando esta listo para que le grabemos nuestro programa.

Instalando protonSi hasta este punto todo ha estado correcto, nos encontramos en el punto de poder grabar el programa que queramos a nuestro microcontrolador, para esto debemos crearlo y para eso utilizaremos el IDE de desarrollo Proton y que a continuacin doy una breve explanacin de como instalarlo. Encontraremos dentro dela carpeta proton los siguientes archivos:

Procedemos a instalar el Proton Compiler Setup y una vez hecho esto, copiaremos el archivo ProtonIDE dentro de la carpeta C:\Program Files\ProtonIDE y remplazamos el archivo existente, hacemos lo mismo con el PrPLUS dentro de la carpeta C:\Program Files\ProtonIDE\PDS. Con esto tenemos el proton instalado y parchado para ser utilizado de manera completa.

Nuestro primer Programa en Proton

Iniciamos el Proton desde el icono correspondiente y nos encontraremos con la siguiente pantalla:

A efecto de acotar encontraran dentro de la carpeta ejemplos dividida a su ves en los do tipos de microcontroladores un archivo blink.bas abrimos el que corresponde a nuestro microcontrolador, con lo que tendremos la siguiente pantalla:

Procedemos a compilar nuestro programa con el respectivo botn compile con lo que nos generara dentro de la carpeta ejemplos el respectivo archivo blink.hex este archivo contiene el ejecutable para ser grabado en nuestro microcontrolador va el HIDBootloader (Windows).exe que comentamos en prrafos anteriores. Para hacerlo; corremos HIDBootloader (Windows).exe y ponemos en modo Grabacion nuestro microcontrolador. Presionamos al mismo tiempo RESET y grabacion inmediatamente despus soltamos reset y de este modo quedara en modo grabacin, lo repito por si no fue claro el procedimiento, dentro del programa nos anunciara device atached

Procedemos a abrir el archivo blink.hex que se debio haber generado en la carpeta ejemplos, y con el icono de nuestro microcontrolador. Despus del proceso de grabacin que no toma ms de 3 segundos tendremos la siguiente pantalla: procedemos a grabar

Con lo que quedara grabado nuestro programa, procedemos a hacer un reset de nuestro microcontrolador va el switch reset y comenzara a titilar nuestro led, que es lo que hace el programa Blink.hex. A partir de este punto ya queda en sus manos todo lo que quieran desarrollar con este potente compilador que es uno de los mejores que existen, obviamente pueden usar otros compiladores como CCS, Mikrobasic, MikroC, etc, etc. Yo tome Proton como base, puesto que lo tengo en mano y llevo buena experiencia con el, pero nada impide que ustedes usen otros compiladores.

'**************************************************************** '* Name : BLINK.BAS * '* Author : Miguel Angel Borbolla Bonomi * '* Notice : Copyright (c) 2012 CIBERTLAN * '* : All Rights Reserved * '* Date : 08/03/2012 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** Device = 18F2550 Declare PROTON_START_ADDRESS = $1000 Xtal = 48 Inicio: High PORTB.0 DelayMS 1000 Low PORTB.0 DelayMS 1000 GoTo Inicio

Por el momento, con este programita de BLINK, hagan sus pruebas, cambien los tiempos en el delayms, para cambiar los tiempos de encendido y apagado del led, en fin divirtanse. Ahora que si ya tienen experiencia con proton, ya estn listos de hacer lo que gusten. Antes de terminar este primer documento del proyecto debo

comentarles algunos detalles que deben tomar en cuenta para usar el proton en comunin con el HID BOOTLOADER de microchip. Si analizan el programa de BLINK.BAS encontraran estas lneas al principio:Device = 18F2550 Declare PROTON_START_ADDRESS = $1000 Xtal = 48

Las cuales definen que Microcontrolador usaran, si arman el circuito con el 18f4550, pues debern anunciarlo como:Device = 18F4550

Por otro lado la siguiente lnea avisa al compilador que deber organizar la memoria de inicio en la locacin $1000 ya que el propio hidbootloader reside en estas primeras direcciones de memoria, recuerden que previamente grabamos el firmware al microcontrolador. Para hacer esto, es obligadsima la sentencia:Declare PROTON_START_ADDRESS = $1000

Por ultimo e igualmente importante la tercera lnea avisa al compilador en que frecuencia de reloj trabaja nuestro microcontrolador, esto es 48 MHZ, aun cuando fsicamente tenemos un cristal de 20 mhz, el firmware del hidbootloader deja configurado a 48 MHZ el reloj va los registros internos. As que es muy importante para que el compilador haga sus clculos correspondientes para los delays, y configuracin de baudaje del puerto serie y del propio puerto USB implementado. As que esto se anuncia con la lnea:Xtal = 48

Sin mas doy terminada esta primera parte, en la que a manera de conclusin podemos apreciar las ventajas de usar un bootloader como el de microchip, en la que una ves implementado se obtiene total portabilidad de nuestro circuito, sin la necesidad de estar dependiendo de un grabador extra, de estar quitando y poniendo el microcontrolador en nuestro grabador o en nuestro circuito de desarrollo con el respectivo desgaste de las patas del microcontrolador. Tenemos total portabilidad, ya que lo podemos usar en cualquier computadora, laptop o netbook, sin ms dependencias de infinidad de herramientas. Y lo ms importante es que el costo es lo suficientemente bajo como para poder solventarlo sin la inversin de tantas cosas. Obviamente pido disculpas adelantadas por faltas de ortografa o por los posibles errores que pudiesen existir en diagramas, aunque debo comentar que estos circuitos junto con el firmware lo han implantado ya varias decenas de personas y los comentarios siempre han sido buenos, de ah que me atreva a compartir el proyecto, sin embargo no descarto

que pudiesen existir errores incluso en la explicacin, ya que no es fcil explicar las cosas va la palabra escrita. Va el foro de ba-k, donde aparece el presente post, tratare de ayudar en lo posible a quien lo solicite en ese medio, para que as aproveche la comunidad en general. Saludos Miguel Angel Borbolla Bonomi CIBERTLAN [email protected]