[智能AI摄像头]RV1126适配3inch mipi屏幕

3寸屏幕

硬件平台

3寸屏:ST7701S驱动芯片,mipi接口,2lane

rv1126:易佰纳38板、正点原子rv1126开发板

所需资料

《屏幕规格书》、《开发板原理图》、《屏幕初始化序列》、《ST7701S数据手册》《rk屏幕相关文档》

驱动板绘制

因为开发板的DSI接口和屏幕的线序并不匹配,因此需要绘制转接驱动板,这里以易佰纳的开发板为例,DSI接口线序如下,这里主要关注供电输出为12V,CLKN、CLKP、D0N、D0P、D1N、D1P以及RST引脚,其中RST连接到的是GPIO2_D6,IO电压为3.3V(这里很重要,因为屏幕的RST电压要求3.3V才行,而正点原子的RST电压仅为1.8V导致屏幕一直没有反应)

原理图

869561ffa6ab751dd6138d96567d109d.png

背光电源芯片选用恒流输出的MP3302DJ,屏幕背光需要18V20mA,电流计算公式为200mV/R1因此采样电阻R1选用10R使之恒流20mA

815c2e5872c8fc0f89d225acd3d17ba7.png

99ee1547db11e81eaf717a812d81c5fb.png

LAYOUT

由于使用的是MIPI DSI接口,使用的是高速差分信号对,因此先要了解一下MIPI的布线规则。

MIPI布线规则

1:MIPI 的差分线阻抗(电压与电流的比值)控制标准是100 欧姆,误差不能大于±10%;

2:MIPI信号线下方最好有连续的地层(至少宽度为mipi单条线宽的4倍);

3:线对之间的误差不要超过10mil,即等长以确保数据同时到达,保证数据的正确性;

4:线对与线对之间的误差不要超过200mil;

5:线对之间要保持对称和等距,以保证信号的稳定;

6:线对与线对之间要保持3W以上的距离,防止干扰;

计算线宽和线距

1:打开嘉立创阻抗计算器,得出线距为4,线宽为6.19;

cf2d61bb790ddcf8e8382ba8552c2713.png

按照要求布线即可

72f3e5383fc16e0b7ffaaf73e6993130.png

RV1126适配屏幕

rv1126的屏幕驱动使用的是simple-panel驱动,我们只需要配置好设备树即可,可以参考《Rockchip_DRM_Panel_Porting_Guide》,其中所需的一些信息需要通过查找屏幕厂商提供的资料进行获得:

获取屏幕的时序和初始化序列,打开《屏幕数据手册》,可以获取以下信息,屏幕的显示物理尺寸为36.72mm*65.28mm,分辨率为480*854.

4919405888591ba54c2775434ede6682.png

fb90aaf9e2969a8254b5e0f99fe50f70.png

timing

打开初始化序列得到屏幕时序

77f44ab8e36ddc81a12ab575f6b98481.png

4c6238b839ff40a4c23578658fcf6d48.png

0ad7f3b377fb4aacbbe616ae25ce7a34.png

HSYNC叫做水平同步信号(行同步信号)此信号表示新的一行开始,VSYNC表示垂直同步信号(帧同步信号)表示要开始新的一帧,由于硬件本身的特性会导致一定的延时,因此图像只显示在有效显示区域显示,而黑边(无效显示区域)就是为了延时而存在的。

1)一行即将显示,扫描枪就会快速移至左边,当HSYNC信号发起并结束,扫描枪打开;

2)扫描枪打开后延时HBP后继续扫描,此时开始处正是显示有效区域;

3)一行扫描结束后,扫描抢关闭等待HSYNC信号到来耗时HFP时间;

4)重复1/2/3步骤直至一帧扫描完成;

5)显示一帧后,等待VSYNC信号,耗时VFP;

6)VSYNC信号发起并结束,扫描枪重新移到左上角后打开后延时VBP开始等待HSYNC信号并继续步骤1

这里需要注意:水平方向上延时都是按照像素计算的,但是垂直方向上都是按照行来计算的!!!(看图更加直观)

计算公式:

单位均是CLK

HOZVAL为有效显示宽度,单位为像素

LINE为有效显示行数,单位为行

显示一行所需要的时间就是:HSYNC(HSPW )+ HBP + HOZVAL + HFP个像素之间(一般为clk)

显示一帧所需要的时间就是:VSYNC+VBP+LINE+VFP个行时间(行数)

最终耗时:T=行数*行时间=(VSYNC+VBP+LINE+VFP)*(HSYNC(HSPW )+ HBP + HOZVAL + HFP)clks

以本屏幕为例子计算一下

一帧耗时:(10+42+4+854)*(480+8+2+43)=485030clk

60fps为60*485030=29.1MHZ

初始化序列

由于是mipi屏幕,因此需要初始化序列来初始化屏幕的驱动芯片,初始化序列如下所示,其中初始化序列格式为[数据包类型 延时时长 数据包大小 数据]其中数据包类型有0x39 0x15 0x05等等,0x39表示长写入命令,即数据+命令>2,0x15表示短写入命令,即数据+命令=2,0x05为短写命令,发送单命令或者单数据

4cccba63495babde04dc3b230183ff8d.png

2cc7d12fef2767d05b1d651d2806f50a.png

最后重新生成内核并烧入,

dmesg | grep drm

53f2cb7bd5c4fadd2293cebac8288a32.png

查看当前显示状态

cat /sys/kernel/debug/dri/0/summary

57fea09d2068906cd34642164b6952fb.png

显示设备使用的vop(显示控制器)为ffb00000.vop,使用的接口为DSI,使用的是win2-0图层

查看drm buffer使用情况

35cdc2c89dee2457f510fa96a52b8c6b.png

屏幕成功点亮:

e9e45732f78619a120df925511a79bb3.png

       

55ff2da96ff656aedd6b83a74cba933d.png

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warren@伟~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值