Actualizar Firmware de PIC18F2550 desde aplicación propia

#1
Hola amigos del foro, tengo un proyecto que me esta rompiendo la cabeza , deseo realizar un programa en pc ( visual studio) que me permita actualizar un pic 18f2550 por usb , algo parecido a un bootloader, pero enviar la actualización desde el software previamente diseñado . y se me esta poniendo muy difícil
,
en este video hacen algo parecido a lo que deseo
cargan la actualización o nuevas instrucciones en un archivo txt (en el video se usa el pic 18f2550)
Si alguien tiene algún manual o un foro o puede decirme por donde buscar se lo agradecería
Saludos
 
#2
Si tienes conocimientos de programación de aplicaciones y microcontroladores, no deberías tener problemas para hacer eso.

Como se está usando un PIC18F2550, la comunicación más obvia sería por USB, pero también puede ser por RS-232
Así que la aplicación debe comunicarse con el microcontrolador y este recibir las órdenes a ejecutar.
No lo veo tanto como actualizar el firmware, sino tan solo ajustar parámetros por medio de los datos recibidos.

El que la aplicación cargue datos desde un archivo de texto, ya es algo meramente opcional.

Hace algún tiempo realicé un programa simulador de ECU automotriz y la comunicación es por RS-232 porque usé un PIC16F887
ECUMAT.jpg

La comunicación es bilateral, ya que el microcontrolador también envía datos a la aplicación.

Realizar este tipo de programas no debe ser difícil cuando se conoce de programación.
 
#3
Hola, lo de tu programa si lo entiendo , tengo un software parecido , a tu programa no puedo cargarle una actualización, y lo que busco yo es cargar actualizaciones , cargar nuevos datos para que realice cosas nuevas que no estaban en el codigo inicial , algo como un bootloader
Saludos , gracias por responder
 
#4
lo que busco yo es cargar actualizaciones, cargar nuevos datos para que realice cosas nuevas que no estaban en el código inicial, algo como un bootloader.
Para esos casos lo que se requiere es reprogramar el microcontrolador.
Por ICSP o con Bootloader, no hace falta retirarlo del circuito.
O sea qué, forzosamente se requiere programar un código nuevo.
 
#5
exacto , busco eso , pero el problema esta en que tiene que ser con un software propio , a si como cuando compras algún producto y lo actualizas por usb desde el software del fabricante
estoy rompiéndome la cabeza con eso
 
#7
Hola, exacto busco lo que tu me enviaste pero necesito un software con mi logo, aun que creo que los letreros led se parece a lo que quiero hacer , un letrero led cambia sus mensaje de acuerdo alos datos que se le envian por usb , creo que puedo usar esa misma idea para cargar una actualización al pic
 
#8
Los microcontroladores de los letreros LED, lo que hacen es recibir los datos y guardarlos en una memoria, ya sea externa o interna.
Eso no implica una actualización del programa ejecutable, sino de actuación.
 
#11
Con todo respeto creo que el compañero no sabe programar.

Ami se me ocurre que si quiero actualizar el firmware no es más que un bootloader y yá.

Un programa para que se actualize de manera más especializada para algo ya más comercial yo modificaría un bootloader existente y le movería de lugar los botones o los leds o que ponga en una pantalla "actualizando" etc.
Lo mismo con la interfaz , eso hise hace años modifiqué un bootloader y la interfaz mismo microchip te da el código fuente para hacerlo
Pero si no sabes programar piensan que es fácil como prender un LED pero no hay que saber en qué banco de Memoria se reescribe el programa y en donde reside el bootloader Y saber perfectamente como es el proceso de escribir en la flash Y sobre todo conocer el protocolo USB si quieres programar vía USB
 
#12
Es sencillisimo, tienes que buscar un microcontrolador que permita IAP, In Application Programming (o algo sí) eso lo hice sin problemas en el 2003 con un AT89c51RD2. Que no sé si estará descatalogado ya, lo más seguro.
En el datasheet del microcontrolador está como se usa esa característica.

Desde la misma aplicación, sin parar de ejecutar el control podía recibir nuevo código. Eso sí, había que vigilar no sobreescribir el que se estaba ejecutando en ese momento, todo eso lo hacía la aplicación que daba un mapa de memoria con los huecos libres.

Si el micro no lo permite de serie habrá que hacerle un bootloader, pero eso es más trabajo y no en todos se puede hacer.

De todos modos no veo claro que en tu caso necesites firmware nuevo o una tabla de datos nueva.

Tampoco veo claro que necesites que no pare la aplicación, y no puedas usar el modo de programación ISP que ya llevará seguramente el microcontrolador.
 
#13
Con todo respeto creo que el compañero no sabe programar.

Ami se me ocurre que si quiero actualizar el firmware no es más que un bootloader y yá.

Un programa para que se actualize de manera más especializada para algo ya más comercial yo modificaría un bootloader existente y le movería de lugar los botones o los leds o que ponga en una pantalla "actualizando" etc.
Lo mismo con la interfaz , eso hise hace años modifiqué un bootloader y la interfaz mismo microchip te da el código fuente para hacerlo
Pero si no sabes programar piensan que es fácil como prender un LED pero no hay que saber en qué banco de Memoria se reescribe el programa y en donde reside el bootloader Y saber perfectamente como es el proceso de escribir en la flash Y sobre todo conocer el protocolo USB si quieres programar vía USB
Hola , eso fue lo primero que me paso por la cabeza, podrías compartirme el enlace de la interface de microchip, ya que he intentando buscarla sin exito :(
 
#17
Si lo hay yo lo descargué en su época en la página de microchip es microchip solutions es una carpeta que tiene los archivos de las placas de entrenamiento de microchip.
La fs no me acuerdo.
Y con el IDE de mplabx te ayuda bastante es quitar todo lo que no pertenece al 18f4550.

Obviamente microchip da por hecho que sabes programar en misra C y conoces todas las capas de USB y sus descriptores , que conoces como enviar paquetes de datos sus bytes de información en modo HID.
Y yo también doy por hecho que sabes hacerlo y que dominas el inglés.

Así que busca en microchip solutions y suerte (y)
 

Temas similares


Arriba