摘要:為了更好地利用基于視覺暫留原理(POV原理)的旋轉式線陣LED顯示屏技術,采用Qtouch觸摸技術與旋轉LED屏相結合的方法,設計了一款基于TLC5947和ARM Cortex-M3核STM32F103的低成本、低功耗、高分辨率的LED屏顯示控制器。實驗結果表明,該旋轉LED屏幕能夠實現時鐘、文字的顯示功能,并能夠在Qtouch觸摸信號的控制下實現各種顯示狀態(tài)的切換工作。
關鍵詞:TLC5947;ARM Cortex-M3;顯示控制器;LED
引言
在各種設備中,顯示設備占有重要地位,少了顯示設備就像人少了眼睛,很多內在的東西都看不見。顯示設備很重要也很常見,然而它的外形總是那么單調,像一個個的模型。旋轉LED屏以其新穎、可視角360°吸引了電子狂熱者的眼光。本項目是通過主控芯片STM32F103,將觸摸技術與旋轉LED屏幕相結合,可以實現時鐘的變換,還可以利用觸摸技術在旋轉LED上玩一些小游戲,讓旋轉LED不再只是單一的觀賞性的技術。
旋轉LED顯示屏是一種通過同步控制發(fā)光二極管(LED)位置和點亮狀態(tài)來實現圖文顯示的新型顯示屏,因其結構新穎、成本低、可視視角達360°而得到了迅速的發(fā)展。目前,常見的LED顯示屏都是采用掃描方式進行顯示的,其實現原理是在不同時間段內控制不同批次的LED輪流點亮,根據人眼的視覺暫留特性,當掃描幀頻達到24Hz以上時,人眼便感覺不到掃描過程,而是一幅穩(wěn)定的圖像。旋轉顯示屏則是通過控制一行或一列LED快速移動位置和改變點亮狀態(tài)來實現圖形的顯示,如果LED在各位置循環(huán)變換速度足夠快,同樣可以顯示出一幅穩(wěn)定的圖像。 POV原理(即視覺滯留原理)將它用于顯示屏,優(yōu)勢表現在可用少量LED實現傳統(tǒng)方式下海量LED才能實現的顯示屏。用單片機控制LED,觸摸按鍵提供用戶與系統(tǒng)交互。旋轉中的LED漂浮在半空中的景觀給視覺帶來享受。
基于這樣的現狀和原理,本文提出了基于TI公司TLC5947驅動芯片及STM32F103的旋轉LED屏顯示控制器設計。該旋轉LED屏采用人眼視覺頻率滯留原理,制作的旋轉LED虛擬屏在微控制器的精確控制下,使用少量的LED便可完全實現傳統(tǒng)方式下海量LED才能實現的一種新型顯示技術。旋轉三基色全彩LED是基于RGB原理,通過改變三種顏色的色調、飽和度、強度可以實現最高36色真彩圖片顯示,從而使顯示更加絢爛奪目。該旋轉LED屏與平板式LED顯示屏和其他顯示器技術(如CRT、LCD、PDP)相比較,旋轉式線陣LED屏幕有著成本低、分辨率高、功耗小等幾個明顯優(yōu)勢。
1 系統(tǒng)硬件設計
STM32F103通過TLC5947與LED連接,用來控制旋轉板上LED燈的顯示。例如可以通過單片機STM32F103控制LED燈旋轉顯示時鐘模樣或各種圖形,如果條件允許的話,可以顯示一些簡單的游戲。LED與ARM處理器相連接,通過ARM處理器對觸摸信號的處理來實現LED燈的顯示樣式的變化,從基態(tài)的指針式時鐘變?yōu)閿底诛@示式以及改變其顯示的背景,還可以進行時間的校準操作。TLC5947驅動旋轉LED屏顯示控制電路如圖1所示。
[!--empirenews.page--]
1.1 STM32F103簡介
選用了STM32F103控制器,STM32F103是增強型系列,最高工作時鐘頻率可達72 MHz,具有ARM Cortex-M3內核、128~256 KB Flash、20~48 KB RAM、8 MHzCPU晶振、32.768 kHz RTC晶振以及豐富的外設(64個快速I/O口)和4 GB的線性地址空間。ARM采用的仿真器很貴,而單片機的調試工具則非常便宜。相較之下,Cortex-M3參考單片機,專門拿出一個引腳來做調試,從而節(jié)約了大量的人力物力。Cortex-M3集成了大多數的存儲器控制器,這樣就可以直接在MCU外連接Flash,降低了設計難度和應用障礙。Cortex-M3處理器結合了多種突破性技術,使得它能實現低功耗、低成本、高性能三者(或二者)的結合。編程支持ISP下載功能,能通過USB端口和JLINK仿真器供電,使用起來非常方便。
1.2 TLC5947簡介
TLC5947是TI(德州儀器)公司推出的24通道,具有內部晶振的12位PWM脈寬調制的LED驅動芯片。TLC5947采用超小32引腳QFN的高級封裝。它為LED提供了精確的恒流值,通道與芯片之間的差異值只有±2%;高速的傳輸速率(單片芯片時30 MHz,級聯為15 MHz);輸出通道之間交錯時間遲滯,避免出現傳輸誤差;該芯片內部具有溫度檢測系統(tǒng),當芯片的溫度過高時為了保護芯片,它會自動斷開所有的輸出通道,當溫度恢復正常,芯片正常工作;該芯片支持級聯,可以多個芯片共同工作以驅動更大規(guī)模的LED顯示屏幕。24個通道的當前電流值是通過外部IREF與地之間的阻值來設置的,驅動電路中的電阻由所驅動LED燈的電流決定。芯片具有寬泛的操作電壓3.0~5.5 V,含有4 MHz的內部晶振。TLC5947適用驅動全彩LED和顯示屏。
1.3 LED顯示屏
選用三色(RGB)LED燈,實現多重色彩光源,絢麗多彩的輸出。同時,LED本身也具備相當的穩(wěn)定度、高效率、單色彩純度高、光強度可調等功能。LED與ARM處理器相連接,通過ARM處理器對觸摸信號的處理來實現LED燈的顯示樣式的變化,從基態(tài)的指針式時鐘變?yōu)閿底诛@示式,以及改變其顯示的背景,還可以進行時間的校準操作。
2 系統(tǒng)軟件設計
2.1 點亮點-線-圓的設計及其算法和公式
點設計主要應用直角坐標到圓坐標轉換,通過坐標轉換點亮任何位置的燈。線設計源于點設計,在點設計基礎上采用Bresenham直線演算法畫出所需的直線、斜線、曲線。在線設計基礎上衍生出矩形繪畫、繪圖、填充等功能。
程序初始化完了,接著定義由直角坐標轉換到極坐標,在程序中將弧度轉到角度,在轉換的時候考慮到會有負數數據的輸入,加入360+ 0.5均是為了優(yōu)化程序,防止出現誤差。程序中距離,角度
直角坐標到圓坐標轉換算法如下:
直角坐標轉換完后,可以設置點的亮滅,接著用Bresenham直線演算法畫出直線。
程序的整體流程如圖2所示。系統(tǒng)上電后,首先讀取系統(tǒng)的初始狀態(tài),設置ARM和TLC5947的工作狀態(tài),開啟無線通信;然后等待旋轉屏幕穩(wěn)定,初始化菜單,等待輸入指令;利用Qtouch控制傳輸命令到STM32F103,執(zhí)行指令(用戶交互過程);執(zhí)行用戶命令操作。[!--empirenews.page--]
2.2 TLC5947芯片時序
TLC5947時序如圖3所示,芯片的主要控制引腳有4個:數據輸入端SIN、外部時鐘輸入端SCLK、灰度寄存器控制端XIAT以及輸出控制端BLANK。通過數據輸入端口將所需要的灰度數據送到SIN端,然后通過控制時鐘信號SCLK將數據寫入到芯片內部的灰度數據移位寄存器中,之后通過控制灰度寄存器的控制端XLAT的高低電平變換實現芯片TLC5947內部灰度數據的更新。當XLAT引腳的電平發(fā)生變化而產生一個上升沿時,TLC5947內部灰度數據將被更新一次,即圖3中Grayscale LatchData中被重新寫入數據。芯片的數據輸出分兩部分,一部分是串行數據輸出和恒流源數據輸出。串行數據輸出是接在灰度數據移位寄存器之后,當寄存器的數據滿256位時,可以根據SCLK時鐘的變化通過一個DQ觸發(fā)器將數據從串行數據端口SOUT端輸出,這一端口主要是芯片級聯時后一級芯片的數據輸入;而恒流源數據輸出OUT0~OUT23則是通過輸出控制端口BLANK和芯片內部自帶時鐘Oscillator Clock來共同控制,其中輸出電流大小則可以通過芯片的VREF引腳的外接到地電阻來控制,根據外接LED的自身限流參數,保證LED正常工作。本系統(tǒng)中采用的是3.2 kΩ電阻,所以該芯片的控制主要是4個引腳端口的控制,操作上比較簡單方便。
3 結論
實驗中,通過主控制器STM32F103對兩片級聯的TLC5947芯片進行了測試,外圍電路連接的是三色LED燈,外界供電電壓為5 V穩(wěn)壓源,轉換之后系統(tǒng)的供電電壓為3.3 V穩(wěn)壓源。當寫入相對應的程序控制字時,三色LED燈能夠正確顯示,單一色、混色兩種工作模式均成功得以實現。而且LED燈之間的變化時間可以通過程序來控制,只要主控制器的時鐘頻率合適,變換時間均在人眼識別能力之外,這樣就可以通過改變不同的程序控制字來實現全彩LED屏的設計。