> For the complete documentation index, see [llms.txt](https://inacks.gitbook.io/inacks-is3720-i2c-dmx+rdm-receiver-ic/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://inacks.gitbook.io/inacks-is3720-i2c-dmx+rdm-receiver-ic/datasheet/i2c-description/single-byte-read.md).

# Single Byte Read

> This page is not the authoritative source for design information. The official [IS3720 datasheet](https://www.inacks.com/is3720) published on [www.inacks.com](http://www.inacks.com) is the authoritative reference: always consult it for the latest information.

Reading a single byte is an action performed by your microcontroller (I2C-master) to access any register within the IS3720 memory map (I2C-slave), regardless of the last read position. To perform this action, your microcontroller must load the address of the register to be read into the IS3720's pointer register. Once the address is set, the microcontroller can retrieve the data from the specified register.

To initiate the Single Byte Read operation, the following steps must be performed from the beginning: your microcontroller starts by pulling SDA low while SCL is high to generate a Start Condition. It then sends the IS3720 I2C device slave address 22 with the R/W bit set to 0 (write). Upon receiving the device address, the IS3720 acknowledges it. Subsequently, your microcontroller sends the two bytes of the pointer register address: the most significant byte first, followed by the less significant byte, each acknowledged by the IS3720. This sets the address of the next register to be read in the pointer register.

Next, the content of the pointer register needs to be read.

Your microcontroller generates a Repeated Start Condition, followed by the IS3720 I2C device address 22 with the R/W bit set to 1 (read), instructing the IS3720 to retrieve data. The IS3720 acknowledges and responds with the data, which your microcontroller does not acknowledge (NACK). Finally, the microcontroller issues a Stop Condition by raising the SDA line while the SCL is high.

Invalid Memory Addressing

The valid memory range of the IS3720 goes from addresses 0 to 631. If a Single Byte Read operation is performed with a pointer register higher than 631, the read result will be 0xFF.

<figure><img src="https://4031855160-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMR1I6AmpcBW5WamvgJ4O%2Fuploads%2F6CNI8SVa9ywATfOdWapz%2FEvadrw0144A.png?alt=media&amp;token=ce671a8d-a0ae-4ad6-82c0-61feba1b7511" alt=""><figcaption></figcaption></figure>
