Looking through the iMX7 Linux/MQX/FreeRTOS code and iMX7 datasheet it appears that there is only a single byte TX data register available for the I2C peripherals. I just wanted to make sure that I was not missing something, because this represents a pretty huge bottle-neck having to switch in/out of interrupt context for sending every single byte when using an interrupt driven I2C driver? In our system we employ four I2C peripherals configured for the M-core, and attempting to service a single I2C device on each individual bus is extremely inefficient due to the single-byte HW data register.
On every other microprocessor I have every used (8-bit/16-bit/32-bit, many manufacturers) there has been at least an 8-byte HW FIFO on the I2C peripheral. So I am asking if I am missing something in the datasheet, or if there is a way to increase the size of the HW data FIFO beyond a single byte?
thanks,
Jeremy
Solved! Go to Solution.
Hi Jeremy
some i.MX processors like i.MX8QXP have LPI2C module with I2C FIFOs,
unfortunately i.MX7D I2C has not FIFOs according to sect.15.2 I2C Controller (I2C)
i.MX 7Dual Applications Processor Reference Manual
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thank you for the confirmation.
Hi Jeremy
some i.MX processors like i.MX8QXP have LPI2C module with I2C FIFOs,
unfortunately i.MX7D I2C has not FIFOs according to sect.15.2 I2C Controller (I2C)
i.MX 7Dual Applications Processor Reference Manual
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------