2022-03-25 03:16 AM
Hi there,
From testing it's quite jarring to me to discover that after every 16bit write u need to wait ~5ms before the EEPROM will accept after write. After a more detail reading of the manual I found that after SPI write cmd the EEPROM will trigger a 'self-timed programming cycle' and it will last at least 4ms.
Want to make sure am I understanding this correctly? Or I am using it wrong? Also if this is the case what can it be used for?! I was originally to write diagnostic data to it periodically. But the 16 bit per 5ms speed is just way too low.
Thanks for reading, any reply is appreciated.
2022-03-26 01:13 AM
That's normal behaviour, not only for this type of EEPROM, but also for I2C-EEPROMs (m24xxx), SPI-EEPROMs (m25xxx) and SPI-Flash (but usually significantly less than 5ms).
However, except for the Microwire-EEPROMS (m93xxx) most higher densitity devices have a page write mode, where a block (16 bytes ... 256 bytes) can be written at once, i.e. the 5ms time covers the whole page write.
So, either take a device with large enough page size, or use several devices in parallel and use them interleaved or ... take an FRAM.
Another option would be an SPI-Flash, they have much shorter (page) programming time, but then the erase time comes into play. For a rotating log you'd have to use two in parallel, so you can write to one when on the other one a sector is being erased (or you need a sufficiently large RAM buffer).
2022-03-26 11:50 PM
Thanks a lot for the answer and advise!!!!! I never use any EEPROM chip before. I may need to consider to switch to one of those with page write function then. Anyway thanks again :folded_hands: