hello, NXP:
when I use flexio which is configrated of DMA and I2C.
FLEXIO_I2C_DRV_MasterSendDataBlocking this function is always return with STATUS_I2C_RECEIVED_NACK.
when I use Oscilloscope test the I2C bus, the device address is send and receive OK , but the device address is sent twice.
However, when the FLEXIO i2c is set to interrupt mode , the communication is ok.
I don't know why. Could you give me some help?
Hello
It is possible that the delay between SCL and SDA is not compliant or too marginal with the defined timing. In those cases, unwanted START or STOP conditions can occur in the middle of the I2C pattern sent, causing the slave to get a different message or resulting in a missing acknowledgment.
It would be helpful if you send me the oscilloscope captures and the configuration of the i2c.
If you have more questions do not hesitate to ask me.
Best regards,
Omar
Hi all, I've the same issue. I'm working with S32K144 and SDK 3.0.2. I've configured flexio I2C with S32DS to work with DMA. When I use FLEXIO_I2C_DRV_MasterSendDataBlocking, sometimes device address is sent twice. This issue appear wit communication set to 400Kb. If I reduce communication speed to 100 Kb issue disappear. Is this expected due to DMA timing limitation? Is this issue fixed into SDK 4.0.0?