Making best use of EEPROM Page Memory
Folks:
I have a program that collects 36 bytes per pass, and wants to write this to EEPROM. I am using a big chip, the 24LC512 which can hold:
512000 bits or 64000 Bytes
BUT, its page size is 128... So I am forced to increment my address by 128 each time I write 36 bytes!!
Therefore, If i use the page write [string\36], I use only a little bit of the total chip capacity -- only 36 bytes of each 128. Really only able to use 28% of the memory...
SO, what to do?
1. Write a byte at a time? I suppose I could make a loop after I pick up the 36 byte string, and :
oldaddress ' where we last wrote
for X = oldaddress to (oldaddress+35)
I2cwrite DPIN, CPIN, Chip1, X, string[x],failw
wait 10
next x
The problem is that this will take 36 * 10 ms or .36 seconds.. tooo long!
2. Somehow store up 3 strings and write them every 3rd pass?
bigstring[108] = string[36] + string2[36] + string3[36]
...then write bigstring\108 into memory on each page, thereby only wasting 20 bytes per page??
Problem there is I think the biggest array is 96.. (and I don't know how to make a big array out of smaller ones.
3. ?????
Someone must have some really good ideas about how to deal with this as I am sure it is really common.
Thanks
Tom