| Address | R/W | Name | Description | |---------|-----|------|--------------| | 0x8040 | R | Product ID (first byte) | Usually '9' | | 0x8041 | R | Product ID (second byte) | Usually '1' | | 0x8042 | R | Product ID (third byte) | Usually '1' | | 0x8043 | R | Firmware version | Major/minor | | 0x8044 | R | Resolver version | -- | | 0x8045 | R | Patch version | -- | | 0x8046 - 0x8047 | R | Vendor ID | -- | | 0x8048 - 0x804A | R | LCD X resolution | Bytes: LSB, MSB, reserved | | 0x804B - 0x804D | R | LCD Y resolution | Bytes: LSB, MSB, reserved | | 0x804E | R/W | Config checksum (high) | Used for verification | | 0x804F | R/W | Config checksum (low) | Used for verification | | 0x8050 | R | Number of touch points | 0x00 =no touch, 0x01 - 0x05 | | 0x8051 | R | Gesture ID | 0x00 =none, 0x01 =slide up/down, etc. |
Configures INT pin trigger methods (0 = Rising Edge, 1 = Falling Edge, 2 = Low Level, 3 = High Level). The Configuration Fresh Byte & Checksum
Read 0x814E . If bit 7 is 1, a new touch is available. Read Coordinates: Read data from 0x8150 through 0x815F .
register map is typically divided into three primary functional blocks: GT911 Programming Guide - Orient Display gt911 register map
Stores settings like screen resolution, touch sensitivity, and interrupt triggers. Coordinate Data
After reading the coordinate data, your driver must write a 0x00 back to register 0x814F . If you omit this step, the GT911 will keep Bit 7 locked at 1 and will never update the coordinates again. Touch Point Coordinates Data Structure
The chip periodically updates coordinate data. | Address | R/W | Name | Description
Defines the maximum vertical resolution (e.g., 480 pixels).
Sets the X and Y axis maximum coordinates. For example, a screen can be configured for depending on these values.
Determines the sensitivity required to register a touch. If bit 7 is 1, a new touch is available
— Number of touch points (n) (1 byte).
The register map is divided into functional blocks. Below are the primary addresses you will need for basic driver development.
int X = ( (regs[0x8012] & 0x0F) << 8 ) | regs[0x8011]; int Y = ( (regs[0x8014] & 0x0F) << 8 ) | regs[0x8013];
To write an efficient driver or troubleshoot touch responsiveness, you must understand the GT911 register map. This article provides an in-depth breakdown of the GT911 memory structure, configuration registers, and coordinate status registers. GT911 Memory Architecture Overview
Understanding this map is essential for developers writing custom drivers or troubleshooting touch response issues in embedded systems.