RT595 系列透過內件 MIPI DSI 模組使用 LP Mode 進行 Driver 設定方式

一、概述

MIPI (Mobile Industry Processor Interface)是由移動設備製造商創建的非營利組織 Mobile Industry Processor Interface Alliance(MIPI Alliance)制定的一組規範,其規範涵蓋了各種移動設備中使用的接口和協議,例如:顯示器接口、攝像頭接口、傳感器接口、存儲器接口、調試接口等等。這些規範主要用於移動設備中的芯片、模塊和傳感器之間的通信,各種 MIPI 的通用架構如圖 1 所示,本文將著重於 RT595 的 MIPI DSI 模組進行解說。
圖 1 ( 註 1 )
RT595 透過硬體模組將資料統整為 DSI 協議,而後再由物理層的 D-PHY CLK 與 D-PHY Lane 0 與 Lane 1 將資料傳送到 Panel 的 MIPI driver ,進行指令傳輸與圖像更新 ( 如圖 2 ),後續將透過 NXP RT595 EVK 與市售 Panel ( Driver ST7701S ) ,並以NXP RT595 IDE 中的 lcdif_rgb565 進行通訊與演示。

圖 2 ( 註 2 )

二、 需求物件

2.1 硬體

2.1.1 NXP RT595 EVK 詳細規格如下列網址所示

https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt595-evaluation-kit:MIMXRT595-EVK

2.1.2 Type A to mini B USB Cable : 1 pcs

2.1.3 Panel 1 pcs (本文中演示的 Panel 為 480 x 480 RGB565 Panel,Driver ST7701S ),附轉板

2.1.4 轉板 FPC 0.5 40 pin to 2.54 杜邦端子轉板

2.2 軟體

2.2.1 MCUXPRESSO ( IDE ) 軟體開發環境如下列網址所示

https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE

2.2.2 NXP RT595 SDK 原廠提供的 RT595 EVK Sample Code 如下列網址所示

https://mcuxpresso.nxp.com/en/welcome

三、 操作方式

3.1 因 RT595 在 MIPI 的 Connector 原為 FPC 0.5 40 pin,而 Panel 為 FPC 0.5 17 Pin,因此需先透過轉板跳訊號線,配置步驟如圖 3、4

Step 1 將 RT595 EVK 翻到背面 ( 如圖 3 ),J44 為 FPC 0.5 40 pin


圖 3 ( 註 3 )

Step 2 將 J44 Connector 透過排線與轉板連接在透過跳線的方式與 Panel 連結即可 ( 如圖 4 )

圖 4

3.2 開啟 lcdif_rgb565 的範例,並將範例燒錄到 EVK 上,NXP RT595 EVK 板上配置有燒錄功能的 IC,如圖 5 紅框


圖 5 ( 註 4 )
3.3 將 USB Cable 連結到模組板 USB Connector,USB Cable 另一端連結到PC 如圖 6
圖 6  ( 註 4 )

3.4 執行 MCUXPRESSO 並將 NXP 的 SDK 導入到 IDE 中,操作流程如圖 7、8

3.4.1 點擊 import SDK example(s)

3.4.2 彈出 SDK import Wizard 視窗,點選 RT595

3.4.3 點選 Next

3.4.4 點選 sample code lcdif_rgb565

3.4.5 點選 Finish 完成 Project 建立


圖 7

圖 8
3.5 將 DEMO_LCDIF_RGB Function 註解掉,該副程式是用來執行 High Speed Mode 刷新圖示的程式,本文中將針對 Low Power Mode 進行演示,因此先不說明 High Speed Mode 的部分 ( 如圖 9 )
圖 9

3.6 在 main code 中找到 DEMO_LCDIF_Init 的 Function ( 如圖 10 )

圖 10
3.7 在 DEMO_LCDIF_Init 找到 BOARD_InitDisplayInterface 並進入該 Function ( 如圖 11 ),而後找到 BOARD_InitLcdPanel 並進入該 Function ( 如圖 12 ),而後看到 RM68200_Init Function ( 如圖 13 ),這是 NXP RT595 SDK 用來驅動另一塊 Panel 的 init Function
圖 11
圖 12
圖 13
3.8 在 fsl_rm68200.c 下我們另外建立 ST7701S_Init Function 來對 ST7701S driver 下達 Init Command ( 程式解析如下 ),以下程式接是透過 Low Power Mode 進行通訊,有關 RT595 DSI 時鐘設定可以參閱大大通文章 “ RT595 之 MIPI DSI 时钟配置 ”
 

3.8.1 如圖 14 的 1.
 
宣告陣列變數 param,用來放置下 command 的空間
宣告變數 status,用來 return function 傳送結束後的狀態
宣告變數 *resource 為 function 輸入變數的 ( handle->resource )
宣告變數 *dsiDevice 為resource內的 dsiDevice 參數

3.8.2 如圖 14 的 2.

執行 Reset Pin 為 Low 120 MS,而後為 High 120 MS 後保持住,達到對 Driver IC ( ST7701S ) 做 reset 的功能

圖 14
3.8.3 對應 ST7701S Datasheet,對 register CND2BKxSEL 下達指令做切換 Bank 的功能,而後使用 MIPI_DSI_GenericWrite Function 將儲存到 param 陣列中的參數,透過 DSI 協議送出,待傳輸完畢後 Function 會 return 狀態,如果成功則繼續執行下一步驟 ( 如圖 15 )
圖 15

3.8.4

如圖 16 的 1.,對 Display Line Setting register 下達 Panel 尺寸的參數指令
如圖 16 的 2.,對 Porch Control register 下達參數,參數值須請 Panel 廠提供
如圖 16 的 3.,對 Inversion selection & Frame Rate Control register 下達參數,後續將以 Column 的方式刷新螢幕資料
圖 16
3.8.5 對 register CND2BKxSEL 下達指令做切換 Bank 的功能,將 Bank 切回 Bank 2 ( 如圖 17 )

圖 17

3.8.6

如圖 18 的 1.,對 register Display data access control下達指令,將 Display 的顯示順序設定為 RGB
如圖 18 的 2.,對 register Interface Pixel Format下達指令,將 Pixel Format 設定為 24 bit
如圖 18 的 3.,依序下達 DSI 通用 Command,因該 Panel 背光 default 為黑色,因此需先下達 Display Inversion On將顯示狀態反向,而後設定離開 Sleep mode,然後下達 Display On
圖 18
3.8.7 如圖 19,依照 Panel 廠提供的 test mode 的 color bar 功能,讓 Panel 可以透過 DSI 通訊方式呈現 color bar 圖示,用以驗證 EVK 是否有與 Panel 通訊成功


圖 19
3.9 回到步驟 3.7 的 RM68200_Init Function ( 如圖 13 ),將 RM68200_Init 變更為新增的 ST7701S_Init Function ( 如圖 20 )

圖 20
3.10 修改 code 並點擊 build 按鈕 ( 如圖 21 紅框所示 )
圖 21
3.11 點擊 GUI Flash Tool 進行燒錄動作
 
3.11.1 點擊 GUI Flash Tool 如圖 22 紅框
 
3.11.2 點擊 OK 選擇已 Link 的燒錄器 如圖 23 紅框
 
3.11.3 點擊 Run 執行燒錄 如圖 24 紅框
 
3.11.4 燒錄完畢後點擊 OK 如圖 25 紅框
圖 22
圖 23
圖 24
圖 25

3.12 將 PC 與 EVK 連接的 USB Cable 重新插拔上電後,如圖 26 為通訊完成的結果顯示

圖 26
有關 RT595 Low Power Mode 使用示波器量測波型是否正確的解析方式可以參閱大大通文章 “ 【阿福的隨筆】淺談 MIPI DSI 波形解析”
 

註 1:作者:MIPI Alliance;出處 https://www.mipi.org/about-us

註 2:作者:NXP Semiconductors;出處:NXP 文件 IMXRT500RM Rev. 0.1 的 Fig.180

註 3 :作者:NXP Semiconductors;出處:NXP 文件 MIMXRT595EVKHUG User's Guide Rev. 0, 的 Fig.6

註 4 :作者:NXP Semiconductors;出處:NXP 文件 MIMXRT595EVKHUG User's Guide Rev. 0, 的 Fig.1

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能