第二次调试MIPI屏幕,套路居然又不太一样?
-
三个月之前有调试过一块MIPI接口的小屏幕,最近又买了一款新的MIPI接口的屏幕,本以为会像上次一样顺顺利利的,结果....
废话不多说,这次买的屏幕长这样:
基本参数:
是2通道的MIPI接口,驱动IC是ST7701s,2寸,分辨率480*360。
管脚:
转接板:
数据手册:
ST7701S_SPEC_+V1.1.pdf初始化代码:
/* VFP=VBP=6=VS=6 HFP=HBP=6=HS=220 pll_clock=155; */ WriteComm (0xFF); WriteData (0x77); WriteData (0x01); WriteData (0x00); WriteData (0x00); WriteData (0x13); WriteComm (0xEF); WriteData (0x08); WriteComm (0xFF); WriteData (0x77); WriteData (0x01); WriteData (0x00); WriteData (0x00); WriteData (0x10); WriteComm (0xC0); WriteData (0x2C); WriteData (0x00); WriteComm (0xC1); WriteData (0x08); WriteData (0x02); WriteComm (0xC2); WriteData (0x37); WriteData (0x05); WriteComm (0xCC); WriteData (0x10); ..... // 稍微有点多.... // 下面是我整理过的 {0xFF, 5, {0x77, 0x01, 0x00, 0x00, 0x13} }, {0xEF, 1, {0x08}}, {0xFF, 5, {0x77, 0x01, 0x00, 0x00, 0x10}}, {0xC0, 2, {0x2C, 0x00}}, // SCNL = (0x2c + 1) * 8 = 360 {0xC1, 2, {0x08, 0x02}}, // VFB=0x08 VBF=0x02 {0xC2, 2, {0x37, 0x05}}, // PCLK= 512 + (0x05 * 16) = 592 {0xCC, 1, {0x10}}, {0xB0, 16, {0x04, 0x0E, 0x17, 0x0B, 0x0F, 0x06, 0x08, 0x08, 0x08, 0x24, 0x04, 0x11, 0x0F, 0x2C, 0x33, 0x13}}, {0xB1, 16, {0x0C, 0x16, 0x1D, 0x0E, 0x11, 0x06, 0x08, 0x08, 0x08, 0x24, 0x05, 0x13, 0x11, 0x2D, 0x33, 0x1F}}, {0xFF, 5, {0x77, 0x01, 0x00, 0x00, 0x11}}, {0xB0, 1, {0x54}}, {0xB1, 1, {0x76}}, {0xB2, 1, {0x87}}, {0xB3, 1, {0x80}}, {0xB5, 1, {0x4B}}, {0xB7, 1, {0x85}}, {0xB8, 1, {0x21}}, {0xC1, 1, {0x78}}, {0xC2, 1, {0x78}}, {0xD0, 1, {0x88}}, {REGFLAG_DELAY, REGFLAG_DELAY, { 20 } }, {0xE0, 3, {0x00, 0x00, 0x02}}, {0xE1, 11, {0x02, 0x00, 0x04, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x33, 0x33}}, {0xE2, 12, {0x11, 0x11, 0x33, 0x33, 0x6E, 0x00, 0x70, 0x00, 0x6D, 0x00, 0x6F, 0x00}}, {0xE3, 4, {0x00, 0x00, 0x11, 0x11}}, {0xE4, 2, {0x44, 0x44}}, {0xE5, 16, {0x03, 0x6F, 0x00, 0xFF, 0x05, 0x71, 0x00, 0xFF, 0x07, 0x73, 0x00, 0xFF, 0x09, 0x6D, 0x00, 0xFF}}, {0xE6, 4, {0x00, 0x00, 0x11, 0x11}}, {0xE7, 2, {0x44, 0x44}}, {0xE8, 16, {0x02, 0x6E, 0x00, 0xFF, 0x04, 0x70, 0x00, 0xFF, 0x06, 0x72, 0x00, 0xFF, 0x08, 0x6C, 0x00, 0xFF}}, {0xEB, 7, {0x00, 0x01, 0x4E, 0x4E, 0xEE, 0x44, 0x00}}, {0xED, 16, {0x4F, 0x01, 0x23, 0x56, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x65, 0x32, 0x10, 0xF4}}, {0xEF, 6, {0x10, 0x0D, 0x04, 0x08, 0x3F, 0x1F}}, {0xFF, 5, {0x77, 0x01, 0x00, 0x00, 0x00}}, {0x11, 0, {0x00}}, {REGFLAG_DELAY, REGFLAG_DELAY, { 120 } }, {0x36, 0, {0x00}}, {0x35, 0, {0x00}}, {0x29, 0, {0x00}}, { REGFLAG_END_OF_TABLE, REGFLAG_END_OF_TABLE, {} }
现在有个疑问是下面的这几个参数,手册中只给了几个范围:
然后卖家给的初始化代码开头的几行注释,跟代码中实际设置的貌似也不一致....
卖家给的:VFP=VBP=6=VS=6 HFP=HBP=6=HS=220 pll_clock=155;
初始化代码计算的:
{0xFF, 5, {0x77, 0x01, 0x00, 0x00, 0x10}}, {0xC0, 2, {0x2C, 0x00}}, // SCNL = (0x2c + 1) * 8 = 360 {0xC1, 2, {0x08, 0x02}}, // VFB=0x08 VBF=0x02 {0xC2, 2, {0x37, 0x05}}, // PCLK= 512 + (0x05 * 16) = 592
HFP和HBP没看到有相关的命令设置...
现在的主要问题是下面这几个参数,我尝试了用各种方式计算,貌似都不对,
lcd_hbp = <>; lcd_ht = <>; lcd_hspw = <>; lcd_vbp = <>; lcd_vt = <>; lcd_vspw = <>; lcd_dsi_if = <0>; lcd_dsi_lane = <2>;
有大佬帮忙看一下吗 (我这里有两个屏幕和两个转接板,有想调的,可以联系我 )
-
@iamliubo 是屏的参数手册中标注的参数嘛?如果是的话,这个参数暂且不用管他,只需要配置在这个范围内即可。我看手册是 各种参数 1or2-254 。 需要计算 lcd_dclk_freq,与ht vt hbp vbp hspw vspw在手册范围内即可,设 hbp=20,hspw=10,hfp=10,vbp=20,vfp=10,vspw=10,ht=360 +hbp+hfp(全志的hbp=真hbp+hspw),即390,vt同样计算得510,由lcd_dclk_freq=lcd_htlcd_vtfps 得lcd_dclk_freq=11.9234Mhz,只能取整数 就 12Mhz了。但实际呢是2通道,所以要除2.嗯 lcd_dclk_freq=<6> 也不知对也不对,配置上测试一下?
-
卡在哪一步了? ,
-
@lovexulu
谢谢大佬指点,我试试,我就是比较疑惑没有给具体的值,给的只是个范围,不晓得怎么填了 -
@mangogeek
卡在不显示上了.... 商家都不能确定给的资料是不是对应这款屏幕,真是太难了 -
我找到原因了...
商家给我的规格书对不起来!!!
经我实际测试这俩管脚绝对是标反了!!!
经过上面 @lovexulu 大佬提醒后,我又尝试了好几次,那几个参数修改了很多次,一点出画面的感觉都没有,我就有点不明白了,我反复确认了好几遍焊接没问题(之前吃过这个亏...),突发奇想把这俩管脚反一下试试,结果就真有反应了
我是真没想到会是这个原因。。。。
好在我这画转接板的时候预留了这俩跳线位置,还算机智,哈哈明天找供应商算账去。
调整了几个参数后,现在显示一切正常啊,真好啊
-
@iamliubo 在 第二次调试MIPI屏幕,套路居然又不太一样? 中说:
,那几个参数修改了很多次,一点出画面的感觉都没有,我就有点不明白了,我反复确认了好几遍焊接没问题(之前吃过这个亏...),突发奇想把这俩管脚反一下试试,结果就真有反应了
-
@iamliubo 在 第二次调试MIPI屏幕,套路居然又不太一样? 中说:
我找到原因了...
商家给我的规格书对不起来!!!
经我实际测试这俩管脚绝对是标反了!!!
经过上面 @lovexulu 大佬提醒后,我又尝试了好几次,那几个参数修改了很多次,一点出画面的感觉都没有,我就有点不明白了,我反复确认了好几遍焊接没问题(之前吃过这个亏...),突发奇想把这俩管脚反一下试试,结果就真有反应了
我是真没想到会是这个原因。。。。
好在我这画转接板的时候预留了这俩跳线位置,还算机智,哈哈明天找供应商算账去。
调整了几个参数后,现在显示一切正常啊,真好啊
nice。关于这些数值计算 目前我也没发现明确的定义,但一般优化减少跳帧为目的 使fb0刷新与lcd输出比较平衡就可以了,我可不是大佬啊,初学菜鸟一只额。
-
馋,,,,,,,,了,,,,,,,
-
@mangogeek
哈哈 快递明天就到了 -
@lovexulu
我也不是很清楚每一个参数改大或者改小会实际影响到显示的哪部分,等有时间还是要好好研究下,还是比较喜欢MIPI接口的,速度快,管脚少(其实别的就会个SPI ) -
此回复已被删除! -
dalao,同搞了一块屏幕,参考第二个屏幕和第一次经历,卡在了Uboot起不来,之前是怎么排查的呢?
-
来一个img试试
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号