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


 
		
		 
						
					 
			 
			 
			 
					
					 Making best use of EEPROM Page Memory
 Making best use of EEPROM Page Memory
		

 
 
		 Originally Posted by Tom Gonser
 Originally Posted by Tom Gonser
					
				

Bookmarks