This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SK-LCD1:SK-AM62B-P1板和 SK-LCD1电容式触摸控制器问题

Guru**** 1788580 points
Other Parts Discussed in Thread: SK-AM62B, SK-LCD1, SK-AM62B-P1
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1388167/sk-lcd1-sk-am62b-p1-board-and-sk-lcd1-cap-touch-controller-problem

器件型号:SK-LCD1
主题中讨论的其他器件: SK-AM62B-P1、SK-AM62B TCA6408

工具与软件:

我们有两套 AM62B-P1板和 SK-LCD1触摸显示套件。  我们可以将图像显示在 SK-LCD1显示屏上、但触摸界面根本无法正常工作。

具体来说、我们无法与 SK-LCD1中的 I2C 触摸控制器进行通信。

从可用文档中、我们将 SK-LCD1中的电容式触控控制器理解为 Ilitek ILI2511。  是这样吗?

如果电容式触控控制器确实是 ILI2511、那么它的 I2C 地址是0x41、对吗?

我们已经验证我们正确地控制了 I2C 控制器的复位引脚、即低电平有效。

我们在 SoC_I2C0 I2C 总线上的地址0x41没有看到任何 I2C 器件。  无论是使用适用于 ILI2511的 Linux 驱动程序来尝试使用触控控制器、还是使用我们自己的 I2C 总线扫描仪例程、都是如此。  我们还尝试对地址0x41进行多次 I2C 访问、但没有看到 I2C ACK 响应。  SK-LCD1的 I2C 总线上的信号电平和质量看起来正常。  此外、SoC_I2C0总线包含 PMIC 和其他 I2C 器件、这些器件均按预期运行。

在调试此问题时、我们搜索了 e2e 论坛、发现关于此主题的信息很少。  AM62B-P1电路板是一款相对较新的电路板、这也就不足为奇了。

非常感谢对这一主题的任何评论或建议。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Fraser、

    我需要几天时间才能回复您。 如果我没有在一周结束前回复、请随意 ping 该主题。

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否有任何有关此问题的更新?

    实际上、是否有人能够将 SK-LCD1与 AM62B-P1用作功能齐全的触摸屏?  我们知道它可以用作显示器。 如果我们知道有人也能使 Touch 功能正常工作、这将会有所帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Fraser、

    谢谢您的 Ping。 您是否参考过此 SDK 文档页面?
    https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/09_02_01_09/exports/docs/linux/How_to_Guides/Target/How_to_enable_Microtips_LVDS_Panel.html

    我测试过这些步骤在过去一年内有助于在我的一个 AM62x EVM 上运行触摸屏、我不记得哪个版本偏离了我的脑海。 按照这些步骤操作后、如果仍然无法正常工作、请告诉我。

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们找到了该 SDK 文档页面、并尝试了列出的步骤。  我们甚至把这些命令放到脚本中。

    当 i2c 触摸驱动程序 启动时、我们会得到以下 dmesg 输出:

    [  5.083571] ili210x_i2c 0-0041:ili251x_read_reg_common 失败:-121
    [5.112247]  ili210x_i2c 0-0041:无法缓存固件信息、错误:-121
    [5.124876]  ili210x_i2c:0-0041的探测器失败、错误为-121

    这表明 AM62x Sitara 无法从触摸屏驱动程序获得响应。

    我们已经查看了连接到 I2C 触控器件的网络的范围。  我们已验证复位线路是否按预期切换以及 I2C 信号是否正常(良好电平、良好的上升/下降时间等)。  但我们未看到 I2C ACK

    我们最好的猜测是显示屏或 EVM 板上有一些需要更改的选项?  或者驱动器中的一些简单更改。  请注意、 相对于其他版本的 AM62 EVM、我们已经考虑了如何重置 AM62B-P1的 I2C 触控硬件方面的更改

    此致、

    Fraser。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Fraser、

    您正在运行哪个版本的 SDK? 我将在下周分享你们的成果。

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    我们使用 ti-processor-sdk-linux-am62xx-EVM-09.02.01.10尝试了该方法、这是相当新的。

    此致、

    Fraser。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Fraser、

    等待... 我听说、触控预计不适用于 SK-AM62B-P1、因为 Linux devicetree 尚未 更新、以反映 SK-AM62B 或 SK-AM62B-P1的 IO 扩展器更改。

    我仍在跟进(例如、是否已将其添加到即将推出的 SDK 10.0/kernel 6.6中?)。 如果我在几天内没有再次回复、请随意 ping 该主题。

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    我们注意到需要更新 Linux devicetree、并认为我们修复了它。 我们还通过将其添加到 k3-am625-sk.dts 中、为扩展器芯片更新了 dts 文件:


    扩展2:GPIO@20{
    兼容="ti、tca6408";
    REG =<0x20>;
    GPIO 控制器;
    #GPIO-CELLS =<2>;
    GPIO 行名称="WLAN_SDIO_RST_3V3"、
    "GPIO_TS_RSTn"、
    "GPIO_AUD_RSTn"、
    "GPIO_eMMC_RSTn";
    };
    然后在面板 dts 文件 arch/arm64/boot/dts/ti/k3-am625-sk-microtips-mf101hie-panel.dtso 中
    MAIN_i2c0{
    #address-cells =<1>;
    #size-cells =<0>;

    触摸屏@41{
    兼容="ilitek、ili251x";
    REG =<0x41>;
    pinctrl-names ="默认值";
    interrupt-parent =<&exp1>;
    中断=<22 IRQ_TYPE_EDGE_FALLING>;
    RESET-GPIO =<&exp2 1 GPIO_ACTIVE_LOW>;  
    };
    };
    我们观察到示波器上的触摸 IC (Ilitek ILI251x)复位线按预期移动、似乎正确。
    还有其他需要做的事情吗?
    此致、
    Fraser。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Fraser、

    这里看起来你的进度好像在我们的团队前面。 我们将尝试为即将推出的 SDK 10.0更新 devicetree 文件、但团队没有时间、因此现在计划为 SDK 10.1更新该文件。

    我对您所做的特定更改没有太多备注、除了一般情况下它们看起来我期望的样子(更改为新型的 GPIO 扩展器、更改为 GPIO@20)。

    还有一点我在上面的帖子中看不到的是、我认为 GPIO 扩展器已移至另一个 I2C 实例、因此也请确保您进行了更新!

    从 Linux 方面运行的步骤方面来说:
    https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/09_02_01_09/exports/docs/linux/How_to_Guides/Target/How_to_enable_Microtips_LVDS_Panel.html

    您不应该对最新的 SK 板执行该页中列出的 i2ctransfer 步骤-基本而言、新的 GPIO 扩展器默认的信号会沿旧 GPIO 扩展器的相反方向拉取、因此无需在触摸屏启动之前手动上下拉取信号。 你应该能够做到  

    # modprobe ili210x 

    然后应该启动触摸屏。

    此致、
    Nick
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    有任何更新吗?  是否对 SDK 10.1的发行版有估算?

    谢谢、

    Fraser。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Fraser、

    SDK 10.0大约在上周发布。

    目前、SDK 10.1没有明确的时间框架。 我预计会在2024年第四季度某个时候、也就是可能是11月或12月。 但是、只要添加了这些代码、更新后的代码就会将其添加到 CICD 版本中、因此代码可能会在 官方 SDK 版本之前出现在此处:
    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/?h=ti-linux-6.6.y-cicd

    之前的建议是否有用、或者触摸屏是否仍然无法正常工作?

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    针对未来读者进行了更新、触摸屏在 SDK 10.0上支持 SK-AM62B 和 SK-AM62B-P1。

    以下是我执行的步骤。 以下是对过时步骤的修改:
    https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/10_00_07_04/exports/docs/linux/How_to_Guides/Target/How_to_enable_Microtips_LVDS_Panel.html 
    我们将确保更新 SDK 10.1的相关文档。

    // STEP 1: load the display devicetree file in uboot
    // note that this setting will be erased on the next boot. To retain
    // this setting across boots, set it in uEnv as discussed at
    // software-dl.ti.com/.../How_to_enable_DT_overlays_in_linux.html
    Hit any key to stop autoboot:  0
    => setenv name_overlays ti/k3-am625-sk-microtips-mf101hie-panel.dtbo
    => boot
    ...
    
    // STEP 2: verify touchscreen does not work on default boot with evtest
    root@am62xx-evm:~# /usr/bin/evtest
    No device specified, trying to scan all of /dev/input/event*
    Available devices:
    /dev/input/event0:      ILI210x Touchscreen
    Select the device event number [0-0]: 0
    // no output happens when I tap the screen
    Ctrl-c to exit
    
    // STEP 3: power cycle the display and reload the display driver
    1) Power off the LVDS board by disconnecting the 12V barrel jack (do not power off the SK EVM).
    2) Run the command: modprobe -r ili210x
    3) Power on the LVDS board
    4) Run the command: modprobe ili210x
    
    // STEP 4: touchscreen is now working
    // validate either by interacting with the touchscreen, or with evtest
    root@am62xx-evm:~# /usr/bin/evtest
    No device specified, trying to scan all of /dev/input/event*
    Available devices:
    /dev/input/event0:      ILI210x Touchscreen
    Select the device event number [0-0]: 0
    Input driver version is 1.0.1
    Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
    Input device name: "ILI210x Touchscreen"
    ...
    Testing ... (interrupt to exit)
    Event: time 360.074264, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
    Event: time 360.074264, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 5621
    Event: time 360.074264, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 9497
    Event: time 360.074264, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 10
    Event: time 360.074264, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
    Event: time 360.074264, type 3 (EV_ABS), code 0 (ABS_X), value 5621
    Event: time 360.074264, type 3 (EV_ABS), code 1 (ABS_Y), value 9497
    Event: time 360.074264, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 10
    Event: time 360.074264, -------------- SYN_REPORT ------------
    Event: time 360.164336, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 5611
    Event: time 360.164336, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 9503
    Event: time 360.164336, type 3 (EV_ABS), code 0 (ABS_X), value 5611
    Event: time 360.164336, type 3 (EV_ABS), code 1 (ABS_Y), value 9503
    Event: time 360.164336, -------------- SYN_REPORT ------------
    Event: time 360.179374, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
    Event: time 360.179374, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
    Event: time 360.179374, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
    Event: time 360.179374, -------------- SYN_REPORT ------------

    此致、

    Nick