SNAS678C May 2018 – July 2021 HDC2080
Address registers, which hold data pertaining to the status of the device, can be accessed through a pointer mechanism and can be accessed and modified with the following write and read procedures. The register address value is the first byte transferred after the device slave address byte with the R/W bit low. Every write operation to the HDC2080 requires a value for the register address (refer to Table 8-2).
When reading from the HDC2080, the current pointer location is used to determine which register is read by a read operation -- the pointer location points to the last written register address. To change the address for a read operation, a new value must be written to the pointer. This transaction is accomplished by issuing the slave address byte with the R/W bit set to '0', followed by the pointer byte. No additional data is required (refer to Table 8-4).
The master can then generate a START condition and send the slave address byte with the R/W bit set to 1 to initiate the read command. The address register is incremented automatically to enable the multibyte read and write operation (refer to Table 8-3 and Table 8-5). Note that register bytes are sent MSB first, followed by the LSB. A write operation in a read-only register such as DEVICE ID, MANUFACTURER ID, or SERIAL ID returns a NACK after each data byte. A read or write operation to an unused address returns a NACK after the pointer, and a read or write operation with incorrect I2C address returns a NACK after the I2C address.
|Master||START||Slave address (W)||Address||DATA||STOP|
|Master||START||Slave address (W)||Address||DATA||DATA||………||STOP|
|Master||START||Slave address (W)||Address||Start||Slave address (R)||NACK||STOP|
|Master||START||Slave address (W)||Address||Start||Slave address (R)||ACK||ACK||……||NACK||STOP|