Rockchip RK3399 - DRM eDP介绍
目录
在《Rockchip RK3399 - DRM
驱动程序》》我们已经介绍过了,RK3399
有两个VOP
,均可以支持HDMI
、eDP
、DP
、MIPI DSI0
、MIPI DSI1
显示接口,由于此时我手里正好有一块友善7寸高清电容触摸显示屏(型号为HD702E
,eDP
接口),因此本节我们选择eDP
作为分析的对象。
一、eDP
介绍
1.1 概述
eDP
全称(Embedded DisplayPort)
)嵌入式显示接口,它是一种基于DisplayPort
架构和协议的一种内部数字接口。可以用较简单的连接器以及较少的引脚来传递高分辨率信号,且能够实现多数据同时传输。
eDP
协议是针对DP
(Display Port
)应用在嵌入式方向架构和协议的拓展,所以eDP
协议完全兼容DP
协议。
相对于DVI/HDMI
来说,eDP
具有高带宽、整合性好、相关产品设计简单,该接口已广泛应用于笔记本电脑、平板电脑、手机等其它集成显示面板和图像处理器的领域。
eDP
接口降低设备复杂性,支持关键跨行业应用程序的必要功能,并提供性能可伸缩性,以支持具有更高颜色深度、刷新率和显示分辨率的下一代显示器。
eDP
是被设计来取代比较旧的数字视频传送接口,如LVDS
,尤其在全高清PHD
(1920x1080
或1920x1200
)或超过FHD
解析度的面板上。
1.1.1 版本变更
年份 | 版本 | 介绍 |
---|---|---|
2011.08 | eDP1.3 | 支持RBR(Reduced Bit Rate)1.62Gbps/lane 支持HBR(High Bit Rate)2.7Gbps/lane 可选HBR2 5.4Gbps/lane |
2014.03 | eDP1.4 | 支持RBR(Reduced Bit Rate)1.62Gbps/lane 支持HBR(High Bit Rate)2.7Gbps/lane 支持HBR2 5.4Gbps/lane |
2015.01 | eDP1.4a | 支持RBR(Reduced Bit Rate)1.62Gbps/lane 支持HBR(High Bit Rate)2.7Gbps/lane 支持HBR2 5.4Gbps/lane 支持HBR3 8.1Gbps/lane 支持YCbCr4:2:0 and RAW |
2015.10 | eDP1.4b | 支持RBR(Reduced Bit Rate)1.62Gbps/lane 支持HBR(High Bit Rate)2.7Gbps/lane 支持HBR2 5.4Gbps/lane 支持HBR3 8.1Gbps/lane 支持YCbCr4:2:0 and RAW |
1.1.2 术语
在介绍eDP
时,我们会提到大量的专业术语:
HDCP
:High-bandwidth Digital Content Protection
版权保护相关的,通过IIC
获取;EDID
:Extended Display Identification Data
扩展显示标识数据,包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等;HDP
:Hot Plug Detect
热插拔检测;Source
:A device with an eDPoutput
;Sink
:A device with an eDPinput
;
1.2 eDP
框图
eDP
系统架构由source
端和sink
端组成:source
是指发送eDP
信号的一侧,sink
是指接收eDP
信号的一侧。

以上是eDP
的结构图,从中我们大致可以看出eDP
信号的组成部分:
- 主要通道(
Main Link
):用来传输各种类型的视频数据和音频数据;- 由
1-4
对lanes
组成,每条lane
都是一对差分线;这些数据线是单向的,从source
指向sink
; - 每对差分线采用交流耦合技术,发送端与接收端可以具有不同的共模电压,因此可以把接口做的更小;
- 数据采用
ANXI 8B/10B
编码方式,eDP1.4
中每条lane
的速率最大为5.4Gbps
,最小为1.62Gbps
; - 每条数据都是数据线,没有时钟线,减小了
EMI
;
- 由
- 辅助通道(
AUX
);- 用于传输小带宽需求的数据,链路管理和设备控制;
- 采用交流耦合差分传输方式,是一条双向半双工传输通道 ;
- 采用
ManchesterII
编码 ; - 提供
1Mbps
的传输速率和15m
的传输距离 ; - 低延时,每个传输任务都有时间要求小于
500us
; - 该通道提供
Link Services
和Device Services
;具体来说它与EDID
及DPCD
存储器相连,并通过总线方式读写。EDID
为显示标识数据,用于存储显示器的相关参数;DPCD
为eDP
接口配置数据,与链路管理层相连,用于链路层面的配置;
- 热插拔(
HPD
):该项功能在eDP
中是可选的。与DP
一样,eDP
支持与此信号相关的所有功能,包括中断以及链路故障通知。如果不使用HPD
功能,source
端可以通过轮询的sink
方式来检查链路的完整性,但是这种方式会增加source
的功耗,所以还是推荐使用HPD
的方式。
此外,对于1.2
及以上版本、Backlight control
背光控制是可选的,
1.2.1 eDP
接口
eDP
接口通常使用FPC
接口,如下图所示:

以NanoPC-T4
开发板为例,连接器型号: I-PEX-20455-030E
,30PIN
。
1.2.2 引脚分布
eDP
连接器主要是20PIN
、30PIN
和40PIN
。
1.3 性能计算方法
1.3.1 Lane
与rate
的需求计算
以标准时序1920x1080@60Hz
为例;
{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2008,
2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }
其中:
htotal:2200
;vtotal:1125
;filed rate:60Hz
;
那么像素时钟频率:
如果传输像素单元为24bpp
,则其传输带宽为:
eDP 1.4
支持最大单lane 5.4Gbps
,其传输有效数据带宽为:
结论:单lane 5.4Gbps
即可满足传输需求。
1.3.2 基本传输单元(TU
)插入空闲字符数
为了避免link
带宽过载,数据的打包速率只能等于或者小于link symbol
的速率,如果是小于的情况,则需要传输空闲字符,空闲字符放在FS
与FE
之间。
一个基本传输单元具有32~64
个link symbol
,而且在传输过程中不能改变。
假如显示规格为1920x1080@ 60Hz
,24bpp
,strm_clk=148.5MHz
,采用2.7Gbps
,4lane
传输,TU
的大小固定为64。
所以单lane
中TU
的大小为64
,active symbol
为27
个。
1.4 电路原理图
接下来我们看一下我们使用的NanoPC-T4
开发板eDP
接线原理图。
1.4.1 RK3399
侧

1.4.2 eDP
接口侧

eDP 30PIN
接口引脚定义以及与RK3399
连接信息如下:
Pin# | Assignment | Description | RK3399 |
---|---|---|---|
1 | GND | Signal ground | |
2 | EDP_TX3N | eDP data lane 3 negative output | EDP_TX3N |
3 | EDP_TX3P | eDP data lane 3 positive output | EDP_TX3P |
4 | GND | Signal ground | |
5 | EDP_TX2N | eDP data lane 2 negative output | EDP_TX2N |
6 | EDP_TX2P | eDP data lane 2 positive output | EDP_TX2P |
7 | GND | Signal ground | |
8 | EDP_TX1N | eDP data lane 1 negative output | EDP_TX1N |
9 | EDP_TX1P | eDP data lane 1 positive output | EDP_TX1P |
10 | GND | Signal ground | |
11 | EDP_TX0N | eDP data lane 0 negative output | EDP_TX0N |
12 | EDP_TX0P | eDP data lane 0 positive output | EDP_TX0P |
13 | GND | Signal ground | |
14 | EDPAUXP | eDP CH-AUX positive differential output | EDPAUXP |
15 | EDPAUXN | eDP CH-AUX negative differential output | EDPAUXN |
16 | GND | Signal ground | |
17 | VCC3V3_SYS | 3.3V Power output for logic | |
18 | VCC3V3_SYS | 3.3V Power output for logic | |
19 | I2C4_SDA | 3V I2C data signal, Connect to touch panel | GPIO1_B3/I2C4_SDA |
20 | I2C4_SCL | 3V I2C clock signal, Connect to touch panel | GPIO1_B4/I2C4_SCL |
21 | GPIO1_C4_TP_INT | 3V interrupt input, Connect to the interrupt output of touch panel | GPIO1_C4/I2C8_SDA |
22 | GPIO1_B5_TP_RST | 3V output for reseting touch panel, Connect to the reset input of touch panel | GPIO1_B5 |
23 | PWM0_BL | 3V PWM output, for LCD backlight dimming. pulled up to VCC3V3_SYS on LCD side. | GPIO4_C2/PWM0/VOP0_PWM/VOP1_PWM |
24 | GPIO4_D5_LCD_BL_EN | 3V output for turning on/off the LCD backlight | GPIO4_D5 |
25 | GND | Backlight ground | |
26 | GND | Backlight ground | |
27 | GND | Backlight ground | |
28 | VCC12V0_SYS | 12V Power output for Backlight Power | |
29 | VCC12V0_SYS | 12V Power output for Backlight Power | |
30 | VCC12V0_SYS | 12V Power output for Backlight Power |
除了之前我们介绍的lanes
、AUX
引脚外,这里还多出了如下引脚:
-
I2C4_SDA
、I2C4_SCL
:我所使用是友善7寸高清电容触摸屏,在此处触摸数据使用的I2C
进行通信(通常触摸屏数据采用的是I2C/AUX
两种选项); -
GPIO1_C4_TP_INT
:触摸面板中断引脚,默认高电平,发生触摸后该引脚会发送一个低电平的脉冲信号; -
GPIO1_B5_TP_RST
:触摸面板的复位引脚,配置触摸芯片时会用到; -
PWM0_BL
:PWM
输出,用于控制LCD
背光的亮度; -
GPIO4_D5_LCD_BL_EN
:LCD
背光使能; -
17
和18
引脚的VCC3V3_SYS
:3.3V Power output for logic
,LCD
逻辑电路供电; -
28
、29
、30
引脚得VCC12V0_SYS
:12V Power output for Backlight Power
,为LCD
背光电源;
1.4.3 电源信号
(1) VCC12V0_SYS
:系统电源,开发板输入电源;
(2) VCC3V3_SYS
:由VCC12V0_SYS
经过NB680GD
降压开关模块转换器输出得到固定3.3V
电压;
(3) VCC0V9_S3
:由PMIC_SLEEP_H
(连接RK3399
的GPIO1_A5/AP_PWROFF
,这个应该是处理器睡眠引脚,处理器工作时电源有效)引脚控制的;

PMIC_SLEEP_H
为低电平,Q16 N MOS
管导通、VCC0V9_S3
输出为0.9V
;PMIC_SLEEP_H
为高电平,Q16 MOS
管截止、VCC0V9_S3
输出为0V
;
二、eDP
进阶
2.1 eDP
触摸功能
当前市面上使用的触摸屏一般都使用了I2C
接口,当然也有SPI
、USB
等接口。同时支持多点触摸,那什么是多点触摸呢?顾名思义,多点触摸技术指的是允许用户同时通过多个手指来控制图形界面的一种技术,与多点触摸技术相对应的当然就是单点触摸。具体可以参看我们之前介绍的《Rockchip RK3399 - USB
触摸屏接口驱动》。
2.1.1 HD702
介绍
HD702
是友善之臂设计开发并生产的一款7寸高清电容触摸显示模块,分辨率为1280 x 800
,支持触摸,背光可调(通过一线通讯),其接口适用于友善之臂出品的4412/4418/6818
等系列ARM主控板,可支持Linux
, Android
等嵌入式系统,并且驱动开源。
而我们使用的是带有eDP
接口的HD702
,因此其型号被定义为HD702E
,其采用I2C
接口进行触摸数据传输。
2.1.2 I2C
触摸原理
亲爱的读者和支持者们,自动博客加入了打赏功能,陆陆续续收到了各位老铁的打赏。在此,我想由衷地感谢每一位对我们博客的支持和打赏。你们的慷慨与支持,是我们前行的动力与源泉。
日期 | 姓名 | 金额 |
---|---|---|
2023-09-06 | *源 | 19 |
2023-09-11 | *朝科 | 88 |
2023-09-21 | *号 | 5 |
2023-09-16 | *真 | 60 |
2023-10-26 | *通 | 9.9 |
2023-11-04 | *慎 | 0.66 |
2023-11-24 | *恩 | 0.01 |
2023-12-30 | I*B | 1 |
2024-01-28 | *兴 | 20 |
2024-02-01 | QYing | 20 |
2024-02-11 | *督 | 6 |
2024-02-18 | 一*x | 1 |
2024-02-20 | c*l | 18.88 |
2024-01-01 | *I | 5 |
2024-04-08 | *程 | 150 |
2024-04-18 | *超 | 20 |
2024-04-26 | .*V | 30 |
2024-05-08 | D*W | 5 |
2024-05-29 | *辉 | 20 |
2024-05-30 | *雄 | 10 |
2024-06-08 | *: | 10 |
2024-06-23 | 小狮子 | 666 |
2024-06-28 | *s | 6.66 |
2024-06-29 | *炼 | 1 |
2024-06-30 | *! | 1 |
2024-07-08 | *方 | 20 |
2024-07-18 | A*1 | 6.66 |
2024-07-31 | *北 | 12 |
2024-08-13 | *基 | 1 |
2024-08-23 | n*s | 2 |
2024-09-02 | *源 | 50 |
2024-09-04 | *J | 2 |
2024-09-06 | *强 | 8.8 |
2024-09-09 | *波 | 1 |
2024-09-10 | *口 | 1 |
2024-09-10 | *波 | 1 |
2024-09-12 | *波 | 10 |
2024-09-18 | *明 | 1.68 |
2024-09-26 | B*h | 10 |
2024-09-30 | 岁 | 10 |
2024-10-02 | M*i | 1 |
2024-10-14 | *朋 | 10 |
2024-10-22 | *海 | 10 |
2024-10-23 | *南 | 10 |
2024-10-26 | *节 | 6.66 |
2024-10-27 | *o | 5 |
2024-10-28 | W*F | 6.66 |
2024-10-29 | R*n | 6.66 |
2024-11-02 | *球 | 6 |
2024-11-021 | *鑫 | 6.66 |
2024-11-25 | *沙 | 5 |
2024-11-29 | C*n | 2.88 |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2023-02-26 linux驱动移植-SPI驱动移植(OLED SSD1306)