diff options
author | Kévin Redon <kredon@sysmocom.de> | 2018-07-24 09:49:11 +0200 |
---|---|---|
committer | Kévin Redon <kredon@sysmocom.de> | 2018-07-24 09:49:18 +0200 |
commit | 57b60d23cfc24fc12a0b78c6faf0e80758c15c39 (patch) | |
tree | 8f5c60e84e93205950c21664852061390fa271a5 /firmware/libboard/qmod | |
parent | b60538888fb4f8b78189214421a17a7a5802c063 (diff) |
I2C: add wait time after write to let EEPROM write
The Atmel AT24C02 defines a maximum tWR waiting time after a byte
write of 5 ms before a next write.
Enforcing this wait time also fixed the failed verification in qmod,
where it was reading 0xffff instead of the written value.
Change-Id: I42c90b8d0329e425f275067e87d584212a43a90b
Diffstat (limited to 'firmware/libboard/qmod')
-rw-r--r-- | firmware/libboard/qmod/source/i2c.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/firmware/libboard/qmod/source/i2c.c b/firmware/libboard/qmod/source/i2c.c index 06c7565..a708704 100644 --- a/firmware/libboard/qmod/source/i2c.c +++ b/firmware/libboard/qmod/source/i2c.c @@ -185,6 +185,8 @@ int eeprom_write_byte(uint8_t slave, uint8_t addr, uint8_t byte) nack = i2c_write_byte(false, true, byte); if (nack) goto out_stop; + /* Wait tWR time to ensure EEPROM is writing correctly (tWR = 5 ms for AT24C02) */ + mdelay(5); out_stop: i2c_stop_cond(); |