ZHCS766A February 2012 – December 2021 INA230
PRODUCTION DATA
Accessing a specific register on the INA230 is accomplished by writing the appropriate value to the register pointer. Refer to Section 8.6 for a complete list of registers and corresponding addresses. The value for the register pointer (see Figure 8-7) is the first byte transferred after the target address byte with the R/W bit low. Every write operation to the device requires a value for the register pointer.
Writing to a register begins with the first byte transmitted by the controller. This byte is the target address, with the R/W bit low. The device then acknowledges receipt of a valid address. The next byte transmitted by the controller is the address of the register to be accessed. This register address value updates the register pointer to the desired internal device register. The next two bytes are written to the register addressed by the register pointer. The device acknowledges receipt of each data byte. The controller may terminate data transfer by generating a start or stop condition.
When reading from the device, the last value stored in the register pointer by a write operation determines which register is read during a read operation. To change the register pointer for a read operation, a new value must be written to the register pointer. This write is accomplished by issuing a target address byte with the R/W bit low, followed by the register pointer byte. No additional data are required. The controller then generates a start condition and sends the address byte for the target with the R/W bit high to initiate the read command. The next byte is transmitted by the target and is the most significant byte of the register indicated by the register pointer. This byte is followed by an Acknowledge from the controller, then the target transmits the least significant byte. The controller may or may not acknowledge receipt of the second data byte. The controller may terminate data transfer by generating a Not-Acknowledge after receiving any data byte, or generating a start or stop condition. If repeated reads from the same register are desired, it is not necessary to continually send the register pointer bytes; the device retains the register pointer value until it is changed by the next write operation.
Figure 8-4 shows the write operation timing diagram. Figure 8-5 shows the read operation timing diagram. These diagrams are shown for reading/writing to 16-bit registers.
Register bytes are sent most-significant byte first, followed by the least significant byte.
(1) The value of the Target Address byte is determined by the setting of the address pins. Refer to Table 8-2.
(2) The device does not support packet error checking (PEC) or perform clock stretching.
(1) The value of the Target Address byte is determined by the setting of the address pins. Refer to Table 8-2.
(2) Read data is from the last register pointer location. If a new register is desired, the register pointer must be updated. See Figure 8-7.
(3) ACK by the controller can also be sent.
(4) The device does not support packet error checking (PEC) or perform clock stretching.
Figure 8-6 shows the timing diagram for the SMBus Alert response operation. Figure 8-7 shows a typical register pointer configuration.
(1) The value of the Target Address byte is determined by the setting of the address pins. Refer to Table 8-2.
(1) The value of the Target Address byte is determined by the setting of the address pins. Refer to Table 8-2.