全志A133 Android10 lcd配置显示硬件参数说明

2024-05-25 01:36

本文主要是介绍全志A133 Android10 lcd配置显示硬件参数说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一,概述

全志平台,通过board.dts来配置一些通用的 LCD 配置参数。
内核板级配置:

longan/device/config/chips/a133/configs/b6/board.dts

二,硬件参数说明

1. lcd接口参数说明

lcd_driver_name

Lcd 屏驱动的名字(字符串),必须与屏驱动的名字对应。

lcd_model_name

Lcd 屏模型名字,非必须,可以用于同个屏驱动中进一步区分不同屏。

lcd_if

设置相应值的对应含义为:
0:HV RGB接口
1:CPU/I80接口
2:Reserved
3:LVDS接口
4:DSI接口

lcd_hv_if

这个参数只有在 lcd_if=0 时才有效。定义 RGB 同步屏下的几种接口类型。
设置相应值的对应含义为:
0:Parallel RGB
8:Serial RGB
10:Dummy RGB
11:RGB Dummy
12:Serial YUV (CCIR656)

lcd_hv_clk_phase
这个参数只有在 lcd_if=0 时才有效。定义 RGB 同步屏的 clock 与 data 之间的相位关系。

总共有 4个相位可供调节。设置相应值的对应含义为:
0: 0 degree
1: 90 degree
2: 180 degree
3: 270 degree

lcd_hv_sync_polarity
这个参数只有在 lcd_if=0 时才有效。定义 RGB 同步屏的 hsync 和 vsync 的极性。

设置相应值的对应含义为:
0:vsync active low,hsync active low
1:vsync active high,hsync active low
2:vsync active low,hsync active high
3:vsync active high,hsync active high

lcd_hv_srgb_seq
这个参数只有在 lcd_if=0 且 lcd_hv_if=8(Serial RGB)时才有效。

定义奇数行 RGB 输出的顺序:
0: Odd lines R‑G‑B; Even line R‑G‑B
1: Odd lines B‑R‑G; Even line R‑G‑B
2: Odd lines G‑B‑R; Even line R‑G‑B
4: Odd lines R‑G‑B; Even line B‑R‑G
5: Odd lines B‑R‑G; Even line B‑R‑G
6: Odd lines G‑B‑R; Even line B‑R‑G
8: Odd lines R‑G‑B; Even line B‑R‑G
9: Odd lines B‑R‑G; Even line G‑B‑R
10: Odd lines G‑B‑R; Even line G‑B‑R

lcd_hv_syuv_seq
这个参数只有在 lcd_if=0 且 lcd_hv_if=12(Serial YUV)时才有效。

定义 YUV 输出格式:
0:YUYV
1:YVYU
2:UYVY
3:VYUY

lcd_hv_syuv_fdly
这个参数只有在 lcd_if=0 且 lcd_hv_if=12(Serial YUV)时才有效。

定义 CCIR656 编码时 F 相对有效行延迟的行数:
0:F toggle right after active video line
1:Delay 2 lines (CCIR PAL)
2:Delay 3 lines (CCIR NTSC)

lcd_cpu_if
这个参数只有在 lcd_if=1 时才有效, 具体时序可参照RGB 和 I8080 管脚配置示意图中 CPU 那几列。

设置相应值的对应含义为:
0:18bit/1cycle (RGB666)
2: 16bit/3cycle (RGB666)
4:16bit/2cycle (RGB666)
6:16bit/2cycle (RGB666)
8:16bit/1cycle (RGB565)
10:9bit/1cycle (RGB666)
12:8bit/3cycle (RGB666)
14:8bit/2cycle (RGB565)

lcd_cpu_te

设置相应值的对应含义为,设置为 0 时,刷屏间隔时间为 lcd_ht × lcd_vt;设置为 1 或 2 时,刷屏间隔时间为两个 te 脉冲:
0:frame trigged automatically
1:frame trigged by te rising edge
2:frame trigged by te falling edge

lcd_lvds_if

设置相应值的对应含义为:
0:Single Link( 1 clock pair+3/4 data pair)
1:Dual Link(8 data lane,每4条lane接受一半像素,奇数像素或者偶数像素)
2: Dual Link (每4条lane接受全部像素,常用于物理双屏,且两个屏一样)
lcd_lvds_if 等于 2 的场景是,接两个一模一样的屏,然后两个屏显示同样的内容,此时 lcd 的其它timing 只需要填写一个屏的 timing 即可。

lcd_lvds_colordepth

设置相应值对应含义为:
0:8bit per color(4 data pair)
1:6bit per color(3 data pair)

lcd_lvds_mode
这个参数只有在 lcd_lvds_bitwidth=0 时才有效

设置相应值对应含义为 :
0:NS mode
1:JEDIA mode

lcd_dsi_if
这个参数只有在 lcd_if=4 时才有效。定义 MIPI DSI 屏的两种类型。

设置相应值的对应含义为:
0:Video mode
1:Command mode
2:video burst mode
注:Video mode 的 LCD 屏,是实时刷屏的,有 ht,hbp 等时序参数的定义;Command mode 的屏,屏上带有显示 Buffer,一般会有一个 TE 引脚。

lcd_dsi_lane
这个参数只有在 lcd_if=4 时才有效。

设置相应值的对应含义为:
1:1 data lane
2:2 data lane
3:3 data lane
4:4 data lane

lcd_dsi_format
这个参数只有在 lcd_if=4 时才有效。

设置相应值的对应含义为:
0:Package Pixel Stream, 24bit RGB
1:Loosely Package Pixel Stream, 18bit RGB
2:Package Pixel Stream, 18bit RGB
3:Package Pixel Stream, 16bit RGB

lcd_dsi_te
这个参数只有在 lcd_if=4 时才有效。

设置相应值的对应含义为:
0:frame trigged automatically
1:frame trigged by te rising edge
2:frame trigged by te falling edge
注:设置为 0 时,刷屏间隔时间为 lcd_ht × lcd_vt;设置为 1 或 2 时,刷屏间隔时间为两个 te 脉冲。这个的作用就是屏一端发给 SoC 端的信号,用于同步信号,如果使能这个变量,那么 SoC 内部的显示中断将由这个外部脚来触发。

lcd_dsi_port_num
这个参数只有在 lcd_if=4 时才有效。

设置相应值的对应含义为:
0:一个port
1:两个port

lcd_tcon_mode
Tcon 模式,这个参数只有在 lcd_if=4 时才有效。

设置相应值的对应含义为:
0:normal mode
1:tcon master mode(在第一次发送数据同步)
2::tcon master mode(每一帧都同步)
3:tcon slave mode(依靠master mode来启动)
4:one tcon driver two dsi(8条lane)

lcd_slave_tcon_num
Slave Tcon 的序号,这个参数只有在 lcd_if=4 时而且 lcd_tcon_mode 等于 1 或者 2 才有效。用于告诉 master 模式下的 tcon,从 tcon 的序号是多少。

设置相应值的对应含义为:
0:tcon_lcd0
1:tcon_lcd1

lcd_tcon_en_odd_even_div
这个参数只有在 lcd_if=4 而且 lcd_tcon_mode=4 时才有效。

设置相应值的对应含义为:
0:tcon将一帧图像分左右两半来发送给两个DSI模块
1:tcon将一帧图像分奇偶像素来发给两个DSI模块

lcd_sync_pixel_num
这个参数只有在 lcd_if=4 而且 lcd_tcon_mode 等于 2 或者 3 时才有效。
设置同步从 tcon 的起始 pixel

整数:不超过lcd_ht

lcd_sync_line_num
这个参数只有在 lcd_if=4 而且 lcd_tcon_mode 等于 2 或者 3 时才有效。
设置同步从 tcon 的起始行

整数:不超过lcd_vt

lcd_cpu_mode
Lcd CPU 模式,控制
设置相应值的对应含义为,设置为 0 时,刷屏间隔时间为 lcd_ht × lcd_vt;

设置为 1 或 2 时,刷屏间隔时间为两个 te 脉冲:
0:中断自动根据时序,由场消隐信号内部触发
1:中断根据数据Block的counter触发或者由外部te触发。

lcd_fsync_en
LCD 使能 fsync 功能,用于触发 sensor 出图, 目的是同步,部分 IC 支持。

0:disable
1:enable

lcd_fsync_act_time
LCD 的 fsync 功能,其中的有效电平时间长度,单位:像素时钟的个数。

0~lcd_ht‑1

lcd_fsync_dis_time
LCD 的 fsync 功能,其中的无效电平时间长度,单位:像素时钟的个数。

0~lcd_ht‑1

lcd_fsync_pol
LCD 的 fsync 功能的有效电平的极性。

0:有效电平为低
1:有效电平为高

lcd_start_delay
出现 LCD 显示前几行有闪条,或者 colorbar 1 ~ 7 可以显示,colorbar 8 显示不了的问题,可以调试一下这个参数试试。

整数:调试范围可以先从0 ~ 10调试,不可以再往上增加

2. 屏时序参数说明

时序参数对于调屏非常关键,决定了发送端(SoC)发送数据时序。由于涉及到发送端和接收端的调试,除了分辨率和尺寸之外,其它几个数值都不是绝对不变的,两款一样分辨率,同种接口的屏,它们的数值也有可能不一样。
获取途径如下:

  1. 询问 LCD 屏厂;
  2. 从屏手册或者 Driver IC 手册中查找(向屏厂索要这些文档);
lcd_ht = x + hspw + hbp + hfp
lcd_vt = y + vspw + vbp + vfp

lcd_x

显示屏的水平像素数量,也就是屏分辨率中的宽。
lcd_y
显示屏的垂直行数,也就是屏分辨率中的高。

lcd_ht

Horizontal Total time
指一行总的 dclk 的 cycle 个数。

lcd_hbp

Horizontal Back Porch
指有效行间,行同步信号(hsync)开始,到有效数据开始之间的 dclk 的 cycle 个数,包括同步信号区。注意的是包含了 hspw 段。
lcd_hbp= 实际的 hbp+ 实际的 hspw

lcd_hspw

Horizontal Sync Pulse Width
指行同步信号的宽度。单位为 1 个 dclk 的时间(即是 1 个 data cycle 的时间)。

lcd_vt

Vertical Total time 指一场的总行数。
lcd_vt 为偶数则传输是逐行扫描,为奇数则传输是隔行扫描;扫描模式配置错误会导致花屏。

lcd_vbp

Vertical Back Porch
指场同步信号(vsync)开始,到有效数据行开始之间的行数,包括场同步信号区。包含了 vspw 段,也就是
lcd_vbp= 实际的 vbp+ 实际的 vspw

lcd_vspw

Vertical Sync Pulse Width
指场同步信号的宽度。

lcd_dclk_freq
Dot Clock Frequency
传输像素传送频率(单位为 MHz)
fps = (lcd_dclk_freq×1000×1000) / (ht×vt)

这个值根据以下公式计算:
lcd_dclk_freq=lcd_ht*lcd_vt*fps
注意:

  1. 后面的三个参数都是从屏手册中获得,fps 一般是 60。
  2. 如果是串行接口,发完一个像素需要 2 到 3 个周期的,那么
    lcd_dclk_freq * cycles = lcd_ht*lcd_vt*fps
    或者
    lcd_dclk_freq = lcd_ht*cycles*lcd_vt*fps

lcd_width

Width of lcd panel in mm
此参数描述 lcd 屏幕的物理宽度,单位是 mm。用于计算 dpi。

lcd_height

height of lcd panel in mm
此参数描述 lcd 屏幕的物理高度,单位是 mm。用于计算 dpi。

lcd_start_delay

此参数用于每一帧 de 向 tcon 送数据前的延时,该值配置不合理会导致前几行出现闪屏。

3. 背光相关参数

目前用得比较广泛的就是 pwm 背光调节,原理是利用 pwm 脉冲开关产生的高频率闪烁效应,通过调节占空比,达到欺骗人眼,调节亮暗的目的。
lcd_pwm_used

是否使用 pwm
此参数标识用以背光亮度的控制。

lcd_pwm_ch

此参数标识使用的 Pwm 通道,这里是指使用 SoC 哪个 pwm 通道,通过查看原理图连接可知。

lcd_pwm_freq

这个参数配置 PWM 信号的频率,单位为 Hz。
说明:频率不宜过低否则很容易就会看到闪烁,频率不宜过快否则背光调节效果差。部分屏手册会标明所允许的 pwm 频率范围,请遵循屏手册固定范围进行设置。在低亮度的时候容易看到闪烁,是正常现象,目前已知用上 pwm 的背光都是如此。

lcd_pwm_pol

这个参数配置 PWM 信号的占空比的极性。设置相应值对应含义为:
0:active high
1:active low

lcd_pwm_max_limit

Lcd backlight PWM 最高限制,以亮度值表示。
比如 150,则表示背光最高只能调到 150,0‑255 范围内的亮度值将会被线性映射到 0‑150 范围内。用于控制最高背光亮度,节省功耗。

lcd_bl_en
背光使能脚,非必须,看原理图是否有,用于使能或者禁止背光电路的电压。

示例:lcd_bl_en = port:PD24<1><2><1>
含义:PD24 输出高电平时打开 LCD 背光;下拉,默认高电平
• 第一个尖括号:功能分配。1 为输出。
• 第二个尖括号:内置电阻。使用 0 的话,标示内部电阻高阻态,如果是 1 则是内部电阻上拉,2就代表内部电阻下拉。使用 default 的话代表默认状态,即电阻上拉。其它数据无效。
• 第三个尖括号:驱动能力。default 表驱动能力是等级 1。
• 第四个尖括号:电平。0 为低电平,1 为高电平。

一般来说,高电平是使能,在这个前提下,建议将内阻电阻设置成下拉,防止硬件原因造成的上拉,导致背光提前亮。默认电平填写高电平,这是 uboot 显示过度到内核显示、平滑无闪烁的需要。

lcd_bl_n_percent

背光映射值,n 为 (0‑100)。

此功能是针对亮度非线性的 LCD 屏的,按照配置的亮度曲线方式来调整亮度变化,以使亮度变化更线性。
比如 lcd_bl_50_percent = 60,表明将 50% 的亮度值调整成 60%,即亮度比原来提高 10%。
说明:修改此属性不当可能导致背光调节效果差。

lcd_backlight

背光默认值,0‑255。

此属性决定在 uboot 显示 logo 阶段的亮度,进入都内核时则是读取保存的配置来决定亮度。
说明:显示 logo 阶段,一般来说需要比较亮的亮度,业内做法都是如此。


三,调试

1. 查看显示信息

cat /sys/class/disp/disp/attr/sysscreen 0:
de_rate 297000000 hz, ref_fps:60
mgr0: 1280x800 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false]
lcd output backlight( 50) fps:60.9 1280x 800
err:0 skip:31 irq:1942 vsync:0 vsync_skip:0
BUF enable ch[1] lyr[0] z[0] prem[N] a[globl 255] fmt[ 8] fb[1280, 800;1280, 800;1280, 800] crop[ 0, 0,1280, 800]
frame[ 0, 0,1280, 800] addr[ 0, 0, 0] flags[0x 0] trd[0,0]

lcd output
表示当前显示接口是 LCD 输出。
1280x800
表示当前 LCD 的分辨率,与 board.dts 中 lcd0 的设置一样。
ref_fps:60
是根据你在 board.dts 的 lcd0 填的时序算出来的理论值。
fps:60.9
后面的数值是实时统计的,正常来说应该是在 60(期望的 fps) 附近,如果差太多则不正常,重新检查屏时序,和在屏驱动的初始化序列是否有被调用到。
irq:1942
这是 vsync 中断的次数,每加 1 都代表刷新了一帧,正常来说是一秒 60(期望的 fps)次,重复cat sys,如果无变化,则异常。
BUF
开头的表示图层信息,一行 BUF 表示一个图层,如果一个 BUF 都没有出现,那么将是黑屏,不过和屏驱动本身关系就不大了,应该查看应用层 & 框架层。
err:0
这个表示缺数,如果数字很大且一直变化,屏幕会花甚至全黑,全红等。
skip:31
这个表示跳帧的数量,如果这个数值很大且一直变化,有可能卡顿,如果数字与 irq 后面的数字一样,说明每一帧都跳,会黑屏(有背光)。

2.查看 pwm 信息

Pwm 的用处是提供背光电源。

cat /sys/kernel/debug/pwmplatform/7020c00.s_pwm, 1 PWM device
pwm‑0 ((null) ): period: 0 ns duty: 0 ns polarity: normal
platform/300a000.pwm, 2 PWM devices
pwm‑0 (lcd ): requested enabled period: 20000 ns duty: 3984 ns polarity: normal
pwm‑1 ((null) ): period: 0 ns duty: 0 ns polarity: normal

“requested enabled” 表示请求并且使能了,括号里面的 lcd 表示是由 lcd 申请的。

3. 查看时钟信息

cat /sys/kernel/debug/clk/clk_summary
这个命令可以看哪个时钟是否使能,然后频率是多少。与显示相关的是 tcon,pll_video,mipi等。

cat /sys/kernel/debug/clk/clk_summary | grep tcon
cat /sys/kernel/debug/clk/clk_summary | grep pll_video
cat /sys/kernel/debug/clk/clk_summary | grep mipi

这篇关于全志A133 Android10 lcd配置显示硬件参数说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1000114

相关文章

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方