全志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

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal