這是使用NuMicro M480系列微控制器在OLED螢幕上顯示靜態與動態資訊的電競參考設計。NuMicro M480系列微控制器強大的運算力所賜,在OLED螢幕上除了顯示一般靜態資訊外,如環境溫度、系統狀態、顯示卡風扇轉速等,更可以即時解碼GIF動態影像,在OLED螢幕上流暢地播放動畫。

此參考設計中包含了emWin GUI資料庫,搭配易用的視窗軟體,即可快速勾勒出精緻的圖形介面,讓整體OLED畫面看起來更專業。此外還內置字型庫用以輸出高品質文字。

NuMicro M480系列微控制器基於Arm Cortex-M4內核,帶有數位訊號處理指示(DSP)與浮點數運算單元(FPU),主頻最高可達192 MHz,能夠快速解碼GIF動態影像,多達512KB嵌入式快閃記憶體與160KB 嵌入式記憶體,可用以儲存字型庫及圖型快取(Cache)。除了本身內部記憶體外還支持外部SPI Flash的SPIM通訊介面,最大可擴充容量到32Mbytes並且可以設定為直接記憶體映射模式(Direct Memory Map Mode)以及32Kbytes記憶體快取來加速存取速度,讓OLED螢幕能流暢地播放動畫。

(一) 硬體介面線路
 


(二)軟體移植及設定



步驟二 : 設置__spim_sacsys.c、__spim_GIF.c記憶體分配到IROM2區域,若有其它檔案依此方式設定

步驟一 : 依照OLED面板模組SPI Command/Data時序圖去設定M480通訊介面,此面板是設定為SPI mode 0模式,並且為了能方便區分Command與Data格式控制所以將SPI_MISO/SPI_SS接腳獨立配置成GPIO模式



此外,為了降低CPU工作負載提升處理效能,在顯示輸出控制部分(Frame Buffer到SPI介面之間)直接交由DMA處理不需要由CPU介入,預設刷新頻率為30fps,讓CPU專注在GUI圖形處理部分,在動態顯示圖形狀態下能更佳流暢,避免有停頓、鬼影、延遲現象發生。



步驟二 : 接著OLED面板模組在開機運作之前須要先做初始設定的程序,在設定程序前要按照OLED說明文件的Power ON/OFF時序要求處理。



緊接著處理OLED面板參數設定,這些設定參數建議由面板模組廠商提供,按照它們提供步驟/參數依序設定即可,參考設定如下:

步驟三 : emWin函數庫配置主要目的是能夠與硬體元件/線路能夠搭配才能將畫面正確的顯示在面板上,主要修改程式配置檔案分別有GUI_X.c:GUI所依賴的外部配置/系統,GUIConf.c:GUI初始化配置,GUIConf.h:GUI配置設置,GUIDRV_TemplateI.c:GUI讀點、畫點、畫線等函數配置,LCDConf.c:LCD初始化配置等等,設定細節參考如下:
此OLED面板模組採用Solomon SSD1362 OLED driver IC,當main()程式執行GUI_Init()時emWin函數庫會呼叫Driver層的_InitController()函式此時我們必須要處理所有的初始設定程序,包括SPI_Init()、PDMA_Init()、OLEDPowerOnSeq()、OLED Initial Table等等。


步驟四 : 完成上述所有設定程序後即可使用emWin所提供API功能,使用手冊有詳述各API的使用方法及應用範例,以下是BMP/GIF顯示的參考程式範例