Que tal Oskario,
En que lenguajes estas programando?
Te comento que debido al microntrolador que estas usando es necesario el buffer de 64 bytes en RAM para almacenar los datos, de esta no te salvas. Lo que debes pensar es en como almacenar los datos en la EEPROM externa. No se como es que lo haces, pero te comento a grandes rasgos una opciion de hacerlo.
Si lo que estas haciendo despues de recibir los 64 bytes es enviar a la EEPROM uno por uno los bytes, eso hace que tu escritura sea muy lenta debido a que realizas una esciritura de byte simple, esto hace que cada bute se escriba en un lapso de 5 ms, entonces 64 X 5 ms = 320 ms, pero necesitas escibir 256 bytes, esto hace que sean 4 bloques de 320 ms, dando un total de 1.28 segundos, pero ademas necesitas grabar 256 bloques de 1.28 segundos, esto es un total de 327.68 segundos, o sea 5 minutos 27.68 segundos!!!!!!!!. Eso es demasiado tiempo.
En cambio si lo hicieras en modo burst el timepo se reduciria bastante. Veamos porque, dependiendo del fabricante de la memoria esta puede tener un buffer de 128 o 256 bytes, esto quiere decir que puedes grabar esta cantidad de bytes en un solo lapso de tiempo de 5 ms. Ahora bien vamos a suponer que la memoria que tienes tiene un buffer de 128 bytes, entonces los 64 bytes recibidos y almacenados en tu ram caben perfectamente, esto queire decir entonces que;
64 bytes se escribiran en 5 ms, y se ocupan 4 bloques de 64 bytes (para completar 256 bytes), entonces 5ms X 4 = 20 ms. Esto quiere decir que 256 bytes los escribiras en solo 20 ms. Pero tu necesitas escribir 256 bloques de 256 bytes, esto es 256 x 20 ms = 5.12 segundos!!!!!!!!!!!!!
Mucho mejor eh. ya no son 5 minutos, ahora son 5.12 segundos.
Ahora que recordando, este PIC tiene 4 bancos de memoria, lo que quiere decir que se puede realizar al menos un buffer de 128 byteslo que equivaldria a realizar la grabacion de datos en la mitad del tiempo es decir en solamente 2.56 segundos!!!!!!!!!!!!!!!!!!!!
Bueno un poco mas debido al tiempo que se necesita para enviar los datos y los comandos a la memoria I2C sobre el bus, pero de cualqueir manera el tiempo se reduce bastante.
Me gustaria ayudarte en este proyecto, lo que necesito saber es quien es el fabricnate de la memoria que estas usando y en que lenguaje lo estas programando. De igual manera puede servir si ya tienes un codigo inicial.
Saludos.
Elreypic.