LCD之mipi DSI接口驱动调试流程【转】

转自:https://blog.csdn.net/liwei16611/article/details/68146912

1、LCD MIPI DSI协议
MIPI-DSI是一种应用于显示技术的串行接口,兼容DPI(显示像素接口,Display Pixel Interface)、DBI(显示总线接口,Display Bus Interface)和DCS(显示命令集,Display Command Set),以串行的方式发送像素信息或指令给外围,而且从外围中读取状态信息或像素信息,而且在传输的过程中享有自己独立的通信协议,包括数据包格式和纠错检错机制。

MIPI-DSI具备高速模式和低速模式两种工作模式,全部数据通道都可以用于单向的高速传输,但只有第一个数据通道才可用于低速双向传输,从属端的状态信息、像素等式通过该数据通道返回。时钟通道专用于在高速传输数据的过程中传输同步时钟信号。此外,一个主机端可允许同时与多个从属端进行通信。

LCD mipi系统简单示意图如下:

1.1、mipi DSI协议分层
主要分为四个层:应用层、协议层、通道管理层、物理层

1.2、物理层
在接收到低速发送请求时,逻辑电路将待发送的指令或数据串行化,并控制输出高摆幅低功耗电平进行低功耗传送请求,随后将指令或数据串行地加载到通道,接收端则识别传送模式完成串行数据的并行转换。

当接收到高速请求后,电路发送高摆幅低功耗电平进行高速传送请求,然后将待发送数据经过串行转换之后驱动差分驱动模块以低摆幅信号在通道上传送,接收端则识别高速模式后正确地检测其同步信号将高速串行数据完成串并转换成功地接收。

除此之外,总线控制权可在主机端与从属端之间交换,发送端发送放弃总线请求,接收端接收请求之后控制总线发起应答,总的过程为TA(turn around)操作,在LCD中我们称之为BTA(Bus Turn-Around)。当主机端需要获取从属端接收数据的状况或者读取显示模块的参数或显示数据的时候,主机端发起TA操作,在从属端发送数据完毕之后自动发起TA操作,归还总线控制权。

信号两种工作状态,高速模式状态(LP)和低速模式状态(HS)。

物理层,就是要控制硬件信号的(时序),MIPI-DSI两种信号类型:

时钟lane,两根线一个Dp,Dn;

数据lane,两根线一个Dp,Dn;

数据lane根据需求有多个,最少一个lane(lane0),最多4个lane(lane0,lane1,lane2,lan3),其中只有lane0是双向的(低速模式双向,高速模式也只能是单向),其他的都只能是单向(高速模式单向)。

数据lane电平:

低速模式LP:0-1.2V,空闲电平(LP11)Dp,Dn是1.2V。

高速模式HS:100-300mV (200mV)

按照D-PHY协议,在整个协议的物理层中,在主机端和从属端之间采用的是同步连接,时钟通道用于传送高速时钟,一个或多个数据通道用于传送低功耗数据信号或高速数据信号每一个通道都是利用两根互连线实现主机端和从属端的连接,并且支持高速模式和低速ESCAPE模式。

在高速模式下,发送端同时驱动该通道仅有的两根互连线,输出低摆幅差分信号,例如200mV;

低速模式下,发送端分别驱动互连线,各自输出单端信号,但摆幅相对较大,例如1.2V,如下图所示:

差分发送模块(HS_TX)以差分信号驱动互连线,高速通道上呈现两种状态:differential-0和differential-1。低功耗单端发送模块(LP_TX)独立地驱动两根互连线,通道上则有四种不同的状态:LP00、LP01、LP10和LP11。协议针对线路电平作了具体的定义并设置了三种工作模式:高速模式、控制模式和ESCAPE模式,通道默认为控制模式,线路处于STOP状态。当通道需要进入高速模式或ESCAPE模式,发送模块则需驱动线路为LP01或LP10向接收端发送请求,发送完请求序列之后便进行相应工作模式,发送LP11
便可退出结束传送回到STOP控制状态。接收端需要时刻进行LP-RX接收,侦测线路电平明确通道的工作模式。

1.2.1、时钟通道
时钟通道支持高速模式和ULPS(超低功耗模式)模式:

高速模式应用于整个接口工作于高速数据传送模式,用于传送高速时钟:

ULPS模式用于外围(如整个显示模块)要进入休眠模式时将时钟通道置于超低功耗状态,节省外围接口功耗。

1.2.2、数据通道
数据通道支持高速模式和ESCAPE模式,在此还包括另外一个重要的功能总线控制权交换——BTA模式。高速模式是以高速的低摆幅差分信号传送数据,速度快,最高可达
1Gps。在经过请求序列LP11->LP01->LP00之后,HS_TX开始发送串行高速数据,发送结束之后,LP_TX发送LP11回到正常的控制模式。

ESCAPE模式是由LP_TX直接驱动线路通道发送电平序列传送低功耗数据。其进入方式为LP11->LP10->LP00->LP01->LP00,退出方式为LP10->LP11。经过请求序列之后,LP_TX发送模式命令,包括trigger命令和低功耗数据传送(LPDT)等,如下如所示:

BTA模式用于交换总线控制权,在控制模式下完成。LP_TX发送请求序列LP11->LP10->LP00->LP10->LP00,经过BTA-GO之后停止驱动总线。相对于总线另一端来说,在接收到请求序列并且经过BTA-SURE之后,LP_TX开始驱动总线,发送确认信号,接管总线。

1.3、通道管理层
依据设计所设定最多为4个数据通道,该层在发送端将需要发送的数据按照通道次序分成N组输送到相应的数据通道,使其经数据通道同时发送至从属端。在接收端,该层需要做的是将接收到的N组数据组合在一起恢复成原始的数据序列。

数据分组与恢复如下图:

数据分组:

数据恢复:

数据操作过程:

1.4、协议层
信息传送采用数据包格式,包括长数据包和短数据包。发送数据的时候,将数据按照信息类型及内容进行压包,完成ECC码的生成和CRC码的添加。接收数据的时候,依据ECC码和CRC码就整个数据包进行检错纠错,完成对包头和数据内容的译码并合理输送到应用层中。

DSI协议是一个基于数据包传送的通信协议,主机端和显示模块之间传送的命令和数据基本上都以数据包格式进行。DSI所定义的数据包有两种:端数据包(short packet) 
和长数据包(long packet),短数据包主要用于传输命令、读写寄存器,长数据包主要用用于传输大量图象数据或部分控制命令。

1.5、应用层
根据应用模块的需要,在发送端对发送的命令和数据进行初步编码转化为MIPI-DSI所规定的格式,而在接收端则将接收的数据还原为应用模块所支持的数据格式及时序要求。

应用层模块直接连接到显示模块,负责着与显示模块的通信。按照协议要求,接口电路支持命令模式和视频模式,命令模式则是经过接口转换之后主机端依然得以“命令+参数”格式对显示模块进行读写操作,而视频模式下,主机端可以直接将显示数据写入显示模块,无需命令操作,实时显示视频。该模块在设计的过程中应支持命令模式和视频模式。

根据协议所定义的数据类型的意义,其中一些数据类型是专门应用于video模式,如0x01指代的是场同步信号(Vsync)开始。所以在此模块电路的设计中,分成了视频模式应用电路和命令模式应用电路两个模块,视频模式应用电路模块仅接收视频模式相关的命令和数据并以DPI时序格式传送到驱动中。

cmd模式应用电路模块适用于非视频模式的控制命令和数据,对其进行译码并以DBI时序格式写入到显示模块中的寄存器或SRAM中。当需要读取数据的时候,命令模式应用电路模块通过DBI口可从显示模块中读取相关寄存器的信息等。

mipi总体框图:

2、MIPI DSI实践
2.1、mipi速率
mipi_clk = resX * resY * bps * 1.25 * fps / lane_num

注:bps = 3 * 8 = 24位

1.25为余量

如:

分辨率:2560*1440,fps = 65

MIPI lane:2条数据lane,1条时钟lane

mip_clk = 2560*1440*60fps*(3*8)* 1.25 * 65 / 2/8/104/1024 = 429Mhz

2.2、LCD dsi简图
今天以LCD MIPI为例做简要讨论。Display对应MIPI DSI,Camera对应MIPI CSI。和Display相关的就是MIPI DSI,DPI,DBI等,规范了host display controller到panel之间通信时从物理层,链路层到应用层的协议。

DPI:Video-mode displays

DBI:Command-mode displays

2.3、mipi导致花屏问题
2.3.1、切换屏幕画面,中间闪一条竖线
原因:mipi clk_post偏低

分析:data lane在传输完成最后一帧数据后进入lp模式,clklane继续传输时钟信号的时间过短导致datalane未完全进入lp11,状态不稳定。

解决:

1、增大clk_post

2、时钟改为continue模式,功耗大

2.3.2、LCD右半边闪屏
原因:mipi clk偏低,lk阶段clk偏低,kernel阶段clk正常

分析:数据包长短不一致会导致进入lp11时间点不一致,属于正常现象  --- 排除    lk频率偏低导致问题

解决:修整频率

2.3.3、panel电荷无法释放导致闪屏 --- 硬件设计
2.4、时序异常
2.4.1、IOVCC上电瞬间,mipi异常脉冲
此时mipi接口还没准备好,lp-tx被打开,输出异常脉冲

2.4.2、reset低电平时,mipi信号被拉低
器件由于低功耗考虑,reset为低时,进入深度待机模式,regulator关闭,保护二极管分流,拉低信号。

2.5、mipi测试
需要引出clkp、clkn、data0p,data0n

参考:

1、mipi DSI
http://blog.csdn.net/redredbird/article/details/12648847

http://blog.csdn.net/eZiMu/article/details/56279847?locationNum=14&fps=1

2、LCD调试流程
http://blog.csdn.net/dearsq/article/details/52354593?locationNum=9&fps=1

3、lcd DSI论文

http://www.doc88.com/p-0877384948107.html
————————————————
版权声明:本文为CSDN博主「简一商业」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liwei16611/article/details/68146912

原文地址:https://www.cnblogs.com/sky-heaven/p/12304918.html

时间: 2024-08-06 10:38:26

LCD之mipi DSI接口驱动调试流程【转】的相关文章

[RK3288][Android6.0] Display驱动初始化流程小结【转】

本文转载自:http://blog.csdn.net/kris_fei/article/details/52584903 Platform: RK3288OS: Android 6.0Kernel: 3.10.92 以MIPI DSI接口的lcd为例. rk_screen.c:读取lcd timing参数.lcd_mipi.c:屏幕mipi配置信息.rk_fb.c:fb驱动.rk3288_lcdc.clcdc controller驱动.rk32_mipi_dsi.c:dsi controller

展讯平台 LCD(Mipi) 加载流程分析

stage1 阶段的详细分析参见 uboot 详细注释讲解 我们从 uboot 的 stage2 开始分析. 加载流程分析 首先是完成硬件的初始化. 函数调用流程为: u-boot64/arch/arm/board.c: board_init_r() u-boot64/common/stdio.c: stdio_init() u-boot64/common/lcd.c: drv_lcd_init() lcd_init() u-boot/drivers/video/sprdfb/sprdfb_ma

i.mx6 lvds接口的DE模式液晶屏驱动调试

我这篇文章主要讲述i.mx6 平台下 采用DE模式的lvds液晶屏的驱动调试, 阅读该文章之前请先阅读如下两篇我转载的文章,这两篇文章是理解我这篇文章的基础知识. 1.        lcd fb参数如何计算: http://blog.csdn.net/liuhuahan/article/details/43447657 2.        camera_lcd之DE和HV模式区别 http://blog.csdn.net/liuhuahan/article/details/43489269 详

展讯平台 LCD(Mipi)移植步骤及问题归纳

原创文章,原文地址:http://blog.csdn.net/dearsq/article/details/51210703 欢迎转载,转载请保留地址! PortingGuide Backlight 背光的硬件设计有两种情况: 1. 内置并联背光 2. 外置串联背光 对于 1 的情况,步骤如下: 1.移植对应的 lcd 驱动. 2.设置u-boot\drivers\video\sprdfb\sprdfb_main.c中的背光为内置: void set_backlight(uint32_t val

关于display相关的一些内容—关于RGB接口屏调试

关于display相关的一些内容-关于RGB接口屏调试 1)关于VBP.VFP.HFP.HPB的影响 需要注意的是,对于像RGB接口tft9k23553 这样的tft屏,本身支持通过硬件拉高或者拉低两个管脚来控制扫描的方向和起始点,从而实现上下屏镜像或者左右屏镜像.本身不存储一帧数据,所以只是通过扫描方向和起始点实现此种镜像.但是如果调整了一个方向后,你再硬件修改了上下镜像方向,那么VBP和VFP可能需要重新调整,HFP和HBP不需要调整.否则出现图像被往上或者往下推了.但是如果调整了一个方向后

MIPI DSI 和 D-PHY 初始化序列

MIPI DSI 和 D-PHY 初始化序列 2015-12-29 深圳 南山平山村 曾剑锋 参考文档: i.MX 6Dual/6Quad Multimedia Applications Processor Reference Manual 43.4 Programming 43.4.1 DSI and D-PHY initialization sequence 43.4.1 DSI 和 D-PHY 初始化序列 This chapter describes the procedure for D

展讯7731平台驱动调试总结-驱动配置部分

转载至:http://blog.csdn.net/bmw7bmw7/article/details/46126223 展讯7731平台驱动调试总结-驱动配置部分 1. 关键配置文件路径 1). 项目板级配置:idh.code/device/sprd/scx35_sp7731geaplus_pad_qhd/文件夹内各文件 ⑴.BoardConfig.mk---板级宏配置文件.包括设置该板(项目)所使用的uboot/kerenl全局配置宏文件,摄像头接口类型.分辨率等参数,所使用的重力加速度.光线传

linux驱动开发流程

嵌入式linux驱动开发流程嵌入式系统中,操作系统是通过各种驱动程序来驾驭硬件设备的.设备驱动程序是操作系统内核和硬件设备之间的接口,它为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,可以像操作普通文件一样对硬件设备进行操作.设备驱动程序是内核的一部分,完成以下功能:◇ 驱动程序的注册和注销.◇ 设备的打开和释放.◇ 设备的读写操作.◇ 设备的控制操作.◇ 设备的中断和轮询处理.Linux主要将设备分为三类:字符设备.块设备和网络设备.字符设备是指发送和接收数据以字符的

MIPI DSI协议介绍

此文根据网上的资料翻译和整理而来 一.MIPI MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写.MIPI(移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准. 已经完成和正在计划中的规范如下: 二.MIPI联盟的MIPI DSI规范 1.名词解释 • DCS (DisplayCommandSet):DCS是一个标准化的命令集,用于命令模式的显示模组. • DSI, CSI (DisplaySerialInterfa