Part Number: DS90UH947-Q1
i have a question regarding section 7.5.3 'I2C Restrictions on Multi-Master Operation' on page 36.
The I2C specification does not provide for arbitration between masters under certain conditions.The system should make sure the following conditions cannot occur to prevent undefined conditions onthe I2C bus:
Note that these restrictions mainly apply to accessing the same register offsets within a specific I2C slave
If this a limitation of I2C at its core, how can this be solved for newer generations of as indicated in 7.5.4?It states that these restrictions mainly apply to accesses to the same device and register.What other conditions are there?
In the statement section 7.5.4, the newer devices have the I2C implementation of the arbitration where all the commands are in the queued. The high priority will execute first whereas least priority will be executed in later in order of the queue.
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to Aaron Heng:
So the statement in 7.5.4 doesn't relate to the general problem of I2C itself that is mentioned in 7.5.3 ?Can you provide a link to more information about the 'undefined behaviour' in 7.5.3 and the implications of this?
In reply to Johann Johann:
I'm sorry for the delayed response. I created two slides, and hope this help clarify your answer. Basically it’s up to the user to implement a mechanism to handle their multi-master scenarios for 94x. The 94x suggests utilizing mailbox registers to address multiple transactions and arbitration based on the prioritization scheme.
Assuming the deserializer has the mailbox0 (SPARE0) and mailbox1 (SPARE1), the mailbox is available in order to prevent two masters accessing to the deserilaizer at the same time. Let's say if the SoC wants to access to the deserializer registers, it must check the mailbox registers (for example 0x18 and 0x19) if the local MCU access to the registers. If mailbox register is 0xFF value then the local MCU is currently accessing to the register. It is very similar scenarios when local MCU wants to access to the registers
Hope this helps. Let me know if you have any other questions.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.