2-Mbit serial I²C bus EEPROM - M24M02-DR | Telit Cinterion IoT Developer Community
November 10, 2020 - 10:36pm, 875 views
I am trying to integrate an EEPROM memory (M24M02-DR) with the EHS6 and PLS62-W modules but I have identified that it would most likely not be possible.
To write a Byte or a Page in the EEPROM is not a problem, however to read a Byte, Page or a stream of memory positions, as far as I understood from the EEPROM datasheet (5.2 section), a new Start Condition would be needed after the master writes in the Bus the Start address, without the master making a Stop Condition. (Datasheet EEPROM --> 5.2.1 Random Address Read)
However, according to the AT-COMMAND-SET in (188.8.131.52 Structure of Messages on the I²C Bus).
This is not possible because after sending the write, the module (master) sends a Stop Condition. The format of the message structure is fixed.
From the AT-COMMAND-SET of EHS6:
To my surprise it works by sending the write command and right after a read command. Like this:
We then have the following:
So far so good, but I am worried because it is possible that it is a bug and in the future it will be fixed and my project is useless. Would be a bug linked to the EEPROM ?
So, I did not understand, why, the I2C interface from CINTERION does not have the possibility to send a new Start Condition before the Stop Condition, since this is standard in I2C communication.
I had the same problem to integrate another GPS module, I managed to get around the situation but it was strange.
Has anyone experienced this or perhaps has an idea for what is going on?
I thanks in advance.
Indeed it looks like the simplified i2c client on the module does not let the user manually drive the start and stop conditions. We have probably had no claims for this behavior so far. So I also don't expect that this could be changed in the near future.
It's good that you have found a workaround.