www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 嵌入式云IOT技術(shù)圈
[導(dǎo)讀]點(diǎn)擊上方「嵌入式云IOT技術(shù)圈」,選擇「置頂公眾號(hào)」第一時(shí)間查看嵌入式筆記!上一篇文章,我們簡(jiǎn)單的列舉了MIPI-DSI驅(qū)動(dòng)的一些常用參數(shù)的基本解讀,但是那僅僅是走馬觀花走了一遍,真正深入往里鉆的話還是很難的,文章如下:LinuxMIPIDSILCD設(shè)備驅(qū)動(dòng)開(kāi)發(fā)調(diào)試細(xì)節(jié)學(xué)習(xí)筆記(...

點(diǎn)擊上方「嵌入式云IOT技術(shù)圈」,選擇「置頂公眾號(hào)」第一時(shí)間查看嵌入式筆記!


上一篇文章,我們簡(jiǎn)單的列舉了MIPI-DSI驅(qū)動(dòng)的一些常用參數(shù)的基本解讀,但是那僅僅是走馬觀花走了一遍,真正深入往里鉆的話還是很難的,文章如下:


Linux MIPI DSI LCD設(shè)備驅(qū)動(dòng)開(kāi)發(fā)調(diào)試細(xì)節(jié)學(xué)習(xí)筆記(一)

1、MIPI LCD初始化序列描述

在上一篇文章中,我們看到榮品的屏設(shè)備樹(shù)中有這么一段代碼,但是里面的數(shù)據(jù)是什么含義呢?

panel-init-sequence?=?[
???05?78?01?11
???05?78?01?29
??];
今天來(lái)詳細(xì)記錄下我學(xué)習(xí)在設(shè)備樹(shù)中適配MIPI-DSI LCD初始化代碼的詳細(xì)過(guò)程。Linux提供了配置初始化代碼的接口,相應(yīng)的設(shè)備樹(shù)也就支持了,這部分在內(nèi)核的文檔里有寫(xiě):

kernel/Documentation/devicetree/bindings/display/panel/simple-panel.txt
這個(gè)文檔里簡(jiǎn)單描述了一下:

-?panel-init-sequence:
-?panel-exit-sequence:
?A?byte?stream?formed?by?simple?multiple?dcs?packets.
??byte?0:?dcs?data?type
??byte?1:?wait?number?of?specified?ms?after?dcs?command?transmitted
??byte?2:?packet?payload?length
??byte?3?and?beyond:?number?byte?of?payload
翻譯過(guò)來(lái)大概的意思是:

初始化序列
退出序列
由簡(jiǎn)單的多個(gè)dcs數(shù)據(jù)包形成的字節(jié)流
第0個(gè)字節(jié):dcs數(shù)據(jù)類型
第1個(gè)字節(jié):發(fā)送dcs命令后等待指定的毫秒數(shù)
第2個(gè)字節(jié):數(shù)據(jù)包有效載荷長(zhǎng)度
第3個(gè)字節(jié)及以后:有效載荷的字節(jié)數(shù)
一般情況下LCD屏?xí)谐跏蓟头闯跏蓟倪^(guò)程,但是在實(shí)際應(yīng)用中,一般還很少會(huì)用到反初始化,所以LCD面板廠家一般都是只提供初始化代碼,在MIPI DSI驅(qū)動(dòng)中,我們需要將這些廠家提供的初始化代碼轉(zhuǎn)換為相應(yīng)的DCS序列,關(guān)于初始化序列和退出序列的描述,由于我用的平臺(tái)是瑞芯微,瑞芯微提供的技術(shù)文檔也有相應(yīng)的描述:具體參數(shù)配置方法,查看原廠瑞芯微給的文檔的案例描述:

關(guān)于?DCS?類型是怎么來(lái)理解的,瑞芯微文檔中也可以看到對(duì)它的描述:

個(gè)人的理解方法:

如果只有一個(gè)數(shù)據(jù),對(duì)應(yīng)的命令類型是0x05;如果有兩個(gè)數(shù)據(jù),對(duì)應(yīng)的命令類型是0x15;如果多于兩個(gè)數(shù)據(jù),對(duì)應(yīng)的命令類型是0x39。

2、具體的配置方法(舉例)
最近由于需要調(diào)試MIPI接口的LCD顯示屏,然而我已經(jīng)很久沒(méi)調(diào)過(guò)驅(qū)動(dòng)了;廠家給了我下面這一段初始化代碼,我一看一臉懵逼,對(duì)于好多年沒(méi)搞驅(qū)動(dòng)的我不免覺(jué)得有點(diǎn)心虛,怕是月底驗(yàn)收任務(wù)的時(shí)候要被扣KPI了,廠商的初始化代碼如下:

SET_GENERIC(0x02);
W_D(0x80);W_D(0xAB);
SET_GENERIC(0x02);
W_D(0x81);W_D(0x4B);
SET_GENERIC(0x02);
W_D(0x82);W_D(0x84);
SET_GENERIC(0x02);
W_D(0x83);W_D(0x88);
SET_GENERIC(0x02);
W_D(0x84);W_D(0xA8);
SET_GENERIC(0x02);
W_D(0x85);W_D(0xE3);
SET_GENERIC(0x02);
W_D(0x86);W_D(0xB8);
SET_GENERIC(0x02);
W_D(0x87);W_D(0x5A);
SET_GENERIC(0x02);
W_D(0xB1);W_D(0x38);
SET_GENERIC(0x01);
W_D(0x11);
delay_ms(120);
SET_GENERIC(0x01);
W_D(0x29);
那么這個(gè)初始化代碼是什么含義呢?廠家一般不會(huì)告訴我,也不會(huì)給我提供寄存器手冊(cè),因?yàn)槟鞘撬麄兊闹R(shí)產(chǎn)權(quán),所以我也沒(méi)必要知道他們到底設(shè)置了什么東西,我只需要知道它們就是協(xié)助我點(diǎn)屏的重要步驟之一就可以了。

我們就簡(jiǎn)單的認(rèn)為這個(gè)初始化代碼包含三類指令,分別是:

  • SET_GENERIC
  • W_D
  • delay_ms
不同廠家提供的初始化代碼是不同的,但格式基本上都是大同小異,有的初始化代碼很少,也有的超級(jí)長(zhǎng),比如榮品的設(shè)備樹(shù)里就有一個(gè)更長(zhǎng)的,如下所示,這個(gè)是已經(jīng)將初始化代碼轉(zhuǎn)換為DCS格式的了:

可見(jiàn)有些LCD面板廠家提供的初始化代碼也是很多的,所以搞這個(gè)真的還是要有點(diǎn)耐心的,否則很容易出錯(cuò),一旦出錯(cuò),可能屏幕都點(diǎn)不亮。以上只是舉一個(gè)簡(jiǎn)單的例子,我們需要將上面廠家給我的初始化命令轉(zhuǎn)化成對(duì)應(yīng)的DCS格式,然后添加到設(shè)備樹(shù)的初始化序列里,這樣驅(qū)動(dòng)在加載的時(shí)候才能夠被正確識(shí)別到。

首先感謝CSDN網(wǎng)友提供以下思路:

https://blog.csdn.net/sunqinglin4826/article/details/104848529
https://blog.csdn.net/weixin_42399752/article/details/101108550
https://blog.csdn.net/dearsq/article/details/52354593
既然要將初始化代碼轉(zhuǎn)換成DCS格式,那么就衍生出下面的步驟:

  • 數(shù)個(gè)數(shù)
SET_GENERIC為開(kāi)始,下一個(gè)SET_GENERIC(不包含這次的SET_GENERICDelay)為結(jié)束作為一次數(shù)據(jù)發(fā)送,數(shù)一數(shù)一共有幾個(gè)數(shù)據(jù)。

  • 看延時(shí)
看看廠家提供的初始化代碼里面有沒(méi)有延時(shí)。

確定了以上步驟以后,我們就需要將初始化代碼改寫(xiě)成下面的格式:

命令類型 延時(shí)數(shù)量 數(shù)據(jù)長(zhǎng)度 數(shù)據(jù)
2.1、普通序列
SET_GENERIC(0x02);
W_D(0x80);W_D(0xAB);
如上,有三個(gè)數(shù)據(jù),所以命令類型為39,所以第一個(gè)序列要這么寫(xiě):

以下每一個(gè)字節(jié)一一進(jìn)行對(duì)應(yīng):
命令類型?延時(shí)數(shù)量?數(shù)據(jù)長(zhǎng)度?數(shù)據(jù)1?數(shù)據(jù)2?數(shù)據(jù)3
??39???00???03???02???80??AB
2.2、帶延時(shí)的序列
SET_GENERIC(0x01);
W_D(0x11);
delay_ms(120);
如上,有兩個(gè)數(shù)據(jù),1個(gè)延時(shí),所以命令類型為15,所以帶延時(shí)的序列要這么寫(xiě):

以下每一個(gè)字節(jié)一一進(jìn)行對(duì)應(yīng):
命令類型?延時(shí)數(shù)量(轉(zhuǎn)16進(jìn)制)??數(shù)據(jù)長(zhǎng)度??數(shù)據(jù)1??數(shù)據(jù)2
?15??????78????????02???01???11?
2.3、將廠家給的序列轉(zhuǎn)換為DCS格式序列
以此類推,從廠家給我們的初始化代碼轉(zhuǎn)換為序列就是:

39?00?03?02?80?AB
39?00?03?02?81?4B
39?00?03?02?82?84
39?00?03?02?83?88
39?00?03?02?84?A8
39?00?03?02?85?E3
39?00?03?02?86?B8
39?00?03?02?87?5A
39?00?03?02?B1?38
15?78?02?01?11
15?00?02?01?29
所以在設(shè)備樹(shù)里的初始化序列就應(yīng)該這么寫(xiě),把上面轉(zhuǎn)換的結(jié)果復(fù)制到下面來(lái):

panel-init-sequence?=?[
??39?00?03?02?80?AB
??39?00?03?02?81?4B
??39?00?03?02?82?84
??39?00?03?02?83?88
??39?00?03?02?84?A8
??39?00?03?02?85?E3
??39?00?03?02?86?B8
??39?00?03?02?87?5A
??39?00?03?02?B1?38
??15?78?02?01?11
??15?00?02?01?29
];
所以我們就不難理解以上榮品的DTS里初始化序列的含義:

panel-init-sequence?=?[
???05?78?01?11
???05?78?01?29
??];
第一行:

  • 05表示DCS命令類型,表示只有一個(gè)數(shù)據(jù)。
  • 78表示延時(shí)時(shí)間為(0x78)=> 120ms
  • 01表示指令的數(shù)據(jù)長(zhǎng)度只有一個(gè)字節(jié)
  • 11表示的就是數(shù)據(jù)
同理,第二行也是一樣的理解,到這里我們就徹底的掌握了設(shè)備樹(shù)關(guān)于初始化序列的配置方法了,如果想詳細(xì)了解驅(qū)動(dòng)代碼里是怎么實(shí)現(xiàn)的,那么也可以去追一追代碼,我覺(jué)得這種實(shí)現(xiàn)模式太優(yōu)秀了,不得不說(shuō)Linux內(nèi)核實(shí)現(xiàn)的DSI驅(qū)動(dòng)設(shè)計(jì)思想真的很棒!

還有很多內(nèi)容,分幾個(gè)章節(jié)來(lái)寫(xiě)吧,今天就學(xué)習(xí)總結(jié)到這了。

往期精彩

一個(gè)強(qiáng)大的音視頻編解碼庫(kù)-rkmedia的應(yīng)用

瑞芯微RV1109配置7寸電容觸摸屏的方向修改筆記

如何添加APP到Buildroot里(以瑞芯微rv1126為例)

瑞芯微RV1109配置GPIO設(shè)備樹(shù)修改筆記(熟悉新平臺(tái)從點(diǎn)燈大法開(kāi)始)

新產(chǎn)品立項(xiàng)了,作為嵌入式軟件工程師該如何來(lái)開(kāi)展設(shè)計(jì)工作?(個(gè)人經(jīng)驗(yàn)分享)

覺(jué)得本次分享的文章對(duì)您有幫助,隨手點(diǎn)[在看]并轉(zhuǎn)發(fā)分享,也是對(duì)我的支持。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉