Autor Tema: Dudas de Programacion Memoria EEPROM  (Leído 3653 veces)

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

Desconectado cvargcal

  • PIC16
  • ***
  • Mensajes: 166
Dudas de Programacion Memoria EEPROM
« en: 27 de Marzo de 2016, 22:05:39 »
Hola a todos, es la primera vez que trabajo con memorias EEPROM, Sé  como leer y escribir.
Pero tengo la duda de como se programan, es decir, todos los datos que deben estar en la memoria (qué son muchos), cómo los introduzco desde el pc?
¿debo hacer un programador personalizado (aparte del circuito de mi proyecto)  para escribir el dato en cada dirección? o hay un "compilador" y luego  se quema la memoria con el PicKit 3? Porque tengo entendido que el PicKit tambien graba memorias.

La memoria que estoy usando es de la serie 24CXXXX
gracias por cualquier información  que puedan aportar.

EDIT

Aquí muestran como se hace con el pickit, pero ¿y el compilador?
http://www.grix.it/viewer.php?page=7347

Programas útiles
http://www.sharatronica.com/programas_para_electronica.html
« Última modificación: 27 de Marzo de 2016, 22:22:33 por cvargcal »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Dudas de Programacion Memoria EEPROM
« Respuesta #1 en: 29 de Marzo de 2016, 19:00:38 »
Creo que tratas de decir que deseas soldar en tus placas una memoria que ya contiene datos (y son muchos)

¿Estoy en lo correcto?

SI es así, me imagino que hay un microcontrolador que administra dicha memoria. Pues tendrás que crear una subrutina en el firmware del microcontrolador para que desde una aplicación desde la PC descargues dicha información hacia la memoria.

Yo lo haría así.

Si fueran muchas, pero muchísimas memorias que debes programar, es posible que el fabricante de la memoria venda las memorias pre programadas. Es decir vos te contactas con el fabricante para que te venda un paquete de varias miles de memorias con información preprogramada.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dudas de Programacion Memoria EEPROM
« Respuesta #2 en: 29 de Marzo de 2016, 19:41:57 »
Yo creo que el esta buscando un programa para que el ponga los datos en ese programa como en "C" y le haga un .hex con esos datos.

Ya que lo demas es tener es conectarlo al PICkit3 y grabarlo, y de ultima como dice Dominus si lo tenes ya conectado (Supongamos que sea SMD ) al micro, tal ves te convenga hacer un pedacito de software que grabe la EEPROM con lo recibido. Sino toma las precauciones necesarias para que lo puedas hacer con el Pickit3 por mas que esten unidos.

Desconectado cvargcal

  • PIC16
  • ***
  • Mensajes: 166
Re:Dudas de Programacion Memoria EEPROM
« Respuesta #3 en: 31 de Marzo de 2016, 21:35:09 »


Creo que tratas de decir que deseas soldar en tus placas una memoria que ya contiene datos (y son muchos)...

Yo creo que el esta buscando un programa para que el ponga los datos en ese programa como en "C" y le haga un .hex con esos datos.
...

Busco un programa para compilar el hex que se  grabar la memoria, justo como un compilador C que me genere un hex. Porque supongo que debe haber alguna forma de "compilar" los datos que van en la memoria... ¿ o de donde sale el hex que utiliza el programador para grabar en la memoria?

encontré que el  programa "Pony Prog" lo hace, lee memoria y programa... tiene una opción que es editar el hex, o mejor dicho escribir el dato que quieras en la dirección deseada (Justo como quiero) y genera un hex,  el problema es que toca escribir el dato en cada dirección de forma manual... se imaginan escribiendo 10000 lineas de direcciones?

Creo que debe haber algún compilador, o en su defecto toca hacer un software que  vaya grabando los datos  deseados y en la dirección deseada.
« Última modificación: 31 de Marzo de 2016, 21:37:13 por cvargcal »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Dudas de Programacion Memoria EEPROM
« Respuesta #4 en: 31 de Marzo de 2016, 21:56:51 »
Es algo difuzo lo que intentas explicar. ¿Qué es lo que quieres convertir a un archivo hex?   ¿Un archivo en C, en Basic, un archivo de audio? ¿Qué es lo que exactamente quieres convertir hex?

En una memoria  como tu dices, yo grabo un byte en una dirección, o un conjunto de bytes en una página de memoria. 

Creo que no estás seguro que es lo que exáctamente deseas guardar en tu memoria.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dudas de Programacion Memoria EEPROM
« Respuesta #5 en: 31 de Marzo de 2016, 21:57:09 »
encontré que el  programa "Pony Prog" lo hace, lee memoria y programa... tiene una opción que es editar el hex, o mejor dicho escribir el dato que quieras en la dirección deseada (Justo como quiero). el problema es que toca escribir el dato en cada dirección de forma manual... se imaginan escribiendo 10000 lineas de direcciones?

Creo que debe haber algún compilador, o en su defecto toca hacer un software que lea la memoria, y vaya grabando los datos  deseados y en la dirección deseada.

No se si lo vas a conseguir realmente, a no ser que alguien lo haya realizado, en si seria tomar valores de archivos, sabiendo su tipo y tamaño, y luego pasarlo a binario. Asi crear un .bin, si queres podrias hacerlo con python, que pienso que seria bastante sencillo, pasar de un string a entero/float o directamente a hexa, con la cantidad de bits correspondientes. Mientras mas tipos de datos tengas un poco mas complicado seria implementarlo.

Lo mas simple que se me ocurre es que intente abrir varios archivos .txt con los valores separados por saltos de linea por ejemplo (o una coma para los numeros). Y eso convertirlo a un hex y grabarlo en un .bin. Tendrias un txt por cada tipo tengas, es decir string, float, entero de 16 bits, de 8 bits , 24, etc. Tambien guardarias las posiciones de memoria donde comienzan cada seccion para luego mostrarlo.

Luego si queres pasarlo a .hex utilizas el bin2hex y te lo convierte a .hex.

Desconectado cvargcal

  • PIC16
  • ***
  • Mensajes: 166
Re:Dudas de Programacion Memoria EEPROM
« Respuesta #6 en: 31 de Marzo de 2016, 22:35:11 »
Suponiendo que es una imagen o audio.... debe ser algo muy tedioso... pero eso no es lo que busco.. aunque seria genial saber como se compilan esos archivos en la memoria.

pero en mi caso tengo el  dato hex deseado, ejemplo:

AA-01-FF   eso debería  estar en la posición  0,1,2
FF-02-AA   eso debería  estar en la posición 3,4,5
...

Yo ya se lo que voy a leer y en que posición deben estar.


como se puede ver, en esa foto intento editar la posición 00, obviamente aquí estoy leyendo un hex de un pic... aun no se como es el hex  o direcciones de la memoria serie 24c###, pero  es básicamente lo que busco.
Pienso que se debe crear un software para hacer exactamente lo que estoy haciendo manualmente... un software que vaya escribiendo el dato en cada dirección.

Tengo dudas de esa imagen.
00? es la posición inicial? justo como cuando aplico este código para leer la memoria:
Código: C
  1. memoria=read_int16_eeprom(0x0);           // Leer byte 0x00 de la eeprom  |0|1|2...|
  2. delay_ms(10);                                          // Retardo
  3. fprintf(uart1,"Memoria: %X\r\n",memoria); // Imprimir Valor leído

o es otra cosa?



Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dudas de Programacion Memoria EEPROM
« Respuesta #7 en: 31 de Marzo de 2016, 22:57:22 »
No me parece un .hex comun, ya que el .hex tiene un formato:

https://en.wikipedia.org/wiki/Intel_HEX

Y si lo abris ves algo asi:

:10010000214601360121470136007EFE09D2190140
:100110002146017E17C20001FF5F16002148011928
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF

EL direccionamiento de las memorias EEPROM por ejemplo del 24LC64 es de 0x0000 a 0x1FFFF , en el cual tu codigo de lectura de EEPROM tendra que enviar el valor correspondiente de direccion (13 bits de direccion) + 8 bits de comando mas, aca esta explicado al menos como acceder a esa memoria, obviamente todo va a depender de la memoria que uses.

http://ww1.microchip.com/downloads/en/DeviceDoc/21189f.pdf

Finalmente lo que creo que queres crear vos es un archivo binario, el cual imagino que deberia tomartelo el soft del pickit3.
Si tenes los valores en hexadecimal podrias crear nuevamente un simple programita en python que tome de a pares de letras de un archivo y escriba el binario correspondiente en el otro archivo ( bin ). Y nuevmaente si necesitas si o si pasarlo a .hex, usas el Bin2Hex que posee MCHP con el MPLAB y le asignas las posiciones de memoria que quieras.

Citar
Suponiendo que es una imagen o audio.... debe ser algo muy tedioso... pero eso no es lo que busco.. aunque seria genial saber como se compilan esos archivos en la memoria.

Ese tema ya es muy disitnto, cada imagen y audio poseen una cabecera, y algunos incluso estan comprimidos. Sino es pasarlo previamente a hexadecimal y cargarlo a la memoria directamente. Asi ahorrarse el tiempo de computo.