Autor Tema: Memoria I2C  (Leído 2071 veces)

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

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
Memoria I2C
« en: 24 de Agosto de 2005, 23:11:00 »
Hola muchachos, tengo un pequeño problemita, no se trabajar muy bien con las memorias I2C; tengo un 24L256 el cual tiene 32Kbytes de memoria y lo que quiero hacer es grabar una data desde la PC - serialmente- PIC- I2C -memoria... la cantidad de datos q quiero grabar es relativamente grande y lo que necesito saber es como grabo la data en la memoria.

Yo trabajo en PBP y hay el comando "i2cwrite" que hace toda la configuracion por mi, lo q envio seria la Direccion de la memoria (address H y L ) y luego la data, pero mi problema es q cuanta data puedo enviar en un solo envio (pues se que necesita un tiempo de grabacion).... pues como la cantidad de data q quiero enviar es grande entonces envio de 1 en 1, de 10 en 10... como???

Alguien ha trabajado antes con este tipo de memoria? haber si me ayudan con esta duda...Rebotado

FumadorSonrisa Gigante
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Memoria I2C
« Respuesta #1 en: 25 de Agosto de 2005, 00:36:00 »
Las memorias 24LCXX poseen dos modos de escritura: Standard y Burst o Page Writting

la primera es la escritura q sigue el patron Control -> Direccion -> Data

control establece la accion, direccion a dond va a escribir, la ultima no necesita explicacion, luego d eso debes volver a repetir la secuencia, es util para acceso a direcciones especificas d la memoria

la segunda usa el patron Control -> Direccion -> Data0 -> Data1 -> ...  -> Data63

es decir se escriben 64 datos en la memoria, la direccion es actualizada automaticamente en el chip, luego d eso, es necesario actualizar la direccion d memoria a fin d q apunt a la siguiente pagina de 64 bytes, la velocidad de transmision depende del PIC y de la memoria, creo q la maxima velocidad alcanzable en la señal de CLK es 400 KHz o sea 400 Kbps incluyendo todo: control, direccion y datos.

La seleccion del modo lo determina si generas una condicion de STOP BIT al final de Data0, si es asi entonces estas trabajando en modo STD sino entonces estaras trabajando en modo PW, no necesariamente debes escribir 64 bytes a la vez, si generas un stop bit al final de cualquier DataN entonces se finalizara la escritura y podras realizar otra tarea de lectura o escritura. Este procedimiento tb es valido para la lectura.

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
RE: Memoria I2C
« Respuesta #2 en: 25 de Agosto de 2005, 01:32:00 »
Gracias fenix, me explicaste mejor que en el pdf todo lo que necesitaba.... una ultima consulta, lei que es necesario darle un tiempo para que pueda grabar los datos (5ms), en el caso que le envie los 64 datos seguidos, debo mandarlos cada 5 ms o le envio todos seguidos??

No se pierde la direccion si se los envio seguidos con una pausa de 5ms?

Creo que estoy algo aturdido por leer el pdf loco (es que mi ingles no es nada bueno)

En verdad gracias por tu respuesta, un abrazo Rebotado
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: Memoria I2C
« Respuesta #3 en: 25 de Agosto de 2005, 06:00:00 »
El tiempo este de espera de escritura se debe hacer después de la condición de STOP, por lo que puedes enviar los 64 bytes seguidos y luego del STOP esperar esos 5ms. La memoria guarda en un buffer interno esos bytes para después grabarlos en la EEPROM.


 

anything