I have a doubt regrading the behaviour of an I2C which is acting as a master. Suppose an I2C Master with an APB interface has a slave address written which is not present, what would be the behaviour of the Master. Does it transmit the slave address once and on not seeing the ack will release the bus or will it keep on transmitting the same slave address.
If the slave finds, the incoming address is not belongs to it, immediately it will respond with NACK. If master once find the NACK from the slave for address phase, master should not retransmit the address, or if the slave NACK is for the data phase, master can retransmit or abort the transaction. It depends on the design reqirements.
Hi,
It depend on the designer requirement. You can have I2C master retransmit slave address like 4/8 times, if still not ACK from the slave side, master should be send STOP.
As per the I2C designed by Philips, the Master after receiving the NACK should not send the slave address again and hold both its SDA and SCL lines high. But if you want to design with some other specification like check it certain number of times or check for famliar addresses, you can certainly desing it to be so.