This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf_drv_twi_rx() returns SUCCESS but sends NAK to the slave

Hello,

I am interfacing a NRF52832 with a PCF8574 I2C slave using SDK 15.0.0.

As per the datasheet, the device will send the data to the slave after it receives the write byte from the master, then the master should send an ACK:

I am using the following code in order to read from the slave:

ret_code_t err_code = nrf_drv_twi_rx(&m_i2c_instance, slave_i2c_addr, p_buf, length);

The function returns NRF_SUCCESS and the slave data is read properly into the buffer, however the master doesn't send ACK. Am I doing something wrong?

Please see the Logic analyzer capture below:

Thank you

Related