日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

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

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


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


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

1、MIPI LCD初始化序列描述

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

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

kernel/Documentation/devicetree/bindings/display/panel/simple-panel.txt
這個文檔里簡單描述了一下:

-?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
翻譯過來大概的意思是:

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

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

個人的理解方法:

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

2、具體的配置方法(舉例)
最近由于需要調(diào)試MIPI接口的LCD顯示屏,然而我已經(jīng)很久沒調(diào)過驅(qū)動了;廠家給了我下面這一段初始化代碼,我一看一臉懵逼,對于好多年沒搞驅(qū)動的我不免覺得有點心虛,怕是月底驗收任務(wù)的時候要被扣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);
那么這個初始化代碼是什么含義呢?廠家一般不會告訴我,也不會給我提供寄存器手冊,因為那是他們的知識產(chǎn)權(quán),所以我也沒必要知道他們到底設(shè)置了什么東西,我只需要知道它們就是協(xié)助我點屏的重要步驟之一就可以了。

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

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

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

首先感謝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ù)個數(shù)
SET_GENERIC為開始,下一個SET_GENERIC(不包含這次的SET_GENERICDelay)為結(jié)束作為一次數(shù)據(jù)發(fā)送,數(shù)一數(shù)一共有幾個數(shù)據(jù)。

  • 看延時
看看廠家提供的初始化代碼里面有沒有延時。

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

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

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

以下每一個字節(jié)一一進行對應(yīng):
命令類型?延時數(shù)量(轉(zhuǎn)16進制)??數(shù)據(jù)長度??數(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è)備樹里的初始化序列就應(yīng)該這么寫,把上面轉(zhuǎn)換的結(jié)果復(fù)制到下面來:

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

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

往期精彩

一個強大的音視頻編解碼庫-rkmedia的應(yīng)用

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

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

瑞芯微RV1109配置GPIO設(shè)備樹修改筆記(熟悉新平臺從點燈大法開始)

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

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

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉