Based on the state of the host controller
readiness and due to the fact that there are
multiple devices on the bus, the IBI generation
and arbitration must follow some rules, as
described below. All of these conditions assume
that the bus has been inactive for
tAVAL period.
- When the host controller
starts a write or read with IBI header, TMP139
shall start driving its own address on the bus.
The host on seeing a value other than the IBI
header shall no longer drive the SDA, allowing the
TMP139 to transmit its device header along with
R/W bit set to 1.
- If the host controller can
accept the IBI from the device, it shall ACK the
device address, release the bus on the falling
edge of SCL and shall accept the bytes sent by the
TMP139.
- If the host controller cannot
accept the IBI from the device, it shall NACK the
device address and issue a Stop condition on the
bus. The TMP139 shall retry another IBI only after
tAVAL period.
- When the host controller
starts a write or read without an IBI header to a
device on the bus which has a lower device address
than the TMP139, the device on detecting a
mismatch, shall no longer participate on the bus
and retry another IBI only after tAVAL
period.
- When the host controller
starts a write or read without an IBI header to a
device on the bus which has a higher device
address than the TMP139, the device wins the bus
arbitration and the host shall no longer
participate on the bus. The host may accept the
IBI by sending an ACK or disregard the IBI by
sending a NACK. In the latter case, TMP139 shall
retry another IBI only after tAVAL
period.
- When the host controller
starts a write or read transaction without an IBI
header to the TMP139 which is also requesting an
IBI, either the host or TMP139 can win.
- If the host controller starts
a write transaction, then it shall win the bus
arbitration and the TMP139 shall let go of the
bus. The TMP139 shall retry another IBI only after
tAVAL period.
- If the host controller starts
a read transaction, then all the bits shall match.
However at this point the host is expecting an ACK
from the TMP139 for the read request, while the
TMP139 is waiting for an ACK from the host for the
IBI. As a result there shall be a NACK on the bus.
In such a case, the TMP139 shall retry the IBI
only after tAVAL period. However if the
host issues start (or Repeated Start) and attempts
the read transaction before the tAVAL
period, it shall get an ACK from the TMP139 and
the host read shall win the arbitration on the
bus.
- As described above, in the
case when there are multiple devices initiating an
IBI at the same time, the device which has the
lowest device address shall win the bus
arbitration and the TMP139 when it detects a loss
on the bus arbitration, shall retry another IBI
only after tAVAL period