本文基于触觉智能RK3506核心板/开发板,介绍RGB接口屏幕调试指南。

RGB简介
- RGB接口简介
RGB 接口也被称为 DPI(Display Pixel Interface) 接口,是一种通过红、绿、蓝三原色通道传输视频信号的工业标准接口,采用模拟信号传输方式。该接口基于RGB色彩模式,通过三原色叠加实现精准色彩还原,主要应用于工业控制、专业绘图设备、车载显示器和嵌入式系统等领域。RK3506平台支持RGB接口,输出像素格式支持RGB888/RGB666/RGB565等像素格式。
- RGB接口协议
RGB接口数据传输协议如下图所示:

- RGB引脚信号说明
包含:VSYNC(帧同步信号)、HSYNC(行同步信号)、ENABLE(数据使能信号)和 DOTCLK(时钟信号)、DB[23:0](数据信号)共28个引脚。
VSYNC信号:控制图像的垂直帧周期,告诉显示屏 “当前一帧图像已传输完毕,准备开始下一帧”,对应屏幕的一整个画面。
HSYNC信号:控制图像的水平行周期,告诉显示屏 “当前行的像素数据已传输完毕,准备开始下一行”。
ENABLE信号:有效数据的 “开关”精准标记哪些时段传输的是有效像素数据。
DOTCLK信号:提供全局同步时钟,控制像素数据的传输速率和采样时机,是所有信号的 “时间基准”。
DB[23:0]信号:24 根并行数据线,分别传输单个像素的红(R)、绿(G)、蓝(B)三基色数据,对应 24 位 RGB888 格式(每色 8 位)。
RGB接口硬件设计
- 硬件说明
触觉智能RK3506开发板硬件RGB接口采用底板排针+转接板的设计方式,此方式相对灵活,当引脚不够用可以将RGB接口引脚复用为其他引脚功能进行开发。开发板默认适配的是7寸RGB触摸屏。

开发板底板RGB显示接口(双排针)核心原理图:

引脚说明:TP_RST0、TP_INT0、TP_SCL0、TP_SDA0 信号为触摸屏接口信号引脚,RGB_PWM、LCD_PWREN_H_ 信号分别为屏幕背光、屏幕电源信号引脚。
软件配置
- 显示通路
RGB接口显示框架如下图所示,VOP(Video Output Process)是 RK 平台的显示处理单元,VOP 会从 DDR 中读取图像数据并处理,再送到显示接口 RGB/MCU上,接口模块则会将图像数据转换为符合协议的数据流,最后传输到屏幕上显示。

- Panel 驱动、设备树配置
RGB panel驱动在 kernel/drivers/gpu/drm/panel/panel-simple.c 中的实现,此驱动底层走的是DRM框架,关于DRM驱动框架这里不展开叙述。本节重点讲解panel的设备树配置,下述以开发板配套的7寸RGB触摸屏的设备树核心配置为例进行讲解。
panel: panel { status = "okay"; compatible = "simple-panel"; bus-format = ; backlight = <&backlight>; enable-gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_HIGH>; enable-delay-ms = <20>; pinctrl-names = "default"; pinctrl-0 = <&lcd_en_gpio>; display-timings { native-mode = <&timing0>; timing0: timing0 { clock-frequency = <51200000>; hactive = <1024>; vactive = <600>; hback-porch = <160>; hfront-porch = <160>; vback-porch = <23>; vfront-porch = <12>; hsync-len = <24>; vsync-len = <2>; hsync-active = <0>; vsync-active = <0>; de-active = <0>; pixelclk-active = <0>; }; }; port { panel_in_rgb: endpoint { remote-endpoint = <&rgb_out_panel>; }; }; }; &vop { status = "okay"; }; &rgb_in_vop { status = "okay"; }; &route_rgb { status = "okay"; connect = <&vop_out_rgb>; };
- 设备节点属性说明
1、bus-format
指定像素数据传输格式,当前屏幕支持的是RGB888像素格式,使用其他屏幕可以通过屏幕datasheet手册确定。

2、backlight
背光控制节点,用于控制屏幕别光,屏幕背光使用PWM信号进行控制,在显示图像前需要确保背光已经正常点亮。
backlight: backlight { status = "okay"; compatible = "pwm-backlight"; pwms = <&pwm0_4ch_2 0 25000 0>; brightness-levels = < 0 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 >; default-brightness-level = <200>; };
3、enable-gpios、enable-delay-ms
屏幕电源引脚,配置需要根据屏幕datasheet手册中上下电和复位的时序要求,以及实际硬件电路的设计来修改。

4、pinctrl-0 = <&lcd_en_gpio>
该属性用于配置数据使能引脚复用功能,根据实际使用的数据使能引脚进行修改。
5、display-timings节点
屏幕显示时序参数时序节点,屏幕datasheet手册会提供推荐配置,用户也可以根据具体的应用需求在指定的上下阈值区间内微调。

6、port连接端点
定义显示屏的输入端点,与RGB节点的输出端点(&rgb_out_panel)连接,形成数据通路。
常见问题
比如:RGB屏可以显示图像但屏幕上有噪点或者存在显示错位现象。
解决方法:可以尝试翻转下时钟极性,对应 display-timings 下的 pixelclk-active 属性,可以改变时钟与 数据信号的相对相位。
pixelclk-active = <1>
-
RGB
+关注
关注
4文章
820浏览量
61493 -
开发板
+关注
关注
25文章
6118浏览量
113134 -
瑞芯微
+关注
关注
27文章
699浏览量
53451 -
RGB屏
+关注
关注
0文章
10浏览量
1356 -
RK3506
+关注
关注
0文章
82浏览量
716
发布评论请先 登录
米尔瑞芯微多核异构低功耗RK3506核心板重磅发布
米尔基于RK3562与RK3506开发板有什么区别?
【米尔RK3506国产开发板评测试用】开箱体体验
瑞芯微RK3506开发板必备之LVGL应用开发手册,深圳触觉智能出品
有奖丨米尔 瑞芯微RK3506开发板免费试用
瑞芯微RK3506开发板必备攻略之Qt应用开发手册(下),触觉智能工控嵌入式方案商
RK3506开发板:嵌入式系统领域的革新力量
瑞芯微RK3506开发板PWM输入捕获驱动调试记录
RK3506开发板QT Creator开发手册,交叉编译工具链与QT应用示例,入门必备

保姆级!RK3506开发板RGB接口屏幕调试指南,一篇全搞定不踩坑
评论