HI3556V200 Linux+Liteos雙系統學習(7)----Liteos端對接RGB888 OLED螢幕
文章目錄
參考文件:
1.螢幕對接使用指南.pdf
HI3556V200這塊板子附帶一款索尼的ECX336 OLED螢幕,螢幕解析度為640X400,RGB888介面。比較感興趣,所以按照文件對接一番,中間爬了不少的坑,特此記錄下。
1 硬體確認
板端與螢幕硬體一般需要四種連線,各執行不同的功能,這個要根據具體螢幕和硬體來確認,如下圖:(來自海思文件)
控制命令傳輸介面(對應圖中 SPI OR I2C)
影像資料傳輸介面(對應圖中 HSYNC VSYNC CLK DATA0~DATAN DE)
背光控制(對應圖中 BACKLIGHT)
硬體復位介面(對應圖中 RESET)
1.1通訊介面(SPI or I2C)確認
螢幕一般是通過SPI或者I2C方式和裝置通訊的,這臺裝置的螢幕是部署在Liteos端的,ECX336這塊螢幕是通過SPI2和裝置通訊的,因此需要確認Liteos端的SPI2是否被開啟了。
在Liteos控制端,輸入ls /dev ,如果有SPI2的欄位說明Liteos端已經開啟了SPI2。如果沒有,則需要配置Liteos的核心開啟SPI2,另外需要注意在Linux端的dts裝置樹中對應disable SPI2,防止衝突。
1.2硬體管腳確認
簡單對比一下硬體管腳是否正確,在Liteos端配置好LCD的管腳複用功能以及SPI功能之後,最好先對管腳進行簡單通訊來確定整個硬體通路是否正常。
比如根據螢幕的Datasheet,對LCD的SPI管腳傳送某個指令檢視是否有回應,或者是否有收到。
在前期對整個硬體部分最好做好驗證工作,不然後面有問題,查一大堆軟體方面,最終卻發現硬體有問題,那就酸爽了…
2 軟體配置
2.1 使能SPI管腳
在Liteos端初始化時候,使能SPI功能,以及配置SPI對應管腳。
大致程式碼如下:
spi_dev_init
static void spi2_pin_mux(void)
{
himm(0x114F0050, 0x5f4);
himm(0x114F0054, 0x5f4);
.......
}
2.2 配置螢幕資料管腳複用
根據硬體原理圖,找到螢幕對應的HSYNC VSYNC CLK DATA0~DATAN DE等管腳,在Liteos端進行管腳複用。
部分程式碼截圖如下:
2.3 配置螢幕背光及Reset管腳複用
根據硬體原理圖,複用對應的管腳。
2.4 螢幕驅動初始化
一般螢幕在上電後會有對應的初始化過程,裝置通過SPI或者I2C向螢幕傳送對應的控制指令,用於向螢幕傳送比如顯示幀率,解析度等配置資訊。
螢幕的datasheet上或者原廠會有對應的配置方式,可直接進行配置。
2.5 配置VO相關
2.5.1 配置時序型別
配置時序型別為user時序,並配置螢幕的輸出是那種型別。
2.5.2 配置User時序
在User時序結構體VO_SYNC_INFO_S 的畫素區域相關的引數需要配置。我們可以根據datasheet上螢幕對應的解析度相關的引數,將其填入《RGB_MIPI螢幕時鐘時序計算器.xlsx》中,如下:
並將其填入結構體中:
2.5.3 其它配置項
VO輸出時鐘,是否反相,分頻比等資訊也要進行配置。
3 圖片顯示
在前面配置了螢幕相關的引數後,可以呼叫HI_MAPI_DISP_SetAttrEx函式進一步設定視訊顯示裝置的影像效果,然後進一步呼叫HI_MAPI_DISP_Start/HI_MAPI_DISP_SetWindowAttr/HI_MAPI_DISP_SetWindowAttrEx/HI_MAPI_DISP_StartWindow來配置屬性,使能VO顯示部分。
然後,我們可以將一張圖片轉換為YUV 格式,然後呼叫HI_MAPI_DISP_SendFrame函式送到VO部分,正常的話,就會在螢幕上顯示出對應的圖片。
相關文章
- oled螢幕不卡方案
- LiteOS雲端對接教程03-LiteOS基於MQTT對接EMQ-X服MQQT
- iPhone7/7 Plus為何還沒采用OLED螢幕?真相如此iPhone
- iPhone 7s或配無邊框OLED螢幕 僅限大屏版iPhone
- 小米手環2正式釋出!搭配OLED螢幕
- 【WebRTC 跨端通訊】React + React Native 雙端影片聊天、螢幕共享Web跨端React Native
- 呼叫系統螢幕保護 (轉)
- 國產OLED螢幕被認可,蘋果讓京東方獲得iPhone供應螢幕資格蘋果iPhone
- apple watch2 6月上市?採用OLED螢幕APP
- GhostTouch:針對智慧觸控式螢幕的非接觸性攻擊
- Flutter學習 —- 螢幕截圖和高斯模糊Flutter
- Flutter學習 ---- 螢幕截圖和高斯模糊Flutter
- 5.8英寸iPhone 8將採用無邊框OLED螢幕iPhone
- 三星LG共同提供 未來iPhone將用OLED螢幕iPhone
- Win10系統設定接投影儀演示時自動禁用螢幕保護的方法Win10
- 曝蘋果聯手臺積電研發microLED螢幕,欲取代OLED蘋果
- 未來iPhone三星造? 將為其供應OLED螢幕iPhone
- 小米手環2詳細評測:增加oled螢幕 可測心率
- 短視訊系統原始碼,限制DialogFragment相對螢幕的最大高度原始碼Fragment
- 透過終端控制螢幕亮度
- Qt學習筆記-使用QScreen對螢幕進行截圖(可全屏,可部分)QT筆記
- 如何使用系統音訊錄製Mac螢幕?音訊Mac
- android系統如何自適應螢幕大小Android
- win10遠端桌面多螢幕怎麼設定_win10系統下將多個多個螢幕都用於遠端連線的方法Win10
- 遠端控制篇:抓取遠端螢幕影像 (轉)
- 同是OLED,iPhone X與三星Note8的螢幕大有不同iPhone
- iPhone 8酷勁十足 5.8英寸OLED無邊框螢幕iPhone
- 手機護眼概論及OLED螢幕降低頻閃原理介紹
- 取消win10開始螢幕的方法 如何取消win10系統開始螢幕Win10
- windows7視窗跑到螢幕外面Windows
- 移動 web 端螢幕適配 – remWebREM
- ActivePresenter 螢幕教學錄影
- Linux系統裡如何徹底的清空螢幕?Linux
- 多系統對接-簽名校驗案例
- 北京航聯航意險系統對接
- Win10系統如何取消開始螢幕 Win10取消開始螢幕的步驟Win10
- ABP微服務系列學習-對接前端介面微服務前端
- window7和centos 雙系統CentOS