In SX Microcontrollers, SX/B Compiler and SX-Key Tool, g_daubach wrote: Hi Dan, all types of serial EEPROMs require a certain delay following a write. The data you send to the EEPROM for write is first buffered in an EEPROM-internal RAM, and then transferred into the EEPROM cells. This transfer, and the write operation requires some time, and this is what requires the delay. The EEPROM datasheets recommend to do an "acknowledge poll" to check if the EEPROM is ready to receive more write data. So, after setting up the base address for a write, and sending the bytes to be written, I enter into a loop where I try to set up the base address for the next write. While the EEPROM is still busy storing the previous chunk of data, it does not acknowledge this command, so I stay in this loop until I receive an acknowledge from the EEPROM. This indicates that it is ready for the next page of data, and that it also has set the next base address. I then send the data bytes for the next page. Using a FIFO buffer may only be necessary when the data to be stored in the EEPROM comes in from some other source (maybe through a serial receiver) that can't be halted while the 'WriteToEEPROM' code loops for polling the EEPROM to return an acknowledge. ---------- End of Message ---------- You can view the post on-line at: http://forums.parallax.com/forums/default.aspx?f=7&p=1&m=130800#m133260 Need assistance? Send an email to the Forum Administrator at forumadmin@parallax.com The Parallax Forums are powered by dotNetBB Forums, copyright 2002-2006 (http://www.dotNetBB.com)