터치 패널 터치 스크린 칩 지식-GSL 1680스토어 가기

터치 패널 터치 스크린 칩 지식-GSL 1680

₩ 860,195 ¥ 4000.0

색상:

  • 1

크기:

수량:
- +
재고:

최소 주문 수량: 1

알리타플은 고객님께서 주문한 물건을 그대로 구매대행 해드립니다.
궁금한 사항이 있으시면 언제든 고객센터로 연락주세요.

1688온라인 사이트에서 검색된 상품입니다. 알리타플에서는 상품검색/현지구매(구매대행)/국제배송 업무만 제공해드립니다. 해당 상품의 품질 및 상태에 대해서는 확인해 드릴 수 없고 해당 물건이 입고가 된 후에 검수과정을 거쳐야 확인이 가능합니다.

상세페이지

GSL1680

 
 
 

GSL1680是一种芯片,旨在为LCD屏幕增加电容式、多触觉功能。用于多种设备。

 

 

GPIO系统

该芯片有四个主引脚与CPU通信:

  • SDA 和 SCL:这两个引脚符合 I2C 总线,允许在芯片和主 CPU 之间交换数据。
  • IOCNTL:此引脚在激活时(逻辑 1)使能芯片,使其能够响应 I2C 命令并读取触摸屏。当处于非活动状态(逻辑 0)时,芯片处于低功耗状态。
  • INT:当有可用数据(按下)或其他情况下(不确定,没有足够的文档)时,此引脚将处于活动状态以向 CPU 发出信号。

Linux 驱动程序

主线内核中有一个驱动程序。

目前,sunxi-3.4 中没有驱动程序,但驱动程序可从多个第三方位置获得:

最终,对此设备的支持在 A23 SDK 中显示为两个不同的驱动程序:

还有一个用户空间驱动程序(它使用 UFILE 系统链接到 INPUT 子系统)可在 https://github.com/rastersoft/gsl1680 上使用。由于它像真正的 INPUT 驱动程序一样工作,因此它与 Xorg 和与鼠标兼容的 Linux 中的任何其他程序完全兼容。该驱动程序的优点是在屏幕上移动两根手指时模拟鼠标滚轮,从而允许使用标准应用程序。它还在用三根手指触摸时模拟 Ctrl+MENU,从而可以与 TabletWM 集成。

I2C 通信

芯片和 CPU 之间的通信使用 I2C 总线完成。GSL1680总是在地址0x40回答。这允许在 Linux 下使用命令来了解我们的设备是否具有GSL1680芯片

   i2cdetect X

其中 X 是介于 0 和我们系统中 I2C 总线数量之间的数字。如果任何总线中的地址0x40处没有设备,则该设备没有GSL1680。

CPU 可以读取或写入多个 8 位寄存器,这些寄存器分配在GSL1680内。每次 I2C 传输开始时,第一个字节包含一个寄存器号,其他字节包含要存储在该寄存器和下一个寄存器中的数据。如果我们发送:

   START(W) 0x10 0x00 0x01 0xF5 0x41 0xFF STOP

芯片将在寄存器0x10中存储一个0x00值;寄存器0x11中的0x01值;寄存器0x12中的0xF5值,依此类推。

要从芯片中读取,只需写入一个带有寄存器号的字节即可开始读取,然后执行与要读取的寄存器一样多的读取。

已知寄存器包括:

  • 0x00-0x7F:这些寄存器用于加载部分固件
  • 0x80:包含屏幕中的触摸次数。如果为零,则用户未触摸屏幕;如果有一根,则只有一根手指在屏幕上;如果有两个,则有两个手指;等等。
  • 0x84-0x87:包含第一次触摸的坐标。
  • 0x88-0x8B:包含第二次触摸的坐标。
  • 0x8C-0xAB:包含第三个、第四个触摸等(在某些设备中最多 5 个,在其他设备中最多 10 个)的坐标,其格式与前一个触摸相同(每次触摸四个字节)。
  • 0xE0:状态寄存器
  • 0xE4,0xBC-0xBF:某种控制寄存器。上传固件和软重置芯片时需要(没有更多关于它们的可用数据)。
  • 0xF0:PAGE注册。包含当前映射在0x00 0x7F寄存器中的内存页码。

触摸坐标格式

每组坐标的四个字节包含 X 和 Y 值,以及手指。

前两个字节以小端格式包含 12 个较低位的 X 坐标。另外两个字节以小端格式包含 12 个较低位的 Y 坐标。

Y 坐标中的 4 位上位包含进行触摸的手指标识符。

例:

假设用户用一根手指触摸屏幕。寄存器0x80将包含 1,寄存器0x84到 0x87 将包含 X 和 Y 坐标,手指标识符将为 1。

现在,用户无需移开第一根手指,而是用第二根手指触摸屏幕。寄存器0x80将包含 2。寄存器0x84到0x87将包含第一次触摸的 X 和 Y 坐标,其中的手指标识符将为 1。寄存器0x88到0x8B将包含第二次触摸的 X 和 Y 坐标,其中的手指标识符将为 2。

现在,用户移除第一根手指,保留第二根手指。寄存器0x80将包含 1。寄存器0x84 0x87将包含 X 和 Y 坐标,但手指标识符将为 2,因为这是保留在屏幕上的手指。

芯片初始化

驱动程序显示了一个非常晦涩的初始化过程:

  • 启用芯片(将 IOCTNL 设置为 1)
  • 复位芯片(稍后解释)
  • 上传固件(稍后解释)
  • 启动芯片(将 STATUS 寄存器设置为 0)
  • 复位芯片
  • 禁用芯片(将 IOCTNL 设置为 0)
  • 等待 50 毫秒
  • 启用芯片(将 IOCTNL 设置为 1)
  • 等待 30 毫秒
  • 禁用芯片(将 IOCTNL 设置为 0)
  • 等待 5 ms
  • 启用芯片(将 IOCTNL 设置为 1)
  • 等待 20 ms
  • 复位芯片
  • 启动芯片(将 STATUS 寄存器设置为 0)

完成此过程后,芯片将开始读取触摸并发送事件。

要按照上一过程中的要求重置芯片,请按照以下步骤操作:

  • 将 STATUS 寄存器设置为 0x88
  • 等待 10 毫秒
  • 将寄存器0xE4设置为0x04
  • 等待 10 毫秒
  • 将寄存器设置为0xBC-0xBF 0x00
  • 等待 10 毫秒。

固件

该芯片需要加载固件才能工作。此固件似乎特定于每个设备型号,因此必须在您的设备中找到它。在 Szenio 1207 平板电脑中,这些文件位于 /system/etc 中。

有时固件包含在驱动程序模块文件中,例如:/system/vendor/modules/gslx680.ko

要提取固件,您可以使用fw_extractor或从寄存器序列中手动找到它并将其 dd 出来。


用户空间驱动程序支持固件的二进制格式或纯文本格式。在后一种情况下,它被划分为块,每个块的最大大小为 128 字节。每个区块必须存储在不同的页面中。下面是一个块的示例:

   {0xf0,0x3},
   {0x00,0xa5a5ffc0},
   {0x04,0x00000000},
   {0x08,0xe810c4e1},
   {0x0c,0xd3dd7f4d},
   {0x10,0xd7c56634},
   {0x14,0xe3505a2a},
   {0x18,0x514d494f},
   {0x1c,0x5836e48b},
   {0x20,0x00000000},
   {0x24,0x00000000},
   {0x28,0x00000000},
   {0x2c,0x00000000},
   {0x30,0x00001000},
   {0x34,0x00000000},
   {0x38,0x00000000},
   {0x3c,0x00000000},
   {0x40,0x00000001},
   {0x44,0x00000000},
   {0x48,0x00000000},
   {0x4c,0x00000000},
   {0x50,0x00000000},
   {0x54,0x01020304},
   {0x58,0x05060708},
   {0x5c,0x090a0b0c},
   {0x60,0x0d0e0e0f},
   {0x64,0x10111213},
   {0x68,0x14151617},
   {0x6c,0x18191a1b},
   {0x70,0x1b1c1e1f},
   {0x74,0x00000000},
   {0x78,0x00010000},
   {0x7c,0x8c846af3},

每行包含一对元素。第一个是必须存储数据的寄存器编号;第二个是数据本身。

第一行有0xF0作为寄存器编号。这是PAGE寄存器。此行指定必须存储此块的页面。在此示例中,它是页码0x03。

其他 32 行包含固件本身,前面是每个 4 字节值的偏移量。在此示例中,我们的代码必须将0xC0写入寄存器0x00;0xFF进入登记册0x01;0xA5到寄存器0x02中,然后再次0x05到寄存器0x03中(请记住,ARM 中的值以 little endian 格式存储)。由于0x03存储在PAGE寄存器中,因此寄存器0x00映射到存储器中的位置0x180,寄存器0x01映射到位置0x181,依此类推。

由于发送多个字节将它们存储在相关寄存器中,因此理论上代码只需将0x00设置为目标寄存器,并在一次传输中发送该块的所有字节。不幸的是,I2C 传输的大小通常有限制,因此建议不要构建非常大的数据包,而是将每个块分成较小的部分发送。

상호: 주식회사 와이지넷코리아 (YOUNG GROUP NET KOREA CO., LTD.)    대표: 주용규    사업자등록번호: 223-81-14426    통신판매업신고번호: 제 2015-서울강남-02499호
우편번호 : 07505    서울시 강서구 하늘길210 김포국제공항 구화물청사 4번GATE 361-4호   
TEL:(배송확인) 070-5001-0885    (업무상담) 070-4337-1714    업무제휴문의:ygnkorea@gmail.com

웨이하이센터상호: 威海韩运国际贸易有限公司 法定代表人: 朱 勇奎 统一社会信用代码: 91371000MA3U6XGW6N 进出口: 37109409C6
(264200) 山东省 / 威海市 / 环翠区 / 西苑街道 / 贝卡尔特路91-2号 / 威广物流园西门 / 韩运国际贸易 TAPL
TEL : +86) 0631- 598 -1400    FAX : +86) 0631- 598 -1144
TAPL Hanyun International Trade , West Gate of Weihai Logistics Park, Bekart Road-91, Xiyuan Street, Huancui District, Weihai City, Shandong Province,CHINA (ZIPCODE 264200)
Copyright© 2023-2024 alitapl.com All Rights Reserved