7. I
2
C Interface > Tsi578 as I
2
C Slave
157
Tsi578 User Manual
June 6, 2016
Integrated Device Technology
www.idt.com
7.5.6
Slave Read Data Transactions
An external master is not required to set the peripheral address as part of a read transaction, but can do
so by first writing the peripheral address and then issuing a Restart before writing any data. If not set,
the read data starts wherever the peripheral address pointer was left by the previous transaction.
Because it is possible that another master changed the pointer, it is recommended that the peripheral
address be set at the start of a transaction. Data is returned to the external master from consecutive
bytes within the peripheral address space, with certain exceptions indicated in
There also can be side effects to reading some bytes (see
and the EXI2C register descriptions).
For example, a read that hits the LSB of the
C Internal Read Address Register”
(peripheral address 0x14), also triggers a read from a register on the Tsi578 internal register bus.
7.5.7
Slave Internal Register Accesses
The Tsi578 allows external masters to access all of its internal registers through the externally visible
I
2
C registers.
C Internal Read Data Register”
is a special register in that a read operation to
the first (least significant) byte of this register through the peripheral address space (0x14) triggers the
Tsi578 to perform an internal register read operation using the address in the
Internal Read Address Register”
. When the internal register read operation is completed, the data is
first loaded into the
C Internal Read Data Register”
, then returned to the external
I
2
C master byte by byte. The
C Internal Access Control Register”
controls the
internal register read operations and allows the user to specify when and how the register read is
performed.
C Internal Write Data Register”
triggers the Tsi578 to perform an
internal register write operation using the address in the
. The external device writes data to the
C Internal Write Data Register”
through the peripheral space, and when the last (most significant) byte is written (0x07), the register
contents is written through the internal register bus to the address in the
Internal Write Address Register”
. The
C Internal Access Control Register”
controls the internal register write operation and allows the user to specify when and how the register
write is performed.
Internal register accesses can be prohibited by the processor/host through the RD_EN and WR_EN
fields in the
C Slave Configuration Register”
.
At the completion of a slave transaction that includes a successful read or write to an internal register, a
SA_WRITE or SA_READ interrupt status is updated in the I2C_INT_STAT register. An optional
interrupt can also be sent to the Interrupt Controller if enabled in SA_WRITE and SA_READ of
. This allows the processor/host to be aware that an external device is
accessing the internal registers of the Tsi578.
The address in the register definitions refers to an offset only. The offset must be prefixed
with the block address.