I'm struggling in implemented interrupt driven twi.
I found it always returned a overrun error after a successful RXD.
I saw an implementation by nordic employee in the devzone. I found they use byte boundary and resume mechanism.
So I ask this BB/ Resume mechanism is what the CPU clock stretching mentioned in Reference Manual? So BB / Resume is required for RX ?
My sequences :
TXD:75
byte boundary
txd sent
byte boundary
rxdready
issuing stop // I2C_REG->TASKS_STOP = 1;
RXD:0x68 // uint8_t d = I2C_REG->RXD;
rxdready // I think this is the wrong status due to read RXD, regardless if I set stop flag
stopped // EVENTS_STOP
error src: OVERRUN
I2C_EVENT_ERROR
byte boundary