立创·泰山派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液晶