I2C Command sequence structure and done flag on END
Posted: Sat Sep 30, 2017 3:48 pm
Hi,
I have a situation where I am attempting to read from the I2C in chunks for larger messages, but am encountering a hanging/timeout problem when doing so. According to the I2C write section (page 216, 10.3.6) of the reference manual (http://espressif.com/sites/default/file ... ual_en.pdf), CMD_DONE should be set on command entry where END was set. Does this also apply for a READ operation followed by an END as well?
The reason I ask is that CMD_DONE is not being set even though the READ before it has completed and had its CMD_DONE flag set. Likewise the end_detect interrupt flag is also not set. Correction, it is only set on the first end operation within the command sequence, not subsequent end operations.
Is there a misinterpretation or is there something else that must be done when chunking the READ operations in this manner?
Thanks,
Jason
I have a situation where I am attempting to read from the I2C in chunks for larger messages, but am encountering a hanging/timeout problem when doing so. According to the I2C write section (page 216, 10.3.6) of the reference manual (http://espressif.com/sites/default/file ... ual_en.pdf), CMD_DONE should be set on command entry where END was set. Does this also apply for a READ operation followed by an END as well?
The reason I ask is that CMD_DONE is not being set even though the READ before it has completed and had its CMD_DONE flag set. Likewise the end_detect interrupt flag is also not set. Correction, it is only set on the first end operation within the command sequence, not subsequent end operations.
Is there a misinterpretation or is there something else that must be done when chunking the READ operations in this manner?
Thanks,
Jason