最近有使用一些MIPI LCD的經驗, 目前看起來最麻煩的就是一開始的MIPI DSI Init Flow, 只要能夠正確地初始化螢幕後, 之後顯示圖形就算是比較輕鬆一點的工作.
由於之前並沒有任何相關的MIPI DSI經驗, 所以這次在ST7701S和JD9161Z LCD Driver的初始化花了一些時間和冤枉路, 所以特別記錄一下相關的初始化流程, 以免後來遇到MIPI DSI Panel又忘記了.
Panel Spec:
LCD Driver: ST7701S or JD9161Z
Interface: MIPI DSI
Size: 2.1 inch
Resolution: 480 x 480
Lane number: 2
目前市面上有支援MIPI DSI Interface的MCU並不多, 因為MCU單價非常高, 大概就是ST/NXP/GeneralPlus等大廠才會有.
MIPI Panel點不亮的主要原因: MIPI_DSI_GenericWrite function裡面的參數不能使用原廠提供的程式.
- 基本上MIPI_DSI_GenericWrite function會根據不同資料長度, 會有不同的txDataType, 但ST7701S和JD9161Z只能使用kDSI_TxDataGenLongWr的txdataType, 才會正常顯示畫面, 也就是不管資料長度多短, 我們都必須指定資料長度參數為Long.
- 因此我們必須修改原廠的MIPI_DSI_GenericWrite function才能正常使用.
- MIPI_DSI_DCS_Write function不需要修改, 維持原狀.
ST7701S Init Flow:
#define DEMO_LCDIF_HSW 24#define DEMO_LCDIF_HFP 240#define DEMO_LCDIF_HBP 180#define DEMO_LCDIF_VSW 4#define DEMO_LCDIF_VFP 40#define DEMO_LCDIF_VBP 30
JD9161Z Init Flow:
#define DEMO_LCDIF_HSW 10#define DEMO_LCDIF_HFP 50#define DEMO_LCDIF_HBP 50#define DEMO_LCDIF_VSW 2#define DEMO_LCDIF_VFP 19#define DEMO_LCDIF_VBP 17
沒有留言:
張貼留言