TODOPIC
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
24 de Julio de 2014, 14:42:06

Ingresar con nombre de usuario, contraseña y duración de la sesión
Buscar:     Búsqueda Avanzada
346137 Mensajes en 38835 Temas por 40395 Usuarios
Último usuario: ixcamparic
* Inicio Ayuda Buscar Calendario Ingresar Registrarse
Buscar en TodoPIC
+  TODOPIC
|-+  Microcontroladores PIC
| |-+  * PROYECTOS * (Moderadores: J1M, jfh900, MGLSOFT, Modulay, Sasián, LABmouse)
| | |-+  Bootloader USB-HID para PIC18F47J53 a full.
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] 2 Marcar como favorito Imprimir
Autor Tema: Bootloader USB-HID para PIC18F47J53 a full.  (Leído 6334 veces)
LABmouse
Moderador Local
DsPIC30
*****
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 3537



WWW
« : 15 de Enero de 2011, 12:09:10 »

Hola a todos,
Siguiendo con la saga Bootloader a Full, quiero presentarles la ultima actualización de Bootloaders disponibles para los microcontroladores PIC.  En la versión anterior mostrada en Bootloader USB para PIC18F4550 a full. se entendió la funcionalidad de un Bootloader y el potencial que esto tiene para el desarrollo de aplicaciones que puedan ser actualizadas por los usuarios finales.

Con la versión anterior, se debía contar con un Driver para pudiera ser instalado el PIC cuando es conectado al puerto USB y este ingrese a modo Bootloader. Se empezaron a tener problemas con equipos de 64 bits, luego con Windows Seven, salieron actualizaciones de Microchip para solucionarlos pero queda claro que al tener un Driver personalizado para la aplicación USB, habrán posibles incompatibilidades y requiere actualizaciones permanentes. La solución a todo esto es la que se ha presentado de manera elegante por Microchip y es cambiar el modo USB a HID, de esta manera no se requiere Driver alguno y se logra compatibilidad con el equipo que sea.

Hardware persentado para usar el Bootloader
Para esta prueba, se ha utilizado el modulo EMm47J53 de la empresa OCTOPLUS.


El modulo EMm47j53, es el sistema de desarrollo más pequeño que existe para el microcontrolador pic18f47j53 de la empresa microchip®. Pertenece a la familia OCTOPLUS-mini. En el encontraras todo lo necesario para trabajar con este poderoso microcontrolador. Algunas características de este microcontrolador son:

•   Arquitectura Harvard - RISC con Núcleo de procesamiento tipo PIC18 de Microchip.
•   Velocidad de oscilador máxima de 48MHz con bus interno de 12MHz.
•   Puerto USB Full-Speed 2.0.
•   128KB de memoria Flash, 4KB de memoria RAM.
•   13 canales ADC de 12 bits.
•   3 Comparadorores análogos.
•   2 Módulos SCI para comunicación RS232.
•   Modulo SPI
•   Modulo I2C.
•   4 temporizador de 8 bits y 4 temporizador de 16bits.
•   7 Canales PWM
•   1 temporizador RTC con funciones de calendario y alarma.
•   13 pines con sensor Capacitivo.
•   Tecnología XLP de Microchip(Hasta 9nA en modo DeepSleep).



Lo que hace del modulo EMm47J52 un producto realmente practico y poderoso, es que tiene la capacidad de reprogramar su memoria FLASH  directamente desde el puerto USB, lo que se puede interpretar como un programador USB embebido en el mismo sistema.  
El modulo EMm47J53 lleva incorporado el microcontrolador PIC18F47J53 encapsulado QFP-44, que ofrece 29 puertos I/O, un conector USB mini-AB, un pulsador para RESET, un pulsador en pin RB2, un cristal de 12MHz,capacitores y resistencias mínimas necesarias para un correcto funcionamiento.



El sistema EMm47J53, tiene la capacidad de auto-programar la memoria FLASH del microcontrolador, esto lo logra  usando un función que es programada con anterioridad en nuestro taller de fabricación, con lo que al conectar el dispositivo al puerto USB este se identificara con el PC como un dispositivo “PIC18F47J53 Bootloader” . El Bootloader es un pequeño código residente en la memoria FLASH del MCU, que se encarga de tomar los datos provenientes del puerto USB, organizarlos y grabarlos en las posiciones de memoria FLASH correspondientes, logrando así reprogramar en cualquier momento casi la totalidad de su memoria, permitiendo cambiar el funcionamiento del dispositivo diseñado.   Cuando se dice “casi”, es porque como usuarios, no podemos permitir que ese pequeño código Bootloader pre--programado en taller sea borrado o sobrescrito. De hacerlo, perderemos la capacidad de auto-programación, y sería necesario que se acercara a nuestra oficina o a la oficina de su distribuidor autorizado más cercano para que le sea reprogramada nuevamente el código Bootoloader.
Para proteger esas posiciones de memoria, lo único que hay que hacer es escribir el código sobre una “plantilla” que es suministrada en el CD junto al sistema. Esta plantilla nos asegura que no serán sobrescritas o borradas las posiciones de memoria FLASH que nos interesan.

El modulo EMm47J53, puede ser alimentado desde el puerto USB, y así aprovechar para alimentar el protoboard sin necesidad de llevar un adaptador.  Pero esta opción tiene una limitación, y es que no se debe conectar motores, reles, o circuitos que consuman más de 300mA. Si no se tiene en cuenta esta advertencia, puede dañar su computador. Ahora bien, se puede aprovechar la conexión del puerto USB para alimentar circuitos muy pequeños como leds, display, pulsadores e interruptores.

Alimentación por USB para el modulo EMm47J53


Alimentación por fuente externa para el modulo EMm47J53


SE DEBE TENER MUCHO CUIDADO EN LA CONEXIÓN Y DEBIDA SELECCIÓN DE FUENTE PARA EL MODULO. SI NO ESTA SEGURO SI EL CIRCUITO QUE VA A CONECTAR EL MODULO CONSUME MENOS DE 300mA, ES MEJOR QUE SELECCIONE ALIMENTACION EXTERNA




DISTRIBUCIÓN OCTOPLUS-mini







Características del código Bootloader

El Código Bootloader fue desarollado por MICROCHIP® bajo C18 usando USB HID evitando la previa instalación de un DRIVER en el PC para el correcto funcionamiento. Esto me permite poder crear mi propia aplicación en el MCU, incluyendo comunicación USB y en ningún momento existirá interferencia entre modo Bootloader y modo USER. Todas las interrupciones están disponibles que para que sean usadas por el usuario sin ningún tipo de restricción.
El código Bootloader ha sido desarrollado por MICROCHIP®  para sea ejecutado en forma eficiente y con la menor cantidad de líneas de programación posibles. Es decir, el código Bootloader ocupa 1.8KB de memoria FLASH y usa solo 640B de la memoria RAM para su ejecución.  El código reside en las primeras posiciones de la memoria FLASH 0X00000 – 0X00FFF.




Para implementar el Bootloader, se puede descargar el código fuente desde la pagina de Microchip Microchip Application Libraries

Una vez descargado el archivo, se instala en el equipo, lo cual toma varios minutos pues ahora Microchip en este solo paquete entrega todos sus programas de ejemplo y notas de aplicación incluyendo USB, ETHERNET, CAN, etc.

Después de la instalación aparece una carpeta en el DiscoDuro "C:\Microchip Solutions v2010-08-04"

Estos son todos los archivos instalados y estan resaltado los que nos interesan.

Ahora solo resta tener instalado C18 en el PC y claro esta MPLAB. Se abre el proyecto con el bootloader que nos interesa y compilamos...


MPLAB


Ahora ya generado el archivo HEX con el Bootloader desde C18, resta tener PICKIT3 o similar para descargar como primera y ultima vez el código al microcontrolador. Después de programado con el PICKIT3, el usuario actualizara el programa que sera ejecutado por el microcontrolador usando modo Bootloader y no mas el PICKIT3 o cualquier otro programador externo.



Prueba del Bootloader


Para probar que el procedimiento anterior quedo bien, se conecta el modulo al puerto USB, se oprimen los pulsadores RESET y RB2 al tiempo y luego de un segundo liberar solo RESET, asi al iniciar el microcontrolador este detectara que se quiere estar en modo Bootloader y así Windows debería reconocerlo e instalarlo sin pedir driver alguno, al final lo podríamos encontrar en el Administrados de Dispositivos.

Detección de Microcontrolador en modo Bootloader



En la ruta: "C:\Microchip Solutions v2010-08-04\USB Device - Bootloaders\HID - Bootloader" Encontraremos un archivo.exe llamado HIDBootLoader.exe, esta es la aplicación que servirá para enviar el archivo .hex de nuestros futuros proyectos al microcntrolador.

Aplicación para programar por Bootloader HID.



Ya solo queda probar programandole un pequeño proyecto y verificar su funcionamiento.

Adjunto proyecto para usar Bootloader USB-HID. Enciende y apaga un LED en el pin RA0 usando C18 y CCS 4.114.



Como usar CCS Con el BOOTLOADER
Muchas personas estamos acostumbrados a programar en CCS,  pero este ultimo esta presentando problemas al compilar código que sea compatible con el Bootloader HID. Cuando se usaba CCS y se programaba el microcontrolador con Bootloader, este no hacia absolutamente nada!! Lo mas extraño es que con versiones anteriores a la 4.084 de CCS si funcionaba. Pero como este microcontrolador PIC18F47J53 es muy nuevo y solo de la 4.114 lo tiene en lista, procedo a explicar el problema.

Cuando se compila un proyecto en C18 que funciona sin problemas, el archivo .hex generado tiene la siguiente estructura:

Citar
:020000040000FA
:0600000075EF08F012008C
:0610000075EF08F012007C
:021008001200D4
:021018001200C4
:02102A000000C4
:04102C002A0EF66E24
:10103000100EF76E000EF86E00010900F550656F96
:101040000900F550666F03E1656701D03DD00900E6
:10105000F550606F0900F550616F0900F550626F3F
:1010600009000900F550E96E0900F550EA6E090023
:1010700009000900F550636F0900F550646F09001D
:101080000900F6CF67F0F7CF68F0F8CF69F060C0DD
:10109000F6FF61C0F7FF62C0F8FF0001635302E191
:1010A000645307E00900F550EE6E6307F8E2640749
:1010B000F9D767C0F6FF68C0F7FF69C0F8FF000105
:0A10C0006507000E665BBFD7120043
:0610CA00B00EF36E00EE13
:1010D00000F00E0E01D81200EA6002D0EE6AFCD7D2
:0A10E000F350E9601200EE6AFCD73D
:0610EA001CEE00F02CEEEC
:1010F00000F0F86A019C16EC08F085EC08F083EC2F
:0611000008F0FBD712000D
:041106008A701200D9
:02110A001200D1
:020000040001F9
:01FFF8009A6E
:01FFF900F710
:01FFFA003DC9
:01FFFB00FF06
:01FFFC0061A3
:01FFFD00F80B
:01FFFE008181
:01FFFF00F908
:00000001FF



Ahora si hacemos lo mismo con CCS, obtenemos lo siguiente:
Citar
:0410000004EF08F001
:08100800F86AD09EEA6AE96A69
:10101000FF0E0F01486FC29CC29E4951E00B1F0991
:0C102000496F256BD16AD26A8A900300E8
:020000040001F9
:08FFF8009AF73DFF61F880F962
:00000001FF
;PIC18F47J53
;CRC=DA4D  CREATED="14-Ene-11 18:56"


Hay un cambio en la estructura del archivo hex.


Este problema anterior se ve reflejado en que cuando se le da "Open Hex File" con la aplicación "HIDBootLoader.exe" de Microchip, el de C18 va sin problemas, pero el de CCS es cargado en 0x00 toda la memoria.... Por eso al programar en el microcontrolador un proyecto usando CCS, este simplemente NO HACE NADA, esta en blanco!!!

Viendo este problema, hay una solución poco ortodoxa pero da buen resultado.

PASO1. Abrir el proyecto que adjunto pero no desde el IDE de CCS, hacerlo desde MPLAB.  (Se debe revisar que este bien configurada la ruta del .exe de CCS desde MPLAB)

Project - Open


PASO2 Compilar el proyecto.
Proyecto de CCS desde MPLAB.


Este archivo .hex de CCS si lo dejamos tal cual como quedo después de compilar no funcionara si lo descargamos por Bootloader, es por eso que se debe cambiar el formato usando la herramienta de exportar .hex de MPLAB.
PASO3 Exportar archivo hex.




PASO4 Ahora si, ya se puede programar el microcontrolador usando la aplicación Bootloader de Microchip.



Esta solución planteada da los resultados esperados, pero es un poco molesto hacerlo siempre después de compilar. Nuestro amigo JIM encontró otra solución al problema y nos la explica en el siguiente post.


Es atacar el problema desde la raíz y modificar la aplicación "HIDBootLoader.exe" gracias a que Microchip nos entrega el código fuente de ella en VisualC++

continuara...
« Última modificación: 27 de Junio de 2011, 16:42:57 por LABmouse » En línea

LABmouse
Moderador Local
DsPIC30
*****
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 3537



WWW
« Respuesta #1 : 15 de Enero de 2011, 12:17:41 »

Continuara...
« Última modificación: 15 de Enero de 2011, 17:02:48 por LABmouse » En línea

Nocturno
Administrador
DsPIC33
*******
Desconectado Desconectado

Sexo: Masculino
Cuba Cuba

Mensajes: 16902



WWW
« Respuesta #2 : 15 de Enero de 2011, 15:50:16 »

¡¡¡ GRACIAS !!!

Muchas gracias Ernesto. Este hilo es oro disfrazado de texto.

¡¡¡ GRACIAS !!!
En línea

Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ
LABmouse
Moderador Local
DsPIC30
*****
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 3537



WWW
« Respuesta #3 : 15 de Enero de 2011, 17:00:49 »

Cuéntame Manolo, si es la solución al problema que tenias?
En línea

Nocturno
Administrador
DsPIC33
*******
Desconectado Desconectado

Sexo: Masculino
Cuba Cuba

Mensajes: 16902



WWW
« Respuesta #4 : 15 de Enero de 2011, 18:14:58 »

Te contaré en cuanto lo pruebe, pero tardaré, porque ahora no tengo el circuito. Gracias.
En línea

Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ
monchales
PIC10
*
Desconectado Desconectado

Colombia Colombia

Mensajes: 1


« Respuesta #5 : 30 de Julio de 2012, 11:34:53 »

trabajando como bootloader se pueder hacer degugger en el microcontolador?
En línea
Suky
Moderadores
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 6746


Con Qt...


WWW
« Respuesta #6 : 30 de Julio de 2012, 12:20:30 »

El bootloader sirve para programarlo nada más  wink
En línea

BEXTIXTOX
PIC12
**
Desconectado Desconectado

Sexo: Masculino
Mexico Mexico

Mensajes: 88


ADICTO A PIC. PIC . PIC ....


« Respuesta #7 : 28 de Agosto de 2012, 14:12:13 »

oye LABmouse
me lanza un error ala hora de compilar lo interpreto como que no encuentra el archivo??

Debug build of project `C:\Microchip Solutions v2012-07-18\USB\Device - Bootloaders\HID\Firmware - PIC18 Non-J\HID Bootloader PIC18F4550 Family.mcp' started.
Preprocessor symbol `__DEBUG' is defined.
Tue Aug 28 12:09:00 2012
----------------------------------------------------------------------
Couldn't locate build tool.  Check tool locations.
----------------------------------------------------------------------
Debug build of project `C:\Microchip Solutions v2012-07-18\USB\Device - Bootloaders\HID\Firmware - PIC18 Non-J\HID Bootloader PIC18F4550 Family.mcp' failed.
Preprocessor symbol `__DEBUG' is defined.
Tue Aug 28 12:09:00 2012
----------------------------------------------------------------------
BUILD FAILED

En línea
Suky
Moderadores
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 6746


Con Qt...


WWW
« Respuesta #8 : 28 de Agosto de 2012, 14:17:18 »

Tenes instalado C18?
En línea

BEXTIXTOX
PIC12
**
Desconectado Desconectado

Sexo: Masculino
Mexico Mexico

Mensajes: 88


ADICTO A PIC. PIC . PIC ....


« Respuesta #9 : 28 de Agosto de 2012, 14:37:56 »

si lo tengo instalado el 3.3 y lo configure desde proyect > select lenguage toolsuite > c18
aaa.. y me aparese la imagen que adjunte CREO es un posible erro pues me aparesen algunas "X"
En línea
Suky
Moderadores
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 6746


Con Qt...


WWW
« Respuesta #10 : 28 de Agosto de 2012, 16:26:54 »

Claro! Al instalarlo te falto tildar algunas cosas y no te lo direcciono. Ahora hacerlo manualmente  wink
En línea

BEXTIXTOX
PIC12
**
Desconectado Desconectado

Sexo: Masculino
Mexico Mexico

Mensajes: 88


ADICTO A PIC. PIC . PIC ....


« Respuesta #11 : 01 de Septiembre de 2012, 14:15:08 »

zuky ya estoy mas avanzado ya solucione el error de MPLAB y te explico poco

 intento hacer el bootloader con el 18F4550 se que ya hay un tema con el 4550 pero estoy en este hilo por que implementas CCS que es el que yo utilizo
1 el micro cuando lo conecto me lo reconoce la pc y el led destella
2 realice un proyecto sencillo en ccs en versiones 4.084 y 4.093 pues mencionas que el ccs 4.084 no da conflictos
3 ala hora de cargar el archivo (echo en CCS) en el ejecutable de MPLAB (pdfsusb) me lanza un error como en la imagen
4 intentando dar solución realizo la solución como mencionas abriendo el proyecto CCS desde MPLAB pero en el paso 1 me lanza otro error (adjunto)

podrías darme alguna idea para dar solución
En línea
Suky
Moderadores
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 6746


Con Qt...


WWW
« Respuesta #12 : 01 de Septiembre de 2012, 14:30:07 »

El .cof?  Confused
En línea

BEXTIXTOX
PIC12
**
Desconectado Desconectado

Sexo: Masculino
Mexico Mexico

Mensajes: 88


ADICTO A PIC. PIC . PIC ....


« Respuesta #13 : 01 de Septiembre de 2012, 14:56:49 »

ops.. hay esta el original
En línea
BEXTIXTOX
PIC12
**
Desconectado Desconectado

Sexo: Masculino
Mexico Mexico

Mensajes: 88


ADICTO A PIC. PIC . PIC ....


« Respuesta #14 : 01 de Septiembre de 2012, 15:31:18 »

y ahora aqui es donde tengo que modificar?? en donde indicas


 "Esta solución planteada da los resultados esperados, pero es un poco molesto hacerlo siempre después de compilar. Nuestro amigo JIM encontró otra solución al problema y nos la explica en el siguiente post. "

SOLUCION 2 A BOOTLOADER HID CON CCS
En línea
Suky
Moderadores
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 6746


Con Qt...


WWW
« Respuesta #15 : 01 de Septiembre de 2012, 15:32:23 »

 Shocked El archivo que debes cargar es HEX! el .c es e archivo fuente donde escribes tu programa y el .cof es para simulación. Es tu primera vez programando? Hay varios tutoriales dando vuelta en la red como para darle una leída  wink
En línea

BEXTIXTOX
PIC12
**
Desconectado Desconectado

Sexo: Masculino
Mexico Mexico

Mensajes: 88


ADICTO A PIC. PIC . PIC ....


« Respuesta #16 : 01 de Septiembre de 2012, 17:38:02 »

zuky decidí hacer un vídeo para que veas mis errores lo subi a 4shared pues es muy pesado

http://www.4shared.com/file/m63YE-8m/video_1.html?refurl=d1url

haaa... esta echo con CAMTASIA 7
En línea
Suky
Moderadores
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 6746


Con Qt...


WWW
« Respuesta #17 : 01 de Septiembre de 2012, 19:29:48 »

Aaaa! Hay varias confusiones!  Mr. Green Vamos por paso, primero es Suky jejeje... Luego, LabMouse indica que se debe abrir el proyecto que él subió desde MPLAB IDE. Pero en tu caso que directamente armaste el proyecto en CCS no te sirve, lo que debes hacer es crear un nuevo proyecto en MPLAB IDE usando CCS.

Para esto debes ir a Project/New. Colocar el nombre que quieras, seleccionar la carpeta del mismo y Ok. Luego vas a Configure/Select Device y indicas que micro vas a usar. Vas a Project/Select Language ToolSuite y allí seleccionas CCS (Ahi verifica que este bien la dirección del ccsc.exe )

Ahora en la carpeta donde tienes el proyecto de MPLAB copia el archivo fuente .c de tu proyecto. Ese archivo fuente lo agregas al proyecto, como? En View seleccionas Project. Se abre una nueva ventana, parándote en Souce File, clickeas con el botón derecho, Add Files y agregas el archivo fuente que copiaste. Y listo, ahora lo compilas!

Y otro pequeño gran detalle, el bootloader que estas usando no es el HID, es el MCHPUSB!  Rolling Eyes Fíjate que hay dos opciones, y aquí se habla del HID... LabMouse coloca:

Citar
....\USB Device - Bootloaders\HID - Bootloader Encontraremos un archivo.exe llamado HIDBootLoader.exe, esta es la aplicación que servirá para enviar el archivo .hex de nuestros futuros proyectos al microcontrolador.

La otra es modificar el programa hecho en visual C++, pero para ello debes tener instalado Visual C++ Express para poder compilarlo nuevamente  wink


Saludos!
« Última modificación: 01 de Septiembre de 2012, 19:36:18 por Suky » En línea

Zardoz
PIC10
*
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 18



WWW
« Respuesta #18 : 01 de Septiembre de 2012, 19:40:23 »

Una duda que tengo con los bootloaders USB... Y si con el PIC vas a usar el USB para transferir datos entre el PIC y el PC, no hay problemas con el bootloader ? N ose dan de ostias por el hecho de que el bootloader funcione en modo HID y el programa en modo CDC (por ejemplo) ?
En línea
Suky
Moderadores
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 6746


Con Qt...


WWW
« Respuesta #19 : 01 de Septiembre de 2012, 20:36:59 »

Una duda que tengo con los bootloaders USB... Y si con el PIC vas a usar el USB para transferir datos entre el PIC y el PC, no hay problemas con el bootloader ? N ose dan de ostias por el hecho de que el bootloader funcione en modo HID y el programa en modo CDC (por ejemplo) ?

No tiene porque, son dos aplicaciones distintas que nunca funcionan a la vez  wink
En línea

TODOPIC
   

 En línea
Páginas: [1] 2 Imprimir 
« anterior próximo »
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines XHTML 1.0 válido! CSS válido!
Página creada en 0.17 segundos con 24 consultas.