三个月之前有调试过一块MIPI接口的小屏幕,最近又买了一款新的MIPI接口的屏幕,本以为会像上次一样顺顺利利的,结果....
废话不多说,这次买的屏幕长这样:
基本参数:
是2通道的MIPI接口,驱动IC是ST7701s,2寸,分辨率480*360。
管脚:
转接板:
初始化代码:
/*
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的神奇物联网之旅
博客园:IAMLIUBO
Gayhub: IAMLIUBO
离线
有链接吗?现在这屏幕难买
离线
有链接吗?现在这屏幕难买
第一张图片中有店铺名称,记得规格书不太正确,不要再次采坑
唯有爱与科技不可辜负。
知乎专栏:IAMLIUBO的神奇物联网之旅
博客园:IAMLIUBO
Gayhub: IAMLIUBO
离线
前面说整理后分享给大家的,一直懒得整理,今天刚还有群友问,就简单整理了下,大家直接下载吧,下面的驱动代码和设备树只针对全志的Tina-SDK且仅在D1上测试过。
唯有爱与科技不可辜负。
知乎专栏:IAMLIUBO的神奇物联网之旅
博客园:IAMLIUBO
Gayhub: IAMLIUBO
离线
离线
这个屏 38脚是iovcc 39脚是gnd ?
离线
D1s的MIPI搞了很久都没有讯号
移植到D1s试试
离线
mipi接口的屏容易买到吗?资料容易搞到吗?
离线
DSI_RST这个io在哪里操作到。我看驱动都没有用到。难道是保持高电平就行~~
离线
你好,这个屏转接板出来的RGB接口是多少位的呀?驱动部分怎么送缓存的?
离线
楼主这个屏是几寸?
离线
@IAMLIUBO
嗨。. 告诉我,这个带有st7701面板的dts是否适用于mangopi t113-s3板?
最近编辑记录 vvpnet (2023-04-25 14:29:30)
离线
你好,这个屏转接板出来的RGB接口是多少位的呀?驱动部分怎么送缓存的?
好像是 MIPI ? 不是 RGB 接口?
唯有爱与科技不可辜负。
知乎专栏:IAMLIUBO的神奇物联网之旅
博客园:IAMLIUBO
Gayhub: IAMLIUBO
离线
@IAMLIUBO
嗨。. 告诉我,这个带有st7701面板的dts是否适用于mangopi t113-s3板?
要尝试下, 我没试过
唯有爱与科技不可辜负。
知乎专栏:IAMLIUBO的神奇物联网之旅
博客园:IAMLIUBO
Gayhub: IAMLIUBO
离线
楼主这个屏是几寸?
2寸
唯有爱与科技不可辜负。
知乎专栏:IAMLIUBO的神奇物联网之旅
博客园:IAMLIUBO
Gayhub: IAMLIUBO
离线
不知道为什么,我移植一块屏幕(ST7701驱动的)LCD_open_flow这个函数没有被系统调用过,但退出时系统却调用了LCD_close_flow(sel),说明驱动是加载成功的,在LCD_open_flow加入printk,但是从开机日志或者reboot的日志都观察不到,只有close_flow能观察到
离线