P04r Bootloader HID USB PDF
P04r Bootloader HID USB PDF
P04r Bootloader HID USB PDF
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
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.
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.