0% encontró este documento útil (0 votos)
193 vistas4 páginas

Bootloader en Microcontroladores PIC

Este documento describe un bootloader para microcontroladores PIC. Un bootloader es un pequeño programa que facilita la programación del microcontrolador a través de puertos como USB sin necesidad de hardware de programación externo. Describe los tipos de bootloaders USB y RS-232, sus ventajas como no requerir hardware externo y desventajas como ocupar espacio de memoria. También explica los requisitos como soportar escritura de flash por software y reservar memoria para evitar sobreescribir el bootloader.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
193 vistas4 páginas

Bootloader en Microcontroladores PIC

Este documento describe un bootloader para microcontroladores PIC. Un bootloader es un pequeño programa que facilita la programación del microcontrolador a través de puertos como USB sin necesidad de hardware de programación externo. Describe los tipos de bootloaders USB y RS-232, sus ventajas como no requerir hardware externo y desventajas como ocupar espacio de memoria. También explica los requisitos como soportar escritura de flash por software y reservar memoria para evitar sobreescribir el bootloader.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Facultad de Ingeniería Programa de Ingeniería Electrónica

Circuitos Digitales 3 Informe de Investigación

Informe de Investigación
BOOTLOADER EN PIC
Resumen – El presente documento pretende dar a
conocer una aplicación que tienen los
microcontroladores para su programación, se abarcaran
diferentes familias del microcontrolador PIC y se
mostrará las ventajas, desventajas y usos que tiene esta
aplicación en ellas.
Palabras Clave – BootLoader, firmware, USB, USB –
HID.
MARCO TEÓRICO

1. BOOTLOADER

1.1. ¿Qué es?


Un BootLoader es un pequeño programa que está Imagen 1: Mapeado de la memoria en un
precargado en la memoria flash de el microcontrolador, microcontrolador con BootLoader
tiene como objetivo facilitar la programación del
microcontrolador por medios convencionales de
comunicación como USB o RS – 232 en vez de requerir
un hardware externo especializado en la programación
de estos dispositivos.
Este programa se ejecuta luego de cada reinicio del
microcontrolador buscando, a través del puerto de
comunicación, si existen versiones actualizadas del
programa que se va a compilar, en caso tal de detectar
estas nuevas versiones, el BootLoader recibirá los bytes
del nuevo programa y los almacenará en la memoria de
programa de usuario del microcontrolador, ayudando a
poder actualizar en cualquier momento el código dentro
del microcontrolador.
Este tipo de programas se comunican con el PC
(usualmente a través de una interfaz serial), recibe el
programa que tiene el PC; transfiriendo el archivo .HEX
al PIC a través de una pequeña aplicación de escritorio
que hace de interfaz entre el PC y el firmware del
microcontrolador y lo escribe en su memoria flash, luego
ejecuta el programa. Este tipo de programas solo puede
ser utilizado por microcontroladores que pueden escribir
su memoria flash a través de software y deben ser Imagen 2: Comparación entre una memoria
cargados en el microcontrolador mediante un programada con BootLoader y otra sin BootLoader
programador externo como el PICKIT2.
En esta imagen se puede ver como el vector reset
Dependiendo de la persona que lo implemente este
apunta al comienzo del BootLoader y este determinará,
programa puede ir al inicio o al final de la memoria ROM
del microcontrolador, si se implementa al final se puede según el estado que tenga RD0 si se debe ejecutar la
obtener el siguiente diagrama de cómo quedaría aplicación (RD0 = 1) o si debe cargar en memoria un
programada la memoria con este firmware:
Facultad de Ingeniería Programa de Ingeniería Electrónica

Circuitos Digitales 3 Informe de Investigación

nuevo archivo o actualizar el programa ya establecido decir, que sea capaz de “auto-programar” su
por el usuario (RD0 = 0). memoria flash.

1.2. Ventajas y Desventajas - Es necesario que el dispositivo al cual se le va a


Ventajas: programar el BootLoader tenga memoria suficiente
para la aplicación.
- Este tipo de programas están disponibles gratis
para cualquier usuario. - Se necesitará de un programador externo para
cargar el BootLoader por primera vez.
- No necesita el uso de dispositivos externos para su
programación. - Asegurar que las direcciones de escritura y borrado
están ubicadas fuera del BootLoader.
- Para programarlo solo debemos conectar el puerto
USB de nuestro microcontrolador y luego correr el - Permitir que el PC lea la memoria del programa.
firmware para actualizar el programa desde
nuestro PC. - Proteger las posiciones de memoria donde está
grabado el BootLoader.
- No se generan costos adicionales al no tener que
comprar un programador externo para cargas las 1.4. Tipos
aplicaciones.
Existen dos tipos de BootLoader, los cuales dependerán
- No es necesario quitar el microcontrolador de la del protocolo de comunicación y el tipo de puerto.
placa donde está montado. BootLoader tipo USB:
Desventajas: Este tipo es utilizado por microcontroladores de alta
- Ocupa espacio de memoria flash. gama de 8 y 16 bits que dispongan de un puerto de
comunicaciones USB, su ventaja es que no necesita de
- Su uso hace que deban tenerse en cuenta otros una circuitería de acople y debido a su conexión
aspectos sobre los recursos que se van a utilizar suministra mayores velocidades para la lectura y
como el tiempo de arranque del programa, uso y escritura de datos.
configuración del puerto de comunicaciones, etc. En el caso específico de MICROCHIP se tienen dos
tipos de BootLoader por USB, el MCHPFSUSB, que
- Para programar el BootLoader en un PIC que no requiere de la instalación de controladores en el sistema
ha sido cargado con ningún programa (virgen) operativo de la computadora a la cual se conectará el
debe ser utilizado un programador externo. microcontrolador. Por otro lado, existe el HID que no
necesita de controladores para su funcionamiento.
- Si por algún motivo el BootLoader se convierte en
un archivo corrupto no se puede volver a Para el cao del HID, MICROCHIP facilita las
programar por USB. herramientas necesarias para facilitar su
implementación. Por ejemplo el firmware viene pre
- Reubicación en memoria de vectores de compilado para los microcontroladores PIC18F14K50 y
interrupción. PIC18F4450. Para el uso de BootLoader por medio de
este firmware se tienen que tener en cuenta los
- No todos los microcontroladores soportan este siguientes requerimientos:
programa.
- Entrada a modo BootLoader:
1.3. Requisitos Se requiere que una entrada del microcontrolador sea
usada para especificar, mediante su activación en bajo,
- Para poder grabar un microcontrolador con si se debe ingresar al modo BootLoader. Para ingresar
BootLoader es necesario que este soporte la a este modo el pin del integrado que se defina como
escritura de la memoria flash mediante software, es entrada debe permanecer en nivel bajo de voltaje
Facultad de Ingeniería Programa de Ingeniería Electrónica

Circuitos Digitales 3 Informe de Investigación

después de un reset del sistema, adicional la aplicación 2. BIBLIOGRAFÍA


de comunicación debe encontrase en espera.
Qué es:
- Reserva de memoria:
http://tecbolivia.com/index.php/articulos-y-tutoriales-
Por defecto, este BootLoader se ubicará en la zona baja microcontroladores/57-tutorial-pic-con-tiny-bootloader
del programa, por este motivo, se deberá indicar la https://www.geekfactory.mx/tutoriales/grabar-un-pic-
región de memoria en la cual se quiere programar la con-bootloader-desde-mplab-x/
memoria flash sin que se sobre-escriba el espacio
donde está guardado el BootLoader. http://www.etc.ugal.ro/cchiculita/software/picbootloader
.htm
BootLoader serie RS232:
http://elaborarunbootloaderparaunpicingupoli.blogspot.
Este utiliza el módulo USART de los microcontroladores com.co/2016/09/
para establecer comunicación con la computadora por
http://www.microchip.com/promo/8-bit-bootloader
medio de un puerto COM disponible. Este tipo es
ampliamente utilizado ya que casi todos los http://www.aquihayapuntes.com/indice-practicas-pic-
microcontroladores PIC poseen este módulo. Las en-c/bootloader-usb-multiplataforma.html?limitstart=0
debilidades de este tipo de BootLoader es que requiere
circuitería de acople y además los puertos tipo COM ya http://www.etc.ugal.ro/cchiculita/software/picbootloader
.htm
no se incluyen en las computadoras modernas, esta
última problemática puede solucionarse mediante un Ventajas y Desventajas:
acople de tipo RS232 – USB.
http://rado.heliohost.org/content_5.htm
1.5. Firmware
http://www.aquihayapuntes.com/indice-practicas-pic-
Un ejemplo de BootLoader que se puede encontrar es en-c/bootloader-usb-multiplataforma.html?limitstart=0
el Tiny PIC BootLoader, este posee las siguientes
Requisitos:
características en su firmware:
http://ww1.microchip.com/downloads/en/DeviceDoc/40
- Tamaño de 100 palabras. 001779B.pdf
- Puede escribir las memorias flash y EEPROM.
- En estado de reset espera un segundo por un http://www.todopic.com.ar/foros/index.php?topic=2313
mensaje del PC, este tiempo puede ser 5.0
ajustable, en caso de no recibir ninguna Tipos:
información procede a lanzar la aplicación de
usuario. http://www.redicces.org.sv/jspui/bitstream/10972/2545/
- El archivo .asm puede ser fácilmente 1/CAP%2010.pdf
modificado en caso de que se necesite adaptar
http://rado.heliohost.org/content_9.htm
a una frecuencia diferente.
Firmware
Básicamente de eso es lo que se encarga el firmware
de verificar, en caso de que se esté en modo http://usb-pic.org/bootloader-programming-target-
Bootloader, la comunicación con el PC para así poder pic18f-microcontroller
cargar los programas que este le envíe por el puerto de
http://www.etc.ugal.ro/cchiculita/software/picbootloader
comunicación que se este utilizando, luego de que la .htm
programación este hecha el BootLoader cambia al
modo usuario donde el procesador se reinicia y http://perso.wanadoo.es/pictob/bootloader.htm
comienza a correr el nuevo código cargado.
http://www.puntoflotante.net/AN1310.htm
Facultad de Ingeniería Programa de Ingeniería Electrónica

Circuitos Digitales 3 Informe de Investigación

También podría gustarte