SN65DSI83 调试总结
下面是DSI83的调试注意点,供大家参考!
#1 LCD Panel 规格,时序要求:
Panels Timing |
page 15 |
||||
LCD Panel |
|
Min |
Typ. |
Max. |
|
Clock Frequency |
52 |
65 |
71 |
MHz |
|
HS Period Time |
1114 |
1344 |
1400 |
DCLK |
|
HS Blanking(BP+FP) |
90 |
320 |
376 |
DCLK |
|
VS Period Time |
778 |
806 |
845 |
H |
|
VS Blanking (BP+FP) |
10 |
38 |
77 |
H |
#2 目标应用
分辨率: 1024 X 768 @ 60帧
LVDS 输出:4 Data + 1 CLK
MIPI 输入: 4 lane + 1 CLK
DSI Video Mode: RGB888
#3 SN65DSI83的寄存器配置, 如附件.(CSR.txt)
#4 Qualcomm 的配置
MIPI CLK = 200MHz
pinfo->lcdc.h_front_porch = 98;/* thfp */
pinfo->lcdc.h_back_porch = 88; /* thb */
pinfo->lcdc.h_pulse_width = 40; /* thpw */
pinfo->lcdc.v_front_porch = 15; /* tvfp */
pinfo->lcdc.v_back_porch = 23; /* tvb */
pinfo->lcdc.v_pulse_width = 20; /* tvpw */
/* mipi - video mode */
pinfo->mipi.traffic_mode = DSI_BURST_MODE; //DSI_NON_BURST_SYNCH_EVENT;//DSI_BURST_MODE;
pinfo->mipi.pulse_mode_hsa_he = true;//true; //false; /* send HSA and HE following VS/VE packet */
pinfo->mipi.hfp_power_stop = false;//true; //false; /* LP-11 during the HFP period */
pinfo->mipi.hbp_power_stop = false;//true; //false; /* LP-11 during the HBP period */
pinfo->mipi.hsa_power_stop = false;//true; //false; /* LP-11 during the HSA period */
/* LP-11 or let Command Mode Engine send packets in HS or LP mode for the BLLP of the last line of a frame */
pinfo->mipi.eof_bllp_power_stop = true;//true; //false;
/* LP-11 or let Command Mode Engine send packets in HS or LP mode for packets sent during BLLP period */
pinfo->mipi.bllp_power_stop = false;//true; //false;
pinfo->mipi.force_clk_lane_hs = 1; 强制DSI_CLK始终处于HS,因我们用DSI CLK as 参考时钟
pinfo.mipi.vc = 0; // SN65DSI83 不支持 Virtual Channel capability
#5 初始化流程
重点注意:
(1) THE EN signal MUST be deasserted prior to enabling the MIPI CLK.
(2) ALL DSI INPUTS(MIPI INPUTS) MUST BE IN LP 11 during the deassertion/assertion of the EN signal.
This sequence should be ok.
1) Drive all DSI input lanes to LP11.
2) Assert the EN pin
3) Wait for 1ms
4) Initalize CSR
5) Set PLL EN bit then wait for PLL LOCK to be set
6) Start video stream
7) Soft reset (开视频后,一定要做的。)
#6 如不能直接点亮,可以用DSI83内部的测试模式,可以检查DSI83工作是否正常,配置寄存器和panel的图像,见附件。
Regards,
Jack
#6 如不能直接点亮,可以用DSI83内部的测试模式,可以检查DSI83工作是否正常,配置寄存器和panel的图像,见附件。
#6 如不能直接点亮,可以用DSI83内部的测试模式,可以检查DSI83工作是否正常,配置寄存器和panel的图像,见附件。
供你参考:
如出现闪烁或水波纹等,请先检查下面的可能:
1)遇見在lk裏面顯示內容閃爍很嚴重的問題,注意是內容查實不是配置屏幕的clk造成的,最後查出是porch沒有調整好。
2)注意clk或大或小不會影響顯示的,可能不匹配會造成屏幕閃爍,與其刷新率沒有對上。
3)用廠商给的序列要麼屏點不亮要麼界面有水波紋,這些通常都是rgb interface polarity導致,需要調整pclk hsync vsync de極性使之符合平台極性。
http://rritw.com/a/bianchengyuyan/C__/20130104/283658.html
以上,仅供大家参考,如还有问题,敬请跟我们联系!
Regards,
Jack
附件是DSI接口的详细介绍,下面是MIPI 时钟的计算方法,For the DSI83(single MIPI channel to single LVDS channel),
Min DSI CLK = (Total number of Horizontal pixels presented on DSI interface*DSI bits per pixel)/(Horizontal Line Time*2*Number of DSI lanes)
DSI bits per pixel = 24bpp if RGB888 or Loosely packed RGB666 is selected, 18bpp if RGB666 is selected
Total number of Horizontal pixels presented on DSI Interface = HBP(Horizontal Back Porch) + HFP(Horizontal Front Porch) + HPW(Horizontal Pulse Width) + Active number of Horizontal pixels for panel.
HBP and HFP and HPW can vary on the MIPI interface, it does not have to match panel datasheet for burst mode.
Horizontal Line Time = Total number of LVDS Horizontal Pixels/LVDS CLK Frequency
Where LVDS CLK Frequency = Pixel CLK for single channel LVDS panel.
DSI8X关键点: http://www.ti.com/lit/an/slla332a/slla332a.pdf 19页,
1. Line Time on DSI input and LVDS output MUST match while there is no need to match the horizontal sync or porch parameters,
panel 的行、场的同步头的宽度、Front porch/ Back porch可以与MIPI输出不一样,但Line Time 必须满足上述要求。
完毕!
Regards,
Jack
Dear jack,
我可以咨询你一个问题吗?我是asus 的BSP 工程师,我们现在在使用贵公司的sn65dsi83 这个mipi-->lvds 的bridge IC ,
我使用test mode ,测试已经将panle 点亮了,但是如果走mipi 还没有亮。
我们使用的cpu 是qualcom 的8226,我不 明白的是,mipi 那里我将porch ,resoloutation 都设置好了,那么dsi 的timing 需要如何设置啊?
mdss_dsi_phy_init (就是在这个function 里面)。一般如果我们直接点mipi 的panel的话,我们会根据panel IC 的
T_CLK_PREPARE |
T_CLK_ZERO |
T_CLK_TRAIL |
T_HS_PREPARE |
T_HS_ZERO |
T_HS_TRAIL |
T_HS_RQST |
T_HS_EXIT |
T_TA_GO |
T_TA_SURE |
T_TA_GET |
TEOT |
T_CLK_POST |
T_CLK_PRE |
上面参数计算出一个dsi 的timing ,请问下你们的bidge IC 也有这些参数吗?因为panle 是lvds 的,所有,肯定是没有这些参数,现在我的mipi 直接对象就是bridge IC ,按照道理是应该有的,还是就不需要设置dsi 的timing .
thanks
hyde_sun
谢谢分享
Dear david,
请问下,我qualocm 那里的timing 需要如何设定?你们会有那些参数提供给吗?
thanks
hyde_sun
Hi, hyde_sun,
您好,最近也在porting DSI83這顆IC,panel也是lvds的,想請教您是如何在test mode把panel點亮起來?
還有關於這顆IC的 driver 官方好像沒有提供,不知道您是否方便提供作參考? Thanks.
Dear abcde,
Test mode 是TI lvds 这颗bridge IC 自己的用来debug lvds 有没有好坏。
它完全不吃Mipi 讯号,你要通过lvds tune tool 中选择test mode ,将tune tool 产生的init code 通过I2C 下给LVDS bridge ic 。
下完后,LVDS 就会内部吐出RGB 的clor bar 到panel 上面。
thanks
hyde_sun
Hi, hyde_sun,
方便告诉我的lvds tune tool可以到哪里下载吗?或是提供你说的tune tool产生的初始化代码让我做参考吗Thanks.
给你也没有用的,因为和panel 的porch 有关的,panel 不一样,init code 也是不一样的。
至于tool 我觉得你还是让你们项目的PM 跟TI 的人要吧,很抱歉这个真的不方便给你。
thank
hyde_sun
Hi,hyde_sun,
OK. Thanks for your help.
我的mail 是sunweizhong1024@163.com
可以将你的联系方法发到我的邮箱里面吗?
找你有点事情。
你好 Jack Li,
我现在在调试SN65dsi85 这块芯片,想用内部测试模式,不知道具体操作步骤是怎样?
我是这样子做的,但是测试了还是黑屏:
1、DSI Tuner工具,选择Test Patter,并填写相应的屏参数。生成csr配置表,并通过I2C写入到相应的寄存器。
但是依据datasheet初始化要求,在第7步时,等不到PLL_LOCK被置位。屏蔽第7步操作,屏幕也是黑屏。
Initialization Sequence Description
Init seq1 After power is applied and stable, all DSI Input lanes including DSI CLK(DA x P/N, DB x P/N) MUST be driven to
LP11 state.
Init seq2 Assert the EN pin
Init seq3 Wait for 1ms for the internal voltage regulator to stabilize
Init seq4 Initialize all CSR registers to their appropriate values based on the implementation (The SN65DSI85 is not
functional until the CSR registers are initialized)
Init seq5 Start the DSI video stream
Init seq6 Set the PLL_EN bit(CSR 0x0D.0)
Init seq7 Wait for the PLL_LOCK bit to be set(CSR 0x0A.7)
Init seq8 Set the SOFT_RESET bit (CSR 0x09.0)
1、测试模式应该是与mipi 时钟和数据输入没有任何关系吧?
2、不知道使用测试模式具体正确的操作是怎样的?
3、上电后所有DSI需进入PL11状态,需要发送指令么,要发送什么指令?还是上电自动进入?
jack li:
pinfo->mipi.force_clk_lane_hs = 1; 强制DSI_CLK始终处于HS,因我们用DSI CLK as 参考时钟
这个把CLK set to force high speed 模式,是在Initalize CSR 之前还是之后?
jack li:
pinfo->mipi.force_clk_lane_hs = 1; 强制DSI_CLK始终处于HS,因我们用DSI CLK as 参考时钟
这个把CLK set to force high speed 模式,是在Initalize CSR 之前还是之后?