87296971 uso de hid boot loader de microchip con proton
Post on 18-Dec-2014
69 Views
Preview:
TRANSCRIPT
USODEHIDBOOTLOADERDE
MICROCHIPCONPROTON
Hola Bakunos, pues aquí dejo una manera muy versátil 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 “robóticos” de
bajo presupuesto nos ha servido de manera soberbia. Sabemos de
antemano que habrá por ahí una infinidad de puristas que podrán tener
sus contras al modo en como funciona este sistema, pero bueno si son
puristas o como decimos en México 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 muchísimas 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 compañero de modelismo
(ferromodelismo) que tuvo la oportunidad de adquirir un Arduino
(http://www.arduino.cc/es/) y sin mas, comenzó a hacer sus pequeñas
grandes cosas con sus trenes y dioramas, a tal grado que sorprende a
muchos por la facilidad de programar a través de su sistema, ya que no
hay que saber prácticamente 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 más cosas: ¡vamos! adquirir muchos arduinos ya
cuesta una buena cantidad de dinero. De ahí que me pregunto si existía
la alternativa de fabricarse su propio arduino, cosa que es muy factible
pues el arduino finalmente es open source, pero desgraciadamente en
México los microcontroladores AVR prácticamente no se comercializan y
ahí comenzó mi búsqueda por algo parecido pero basado en Microchip,
que en México existen casi en cualquier tienda de componentes
electrónicos del país. En esta búsqueda me encontré con el proyecto
Pingüino (http://www.hackinglab.org/pinguino/index_pinguino.html), que
también 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
todavía un “manual del usuario” de programación 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 cuántico que me provoco conocer tanto al arduino como al
pingüino, fue saber que por medio de un bootloader podría solucionarse
en gran porcentaje el tedio que yo mismo sufrí y que seguramente
sufrieron muchos de ustedes cuando comenzaron con un
microcontrolador; en mis años 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 fácil. 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 sabrán 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 párrafo 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” escríbanlo 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 enseñar 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, también dejo el compilador de
Basic “Proton 3.5.2.7 “ con su respectiva medicina, para comenzar a
hacer cosas lo mas rápido posible.
Descargando todo lo necesario
El 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 más detalle:
Una vez que descarguen y desempaquen el archivo cibertlan.rar tendrán
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 deberán
grabar dentro del microcontrolador que escojan vía 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 México o si
cuentan con un grabador de chips, pues ustedes mismo lo pueden hacer,
en mi caso tengo el famoso pickit2 y a través 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 circuitería, podrán energizar el circuito
y apreciar su trabajo; ya que tendrán titilando el led de “grabación” a
razón 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 vía 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 tendrán que
embromarse con instalaciones tediosas, el Windows hace lo propio de
manera automática. Sin embargo lo que explicare a continuación es de
vital importancia para entender el funcionamiento del HID Bootloader.
Carga de programas al Microcontrolador
Como podrán haber apreciado nuestro proyecto cuenta con dos switchs
o botones y dos LEDS, un switch que sirve para hacer un reset o
reinicio del microcontrolador, y el otro para lograr poner el
microcontrolador en modo de “grabación”. Los leds sirven uno para
indicar que esta energizado el circuito y el otro para indicarnos que se
esta en modo “grabación”. 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 corriéndose 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 instalación de drivers sin
preguntarnos nada y el led de nuestra tarjeta titilara pero de manera
muy rápida, con esto ya tendremos nuestro microcontrolador en modo
“grabación”.
Para poder grabar programas nuevos a nuestro microcontrolador lo
debemos hacer a través 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 hacemos la secuencia de poner en modo
“grabación” nuestra tarjeta, veremos la siguiente 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 “Grabación”, Cuando esta
listo para que le grabemos nuestro programa.
Instalando proton
Si 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 continuación doy una breve
explanación 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 botón
“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 vía el “HIDBootloader
(Windows).exe” que comentamos en párrafos anteriores.
Para hacerlo; corremos “HIDBootloader (Windows).exe” y ponemos en
modo Grabacion nuestro microcontrolador. Presionamos al mismo
tiempo “RESET” y “grabacion” inmediatamente después soltamos “reset”
y de este modo quedara en modo “grabación”, 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 procedemos a grabar
nuestro microcontrolador.
Después del proceso de grabación que no toma más de 3 segundos
tendremos la siguiente pantalla:
Con lo que quedara grabado nuestro programa, procedemos a hacer un
reset de nuestro microcontrolador vía 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 diviértanse. Ahora que si ya tienen
experiencia con proton, ya están 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 comunión con el HID BOOTLOADER de microchip.
Si analizan el programa de BLINK.BAS encontraran estas líneas 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 deberán anunciarlo como:
Device = 18F4550
Por otro lado la siguiente línea avisa al compilador que deberá organizar
la memoria de inicio en la locación $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 obligadísima la sentencia:
Declare PROTON_START_ADDRESS = $1000
Por ultimo e igualmente importante la tercera línea avisa al compilador
en que frecuencia de reloj trabaja nuestro microcontrolador, esto es 48
MHZ, aun cuando físicamente tenemos un cristal de 20 mhz, el firmware
del “hidbootloader” deja configurado a 48 MHZ el reloj vía los registros
internos. Así que es muy importante para que el compilador haga sus
cálculos correspondientes para los delays, y configuración de baudaje
del puerto serie y del propio puerto USB implementado. Así que esto se
anuncia con la línea:
Xtal = 48
Sin mas doy terminada esta primera parte, en la que a manera de
conclusión 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
más dependencias de infinidad de herramientas. Y lo más importante es
que el costo es lo suficientemente bajo como para poder solventarlo sin
la inversión de tantas cosas.
Obviamente pido disculpas adelantadas por faltas de ortografía 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 explicación, ya que no es fácil
explicar las cosas vía la palabra escrita.
Vía 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
miborbolla@gmail.com
top related