Autor Tema: Como Hacer que un PIC se Reprograma a si Mismo?  (Leído 2069 veces)

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

Desconectado perseo1012

  • PIC10
  • *
  • Mensajes: 3
Como Hacer que un PIC se Reprograma a si Mismo?
« en: 12 de Marzo de 2007, 11:25:40 »
Buenos dias a Todos: Soy Nuevo en el Foro. Quisiera saber si es posible hacer un programa para cargarselo a un PIC. y que este programa la primera vez que se inicie verifique unas Variables externas y dependiendo el valor de estas se programe a si mismo nuevamente y que de hay en adelante cada que se inicie, arranque con el nuevo programa, es decir no vuelva a verificar las Variables externas.

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Como Hacer que un PIC se Reprograma a si Mismo?
« Respuesta #1 en: 12 de Marzo de 2007, 11:44:24 »
Hola perseo1012, bienvenido al foro!

Que te parece si para tal finalidad te apoyas en la eeprom del PIC? Me explico, al principio de tú programa lo que hacer es poner 'AA' en la primera posición de la eeprom. Cuando tú programa se inicia lo que haces es leer esa posición de la memoria. Tienes 2 casos posibles:

En la primera posición de la EEPROM tenemos el valor 'FF' -> Eso significa que el micro no se ha encendido núnca, entronces te encargas de hacer la verificación de esas variables externas.

En la primera posición de la EEPROM tenemos el valor 'AA' -> Eso significa que el equipo si que se ha encendido y que ya tomaste el valor de las variables externas.

No se si me he explicado demasiado bien jeje. Si tienes alguna duda pregunta y me esmero un poco más  :mrgreen:


Un saludo desde Alicante.

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Como Hacer que un PIC se Reprograma a si Mismo?
« Respuesta #2 en: 12 de Marzo de 2007, 12:31:30 »
Hola perseo1012 me parece que lo quieres hacer es un bootloader, el cual t permite cargarle un programa al pic mediante puerto serial. el siguiente link es para un bootloader hecho en basic , el cual probe hace un tiempo y funcionaba.

http://www.oshonsoft.com/picbootloader.html

Debes tomar en cuenta que para hacer un bootloader debes tener un pic que sea capaz de escribir en su memoria de programa , el pic16f877a puede hacerlo y varios de los PIC18 pero , no puedes hacerlos con todos los pics

Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado SavageChicken

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 931
Re: Como Hacer que un PIC se Reprograma a si Mismo?
« Respuesta #3 en: 12 de Marzo de 2007, 13:07:04 »
Lo que no entiendo de tu pregunta es.
¿De donde saca el PIC la informaión para reprogramarse?, la solicita a algún dispositivo, o lo que intentas es que carge un segundo programa alojado en el mismo PIC, porque si es esta última opción basta con que comprubes las variables que mencionas y hagas un goto a la parte del programa que te interesa ejecutar.
Si nos comentas mas detalles de lo que quieres hacer quizá podamos guiarte mejor.

Salud  8)
No hay preguntas tontas...
Solo hay tontos que no preguntan.

Desconectado perseo1012

  • PIC10
  • *
  • Mensajes: 3
Re: Como Hacer que un PIC se Reprograma a si Mismo?
« Respuesta #4 en: 12 de Marzo de 2007, 13:50:14 »
lo que quiero hacer es: verificar las variables externas, y que luego de alguna forma se reprograme a si mismo. o la otra posibilidad es que de alguna forma se borre la parte del programa que hace la lectura de las variables.

Desconectado SavageChicken

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 931
Re: Como Hacer que un PIC se Reprograma a si Mismo?
« Respuesta #5 en: 12 de Marzo de 2007, 14:00:00 »
Creo que lo más fácil es lo que suguiere Azicuetano.
Sería algo así:

-Verificas si previamente se ha escrito la EEPROM, en caso de que no GOTO Escribir EPROM
- En caso de que si GOTO Inicio Normal

Escribir EEPROM
-Verficas las variables
-Grabar una marca en la EEPROM que indique que esto ya lo hiciste

Inicio Normal
-Continuas el proceso normal de tu programa

Espero te sirva... Salud  8)
No hay preguntas tontas...
Solo hay tontos que no preguntan.

Desconectado perseo1012

  • PIC10
  • *
  • Mensajes: 3
Re: Como Hacer que un PIC se Reprograma a si Mismo?
« Respuesta #6 en: 12 de Marzo de 2007, 14:17:47 »
pero no es posible borrar las posiciones de la memoria de programa donde se aloja el codigo que lee las variables?? 

En un libro de Jose Maria Angulo, hay un ejemplo, donde se puede borrar las posiciones de memoria donde se aloja parte del programa, y tiene una imagen donde leen el codigo despues de haber arrancado el PIC por primera vez y se nota que las posiciones iniciales no contienen ninguna informacion. Este ejemplo del que les hablo para mi no es claro, por eso es que formule el tema en este Foro.

Desconectado SavageChicken

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 931
Re: Como Hacer que un PIC se Reprograma a si Mismo?
« Respuesta #7 en: 12 de Marzo de 2007, 16:07:41 »
Mis conocimientos solo alcanzan a la línea 16F84 16F628/48 y a estos chip no se pueden autoescrinir la memoria de programa, tal vez algún otro PIC permita esto, pero desconozco cuales y la forma de hacerlo.

Salud  8)
No hay preguntas tontas...
Solo hay tontos que no preguntan.

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Como Hacer que un PIC se Reprograma a si Mismo?
« Respuesta #8 en: 12 de Marzo de 2007, 16:08:06 »
Bueno perseo1012 creo que no leiste la informacion del link que te postee, y segun dices:

Citar
hay un ejemplo, donde se puede borrar las posiciones de memoria donde se aloja parte del programa, 

Es una de las funcionalidades de un bootloader , ESCRIBIR en la memoria de programa no en la EEPROM, si quieres que el pic borre la memoria de programa tienes que hacer que el pic escriba en ella 0x3FF pero no todos lo pics pueden escribir en su memoria de programa ,te lo dije en el anterior post, podrias comenzar diciendonos que pic vas a usar o revisar si este pic puede escribir en su memoria de programa, el como hacerlo esta descrito en la hoja de datos del pic , y si quieres ayuda mas especifica, podrias postear que es exactamente lo que tienes que hacer , que no creo que nadie te robe la idea :lol:

saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube


 

anything