TWI slowdown with bus busy

Hi,

in my project I use the nRF52840 microcontroller as the master I2C device.

Sometimes the TWI peripheral SDA line is forced to a low value by the slave device. This is a slave device error.

I use the functions nrf_drv_twi_tx and nrf_drv_twi_rx to read and write to the slave device. In fact, the two functions detect the error and return an error value (I seem to remember a 3).
The problem is the execution time of the function.
For example, when the SDA line is not blocked at GND, the execution time of the nrf_drv_twi_tx function is 2 milliseconds.
On the other hand, when the SDA line is blocked at GND, the execution time of the nrf_drv_twi_tx function is approximately 330 milliseconds. This time is too long.

Why is this time so long? Can it be reduced in any way?

If this time cannot be reduced, can I read the status of the SDA pin (high or low)? In this way I would detect the error and avoid reading or writing to the TWI line.
Thank you very much.

Related