2008-06-25 07:14 AM
2008-06-24 01:37 PM
How do I detect if a device does not respond to its bus address when issuing an I2C write from the STR750 as bus master? Since the non-existent device doesn't ACK, does the I2C wait indefinitely, or does some type of interrupt occur? Do I need a bus timer to reset the I2C bus, similar to SMBus?
2008-06-25 07:14 AM
After some more reading in the manual it seems the AF flag is set if an ACK isn't received, and AF will generate an interrupt. What isn't clear is how to reset the I2C bus in this state. Do I generate a STOP to clear the current bus transaction? What state is the I2C logic left in?
Also, it's not clear what happens if the slave device stops sending while the STR750 is in receive mode. There's no AF flag in that case. Is a timer needed for this case?