spi电容触摸屏驱动移植记录 Orangepi3B 香橙派3B

在这里插入图片描述

spi触摸屏幕驱动(orangepi3b ili9341 ft6336u)

spi触摸屏幕驱动(orangepi3b ili9341 ft6336u)请结合香橙派官方手册接线,外设开启操作及编译部署内核

显示部分(ili9341)

设备树overlay

编写dtbs文件再编译成dtbo文件,放置在/boot/dtb/overlay文件夹(好像有两个文件夹,一个带了平台的后缀,我两个都添加),注意命名要与已有文件前缀相同,例如rk356x-…(例如rk356x-ili9341.dtbo)

/dts-v1/;
/plugin/;

/ {
    compatible =  "rockchip,rk3566-orangepi-3b", "rockchip,rk3566";

    fragment@0 {
        target = <&spi3>;
        __overlay__ {
            status = "okay";
            cs-gpios = <&gpio4 6 0>;
            pinctrl-names = "default";
            pinctrl-0 = <&spi3m0_pins>;
            #address-cells = <1>;
            #size-cells = <0>;

            ili9341: ili9341@0 {
                compatible = "ilitek,ili9341";
                reg = <0>;
                spi-max-frequency = <32000000>;
                spi-cpol;
                spi-cpha;

				
                rotate = <270>;
                fps = <30>;
                buswidth = <8>;
                bgr;
                dc-gpios = <&gpio4 1 0>;
                reset-gpios = <&gpio4 4 1>;
                led-gpios   = <&gpio3 23 0>;

                
            };
        };
    };
};
  • 注意:
  1. 更据设备需要修改内核源码,编译内核移植。具体参考官方手册例如,香橙派有相关的工具及步骤。
  2. 此次屏幕显示出现反色问题,当设备出现问题时首先询问客服最高效,客服说明是21寄存器未写入导致ips视角出现问题,需要修改内核源码。
    在这里插入图片描述

触摸部分(ft6336u)

参考链接 https://www.saisaiwa.com/archives/tspi-nas-tft
内核中已经有了focaltech touchscreen的驱动可以直接拿来使用可跟据香橙派官方手册编译内核部分查看是否开启focaltech touchscreen 默认似乎是开启的
同时打开i2c2的外设通道(针对本次实验)设备树overlay

/dts-v1/;
/plugin/;

/ {
    compatible = "rockchip,rk3566-orangepi-3b", "rockchip,rk3566";

    fragment@0 {
        target = <&i2c2>;
        __overlay__ {
            status = "okay";

            ft6336: touchscreen@38 {
                compatible = "focaltech,fts";
                reg = <0x38>;

                interrupt-parent = <&gpio3>;
                interrupts = <22 0x00000001>; //下降沿触发

                focaltech,reset-gpio = <&gpio4 0 1>;
                focaltech,irq-gpio = <&gpio3 22 0>;

                focaltech,max-touch-number = <1>;
                focaltech,display-coords = <0 0 320 240>;
				
                status = "okay";
            };
        };
    };
};
  • 注意:
  • 1 .默认是竖屏触摸,转换为横屏时需要修改内核源码(源码内容如下)
  • 2 .使用evtest测试触摸
    在这里插入图片描述
    不同的屏幕设备树里的配置可能不同,这里只能提供大体步骤参考

接线
在这里插入图片描述

蓝色显示,橙色触摸
<&gpio4 0 1> —> GPIO4 A0 低电平
A, B, C, D… —> 0, 1, 2, 3…
A0 = 0 * 8 + 0 =0
B3 = B * 8 + 3 = 1 * 8 + 3 = 11

后期做了lvgl与ros结合的demo,由于小spi屏幕本来想用qt做的但是触摸的实现很棘手,所以直接使用lvgl移植到linux,可以实现通过ros控制lvgl切换gif动画表情用于交互也可以实现lvgl ui界面设置做ros相关的控制
详细教程及即开即用的ros功能包欢迎订阅专栏,保持更新探索ros与lvgl结合在spi小触摸屏幕应用更多玩法

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值