First, perform a dummy write of the 16-bit address you want to read from. Then, issue a restart condition and read the data. Auto-Increment:
For those unfamiliar with the GT911, the register map is a crucial component that defines the chip's configuration and behavior. It's essentially a table that maps addresses to specific functions, allowing the host processor to communicate with the chip. The GT911 register map is divided into several sections, including the configuration registers, data registers, and status registers.
Goodix does not publicly release complete datasheets. However, the community has reverse-engineered nearly everything. For a full reference: gt911 register map
The GT911 register map is structured into functional blocks based on memory addresses: Address Range Description Configuration Registers Sets touch threshold, screen resolution, and refresh rate. 0x8140 – 0x8140 Command Register Used to trigger soft resets or change operating modes. 0x814E – 0x814E Touch Status
Set INT pin Low during Reset.
— Refresh/config load control & checksum.
The GT911 is a popular capacitive touchscreen controller manufactured by Goodix. It is widely used in embedded systems, Android tablets, and DIY electronics projects featuring microcontrollers like ESP32, STM32, and Arduino. To communicate effectively with this chip over I2C, developers must understand its register map. First, perform a dummy write of the 16-bit
If your design shares I2C bus with other peripherals, note that GT911 does not support clock stretching. Ensure that all devices on the bus respect timing constraints to avoid communication conflicts.