ADV7189B
Rev. B | Page 62 of 104
REGISTER ACCESSES
The MPU can write to or read from most of the ADV7189B’s
registers, excepting the registers that are read-only or write-
only. The subaddress register determines which register the next
read or write operation accesses. All communications with the
part through the bus start with an access to the subaddress
register. Then, a read/write operation is performed from/to the
target address, which then increments to the next address until
a stop command on the bus is performed.
REGISTER PROGRAMMING
This section describes the configuration of each register. The
communications register is an 8-bit, write-only register. After
the part has been accessed over the bus and a read/write opera-
tion is selected, the subaddress is set up. The subaddress register
determines to/from which register the operation takes place.
258H
Table 82 lists the various operations under the control of the
Subaddress register for the control port.
Register Select (SR7–SR0)
These bits are set up to point to the required starting address.
I2C SEQUENCER
An I2C sequencer is used when a parameter exceeds eight bits,
and is therefore distributed over two or more I2C registers, for
example, HSB[11:0].
When such a parameter is changed using two or more I2C write
operations, the parameter can hold an invalid value for the time
between the first I2C being completed and the last I2C being
completed. In other words, the top bits of the parameter can
already hold the new value while the remaining bits of the
parameter still hold the previous value.
To avoid this problem, the I2C sequencer holds the already
updated bits of the parameter in local memory; all bits of the
parameter are updated together once the last register write
operation has completed.
The correct operation of the I2C sequencer relies on the
following:
All I2C registers for the parameter in question must be
written to in order of ascending addresses. For example, for
HSB[10:0], write to Address 0x34 first followed by 0x35.
No other I2C taking place between the two (or more) I2C
writes for the sequence. For example, for HSB[10:0], write
to Address 0x34 first immediately followed by 0x35.