Hello,
I'm currently working with a BR24G512-3A external EEPROM and attempting to write and read data using the nrf_drv_twi_xfer function on my nRF52 series board. Although the logic analyzer shows an ACK for both write and read operations, the data read back is not what was written.
Here's what the logic analyzer confirms:
- Write operation: ACK received
- Read operation: ACK received
Expected read data (hex):
41 42 43 44 45 00 00 00
Actual read data (hex):
00 00 00 00 00 00 00 00
00 FF FF FF FF FF FF FF
Below is the code snippet I'm using for the write and read operations. I use nrf_delay_ms(100) after writing to ensure the write cycle time is respected. Despite this, the read operation does not yield the expected results.
Questions:
1. Is there a specific sequence or timing I need to follow when using nrf_drv_twi_xfer for EEPROM operations that I might be missing?
2. Could there be a need for additional delay between the write and read operations, or is there a buffer or cache that needs to be cleared?
3. Does the BR24G512-3A require any special considerations or commands prior to writing or reading that are unique from other EEPROMs?
The data sheet for the external memory: BR24G512-3A Series: Serial EEPROM (rohm.com)
Any insights or suggestions would be greatly appreciated as I am unsure why the written data is not being read back correctly.
Thank you!