【NXP i.MX RT1170 Knob HMI】- 建置 LCD 環境注意事項

一、前言

Knob HMI 是大聯大世平基於 NXP i.MX RT1170 推出的旋鈕屏方案,能夠支援 MIPI、RGB 以及 QSPI 三種不同介面的 LCD Panel,可透過更換不同的 Panel Board 來連接不同的 LCD Panel, 設計了 Encoder 接口,能夠搭配旋轉編碼器來開發旋鈕功能,同時也保留觸控接口支援觸控螢幕,可根據需求來進行功能上的開發。

Knob HKI 方案 PCB

 
本文將介紹原廠開發板與 Knob HMI 方案在硬體設計上的不同之處,並透過 i.MX RT1170 SDK 的範例程式,協助您如何調整相關設定,將一款新型 LCD 面板成功整合至 Knob HMI 系統中,確保其能夠正常運作。 


二、硬體差異

1. 下圖為 Knob HMI 方案的方塊圖 

 Knob HMI 方案的方塊圖
 

2. 而在一些介面的支援上 Knob HMI 與 MIMXRT1170-EVK 差異如下 :
 



接著,我們將運用 SDK 提供的範例程式,並說明如何進行調整,讓範例能夠順利在 knob HMI 方案上執行。
 
在本次的操作中,我們選用 SDK 中的 lcdifv2_rgb565_cm7 範例程式作為基礎,並對該範例進行 Encoder、按鈕腳位、SDRAM 以及 LCD 驅動程式的相關調整。
 



三、軟體調整說明 - ENCODER、Button

1. 在 I/O 介面方面,Knob HMI 方案設計包含一組 Encoder 和兩組 Button。以下是腳位的說明,您可以透過 Config Tools 中的 Pins 功能將它們加入專案中,然後根據您的設計規劃來撰寫相應的程式碼。



 

四、軟體調整說明 - SDRAM

1. 在SDRAM 的調整上,我們需要將 SDRAM 調整為 166MHz、16M x16bit,由於 SDK 中涉及 SDRAM 的範例均採用 32 位元長度進行資料讀取,這樣的設定可能導致 Knob HMI 方案無法正常運行。
 
2. 啟動 Config Tools 中的 Device Configuration 功能,將 CCM_CLOCK_ROOT4_CONTROL 的設定值調整至 0x703,即可將SDRAM時鐘頻率調整至 166MHz。具體的數值對應資訊,請參閱《MX RT1170 Processor Reference Manual》。


 
3. 將 SEMC_BR0 的設定值調整至 0x8000001B,此設定可將 SDRAM 容量調整至32M。

 
4. 將 SEMC_SDRAMCR0 的設定值調整至 0xF31,此設定可將 SDRAM 資料長度調整至 16bit。
 


5. 開啟 Clock_config.c,調整 UpdateSemcClock 函式中,CCM->CLOCK_ROOT[kCLOCK_Root_Semc].CONTROL 的值為 0x703

 
6. 開啟 Board.c,調整 BOARD_ConfigMPU 函式中 Region 9 的容量為 32MB

 
7. 最後開啟 Project Setting -> Memory 選項,對 BOARD_SDRAM 與 NCACHE_REGION 的位址(Location)和大小(Size)進行調整。請注意,這兩個設定的總和必須恰好為32MB。

 

四、軟體調整說明 - LCD

接著,我們將說明如何調整 LCD 的相關設定,確保您的 LCD 能夠順利運作。
 
1. 首先,您必須準備一個適合您 LCD Panel 的 LCD driver,並將其整合至本專案中。


 
2. Knob HMI 設計了三組 LCD 控制腳位,包括 RESET、背光啟用(Backlight Enable)和電源啟用(Power Enable)。 其中 RESET 和背光啟用的腳位與標準公版有所不同,請透過 Config Tools 中的 Pins 功能進行相應調整。
 




3. 在 board.h 檔案中,請將與 Reset 及 Backlight 相關的 define 調整為符合 Knob HMI 的定義。


 
4. 關於 LCD Timing 的相關參數,需要在 lcdifv2_support.h 檔案中進行調整,請調整為適合您 LCD Panel 的參數。




 
5. 在 lcdifv2_support.c 中宣告您的 LCD driver


 
6. 在 lcdifv2_support.c 中新增 Resource 與 Handle


 
7. 在 lcdifv2_support.c 中的 BOARD_InitLcdifClock 涵式,設定符合您 LCD Panel 的 pixel clock 




 
8. 最後,在 lcdifv2_support.c 中的 BOARD_InitLcdPanel 函式中初始化您的 LCD panel。至此,便完成 LCD driver的移植作業。



功能验证

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

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