Você está na página 1de 10

Instituto Tecnolgico de Lerma Ing.

Baltazar de Jess Zapata Arceo

BOOTLOADER Ustedes se preguntaran Qu es el bootloader?

Efectivamente es de mucha utilidad poder "Programar tu PIC si necesidad de un Programador". Esto que digo es relativo, ya que al menos una vez debes programar como siempre un cdigo residente en memoria flash, que se encargara de tomar los datos y reprogramar su propia memoria Flash. Mejor dicho, hablemos que es un Bootloader.

El termino bootloader hace referencia a un pequeo programa que se realiza para determinado microcontrolador, ya sea PIC, Freescale, Atmel, etc. Este cdigo lo que hace es tomar los datos que se le enviaran por puerto serial (UART), USB, Ethernet, el que sea que pueda enviar una cadena de Bytes al microcontrolador. El microcontrolador va tomando esos datos que le van llegando y los va "Programando" en su propia memoria Flash. Qu obtenemos con eso, que puedes actualizar en cualquier momento el cdigo del PIC. Utilidades de esto, son grandes, puedes desarrollar un producto o un proyecto y el usuario final no necesita un programador de PIC para poder actualizarlo. Un fiel y gran ejemplo de esto es lo que implementan los programadores ("Quemadores") profesionales de PICs. El programador te llega a casa totalmente funcional, pero en cualquier momento aparece una nueva referencia de microcontrolador y si quieres actualizar el programador, solo te bajas de internet la actualizacin, conectas el micro al USB y listo, le envas la actualizacin al programador. Listo el se autoprogram la FLASH y ya tiene la nueva referencia del micro para trabajar con este. Lo anterior permite sacar las siguientes conclusiones:

Es necesario tener un programador para usarlo solo una vez y as grabarle el programa residente en memoria FLASH. Ya despus de esto se usa el Bootloader para grabar la flash del micro. El programa residente ocupa memoria flash y por ende tienes un poco menos de memoria para la aplicacin real del micro. No es mucha la que quita, pero hay que tener eso claro. Por ningn motivo se puede sobrescribir las posiciones de memoria FLASH en la que se encentra el programa residente Bootloader. Si se borra por algn error, pierdes el bootloader y toca nuevamente programarlo con un grabador externo.

Recuerden: "La peor derrota de una persona es cuando pierde su entusiasmo."

Instituto Tecnolgico de Lerma Ing. Baltazar de Jess Zapata Arceo

No todos los micros pueden soportar Bootloder, esto se limita a aquellos que tienen la capacidad de autograbar su memoria FlLASH. Por ejemplo el 16F84 no lo permite, por eso sacaron la versin PIC16F628A que si lo deja y adems tiene mejores prestaciones.

Ya con lo anterior en teora, PODEMOS GRABAR EL PIC SIN NECESIDA DE UN PROGRAMADOR.

Recuerden: "La peor derrota de una persona es cuando pierde su entusiasmo."

Instituto Tecnolgico de Lerma Ing. Baltazar de Jess Zapata Arceo

HARDWARE

El circuito que se emplear es el que se muestra a continuacin. Falta el conector USB, pero comparando con la figura que se muestra ms adelante podr terminar de construir el circuito requerido.

Recuerden: "La peor derrota de una persona es cuando pierde su entusiasmo."

Instituto Tecnolgico de Lerma Ing. Baltazar de Jess Zapata Arceo

USB El bus USB trasmite seales de datos (D+, D-) y de alimentacin (5 voltios, 0 voltios) a travs de cuatro hilos y como buen protocolo serial de alta velocidad trabaja en modo diferencial, es decir que detecta la informacin por medio de pequeas diferencias de tensin entre sus lneas de datos, es por esto que su voltaje mximo en estas lneas no superan los 3.6 voltios, y es mas: algunos fabricantes especifican como voltaje mximo solo 2.8 voltios. Como ves si, si se conecta un dispositivo USB en una toma frontal mal instalada el dao en el dispositivo es seguro porque no existe ninguna proteccin. En cuanto a la reparacin, muchos dispositivos USB, llmense scanners, cmaras, pen drives, etc utilizan resistencias en serie con la entrada diferencial con un valor de 2.2 ohmios a 10 ohmios para lograr un mejor acople de impedancias en la lnea, cuando estas se ven expuestas a 5 voltios por algunos segundos se queman y se abren (aumentan su resistencia al infinito) siendo este el nico dao en el dispositivo, el problema radica en que no todos los dispositivos USB cuentan con estas resistencias de acople, y la seal llega directamente al circuito integrado encargado de decodificar estos pulsos diferenciales el cual una vez daado es difcil de conseguir, aunque si lo consigues lo mas seguro es que puedas reparar el dispositivo.

Recuerden: "La peor derrota de una persona es cuando pierde su entusiasmo."

Instituto Tecnolgico de Lerma Ing. Baltazar de Jess Zapata Arceo

USB fue diseado para estandarizar la conexin de perifricos, como mouse, teclados, joysticks, escneres, cmaras digitales, telfonos mviles, reproductores multimedia, impresoras, dispositivos multifuncionales, sistemas de adquisicin de datos, mdems, tarjetas de red, tarjetas de sonido, tarjetas sintonizadoras de televisin y grabadora de DVD externa, discos duros externos y disquetera externas. Su xito ha sido total, habiendo desplazado a conectores como el puerto serie, puerto paralelo, puerto de juegos, Apple Desktop Bus o PS/2 a mercados-nicho o a la consideracin de dispositivos obsoletos a eliminar de los modernos ordenadores, pues muchos de ellos pueden sustituirse por dispositivos USB que implementen esos conectores.

Para nuestra instalacin es recomendable buscar la mejor conexin en nuestro pic , para ello conseguir bornes maquilados como se muestra en la figura (se encuentran en las tarjetas madres).

Recuerden: "La peor derrota de una persona es cuando pierde su entusiasmo."

Instituto Tecnolgico de Lerma Ing. Baltazar de Jess Zapata Arceo Generacin de cdigo

El USB Bootloader es un pequeo programa de arranque, residente en las primeras 0x1000 bytes de la memoria de programa de un Microcontrolador Pic18F2550. El bootloader funciona en el momento en que se carga el programa (justo cuando se reinicializa el PIC) y es capaz de cargar un programa de aplicacin en la memoria de programa del pic.
Es importante destacar el apartado #define LOADER_SIZE del programa el cual asla el programa del bootloader para no ser borrado tras una nueva carga, es importante tenerlo en cuenta cuando se simula en Proteus comentarlos y cuando se vaya a descargar al PIC habilitarlo. (colocar o quitar comentarios) #define LOADER_SIZE 0x1000 //4096 Bytes. #build(reset=LOADER_SIZE, interrupt=LOADER_SIZE+0x08) #org 0, (LOADER_SIZE-1) {}

PROGRAMA PLANTILLA DE PROYECTOS


//************************************************ /* Publicado: ING. Baltazar de Jesus Zapata Arceo # Balzarc# Instituto Tecnolgico de Lerma */ //************************************************ #include <18F2550.h> #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL2,CPUDIV1,VREGEN,MCLR //#define ADC=10 // Habiltalo cuando necesites que el adc sea de 10 bits #use delay(clock=48000000) /// MICROCHIP_BOOTLOADER.H /// NOTA: FUNCIONA CON LA VERSION DE USB_BOOTLOADER.EXE (HID) V.2.9a /// NO FUNCIONA CON LA VERSION DE USB_BOOTLOADER.EXE HID V2.3. /// CODIGO BOOTLOADER, PARA SIMULAR EN PROTEUS, PONER COMO COMENTARIO PARA GRABAR EN MICROCONTROLADOR, QUITAR COMENTARIO #define LOADER_SIZE 0x1000 //4096 Bytes. #build(reset=LOADER_SIZE, interrupt=LOADER_SIZE+0x08) #org 0, (LOADER_SIZE-1) {} #use standard_io(a) #use standard_io(b) #use standard_io(c)

Recuerden: "La peor derrota de una persona es cuando pierde su entusiasmo."

Instituto Tecnolgico de Lerma Ing. Baltazar de Jess Zapata Arceo


void main() { /// Configuracion Embebida //// setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF); setup_wdt(WDT_OFF); setup_timer_0(RTCC_8_BIT|RTCC_DIV_128); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_timer_3(T3_DISABLED|T3_DIV_BY_1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); for(;;){ ///////////poner programa desde aqu//////////// //////////fin de programa/////// } }

Recuerden: "La peor derrota de una persona es cuando pierde su entusiasmo."

Instituto Tecnolgico de Lerma Ing. Baltazar de Jess Zapata Arceo

DESCARGAR PROGRAMA CON BOOTLOADER HID

GRABANDO EL PIC Abrimos la aplicacin USB Boottloader V2.90 ( la encuentras en la direccin http://balzarc-proyectositl.blogspot.mx/)

Se conecta el PIC al puerto USB. Una vez que Windows detecta que la PC tiene conectado un dispositivo nuevo, se inicia el asistente para instalar drivers de hardware nuevo. Para entrar en el modo USB Bootloader, se presiona el botn Reset conectado a la terminal MCLR, luego se presiona el botn Bootloader y se libera nuevamente el botn Reset. Lo anterior se realiza porque el programa bootloader del PIC primero examina el nivel lgico de la termina Bootloader donde se encuentra conectado el pushbutton. Si el botn est presionado el PIC entra en modo Bootloader y si no lo est ejecuta el programa de aplicacin que tenga grabado.

Recuerden: "La peor derrota de una persona es cuando pierde su entusiasmo."

Instituto Tecnolgico de Lerma Ing. Baltazar de Jess Zapata Arceo

Automticamente la aplicacin lo detecta y el hardware solo emitir unos destellos de bootloader . Cargamos nuestro proyecto extensin .h dando click en el icono de la carpeta file / import firmware image.

Y el ltimo paso es descargar el proyecto que es nombrado como Erase/Program/Verify Device como se ve en la imagen .

Se demora unos cuantos segundos, terminado el proceso se procede a resetear el PIC (por hardware el botn externo software Reset Device )

Recuerden: "La peor derrota de una persona es cuando pierde su entusiasmo."

Instituto Tecnolgico de Lerma Ing. Baltazar de Jess Zapata Arceo

Listo es hora de realizar las prcticas

Recuerden: "La peor derrota de una persona es cuando pierde su entusiasmo."

Você também pode gostar