Autor Tema: Reprogramar pic18f4550  (Leído 1574 veces)

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

Desconectado mgonzy

  • PIC10
  • *
  • Mensajes: 11
Reprogramar pic18f4550
« en: 27 de Abril de 2015, 09:48:38 »
Hola buenos días, no sabia que titulo poner al tema así que todas las correcciones son bienvenidas.
Estoy en la realización de un sistema de control remoto configurable; se utiliza  usa un bootloader para cargar los distintos archivos .hex (compilados con css)para que el sistema se comporte de distintas maneras. Hasta allí todo bien.....
lo que yo pretendo realizar es:
que el usuario final (que no posee conocimientos de programación) sea capaz de modificar el .hex y gravar el PIC con el PDFSUSB  todo de manera transparente.

Cabe destacar que los cambios que el usuario realiza al archivo .c son mínimos, son solo valores de variables, por ejemplo cambiar los valores de las constantes del timer, cambiar el numero de cel a cual enviar sms (el sistema utiliza la red gsm para el envio de alertas) y otras cosas mas.

Entonces se me pasa por la cabeza lo siguiente: que el .hex generado por estos 2 archivos .c no son muy distintos entre si (solo cambia 3000 por 1000)
void main()
 {
      while(true)
      {
      bit_set (PORTD, 1);     
      delay_ms(3000);
      bit_clear (PORTD, 1);     
      delay_ms(1000);
     
      }
 }
---------------------------------------
void main()
 {
      while(true)
      {
      bit_set (PORTD, 1);     
      delay_ms(1000);
      bit_clear (PORTD, 1);     
      delay_ms(1000);
     
      }
 }

¿Por que no editar el PDFSUSB.exe de microchip de codigo abierto, agregando texbox y todo lo necesario para que de manera visual el usuario final introduzca el valor de las constates ? y que de manera automática se modifique el .hex (que al final de cuentas es un .txt facil de modificar).
No se si se entiende..... la idea original era tener el .hex de todas las configuraciones posibles del sistema y de esta manera con el PDFSUSB (modificado)el usuario cargaba los distintos .hex todo de manera visual, el problema se dio con el numero de cel del destinatario que puede ser cualquier numero y es imposible tener un .hex para todos esos numeros. Perdon lo extenso de la problematica, queria ser lo mas claro posible. Desde ya muchas gracias

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Reprogramar pic18f4550
« Respuesta #1 en: 27 de Abril de 2015, 10:01:11 »
Imagino que si seria posible hacer lo que pedis suponiendo que los valores que se carguen esten en un lugar definido en la memoria y que no cambien.

El problema que traeria no tener definida su ubicacion es que ante otra posible compilacion del archivo cambien de lugar las instrucciones de ASM con lo cual deberias volver a reescribir todo el codigo de tu PDFSUSB.
Lo que se podria hacer es mantener algunas direcciones fijas, como por ejemplo usar la Flash del micro y que en XXXX direccion comienze a almacenarse esos valores, total el 18F4550 puede leer datos desde la flash.
Lo que vas a tener que modificar el codigo C de tu micro para que al comienzo del programa lea los datos de la Flash y los almacene en las variables, asi no cambias tanto.

Ahora si en el .hex podes buscar el string perteneciente a esa direccion y realizar los cambios segun las entradas de las textbox.
Si no un programita externo que haga lo mismo y luego proceder a grabarlo con el PDFSUSB.

-----------

Al momento de cargar el .hex , que rellene solo las textbox con el numero que tenga configurado ese .hex, mantener una copia de esos valores y si se cambia alguno proceder a modificarlo antes de grabarlo.
Imagino ademas tambien que vas a necesitar crear el codigo para generar el CRC del archivo .hex

« Última modificación: 27 de Abril de 2015, 10:08:04 por KILLERJC »

Desconectado mgonzy

  • PIC10
  • *
  • Mensajes: 11
Re: Reprogramar pic18f4550
« Respuesta #2 en: 27 de Abril de 2015, 14:33:01 »
Muchas gracias por tu respuesta, me gusto la idea de usar la memoria flash, nunca la use, así que pondré a ver como funciona. Luego te comento como salio.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re: Reprogramar pic18f4550
« Respuesta #3 en: 27 de Abril de 2015, 15:49:12 »
hola mgonzy

Yo no modificaria el PDFUSB, ya que tendrias que estudiarte su código, compilarlo en algun IDE y te dara problemas y quebraderos de cabeza, yo me diseñaria mi propio programita, puedes hacerlo en C# que es muy sencillito, y tienes el visual studio express que es gratuito, y para esa aplicación (y para la mayoria) sobra. De esta manera tu hacer el programa como quieras y tendras mas conocimiento sobre tu aplicación, tienes muchas herramientas para manejar cadenas y leer ficheros.

un saludo
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado mgonzy

  • PIC10
  • *
  • Mensajes: 11
Re: Reprogramar pic18f4550
« Respuesta #4 en: 27 de Abril de 2015, 20:24:00 »
Hola gracias por tu respuesta, no se si me animaría a crear mi propio  PDFSUSB por asi decirlo, no llego a ese nivel  :undecided:.
En realidad al PDFSUSB original no se modifica mucho, mas que nada seria la parte grafica, agregar texbox, poner como no visible algunos botenes, cosas asi.  Microchip entrega el codigo del  PDFSUSB que esta realizado en visual C++, ya lo tengo editado y mas o menos ya tengo idea de como realizar esa parte.