Does SMBus spec lie about I2C


In the SMBus spec it says:

The I²C specifications do not require that a device always acknowledge its own address.
This can confuse a system controller.
If a device does not acknowledge its own address how does the system controller know if it is because the device is busy, has failed, or has been removed?

This sounds a lot like blackening I2C, and I'm not used to see this kind of language in a spec.

Besides, I think SMBus is lying here. In I2C the address byte must be acknowledged just like any other byte. Or must it?

Best Answer

I2C does not support hot swapping so devices should not be removed. And busy devices will not acknowledge.

SMBUS does not lie, it embellished a bit, but it's not a lie. It has specs designed to improve upon actual or perceived faults in I2C.