iic_v3_1
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 1.2k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
In XIic_DynMasterSend why are the XIIC_INTR_TX_ERROR_MASK and XIIC_INTR_TX_EMPTY_MASK interrupts cleared and enabled AFTER writing the address and data to the TX FIFO? When trying to talk to a slave in reset, I am expecting a NACK event to be generated. However, code based on the dynamic eeprom example is getting stuck waiting for TransmitComplete to zero out and the status handler never gets called with the NACK event.
I believe this happens because by the time the interrupts are cleared and enabled, the address in the FIFO is already sent and the TX Error Status bit is set. Clearing and enabling interrupt will lose the NACK event with no handlers called.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading XIic_DynMasterSend and the status handler, focusing on when the TX FIFO is written versus when XIIC_INTR_TX_ERROR_MASK and XIIC_INTR_TX_EMPTY_MASK are cleared and enabled. Reproduce the transfer with a slave held in reset and verify that the NACK event reaches the handler and TransmitComplete does not remain stuck.
Written by the indexing model from the issue text.
Assessment
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100