基于STM32 的FSMC接口驅動TFT彩屏的設計方案
0 引言
隨著電子產品的不斷更新,各種顯示界面的開發越來越多,由于TFT彩屏的性價比高,因而被廣泛用在各種電子設備上作為顯示屏。目前驅動TFT彩屏的方案有很多,可以用底端單片機驅動一個終端類型的液晶模組,這種模組價格比較貴,當然用起來還是很方便的。
只要單片機通過串口或并行口向TFT發送幾個字節的命令,就能在屏幕上顯示你需要的效果。本設計利用STM32 的FSMC 總線直接驅動TFT 數字彩屏。這種方案對相應的寄存器進行配置后就可以自動向TFT數字彩屏發送數據,無需CPU參與,讓CPU有足夠時間來處理其他程序。
1 STM32 簡介
STM32 是基于ARM 內核Cortex-M3 的32 位微控制器系列。Cortex-M3內核是為低功耗和價格敏感的應用而專門設計的,具有突出的能效比和處理速度。通過采用Thumb-2 高密度指令集,Cortex-M3 內核降低了系統存儲要求,同時快速的中斷處理能夠滿足控制領域的高實時性要求,使基于該內核設計的STM32 系列微控制器能夠以更優越的性價比,面向更廣泛的應用領域。
STM32系列微控制器為用戶提供了豐富的選擇,可適用于工業控制、智能家電、建筑安防、醫療設備以及消費類電子產品等多方位嵌入式系統設計。STM32系列采用一種新型的存儲器擴展技術---FSMC,在外部存儲器擴展方面具有獨特的優勢,可根據系統的應用需要,方便地進行不同類型大容量靜態存儲器的擴展。
2 TFT彩屏模塊工作原理
本設計采用3.2 寸分辨率為320×240 的液晶屏,并使用ILI9341芯片控制液晶屏。
液晶屏的控制芯片電路非常復雜。GRAM 中一個存儲單元對應顯示屏的一個像素點。芯片內部有電路把GRAM存儲單元的數據轉化成液晶屏的控制信號,使每個點呈現特定的亮度和顏色,而這些點組合起來則成為顯示界面。ILI9341 里有主要配置引腳和控制信號線,可以根據它的設置使芯片工作在不同的模式;使用8080 接口或SPI接口與MCU 進行通信;使用8080 接口的什么模式。MUC通過SPI或8080接口與ILI9341進行通信,從而訪問它的地址計數器(AC)、控制寄存器(CR)、GRAM及一個LED控制器。LCD本身不會發光,它需要借助背光源才實現顯示功能,LED控制器就是用來控制液晶屏模塊中發光二級管的背光源。LI9341使用8080通信時序工作,ILI9341的8080接口有5條控制信號線:寫使能信號線WRX,讀使能信號線RDX,復位信號線RESX,片選信號線CSX,區分數據和命令信號線D/CX.除了控制信號,還有數據信號線。
3 總體方案的硬件設計
本文以STM32F103VE 芯片的FSMC接口連接RGB接口數字屏,并利用DMA 從片外FLASH 讀取顯示數據。DMA即直接內存存取,CPU只需配置DMA相關的寄存器后,DMA 控制器就會自動將數據從一個地址傳送到另外一個地址,不占用CPU 時間。本文采用STM32F103VE 芯片外部連接FLASH 用作顯存,其整體硬件方案如圖1所示。
由于圖片的數據太大需要外接FLASH存儲器用來存儲圖片數據,電路如圖2 所示。
本設計使用的AT25DF041A芯片是一個串行接口的閃存設備,靈活的架構AT25DF041A擦掉、消除粒度小至4 KB,使它非常適合數據存儲,不再需要額外數據存儲E2PROM設備。
4 軟件設計
本設計的軟件主要有硬件層配置和顯示驅動函數。硬件層配置主要是對STM32 的I/O 口的輸入/輸出和FSMC 相關的寄存器配置。顯示驅動函數主要是向TFT彩屏發送控制命令和數據,另外還有一些簡單的畫圖函數。
模擬信號相關文章:什么是模擬信號
評論