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?

  • \$\begingroup\$ A less contentious way to phrase this question would be just to ask about the required acknowledgement of the address byte up front. This may get clearer answers. \$\endgroup\$ – caveman Feb 8 '15 at 16:51

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.

| improve this answer | |
  • \$\begingroup\$ It doesn't even appear to be an embellishment. If a device is not required to ack its address when busy, the statement is factual. \$\endgroup\$ – caveman Feb 8 '15 at 16:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.