Autor Tema: memoria eeprom en la version 5.5  (Leído 13317 veces)

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

Desconectado narigon

  • PIC10
  • *
  • Mensajes: 16
Re: memoria eeprom en la version 5.5
« Respuesta #15 en: 09 de Julio de 2012, 05:16:15 »
Santiago, el proteus guarda en el mismo archivo los valores de las EEprom aunque lo apagues con stop o aunque cierres el programa y lo abras al mes siguiente, la forma de volver al pic recien encendido por primera vez es haciendo click en "reset persistent model data" dentro del  debug. proba editando el asm como te dije y lo vas a ver.
Yo lo descubri de casualidad porque hice un aparatito que personalizabas con el nombre en el display y lo guardaba en una eeprom, y sorpresa me lo lleve al archivo en un pendrive al laburo y cuando lo simule alla estaba con los valores que yo le habia cargado simulando con botoncitos en el proteus
con el mclr hace lo que decis pero se ve que no es lo mismo que apagarlo
Te mando un abrazo.

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: memoria eeprom en la version 5.5
« Respuesta #16 en: 09 de Julio de 2012, 10:19:04 »
Hola narigón, y gracias por el dato, ya probaré lo que me decís. En las simulaciones que he hecho con eeprom jamás me guardó el valor cuando apagué la simulación, ha no puede de hecho modificar el .hex y es este el que carga cuando le das star, el programa se ejecuta a nivel de ram y se pierde al stop según sé, pero tu dato me deja desconcertado. Para que eso ocurra debe guardar el valor en algún archivo del Proteus. También puede que sean versiones distintas, uso una 7.7, no se vos. Un abrazo
- Santiago -

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: memoria eeprom en la version 5.5
« Respuesta #17 en: 09 de Julio de 2012, 12:45:57 »
Perdon por la intromision.
No se si lo teneis ya solucionado. Tampoco se si proteus guarda los valores en la eeprom como decis. Puedo probarlo si adjuntais el fichero de proteus y de Niple con lo ultimo que tengais.
De momento si puedo deciros algo, al parecer estais trabajando partiendo de una version como la 5.2. Para que Niple trabvaje correctamnete con las memorias EEprom no solo sirve el que al abrir el proyecto hagais la actualixacion automatica que te indica Niple al inicio.
la forma de trabajar a partir de la version 5.5 es que hay que indicarle exactamnete que dispositivo se va  a utilizar y hay que cambiar/actulìlar algunos bloques de los accesos a la memoria EEprom.

Para ello en el explorador de la derecha, al lado de "diagramas", pulsar la tecla y seleccionar "dispositivos". A continuacion en Nuevo dispositivo teneis que seleccionar, cualquiera de las 2 opciones de trabajo con la EEprom y establecer los valores de las lineas a utilizar, asi como el tipo de memoria EEprom.
A partir de ahi debeis continuar con el programa.

F.
Todos los días se aprende algo nuevo.

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: memoria eeprom en la version 5.5
« Respuesta #18 en: 09 de Julio de 2012, 23:07:13 »
Fer: la eeprom que debe guardar el valor es la del pic, por eso no se declara una externa, al menos así entendí yo. No he podido hacer como dice narigon, que Proteus guarde el valor una vez cambiado y tras detener la simulación, a mi entender no es así pues cada vez que comienza la simulación carga el .hex tal y como lo compilamos, sin guardar un cambio de la simulación.
- Santiago -

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: memoria eeprom en la version 5.5
« Respuesta #19 en: 10 de Julio de 2012, 01:58:51 »
Bueno pues las neuronas fallaron en lo de la eeprom interna. Un punto para ti, es lo que tiene separado de los queridos pic's.

Respecto a Proteus creo y opino que deberia de ser como dices no lo guarda en la eeprom interna. Lo que no tengo muy laro es si cada vez que paras la simulacion y la arrancas de nuevo lo hace con lor valores que tenias en la eeprom. Tampoco se exactamente si cad vez que arrancas la simulacion carga el hexadecimal, reo que si, por eso no guarda dichos valores.
Seuro que hay quien sepa mas de ese fenomeno de Proteus.


F.
Todos los días se aprende algo nuevo.

Desconectado narigon

  • PIC10
  • *
  • Mensajes: 16
Re: memoria eeprom en la version 5.5
« Respuesta #20 en: 10 de Julio de 2012, 03:12:01 »
Fermin, es muy facil comprobarlo, mas arriba subi dos ejemplos para santiago, carga el que esta hecho con la version 5.2 fijate que tambien esta el .npl asi te fijas lo que tiene que hacer y podras comprobar que guarda los valores de las eeprom aunque cierres el archivo y lo vuelvas a abrir porque con cada simulacion modifica el .dsn, fijate que en el ejemplo lee una variable de la eeprom le suma 1 y la vuelve a escribir, con el debug fijate que el mapa de eeprom siempre se va modificando con cada arranque y lo hace persistir aunque lo abras en otra compu etc. por esto me di cuenta que las versiones sucecivas como la 5.5 y la 5.6 no lo hacen, es decir cargan la eeprom con el valor inicial cosa que no tiene sentido ya que es lo mismo que escribirlo en la memoria de programa, se supone que la eeprom es una eeprom.
seria una buena inquietud para plantearle a Jorge Cano.
Santiago, la version de proteus que tengo es la 7.6.
Saludos.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: memoria eeprom en la version 5.5
« Respuesta #21 en: 10 de Julio de 2012, 12:42:00 »

Puedo probarlo si adjuntais el fichero de proteus y de Niple con lo ultimo que tengais.

De momento si puedo deciros algo, al parecer estais trabajando partiendo de una version como la 5.2. Para que Niple trabaje correctamnete con las memorias EEprom NO solo sirve el que al abrir el proyecto hagais la actualizacion automatica que te indica Niple al inicio.
La forma de trabajar a partir de la version 5.5 es que hay que indicarle exactamnete que dispositivo se va  a utilizar y hay que cambiar/actulìlar algunos bloques de los accesos a la memoria EEprom.

Para ello en el explorador de la derecha, al lado de "diagramas", pulsar la tecla y seleccionar "dispositivos". A continuacion en Nuevo dispositivo teneis que seleccionar, cualquiera de las 2 opciones de trabajo con la EEprom y establecer los valores de las lineas a utilizar, asi como el tipo de memoria EEprom.
A partir de ahi debeis continuar con el programa
.

F.

Me reitero en lo de la cita, para probarlo neesitaba que adjuntaseis el fichero, al menos de Proteus y junto con el de Niple puedo verificarlo.
Tener en cuenta lo expuexto en la cita y subrayado.

F.
Todos los días se aprende algo nuevo.

Desconectado narigon

  • PIC10
  • *
  • Mensajes: 16
Re: memoria eeprom en la version 5.5
« Respuesta #22 en: 10 de Julio de 2012, 13:25:30 »
Fermin, te lo adjunto pero es solo el chip sin periferia.
Saludos.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: memoria eeprom en la version 5.5
« Respuesta #23 en: 10 de Julio de 2012, 13:52:49 »
Descargado y a probar......................
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: memoria eeprom en la version 5.5
« Respuesta #24 en: 12 de Julio de 2012, 15:22:37 »
Fermin, te lo adjunto pero es solo el chip sin periferia.
Saludos.

Mira lo estoy venga a probar y bajo mi corto entender  :(, y que no dudo que asi sea, por mas que pruebo, mi opinion es que es cosa de proteus :(.

he cogido el programa de la version 5.2 que has adjuntado y el fichero del proteus. Los cargo en mi pc y abro proteus tengo la version 7.7SP2 y Niple 5.6.2 Empiezo a simularlo, decirte que solo modifique el fichero de Niple sacando lo del bucle NOP y de forma que incremente el calor del valor de tecla 1. Ejecuto en run paso a paso el programa y observo que proteus incrementa el valor lo piedes ver marcado en rojo en la figura adjunta en la zona de memoria EEprom, pero por alguna extraña razon ese valor no lo graba "Proteus, fijate en ell valor de la derecha, siempre está en "..........". para cada valor debe de corresponder un caracter distinto a la derecha, ver recuadros en amarillo de la figura dentro del "PIC CPU Memory DATA".
Por este motivo creo que te está pasando ese efecto.
Soo me queda ver el tiempo que está puesto para realizar el tiempo de grabacion en la EEprom no sea que esté puesto muy corto, pero no creo.

Por otra parte desconozco si proteus guarda los valores de las eeprom simulados en el fichero de DSN. lo que si es cierto que siempre que arrancas el run se produce una compilacion del programa.

Seguiré informando

F.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: memoria eeprom en la version 5.5
« Respuesta #25 en: 12 de Julio de 2012, 15:26:26 »
Hola de nuevo.

Acabo de probar que si ejecutas el programa por un tiempo mas largo, si aparecen valores que no aparecian antes puedes verlos en la figura adjunta.
pero siempre que paras el programa y lo vuelves a ejecutar no queda grabado nada.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: memoria eeprom en la version 5.5
« Respuesta #26 en: 12 de Julio de 2012, 15:43:56 »
he revisado el asm, generado por NIPLE, el proceso de grabacion en la eeprom y es el correcto.
Adjunto el codigo generado.

Código: [Seleccionar]


grabar_eeprom
   ;escribir el dato en la eeprom
   bsf status,rp0                   ;cambiar a banco 3
   bsf status,rp1
   bcf eecon1,eepgd
   bsf eecon1,wren
   movlw 0x55
   movwf eecon2
   movlw 0xaa
   movwf eecon2
   bsf eecon1,wr
esperar_fin_escritura
   btfsc eecon1,wr
   goto esperar_fin_escritura
   bcf eecon1,eeif
   bcf eecon1,wren
   bcf status,rp0                   ;cambiar a banco 0
   bcf status,rp1
   return


F.
Todos los días se aprende algo nuevo.

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: memoria eeprom en la version 5.5
« Respuesta #27 en: 12 de Julio de 2012, 20:35:43 »
Hola a todos, buenas noches. También estuve debaugeando el desarrollo del programa simulado y no pude hacer que Proteus guarde el valor una vez parada la simulación. Si lo hace o no no lo sé, tampoco me preocupa, hasta ahora, pues si "resetéo el pic" y se guardó el cambio de valor está haciendo lo que deseo, en lo físico significará que apagando el circuito y encendiéndolo el seteo se hará con el valor que se introdujo a la eeprom en ultima instancia. Si alguien guarda el valor es Proteus, en archivo propio, no modifica el .hex o el .asm para nada. A mi pobre entender no es un bug de Niple como creías, ni cosas de la versión. Un abrazo a todos
- Santiago -

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: memoria eeprom en la version 5.5
« Respuesta #28 en: 13 de Julio de 2012, 01:53:26 »
Hola a todos, buenas noches. También estuve debaugeando el desarrollo del programa simulado y no pude hacer que Proteus guarde el valor una vez parada la simulación. Si lo hace o no no lo sé, tampoco me preocupa, hasta ahora, pues si "resetéo el pic" y se guardó el cambio de valor está haciendo lo que deseo, en lo físico significará que apagando el circuito y encendiéndolo el seteo se hará con el valor que se introdujo a la eeprom en ultima instancia. Si alguien guarda el valor es Proteus, en archivo propio, no modifica el .hex o el .asm para nada. A mi pobre entender no es un bug de Niple como creías, ni cosas de la versión. Un abrazo a todos

esto mismo es lo que he intentado explicar en mis ultimos post.
Lo importante es que la forma de grabacion es la correcta y Niple lo hace bien en "el mundo real". De hecho hay algun tema por ahí de un programa tipo de cerradura electronica con clave, que funciona perfectamente guardandola en la eeprom.

F.

Todos los días se aprende algo nuevo.

Desconectado narigon

  • PIC10
  • *
  • Mensajes: 16
Re: memoria eeprom en la version 5.5
« Respuesta #29 en: 13 de Julio de 2012, 02:02:22 »
Ok gente, voy a sacar la protoboard a ver como anda, lo que me enfurece es no poderlo emular como yo quiero. o como lo hacia antes.
Santiago probate esto que te mando porque el proteus te tiene que andar, instale la version 7.9 y tambien me anda.
pregunta aparte, trataron de editar el asm antes de compilarlo sacandole las lineas de los valores de eeprom del final? porque asi si me funciona.
Muchas gracias  por el esfuerzo, saludos.


 

anything