薪火相传 发表于 2022-11-1 15:08:06

gt911寄存器配置

本帖最后由 薪火相传 于 2022-11-1 15:09 编辑

液晶屏像素800x480,触摸IC为gt911,i2c通信是正常的,但是配置完寄存器参数,中断后读取的坐标相差太多,有些地方触摸都没有中断,崩溃:L,哪位大佬帮忙看一下
寄存器配置表是参考论坛里gt811的(https://www.armbbs.cn/forum.php? ... 166&highlight=gt911),只是修改了一些参数,写完配置后读取的数据是一样,说明是修改成功的

寄存器配置
static uint8_t gt9x_cfg_tab[] = {
      0X00, //0x8047 版本号
      0x20,0x03, //0x8048/8049 X坐标输出最大值800(0x320)
      0xe0,0x01, //0x804a/804b Y坐标输出最大值480 (0x1e0)
      0x01, //0x804c 输出触点个数上限
      0x01, //0x804d XY不交换坐标 下降沿触发
      0x00, //0x804e reserved
   
      0x02, //0x804f 手指按下去抖动次数
      0x08, //0x8050 原始坐标窗口滤波值
      0x28, //0x8051 大面积触点个数
      0x0A, //0x8052 噪声消除值
      0x5A, //0x8053 屏上触摸点从无到有的阈值
      0x46, //0x8054 屏上触摸点从有到无的阈值
      0x03, //0x8055 进低功耗时间 s
      0x05, //0x8056 坐标上报率
   
      0x00, //0x8057 X坐标输出门上限
      0x00, //0x8058 Y坐标输出门上限
      0x00,0X00, //0x8059-0x805a reserved
      0x00, //0x805b reserved
      0x00, //0x805c reserved
      0x00, //0x805d 划线过程中小filter设置
      0x18, //0x805e 拉伸区间 1 系数
   
      0x1A, //0x805f 拉伸区间 2 系数
      0x1E, //0x8060 拉伸区间 3 系数
      0x14, //0x8061 各拉伸区间基数
      0x8C, //0x8062 、、
      0x28, //0x8063 、、
      0x0C, //0x8064 、、
      0x71, //0x8065 驱动组A的驱动频率倍频系数
      0x73, //0x8066 驱动组B的驱动频率倍频系数
   
      0xB2, //0x8067 驱动组A、B的基频
      0x04, //0x8068
      0x00, //0x8069 相邻两次驱动信号输出时间间隔
      0x00, //0x806a
      0x00, //0x806b 、、
      0x02, //0x806c 、、
      0x03, //0x806d 原始值放大系数
      0x1D, //0x806e 、、
   
      0x00, //0x806f reserved
      0x01, //0x8070 、、
      0x00,0x00, //reserved
      0x00, //0x8073 、、
      0x00,0x00,0x00,
   
    0x00,0x00,0x00, //0x8071 - 0x8079 reserved
      0x50, //0x807a 跳频范围的起点频率
      0xA0, //0x807b 跳频范围的终点频率
      0x94, //0x807c 多次噪声检测后确定噪声量,1-63有效
      0xD5, //0x807d 噪声检测超时时间
      0x02, //0x807e 、、
   
      0x07, //0x807f 判别有干扰的门限
      0x00,0x00, //0x8081 reserved
      0x04, //0x8082 跳频检测区间频段1中心点基频(适用于驱动A、B)
      0xA4, //0x8083
      0x55, //0x8084 跳频检测区间频段1中心点倍频系数
      0x00, //0x8085 跳频检测区间频段2中心点基频(驱动A、B在此基础上换算)
      0x91, //0x8086
   
      0x62, //0x8087 跳频检测区间频段2中心点倍频系数
      0x00, //0x8088 跳频检测区间频段3中心点基频(适用于驱动A、B)
      0x80, //0x8089
      0x71, //0x808a 跳频检测区间频段3中心点倍频系数
      0x00, //0x808b 跳频检测区间频段4中心点基频(适用于驱动A、B)
      0x71, //0x808c
      0x82, //0x808d 跳频检测区间频段4中心点倍频系数
      0x00, //0x808e 跳频检测区间频段5中心点基频(适用于驱动A、B)
   
      0x65, //0x808f
      0x95, //0x8090 跳频检测区间频段5中心点倍频系数
      0x00, 0x65, //reserved
      0x00, //0x8093 key1位置 0:无按键
      0x00, //0x8094 key2位置 0:无按键
      0x00, //0x8095 key3位置 0:无按键
      0x00, //0x8096 key4位置 0:无按键
   
      0x00, //0x8097 reserved
      0x00, //0x8098 reserved
      0x00, //0x8099 reserved
      0x00, //0x809a reserved
      0x00, //0x809b reserved
      0x00, //0x809c reserved
      0x00,0x00,
   
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   
    0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,
   
    0x00,0x00,0x00,0x00, //0x809d-0x80b2 reserved
      0x00, //0x80b3 合框距离
      0x00, //0x80b4
      0x00,0x00, //0x80b6 reserved
   
      0x06, //0x80b7
      0x08, //0x80b8
      0x0A, //0x80b9
      0x0C, //0x80ba
      0x0E, //0x80bb
      0x10, //0x80bc
      0x12, //0x80bd
      0x14, //0x80be
   
      0x16, //0x80bf
      0x18, //0x80c0
      0x1A, //0x80c1
      0x1C, //0x80c2
      0xFF, //0x80c3
      0xFF, //0x80c4
      0x00,0x00,
   
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   
    0x00,0x00,
      0x00,0x00,0x00 ,
    0x00, //0x80c5-0x80d4 reserved
      0x00, //0x80d5
      0x02, //0x80d6
   
      0x04, //0x80d7
      0x06, //0x80d8
      0x08, //0x80d9
      0x0A, //0x80da
      0x0C, //0x80db
      0x0F, //0x80dc
      0x10, //0x80dd
      0x12, //0x80de
   
      0x13, //0x80df
      0x14, //0x80e0
      0x16, //0x80e1
      0x18, //0x80e2
      0x1C, //0x80e3
      0x1D, //0x80e4
      0x1E, //0x80e5
      0x1F, //0x80e6
   
      0x20, //0x80e7
      0x21, //0x80e8
      0xFF, //0x80e9
      0xFF, //0x80ea
      0xFF, //0x80eb
      0xFF, //0x80ec
      0xFF, //0x80ed
      0xFF, //0x80ee
      0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00, //0x80ef-0x80fe reserved
   
//      0x0B, //0x80ff 配置信息校验
//      0x01 //0x8100 配置以更新标记
};


更新参数
static bool gt9x_update_cfg(void)
{
    uint8_t buf;
    uint8_t i = 0;

    bool ret;

    ret = gt9x_write_regs(GT9x_CFGS, gt9x_cfg_tab, sizeof(gt9x_cfg_tab));
    if (ret == false) /* send config */
    {
      gt9x_debug("send config failed\n");
      return false;
    }
    buf = 0;
    for (i = 0; i < sizeof(gt9x_cfg_tab); i++)
      buf += gt9x_cfg_tab;
    buf = (~buf) + 1;
    buf = 1;
    ret = gt9x_write_regs(GT9x_CHECK, buf, 2);
    if (ret == false) /* send config */
    {
      gt9x_debug("send config failed\n");
      return false;
    }
    for (uint32_t i = 0; i < CyclesPerUs*1000*10; i++)
      __NOP();

    return true;
}





eric2013 发表于 2022-11-1 16:38:33

测试下是不是垂直翻转,水平翻转之类的问题。

薪火相传 发表于 2022-11-2 09:09:02

eric2013 发表于 2022-11-1 16:38
测试下是不是垂直翻转,水平翻转之类的问题。

直接跟原厂要了个配置表,现在可以了:lol

eric2013 发表于 2022-11-2 09:55:33

薪火相传 发表于 2022-11-2 09:09
直接跟原厂要了个配置表,现在可以了

{:8:}

可以的话,也分享下,方便其他群友看

lg676041036 发表于 2022-11-6 19:56:42

分享也没用,不同的屏配置表不一样,除了分辨率其它最好别动,出厂前触屏厂会调试好参数的。我就吃过这亏。分辨率都可以不动读出来乘倍率也可以。

eric2013 发表于 2022-11-7 09:28:45

lg676041036 发表于 2022-11-6 19:56
分享也没用,不同的屏配置表不一样,除了分辨率其它最好别动,出厂前触屏厂会调试好参数的。我就吃过这亏。 ...

很有意义,我们早期的GT811就是我们魔改的,单独购置的GT811芯片。

现在到了GT911后,发现使用一体屏更划算,比单独买芯片划算,所以现在就没有用这种方式了。

lyj41801 发表于 2023-11-2 15:15:51

你好,可以把这个配置文件分享我一下嘛,我也遇到了这个问题。

eric2013 发表于 2023-11-2 18:21:47

lyj41801 发表于 2023-11-2 15:15
你好,可以把这个配置文件分享我一下嘛,我也遇到了这个问题。

https://github.com/goodix/gt9xx_driver_android
页: [1]
查看完整版本: gt911寄存器配置