Hello, I'm implementing I2C Multi-Master/Slave mode handling in the LPC2132 chip. I have few queries about the LPC213x's I2C controller operations.
The user manual says that if the is SI bit (serial interrupt) is cleared or if the I2CSTAT is 0xF8, then there is no activity in the bus.
1. Should the master be polling for this status before initiating a start condition and before every other transaction?
2. Should the software implement an explicit locking mechanism to ensure that the transaction is not interleaved? For instance there could be delays between two bytes (induced by software) in a particular I2C transaction by a master and this should not be interpreted as a 'no serial transaction' by another master. This would allow the other master to snoop the bus while a transaction is already proceeding.
3. If explicit locking must be done in software, how could the controller being in Master mode sense the START/STOP condition driven by other masters?
Thanks in advance.
Hi there, please mark a reply as a suggested or accepted answer if you feel that your question has been answered. Many thanks!