Vous êtes sur la page 1sur 9

Bootloader USB para PIC18F4550 a full. http://www.todopic.com.ar/foros/index.php?topic=23135.

TODOPIC

Bienvenido(a), Visitante. Por favor, ingresa o regístrate.


¿Perdiste tu email de activación?
Siempre Ingresar
Ingresar con nombre de usuario, contraseña y duración de la
sesión

Este tema Buscar

Inicio Ayuda Buscar Ingresar Registrarse

TODOPIC » Microcontroladores PIC » * PROYECTOS * (Moderadores: jfh900, MGLSOFT, LABmouse) »


Bootloader USB para PIC18F4550 a full.

« anterior próximo »

Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 Ir Abajo IMPRIMIR

Autor Tema: Bootloader USB para PIC18F4550 a full. (Leído 137014 veces)

0 Usuarios y 1 Visitante están viendo este tema.

LABmouse Bootloader USB para


PIC18F4550 a full.
Moderador Local
« en: 21 de Septiembre de 2008, 01:13:23 »
DsPIC30

Hola! Todo nace de este hilo.

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 código residente en memoria flash, que se
encargara de tomar los datos y re-programar su propia memoria Flash. Mejor
Mensajes: 3574 dicho, hablemos que es un Bootloader.

El termino bootloader hace referencia a un pequeño programa que se realiza


para determinado microcontrolador, ya sea PIC, Freescale, Atmel, etc. Este
código 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. que obtenemos
con eso, que puedes actualizar en cualquier momento el código 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 actualización, conectas el micro al USB y listo, le envías la
actualización 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 después 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 aplicación real del micro. No es mucha la que quita,
pero hay que tener eso claro.

1 de 9 09/04/2018 09:50 p. m.
Bootloader USB para PIC18F4550 a full. http://www.todopic.com.ar/foros/index.php?topic=23135.0

• Por ningún motivo se puede sobrescribir las posiciones de memoria FLASH


en la que se encentra el programa residente Bootloader. Si se borra por algún
error, pierdes el bootloader y toca nuevamente programarlo con un grabador
externo.
• 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 versión PIC16F628A que si lo deja y
además tiene mejores prestaciones.

Ya con lo anterior en teoría, PODEMOS GRABAR EL PIC SIN NECESIDA DE UN


PROGRAMADOR.

Bueno, este hilo trata de cómo implementar un bootloader en un PIC18F4550


usando el puerto USB 2.0 Ful-Speed que es su máximo atractivo.

HARDWARE

El hardware es casi nada. El PIC y unas cuantas cositas para que pueda
trabajar el puerto USB ya esta. Ver imagen No 1.

Imagen No 1. Circuito basico para trabajar con el PIC18F4550 en modo


Bootloader.

Para entrar en modo Bootloader, se debe presionar el botón conectado en RB4,


manteniéndolo presionado, de se debe dar RESET al pic con otro pulsador en
el pin MCLR o, como en este caso se conecta al puerto USB el PIC y listo, lo
primero que hace el PIC es preguntar por el estado del PIN RB4 donde esta el
pulsador. De estar presionado este botón, el PIC entra en modo Bootloader y si
no ejecuta el código normal que le grabamos al PIC.

El led conectado en el puerto RD1 que enciende y apaga cuando entra en


modo Bootloader.

El esquemático mostrado, solo tiene la particularidad de tener un PIC18F4550


encapsulado QFN44. En esta practica, usare el EMMini de la empresa
Octoplus. Ver fotografia No1.

Ampliar
Fotografía No 1. Mini sistema de desarrollo EMMini de la empresa Octoplus.

SOFTWARE

Como decía al principio, el Bootloader es un código residente en la memoria


FLASH del pic que será ejecutado cuando se le necesite y lo que hace el PIC es
tomar los datos que le llegaran por el puerto USB y reprogramar su memoria
FLASH. Este código ocupara un espacio de la memoria FLASH, específicamente
este es el reporte de MPLAB en el que se ve la memoria usada.

Imagen No 2. Reporte de memoria usada por el Bootloader.

Este código residente no es necesario desarrollarlo, aunque no es muy


complicado hacerlo, no hay ninguna razón en dedicar tiempo en programación
del Bootloader si ya el fabricante de los microcontroladores MICROCHIP regala
el código que se deba grabar por primera vez en el PIC, el código fuente si se
quiere ver como esta hecho, la plantilla sobre la que debe programar las

2 de 9 09/04/2018 09:50 p. m.
Bootloader USB para PIC18F4550 a full. http://www.todopic.com.ar/foros/index.php?topic=23135.0

aplicaciones siguientes y también entrega programas de ejemplo usando la


plantilla.

También es indispensable tener una aplicación en el PC con la cual se pueda


buscar el archivo .hex que se quiere grabar en el PIC y con la que se pueda
enviar los datos por el USb al PIC. Esta también la regala MICROCHIP.

Para poder empezar a trabajar con esto, se debe descargar la aplicación desde
la página de MICROCHIP llamada USB Bootloader Setup.EXE después de
descargarlo, solo se debe instalar para generar los siguientes archivos:

Imagen No 3. Carpetas creadas al instalar el USB Bootloader Setup.EXE

Como vemos son 2 carpetas.

1. fw (Firmware). En esta están los códigos para el microcontrolador PIC.


Vemos 4 nuevas carpetas.
1.1. _factory_hex. Solo encontramos el archivo .hex a grabar en el PIC. Es
decir el programa residente.
1.2. Boot. Es el código fuente del programa residente (Bootloader). Si se
quiere, se puede compilar este codigo fuente y trabajara igual que el .hex
encontrado en la carpeta anterior.
1.3. Demo y Demo02. Son programas de ejemplo con cofigo fuente para
saber como se usa la plantilla para crear el programa que ejecutara el PIC
cuando no esta en modo Bootloader.

2. Pc. Herramientas para usar en el PC.


2.1. MCHPUSB Driver. Cuando el PIC entra en modo bootloader, el Windows
detectara un nuevo dispositivo conectado en uno de sus puertos USB. Seguido
pedirá el Driver a instalar. En ese momento, se le debe buscar manualmente
en esta carpeta.
2.2. Mpusbapi. Esta es un DLL entregada por Microchip pues es con esta
que se desarrolla la aplicación de Windows que se encarga de enviarle los
datos al PIC. Con esta podríamos desarrollar nuestra propia aplicación
Windows.
2.3. Pdfsusb. Es la aplicación que se debe usar siempre que se quiere
programar el PIC en modo Bootloader.

GRABANDO EL PIC

Si el PIC no tiene el programa residente, debemos usar un programar de PICs


externo. Ver fotografía No 2. Con el grabaremos el archivo .hex encontrado en
la carpeta _factory_hex.

Ya grabado el PIC, se presiona el pulsador, manteniéndolo presionado


conectarlo al puerto USB. Inmediatamente el Windows lo reconocerá. Ver
imagen No 4.

Imagen No 4. Instante en que Windows detecta al PIC entrando en modo


Bootloader.

Ya luego solo queda buscar manualmente el driver. (Ver secuencia de


instalación desde imagen No 5 hasta la imagen No .

Imagen No 5. Paso uno en instalación de driver.

Imagen No 6. Paso dos en instalación de driver.

Imagen No 7. Paso tres en instalación de driver.

Imagen No 8. Paso cuatro. Verificación de instalación.

Antes que el Windows Instale el Driver, el led permanece apagado. Una vez

3 de 9 09/04/2018 09:50 p. m.
Bootloader USB para PIC18F4550 a full. http://www.todopic.com.ar/foros/index.php?topic=23135.0

completado el proceso y el Windows instale el PIC, el led empezara a


parpadear indicando espera de archivo .hex.

En este momento, ejecutamos el archivo PDFSUSB.exe, se carga el


archivo.hex y se programa el microcontrolador. Ver Imagen No 9.

Imagen No 9. Identificación del software de control.

Si se graba el ejemplo que se encuentra en la carpeta Demo, veremos como el


PIC al entrar en modo normal, también se identifica con el Windows por puerto
USB pero ahora totalmente diferente al Bootloader. Esto permite concluir que
en la aplicación normal, el PIC también puede trabajar con el puerto USB y de
forma totalmente diferente al Bootloader. Si se quiere ver como trabaja este
ejemplo, el mismo programa PDFSUSB tiene otra aplicación denominada
PICDEM FS USB. Ver imagen No 10.

Imagen No 10. Test del ejemplo Demo.

Espero les ayude en algo esta guía de cómo usar el Bootloader y aprovechar
esta gran ventaja que tienen en generar todos los micros que pueden
reprogramar su memoria FLASH. En particular este PIC al tener puerto USB, lo
hace bastante práctico y potente, ni fuente de voltaje se necesita porque se
alimenta del puerto USB.

Saludos!

Ernesto.
« Última modificación: 18 de Noviembre de 2011, 17:13:37 por LABmouse » En línea

El_Guitre Re: Bootloader USB para


PIC18F4550 a full.
Colaborador
« Respuesta #1 en: 21 de Septiembre de
PIC24H
2008, 01:57:11 »

Ernesto, muy explicativa tu respuesta, la verdad de maravillas. Mañana mismo


me pongo a jugar con esto que de la forma que lo explicas parece tan sencillo.
Felicitaciones por la exposición. Saludos
En línea

Mensajes: 1046

jeremylf Re: Bootloader USB para


PIC18F4550 a full.
Colaborador
« Respuesta #2 en: 21 de Septiembre de
PIC24H
2008, 12:57:11 »

Vaya que gran trabajo PICmouse! deverdad que muy explicativo, no sabia que
con ese ejemplo se podria manejar dos distintas configuraciones de USB (porq
mi aplicacion trabaja con una) con solo apretar un boton.

Lo estare analizando bien porque el del ccs me dio algo de errores Bueno,
Mensajes: 1339 otra cosa, el programa (el hex) lo guarda al principio del programa no?

Gracias, gran trabajo.

4 de 9 09/04/2018 09:50 p. m.
Bootloader USB para PIC18F4550 a full. http://www.todopic.com.ar/foros/index.php?topic=23135.0

Salu2.
En línea

El_Guitre Re: Bootloader USB para


PIC18F4550 a full.
Colaborador
« Respuesta #3 en: 21 de Septiembre de
PIC24H
2008, 23:40:48 »

Probado y funcionando ok ahora a aprender C18 para poder


programar desde la notebook.
En línea

Mensajes: 1046

scientist Re: Bootloader USB para


PIC18F4550 a full.
Colaborador
« Respuesta #4 en: 22 de Septiembre de
PIC24F
2008, 23:04:31 »

hola PICmouse, he intentado tu ejemplo, y me ha salido con un 18f2550, no


se que tanto dependa esto, con respecto a que solo se puede utilizar
programas compilados en c18, mmm, hay alguna propabilidad de
programarlos con algun truquillo, algun pragma, bueno, sino tendre que
empezar con el c18, muy buen articulo, saludos
Mensajes: 997
En línea

NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN
DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

LABmouse Re: Bootloader USB para


PIC18F4550 a full.
Moderador Local
« Respuesta #5 en: 22 de Septiembre de
DsPIC30
2008, 23:06:36 »

Scientist, precisamente estoy trabajando en eso. Ya casi lo tengo trabajando


con CCS también. Es decir, programar el Bootloader de C18, pero la plantilla
de CCS.

Mensajes: 3574 SALUDOS!


En línea

scientist Re: Bootloader USB para


PIC18F4550 a full.
Colaborador
« Respuesta #6 en: 23 de Septiembre de
PIC24F
2008, 00:32:10 »

hola picmouse, ya logre hacer lo que queremos, hacerlo con ccs


ahora,lo unico que tenemos que hacer, es no grabar nada de nuestro
programa en las direcciones de la 0x00 hasta la 0x7FF, ya probe varios
programas y funcionan que dan miedo, aqui lo unico que tenemos que anexar
a nuestro programa es:
Mensajes: 997
Código: [Seleccionar]

#define LOADER_END 0x7FF


#define LOADER_SIZE 0x6FF

5 de 9 09/04/2018 09:50 p. m.
Bootloader USB para PIC18F4550 a full. http://www.todopic.com.ar/foros/index.php?topic=23135.0

#build(reset=LOADER_END+1, interrupt=LOADER_END+9)
#org 0, LOADER_END {} // nothing will replace the bootloader memory space
// END OF bootloader definition

aqui os pongo un ejemplo que funciona muy bien

Código: [Seleccionar]

#include <18F2550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#include <usb_cdc.h>
#define LOADER_END 0x7FF
#define LOADER_SIZE 0x6FF
#build(reset=LOADER_END+1, interrupt=LOADER_END+9)
#org 0, LOADER_END {} // nothing will replace the bootloader memory space
// END OF bootloader definition

void main() {

usb_cdc_init();
usb_init(); //inicializamos el USB

solo hay que anexarlo a cualquier programa y chevere, cuando vayamos a


programarlo con el PDFUSB nos va a salir una advertencia, le decimos que no,
y lo programamos, listo, saludos y espero les haya ayudado

NOTA: solo una aclaracion, al parecer con el metodo que menciono, no


podemos configurar los FUSES, se quedarian como el programa del bootloader
lo tiene
« Última modificación: 23 de Septiembre de 2008, 00:39:47 por scientist » En línea

NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN
DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

AKENAFAB Re: Bootloader USB para


PIC18F4550 a full.
Colaborador
« Respuesta #7 en: 23 de Septiembre de
DsPIC30
2008, 03:01:16 »

Hola

Les dejo este enlace , espero les sirva.

Es sobre el bootloader.
Mensajes: 3123
http://www.piccoder.co.uk/content/view/51/26

Saludos!

Instalo correctamente el boot , pero al cargar el driver me rompe las b*las ,


porque no tiene soporte para 64 bits.

« Última modificación: 23 de Septiembre de 2008, 06:10:58 por AKENAFAB » En línea

https://twitter.com/IObrizio
https://twitter.com/AutoMaLab
http://amedialab.com/

6 de 9 09/04/2018 09:50 p. m.
Bootloader USB para PIC18F4550 a full. http://www.todopic.com.ar/foros/index.php?topic=23135.0

Cita de: scientist en 23 de Septiembre de 2008, 00:32:10

NOTA: solo una aclaracion, al parecer con el metodo que menciono, no podemos configurar
los FUSES, se quedarian como el programa del bootloader lo tiene

Que bueno, felicitaciones, ahora podemos probar el bootloader sin aprender


C18 antes, respecto a los fuses, no se puede modificar el codigo del bootloader
de C18 cambiando los fuses en el? En este momento no recuerdo si microchip
te da el codigo fuente o solo el .hex
En línea

7 de 9 09/04/2018 09:50 p. m.
Bootloader USB para PIC18F4550 a full. http://www.todopic.com.ar/foros/index.php?topic=23135.0

El_Guitre Re: Bootloader


USB para
Colaborador
PIC18F4550 a full.
PIC24H
« Respuesta #8 en: 23 de
Septiembre de 2008,
07:22:38 »

Mensajes: 1046

LABmouse Re: Bootloader USB para


PIC18F4550 a full.
Moderador Local
« Respuesta #9 en: 23 de Septiembre de
DsPIC30
2008, 16:31:14 »

Lo de los fusibles, es cierto, quedan tal cual como se programaron en el


Bootloader, es decirm, siempre vas con 20MHz, siempre vas a 48MHz , es
decir, 24 Mips. Siempre con MCLR, Siempre con.... Bueno los de siempre, ya
que esos solo se pueden cambiar desde el programador externo.

Mensajes: 3574

Cita de: scientist en 23 de Septiembre de 2008, 00:32:10

hola picmouse, ya logre hacer lo que queremos, hacerlo con ccs ahora,lo unico que tenemos
que hacer, es no grabar nada de nuestro programa en las direcciones de la 0x00 hasta la
0x7FF, ya probe varios programas y funcionan que dan miedo.

Que bueno! Apenas llegue a casa lo intentare.

SALUDOS!
En línea

El_Guitre Re: Bootloader USB para


PIC18F4550 a full.
Colaborador
« Respuesta #10 en: 23 de Septiembre de
PIC24H
2008, 18:47:16 »

Ya probe lo que proponía scientist y funciona, estoy cargando programas de


ccs con el bootloader de microchip y funcionan. Ahora bien, si necesitaramos
cambiar algo, por ejemplo el valor del oscilador, podríamos modificar la
configuración en el código del bootloader y volver a programar el
microcontrolador (con el programador externo) con el código del bootloader
Mensajes: 1046 con los fusibles que necesitemos para la aplicación, estoy en lo cierto??
En línea

WSalas Re: Bootloader USB para


PIC18F4550 a full.
PIC10
« Respuesta #11 en: 24 de Septiembre de
2008, 23:50:02 »

Hola a todos, aqui les presento una aplicacion parecida.. para mas detalles ver
aqui

Bootloader usando el PIC18F2550


Mensajes: 36

8 de 9 09/04/2018 09:50 p. m.
Bootloader USB para PIC18F4550 a full. http://www.todopic.com.ar/foros/index.php?topic=23135.0

Bootloader usando el PIC18F4550

« Última modificación: 25 de Septiembre de 2008, 00:25:57 por WSalas » En línea

scientist Re: Bootloader USB para


PIC18F4550 a full.
Colaborador
« Respuesta #12 en: 25 de Septiembre de
PIC24F
2008, 13:13:04 »

muy bonita la plaquita. precisamente estoy haciendo algo parecido, saludos


En línea

NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN
DIOS!!
Mensajes: 997
Alma mia y castillo mio, mi Dios en quien yo confiare....

jeremylf Re: Bootloader USB para


PIC18F4550 a full.
Colaborador
« Respuesta #13 en: 26 de Septiembre de
PIC24H
2008, 20:13:21 »

No entiendo algo, ocea que es necesario que en todos tus proyectos de ccs
pongas ese codigo para decir q grave despues de donde esta el bootloader de
c18 ???

Mensajes: 1339 Salu2


En línea

El_Guitre Re: Bootloader USB para


PIC18F4550 a full.
Colaborador
« Respuesta #14 en: 27 de Septiembre de
PIC24H
2008, 01:08:49 »

Asi es en los proyectos que vayas a cargar en un PIC mediante el bootloader


tenes que incluir esas lineas para indicarle al compilador como organizar los
datos en las posiciones de memoria
En línea

Mensajes: 1046

Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 Ir Arriba IMPRIMIR

« anterior próximo »

TODOPIC » Microcontroladores PIC » * PROYECTOS * (Moderadores: jfh900, MGLSOFT, LABmouse) »


Bootloader USB para PIC18F4550 a full.

Ir a: => * PROYECTOS * ir

SMF 2.0.15 | SMF © 2015, Simple Machines


SMFAds for Free Forums
XHTML RSS WAP2

9 de 9 09/04/2018 09:50 p. m.

Vous aimerez peut-être aussi