当前位置: 首页 > news >正文

立创·泰山派RK3566开发板调试MIPI LCD

一、说明

        给泰山派开发板配一块5.5寸的液晶屏,分辨率1080p,接口mipi 5lane。泰山派开发板上有lcd mipi接口,不过与要使用的5.5寸lcd的接口不兼容,所以硬件部分需要设计一块转接板,代码部分需要添加液晶的初始化指令。使用安卓sdk。

LCD参数:

型号:AML055T012A(阿美林电子)。

触屏驱动IC:GT911。

视频讲解:

20分钟速通泰山派MIPI屏

二、转接板

1、电路图

连接泰山派,包含触屏和液晶:

连接液晶屏,由于触屏的IO电平是1.8V,开发板的触屏接口的IO电平是3.3V,所以使用TXS0104EPWR芯片做了电平转换。

2、PCB

单面布局,MIPI信号线采用差分等长走线,误差10mil。

 
3、开发板电路调整

开发板的液晶背光驱动电路为恒流驱动,设定电路为110mA,而当前所用液晶驱动电流仅为40mA,所以需要修改FB所接的反馈电阻R95、R96,改为两个10欧姆, 驱动电流计算公式:IOUT=0.2V/R。

三、sdk下载及编译

官方教程:2. SDK编译 | 立创开发板技术文档中心

四、修改设备树文件

1、创建lcd设备上头文件

        tspi-rk3566-dsi-v10.dtsi此头文件中包含了几款mipi lcd的配置参数,并且包含了背光配合和触屏接口配置,可以在此文件中增加新屏的配置参数,也可以新建一个头文件。这里使用新建一个头文件的方式,拷贝tspi-rk3566-dsi-v10.dtsi并重命名为tspi-rk3566-dsi-aml055t012a-v10.dtsi,删除里面多余的屏的配置参数。

2、添加lcd初始化命令

lcd厂家会提供初始化命令代码:

//Set_EXTC
SSD2805_Gen_write(0xB9,3,0xFF,0x83,0x99);//Set_D2
SSD2805_Gen_write(0xD2,1,0x77);//Set_power
SSD2805_Gen_write(0xB1,15,0x02,0x04,0x74,0x94,0x01,0x32,0x33,0x11,0x11,0xAB,0x4D,0x56,0x73,0x02,0x02);//Set_display
SSD2805_Gen_write(0xB2,15,0x00,0x80,0x80,0xAE,0x05,0x07,0x5A,0x11,0x00,0x00,0x10,0x1E,0x70,0x03,0xD4);//Display_on
SSD2805_Gen_write(0x29,0,0x00);
Delay(20);

 将其转化为rockchip格式的命令,命令格式如下:

15 00 02 80 77
|  |  | |  |
|  |  | |  数据
|  |  | | 寄存器地址
|  |  数据长度
|  延时
命令类型(0x05: 单字节数据 0x15: 双字节数据 0x39: 多字节数据)解析:
Data Type:0x15       ( 0x15格式的数据类型 DCS Short Write, 1 parameter)
Delay:0x00           ( 延时,表示当前 Packet 发送完成之后,需要延时多少 ms,再开始发送下一条命令 )
Payload Length:0x02  ( Packet 的有效负载长度为2 Bytes,数据字节个数为2 )
Payload: 0x80 0x77    ( Payload 数据 )

 举例:

SSD2805_Gen_write(0xB9,3,0xFF,0x83,0x99)表示向0xB9寄存器写三个参数,指令为39 00 04 B9 FF 83 99;

 SSD2805_Gen_write(0xD2,1,0x77)表示向0xD2寄存器写一个参数,指令为15 00 02 D2 77;

SSD2805_Gen_write(0x11,0,0x00);Delay(20)表示写入一个命令,没有参数,并延时20ms,指令为05 14 01 11;

3、添加lcd时序配置

lcd厂家会提供如下时序图

转换为配置参数

disp_timings1: display-timings {native-mode = <&dsi1_timing0>;dsi1_timing0: timing0 {clock-frequency = <115000000>;hactive = <1080>;   //与 LCDTiming.HAdr 对应vactive = <1920>;   //与 LCDTiming.VAdr 对应hfront-porch = <14>;   //与 LCDTiming.HFP 对应 hsync-len = <16>;   //与 LCDTiming.Hsync 对应hback-porch = <16>;   //与 LCDTiming.HBP 对应vfront-porch = <12>;   //与 LCDTiming.VFP 对应vsync-len = <4>;   //与 LCDTiming.Vsync 对应vback-porch = <3>;   //与 LCDTiming.VBP 对应hsync-active = <0>;vsync-active = <0>;de-active = <0>;pixelclk-active = <0>;};
};
4、包含mipi lcd设备树头文件

需要在设备树文件中增加mipi lcd的配置。泰山派开发板所使用的设备树文件为

tspi_android_sdk\kernel\arch\arm64\boot\dts\rockchip\tspi-rk3566-user-v10.dts。

HDMI显示开启关闭都行,不会影响LCD显示。

五、触屏驱动

sdk默认支持GT911触屏驱动,并且tspi-rk3566-dsi-v10.dtsi文件中配置的分辨率为1080p,所用不用做修改。

六、重新编译内核

sdk执行了一次全编译之后,执行以下命令重新编译内核:

cd kernel
make ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3566_tspi/boot.img tspi-rk3566-user-v10.img -j72

如果没有执行全编译, 执行以下命令重新编译内核:

cd kernel
make ARCH=arm64 tspi_defconfig rk356x_evb.config android-11.config && make ARCH=arm64 tspi-rk3566-user-v10.img -j16

六、烧录 

将tspi_android_sdk\kernel\boot.img烧写到0x0000C800的地址即可。

七、调试效果

立创泰山派驱动5.5寸1080p mipi液晶

相关文章:

  • 自已实现一个远程打印方案 解决小程序或APP在外面控制本地电脑打印实现
  • 停止回答 docker启动redis
  • 青少年编程与数学 02-016 Python数据结构与算法 26课题、生物信息学算法
  • XC6SLX100T-2FGG484I 赛灵思 XilinxFPGA Spartan-6
  • 抽样信号——Sa函数sinc函数
  • java聊天室案例改进(建立与数据库的连接)
  • Chrome漏洞可窃取数据并获得未经授权的访问权限
  • rac环境下,增加一个控制文件controlfile
  • 从技术本质到未来演进:全方位解读Web的过去、现在与未来
  • Git完全指南:从入门到精通版本控制 ------- Git Flow(10)
  • TDengine 语言连接器(PHP)
  • 用 MongoIndexStore 实现对话存档和恢复 实现“多用户、多对话线程”场景(像一个 ChatGPT 对话列表那样)
  • 什么是分布式锁?
  • java + spring boot + mybatis 通过时间段进行查询
  • 微信小程序文字混合、填充动画有效果图
  • Linux网络协议栈深度解析:从数据封装到子网划分的底层架构
  • 第二篇:linux之Xshell使用及相关linux操作
  • 「数据可视化 D3系列」入门第六章:比例尺的使用
  • 数据结构-栈
  • WebSocket 实现数据实时推送原理
  • 澳大利亚首例“漂绿”诉讼开庭:能源巨头因“碳中和”承诺遭起诉
  • 博柏利上财年营收下降17%,计划裁员1700人助推股价涨超18%
  • 沧州制造展现硬核实力:管道装备支撑大国基建,核电锚栓实现国产
  • 杭勇已任常州市政协党组成员,此前任常州市委常委、秘书长
  • 学者的“好运气”:读本尼迪克特·安德森《椰壳碗外的人生》
  • 茅台1935今年动销达到预期,暂无赴港上市计划!茅台业绩会回应多个热点