玩转移远SC60 Android开发板------(1)LCD

最近拿到了一块移远的SC60开发板,先上图:在这里插入图片描述

SC60 是一款基于高通MSM8953平台、工业级高性能、可运行安卓操作系统的4G 智能模块,其综合特征如下:
⚫ 支持LTE-FDD、LTE-TDD、DC-HSDPA、DC-HSUPA、HSPA+、HSDPA、HSUPA、WCDMA、
TD-SCDMA、EVDO/CDMA、EDGE、GSM 和GPRS 等多种制式;
⚫ 支持Wi-Fi 802.11a/b/g/n/ac 和BT4.2 LE 近距离无线通信;
⚫ 支持GPS/GLONASS/BeiDou 等多种制式卫星定位;
⚫ 支持多种音频和视频编解码器;
⚫ 内部集成AdrenoTM 506 高性能图形引擎;
⚫ 拥有多个音频、视频输入输出接口和丰富的GPIO 接口;
⚫ 支持双屏异显。
先按照资料调试下LCD系统。

MIPI LCD的接口介绍:
背光LEDA(+) LEDK(-)信号
一般是PM的MPP输出pwm信号,通过升压电路得到背光LED+ LED-电源(这个是电流驱动LED背光二极管的,与LCD显示无关)有的是LCD模组内部电路产生PWM信号来调节背光芯片。
1.8V 2.8V供电
LCD_TE
(Tearing effect)防止Tearing现象的同步信号。 MCU接口的LCD内部有一个GRAM, 从MCU传过来一帧数据,LCD就把数据往Panel上刷一下。如果MCU写数据的速度比LCD刷数据的速度快或者慢,都可能产生Tearing。 有了TE信号起一个同步的作用, 就解决这个问题了。 一般都是显示动态的画面时出现这个现象明显, 比如Camera预览这个信号是从LCD反馈给MSM的同步信号。
LCD_RST_N 复位信号输入
LCD_ID 区分兼容使用
5组MIPI_DSI0
在这里插入图片描述
实际主屏LCD1使用的管脚如下:
背光:PMU_MPP4(模块152脚)
TE:GPIO_24(126脚)
RST:GPIO_61(127脚)
ID:PMI_MPP1(153脚)实际未使用

背光电路如下:
在这里插入图片描述
DSI_PWM是模块输出的PWM信号,控制背光芯片的通断开调节背光亮度。

另外如果是超过5inch以上的大屏,还需要多组电源。如某项目使用6.8寸的lcd供电如下:
在这里插入图片描述
Vcom主要是调节+/-电压压差基准电压,改善Flicker(闪烁)。一般中尺寸的可以直接供给DC电压就可以了。
1080P以上的屏才需要+/-偏压的,比如+/-5V电。

LCD参数如下:lead的模组,IC为ili9885a,1080P分辨率。

设备树配置:
在这里插入图片描述
LCD参数修改说明:

  1. 使用office 2013以上版本打开《80-NH713-1_W_DSI_Timing_Parameters_User_Interactive_Spreadsheet_1.xlsm》
  2. 在sheet页《DSI and MDP registers》 输入lcd的帧率、lane数、像素位数(一般24位就是3字节)、分辨率以及前后肩等参数,如下图黄色背景框内容:
    在这里插入图片描述

其他参数按照默认就行。

3.在sheet页《DSI PHY timing setting》 会算出一个时序:
在这里插入图片描述
填到LK的lcd代码中,比如bootable/bootloader/lk/dev/gcdb/display/include/panel_lead_ili9885a_1080p_video.h:
static const uint32_t lead_ili9885a_1080p_video_timings[] = {
0x7A, 0x1A, 0x12, 0x00, 0x40, 0x42, 0x16, 0x1E, 0x14, 0x03, 0x04, 0x00 //这里多一个0x00
};
实际上9.0的LK中并没有用到这个时序。

在sheet页《DSI PHY 2.0.0 timing setting》会算出另外一组时序:
在这里插入图片描述
按照下面规则:
在这里插入图片描述
填到这里:
bootable/bootloader/lk/dev/gcdb/display/include/panel_lead_ili9885a_1080p_video.h中
static const uint32_t lead_ili9885a_1080p_14nm_video_timings[] = {
0x1e, 0x1b, 0x04, 0x06, 0x02, 0x02, 0x04, 0xa0,
0x1e, 0x1b, 0x04, 0x06, 0x02, 0x02, 0x04, 0xa0,
0x1e, 0x1b, 0x04, 0x06, 0x02, 0x02, 0x04, 0xa0,
0x1e, 0x1b, 0x04, 0x06, 0x02, 0x02, 0x04, 0xa0,
0x1e, 0x0d, 0x04, 0x05, 0x02, 0x02, 0x04, 0xa0,
};

驱动修改如下:(Android9.0)
bootloader修改
增加文件bootable/bootloader/lk/dev/gcdb/display/include/panel_lead_ili9885a_1080p_video.h
修改文件:
bootable/bootloader/lk/target/msm8953/SC60_feature.mk
//定义FEATURE_XXX_LCD_ILI9885A_SUPPORT和FEATURE_SC60
bootable/bootloader/lk/target/msm8953/target_display.c
//背光控制
bootable/bootloader/lk/target/msm8953/oem_panel.c
//添加对应lcd的case

kernel修改
增加文件kernel/msm-4.9/arch/arm64/boot/dts/dsi-panel-lead-ili9885a-1080p-video.dtsi //具体LCD的参数配置
kernel/msm-4.9/arch/arm64/boot/dts/SC60_msm8953-mdss-panels.dtsi
//&dsi_lead_ili9885a_1080p_video{}定义,平台相关的配置,包括背光
kernel/msm-4.9/arch/arm64/boot/dts/SC60_msm8953-qrd.dtsi
//#include "SC60_msm8953-mdss-panels.dtsi"以及&mdss_dsi0 {} 定义

猜你喜欢

转载自blog.csdn.net/cornerstone1/article/details/112859724