Sei sulla pagina 1di 11

Laboratorio de Microprocesadores I Docente: Ing.

Roger Guachalla Narvez


xoroger@yahoo.es

P04: Bootloader HID USB


I. Objetivos
Entender el concepto de un Bootloader (Gestor de arranque)
Conocer la programacin en memoria ROM Flash del PIC18F4550 mediante el USB mikroBootloader
Conocer el protocolo ICSP para grabar en la memoria ROM Flash del PIC18F4550 usando el grabador PICKIT2
Entender el significado de los Bits de Configuracin y su uso en la grabacin del PIC18F4550 sin usar el Bootloader

II. Bootloader - Gestor de Arranque


Qu es un BootLoader?
Un Bootloader es un pequeo programa residente en la memoria Flash de un microcontrolador que se ejecuta despus de
cada reinicio y que a su vez escucha por el puerto USB para la recepcin de bytes de cdigo de programa mandados
tpicamente desde una PC. Si el bootloader detecta la recepcin de un nuevo programa, recibe estos bytes y los almacena
en la memoria de programa de usuario en el microcontrolador, de otro modo, rescinde el uso del procesador y pasa el
control a un otro programa que haya sido grabado con anterioridad

Ventajas de utilizar un BootLoader


Los BootLoaders llevan ya tiempo utilizndose en el mundo de los Microcontroladores y su uso ha sido fundamental en el
xito de muchos proyectos populares como Arduino. Estos proyectos basan su xito en facilitar al usuario una plataforma
econmica con la que empezar a programar los Microcontroladores y para ello es fundamental el abaratar costos, como el
no tener que utilizar un programador externo para cargar las aplicaciones de usuario. Estas placas de desarrollo vienen ya
con el Bootloader cargado en la memoria flash del microcontrolador, por lo que no se necesita de ningn Hardware adicional
para empezar a programar el dispositivo insertado en la placa de desarrollo.
Pero esta no es la nica ventaja de utilizar un BootLoader, otra es que se puede actualizar el programa de usuario cargado
en el Microcontrolador de manera fcil y sin necesidad de sacar el Micro fuera de la placa donde est montado.
Inconvenientes
El inconveniente principal e inevitable de utilizar un BootLoader es el espacio de memoria ROM que implica el tenerlo
cargado en la memoria del microcontrolador de forma permanente.
Se debe tomar en cuenta que cada Bootloader est configurado para un modelo del microcontrolador en particular. Es decir
no se puede usar el mismo bootloader para modelos distintos incluso si son de la misma familia.
Otra desventaja es la imposibilidad de configurar al microcontrolador de manera distinta a la que posee el Bootloader. Esto
puede limitar la optimacin de los recursos que posee el PIC18F4550
III. Grabacin INICIAL del software Bootloader
Por primera y nica vez, usando un grabador convencional (por ejemplo, el PICKIT2) se debe grabar en
el microcontrolador PIC18F4550 el software bootloader.

El archivo a grabar es el siguiente: USB_Boot_P18F4550_4MHz_xtal_48MHz_USB.hex

IV. Circuito Mnimo Bootloader USB con el PIC18F4550


Para todos los proyectos a realizar usando el USB mikroBootloader, el circuito a armar es el siguiente:
V. Conexin al computador PC
Se requiere un Cable USB y un Conector USB tipo B. La alimentacin del circuito vendr del puerto USB
IMPORTANTE: Para evitar posibles daos por corto circuito al puerto USB del
computador. Primero verificar, con un multmetro, la polaridad de la alimentacin de
+5V. Realizar esta tarea conectando solo el cable USB y medir en los pins VCC y GND del
conector USB tipo B que ir al protoboard.

VI. Uso del USB HID mikroBootloader con el PIC18F4550


1. Abrir el software USB HID mikroBootloader
2. Conectar el Circuito Mnimo Bootloader USB al computador PC.

Hacer click en el botn del Paso 1: Wait for USB link


El software auto detectar el Dispositivo: PIC18F4550 y el tipo de microcontrolador PIC18

Hacer click en el botn del Paso 2: Connect to MCU


En la ventana History Window aparecer el mensaje Connected indicando que se realiz una
Conexin exitosa

Hacer click en el botn del Paso 3: Browse for HEX


Ubicar el archivo .hex del programa a grabar en el microcontrolador

Hacer click en el botn del Paso 4: Start bootloader


El software grabar el programa en el microcontrolador. Este proceso se muestra en la barra de
progreso Bootloading progress bar

3. La ventana emergente indica que la grabacin ha sido exitosa y para que el programa se ejecute se debe
Resetear el circuito y esperar unos segundos para que el bootloader termine y de paso al programa de
aplicacin.
VII. Protocolo ICSP (In-Circuit Serial Programming)
ICSP es el protocolo utilizado en los dispositivos PIC de Microchip para programarlos. Es vlida para todos
los PIC de la gama baja PIC12, los de la gama media PIC16F e incluso para las familias de gama alta PIC18,
PIC24 y dsPIC.
Cuando se desarrollan sistemas microcontrolados resulta muy ineficiente tener que sacar el PIC de su
circuito para reprogramarlo, una y otra vez. Si el proyecto es relativamente largo, esto no solamente
consume un tiempo considerable, sino que tambin disminuye la vida til del PIC (los pines podran
doblarse y romperse) Este protocolo posibilita la programacin PIC sin que sea necesaria la extraccin de
su circuito de aplicacin.
Las seales ICSP provistas al PIC para programarlos son las siguientes:

VPP: Voltaje de Programacin aplicado al pin MCLR/VPP del PIC (+12 volt)
VDD: Voltaje de Alimentacin provisto al PIC (+5 volt)
GND (Ground): Conexin a tierra
PGC (Program Clock): Seal de reloj provista al PIC para sincrona
PGD (Program Data): Lnea serial de datos para escritura, lectura y verificacin de la ROM Flash

VIII. Programador ICSP - PICKIT2

Desarrollado inicialmente por Microchip, ahora es un proyecto libre bajo el nombre PICKIT2
CLONE
Grabador universal para microcontroladores PIC: familias PIC10, PIC12, PIC16, PIC18, dsPIC, PIC24
Utiliza protocolo ICSP
Conexin al computador a travs de puerto USB
Software para Windows PICKIT2
IX. Bits de configuracin del PIC18F4550
Los bits de configuracin estn distribuidos entre 12 Registros de Configuracin mapeados a partir de la
direccin de memoria 300000h.

A continuacin, se realiza una explicacin de los principales Bits de Configuracin en el microcontrolador


PIC18F4550 que deben ser configurados en MikroC si es que NO se usa el Bootloader

Diagrama parcial del esquema de Reloj del PIC18F4550


PLL Prescaler Selection: (Controlado por PLLDIV (0...2))

La funcin de esta configuracin es dividir la seal a la salida del Primary Oscillator entre las siguientes escalas:
1 (No divide), 2, 3, 4, 5, 6, 10 o 12. Esto mediante la configuracin de los 3 bits PLLDIV. Por ejemplo, si se usa
un cristal de 20MHz y se configura Divide by 5 se obtendr 4MHz a la salida del MUX.
Por otro lado, al seleccionar No prescaler (4 MHz oscillator input drives PLL directly) se desactiva la funcin
de divisor, y el oscilador mantiene su frecuencia.
La finalidad, es obtener 4 Mhz de frecuencia que son necesarios para hacer funcionar el bloque 96 MHz PLL,
el cual genera, una salida de 96 MHz que luego, al ser dividida entre 2, permite usar el USB.
System Clock Postscaler Selection: (Controlador por CPUDIV (01))

Si la seal proviene de la salida del circuito 96 MHz PLL, se puede dividir entre 2, 3, 4, o 6 para as obtener 48,
32, 24 y16 MHz como frecuencias de reloj.
Si la seal proviene de la salida del Primary Oscillator, se puede dividir entre 1, 2, 3 o 4
USB Clock Selection (used in Full-Speed USB mode only; UCFG): (Controlado por USBDIV)

Esta configuracin indica de donde proviene la frecuencia de reloj para el Modulo USB.
USB clock source comes from the 96 MHz PLL divided by 2: Los 48 MHz requeridos para el modulo USB
sern proporcionados de la divisin de 96 MHz entre 2 generados por el bloque 96 MHz PLL.
USB clock source comes directly from the primary oscillator block with no postcale: Los 48 MHz requeridos
para el modulo USB sern proporcionados desde el oscilador primario.
Oscillator Selection:
Permite seleccionar entre las 12 opciones posibles de reloj:
Oscilador HS (High Speed) de frecuencia mayor a 4 MHz
Oscilador XT (Crystal) de frecuencia menor o igual a 4 MHz
Oscilador EC (External Clock) frecuencia external de reloj que ingresa a OSC1
Internal oscillator en base a RC con un error del 5% (no recomendable para aplicaciones donde el control de
tiempo es importante)
Ntese que esta configuracin de seleccin del tipo de Oscilador est ligado a los primeros 3 bits de
configuracin. Por ejemplo, al elegir la opcin HS oscillator, PLL enabled (HSPLL) se est activando el uso del
Postscaler dando la oportunidad de configurar el bloque System Clock Postscaler Selection donde,
dependiendo de la escala de divisin, se obtendr 48, 32, 24 o 16 MHz. Caso contrario, si se selecciona la
opcin HS oscillator (HS) se est deshabilitando la opcin del Postscaler y la configuracin System Clock
Postscaler Selection solo nos da la opcin de dividir o no al reloj principal. Estos mismos efectos son vlidos
para las opciones de XT oscillator, PLL enabled (XTPLL) y XT oscillator (XT).
La fuente de reloj primaria y la del USB son independientes, es decir que el microcontrolador puede funcionar
directamente con la fuente primaria y el USB con los 48 MHz proporcionados por el Postcaler o en su caso las
ambas fuentes con 48 MHz.
Fail - Safe Clock Monitor:
Permite detectar un fallo de la fuente de reloj. El FSCM (Fail-Safe Clock Monitor) monitorea el funcionamiento
externo y permite al microcontrolador continuar con la ejecucin de programa en caso de que el oscilador
falle por alguna razn. En tal caso, el oscilador interno toma su funcin.
El monitor detecta un fallo al comparar las fuentes de reloj interno y externo. Si los pulsos del oscilador externo
tardan ms de 2mS en llegar, la fuente de reloj ser automticamente cambiada por la interna. As, el oscilador
interno sigue funcionando controlado por los bits del registro OSCCON. Si el bit OSFIE del registro PIE2 est a
uno, se producir una interrupcin.
Internal/External Oscillator Switchover
El modo de cambio automtico de velocidad de reloj se utiliza para reducir el consumo de corriente cuando el
microcontrolador funciona en modo de reposo.
Cuando se configura en modo LP, XT u HS, el oscilador externo se desactiva al pasar a modo de reposo para
reducir el consumo de corriente total del dispositivo. Cuando se cumplen las condiciones para "despertar", el
microcontrolador no se pone a funcionar inmediatamente puesto que debe esperar a que se estabilice la
frecuencia de seal de reloj. Este tiempo muerto dura exactamente 1024 pulsos, despus de que el
microcontrolador contina con la ejecucin del programa. El caso es que se ejecutan slo unas pocas
instrucciones antes de que el microcontrolador vuelva al modo de reposo.
Eso significa que la mayora de tiempo, as como la mayora de corriente de bateras se ha perdido en vano. El
caso se soluciona utilizando el oscilador interno para ejecutar el programa durante la duracin de 1024 pulsos.
Tan pronto como se estabilice la frecuencia del oscilador externo, l retoma automticamente "el papel
principal". Todo el procedimiento se habilita al poner a uno el bit de palabra de configuracin.
Power-up Timer
Este temporizador emplea el oscilador INTRC como fuente de reloj. Proporciona un retardo fijo de 62 ms
durante el encendido. Est diseado para mantener al PIC en reset mientras la fuente de alimentacin se
estabiliza.
Brown-out Reset
El Brown-out Reset es un sistema muy simple que hace que el PIC entre en modo Reset, si la alimentacin VCC
baja de un cierto valor que es configurable. Se configura activndolo en el registro correspondiente y
seleccionando el nivel de voltaje por debajo del cual queremos que el PIC permanezca reseteado.
USB Voltage Regulator
Este habilita o deshabilita la utilizacin del regulador interno del Vbus para el USB
Watchdog Timer
El "Watch Dog Timer" o "Temporizador Perro guardin" lo que hace fundamentalmente es resetear el micro
tras un periodo de tiempo determinado. Su funcionamiento es similar a la Interrupcin por Desbordamiento
de un Timer, que se produce cuando un Timer que es incrementado continuamente pasa de su valor mximo
al mnimo para comenzar de nuevo a contar. En el caso del WDT en lugar de saltar una interrupcin se genera
un reset automtico en el momento de producirse dicho desbordamiento.
PORTB A/D:
Esta configuracin permite elegir si los 4 pines inferiores del puerto PORTB <4:0> e configuran como E/S
digitales o como canales de entrada anlogos despus de un Reset.
MCLR Pin:
Esta configuracin permite habilitar o no la funcin de Reset Maestro Externo. En ocasiones por cuestiones de
uso del puerto o por ahorro de espacio en placa se desactiva el MCLR y desde esta configuracin se puede
realizar.
Low Voltage Program:
Esta configuracin se habilita cuando el microcontrolador pertenece a la familia de nanoWatt TECHNOLOGY.
sta familia necesita desde su programacin el uso de otros voltajes y consideraciones.
Los restantes bits de configuracin como el Code Protection (Block 0 -3) y los siguientes, tienen la finalidad de
proteger el cdigo de programa de lecturas o escrituras por medio de debugers, esto es til cuando no
deseamos que alguien pueda obtener el cdigo fuente si es que se est comercializando el circuito.

X. Bits de configuracin del PIC18F4550 en MikroC


En el compilador MikroC la configuracin se realiza accediendo al men: Project Edit Project
En el recuadro Configuration Registers observamos los valores configurados (en hexadecimal) para cada
registro:
Valores para los bits de configuracin para el PIC18F4550 en caso de
NO usar el Bootloader
XI. Reto de la Prctica de Laboratorio
DESCRIBIR Y EXPLICAR EN DETALLE (por lo menos 8 pginas escritas a mano) TODAS LA OPCIONES (14
en total) del men Tools en el software PICKIT2 Programmer (Enviar fotografas del resumen al correo
electrnico hasta fecha viernes 8 de septiembre y entregar resumen escrito el martes 12 de septiembre)

XII. Procedimiento Experimental en Laboratorio


Armar en protoboard el Circuito Mnimo Bootloader USB con el PIC18F4550
Primera Firma:
Usando el Bootloader USB, programar en el PIC18F4550 y demostrar el funcionamiento en
hardware del programa de la PRIMERA FIRMA de la prctica P03
Segunda Firma:
Usando el Bootloader USB, programar en el PIC18F4550 y demostrar el funcionamiento en
hardware del programa de la SEGUNDA FIRMA de la prctica P03.
XIII. Informe de laboratorio
I. Firmas en la Cartula (0, 1 o 2) que avalen los procedimientos realizados en Laboratorio
II. TRABAJO DE INVESTIGACION: Programador Universal USB PICKIT 2
Caractersticas tcnicas
Dispositivos soportados
Diagrama en Bloques
Circuito Esquemtico
Uso del software PICKIT2
El trabajo de investigacin debe incluir: Resumen escrito a mano (de un mnimo de 4 pginas), Fuentes de
Informacin (direcciones web, bibliografa), Copias impresas de las primeras 2 pginas de informacin
adquirida a travs de las fuentes
III. Conclusiones

Potrebbero piacerti anche