范學仕,唐茂潔,曾 忠
(中國電子科技集團公司第五十八研究所,江蘇無錫 214072)
LED作為新型半導體照明材料,憑借其功耗低、壽命長、體積小、成本低、高效安全以及綠色無污染等優(yōu)點,在照明設備、顯示屏及其他電子設備中得到廣泛應用[1-2]。小點間距LED顯示屏具有無縫拼接、色彩自然真實、畫面清晰、模塊化維護、顯示均勻性好等優(yōu)點,不僅滿足顯示屏對高刷新、流暢無閃爍的需求,而且具有高灰階的輸出能力,可以顯示高清晰、更細膩、更多色彩的圖像,逐漸成為研究熱點[3-4]。多路恒流LED驅動芯片通過串行數(shù)字信號和PWM配合使用,具有匹配性好、精準電流控制、高灰度顯示的特點,達到了良好的顯示效果,在小點間距LED驅動芯片中得到廣泛應用[5-6]。
在傳統(tǒng)多通道恒流LED驅動芯片中,多采用PWM方式進行顯示控制,通過控制LED亮/暗的時間,達到不同灰階亮度的顯示效果。當所顯示的灰階亮度較低而連續(xù)不發(fā)光時間較長時,就會出現(xiàn)閃爍現(xiàn)象[7]。在小點間距LED顯示屏中,傳統(tǒng)的PWM存在刷新率較低、灰度等級不高、低灰麻點、首行偏暗、開路十字架等亟待解決的問題[8]。張晉芳等提出通過對8421碼或格雷碼進行重新編碼的方式將一個PWM周期重新分割為若干段,從而提高顯示屏的刷新率,該方法在硬件實現(xiàn)上只需很小的額外消耗[9]。鄭揚旗等提出了根據(jù)不同更新率劃分一個PWM周期的算法,以提高刷新率,降低閃爍現(xiàn)象[10]。王頂提出在低灰條件下,每組數(shù)據(jù)將以優(yōu)先滿足多個時鐘周期為基礎平均分布,使模擬通道能夠識別有效顯示時間,從而解決LED顯示屏的“麻點”問題[6]。趙肅等提出一種亂序PWM算法以提高芯片刷新率,在一定程度上提高了色彩灰度等級[11]。
本文在PWM算法的基礎上提出了一種OS-PWM算法,在不改變總灰度的前提下提高了刷新率,同時對低灰麻點、首行偏暗等問題進行了算法優(yōu)化。對于開路十字架問題設計了開路檢測模塊,內建消影電路消除鬼影。本文基于OS-PWM算法設計的LED驅動芯片最多支持32行掃16位灰度數(shù)據(jù),16通道PWM恒流輸出顯示,可以有效解決傳統(tǒng)的PWM刷新率較低、灰度等級不高、低灰麻點、首行偏暗、開路十字架等問題,并在實際樣片中得到驗證。
在傳統(tǒng)LED驅動芯片中,多基于外置PWM和內建PWM兩種方式進行顯示控制。外置PWM利用外部控制器來控制每顆LED燈珠的導通時間,使LED屏表現(xiàn)出期望的亮度和灰度。而內建PWM只需固定傳遞灰度數(shù)據(jù),其LED燈珠的導通時間由驅動芯片內部的計數(shù)器GCLK進行控制,無需外部控制信號,較外置PWM提高了刷新率。如圖1所示,以4位灰度數(shù)據(jù)4’b0101為例,具有16級灰度,T為一次顯示周期,t為每一個小時鐘周期,T=15t。在外置PWM控制系統(tǒng)中,一組數(shù)據(jù)的發(fā)送需要分4次完成,每次傳輸一位數(shù)據(jù),考慮到計數(shù)時間,這就導致時序的浪費和刷新率的降低;內建PWM中驅動芯片自帶計數(shù)功能,一次就可以發(fā)送完一組數(shù)據(jù)。較外置PWM,內建PWM設計更加容易,刷新率高。但同樣存在集中顯示的問題,整體刷新率仍然較低。
圖1 外置PWM與內置PWM顯示原理
打散PWM是基于傳統(tǒng)PWM功能的改進,其原理是將一組數(shù)據(jù)的導通時間打散成幾個較短的時間段,每個較短的時間段均保持原先的占空比,以增加LED顯示屏的整體刷新率。內建的SPWM技術將原本每個計數(shù)周期T從亮到滅的過程方式,平均打散成多個等份并維持原先未打散前的占空比。如圖2所示,以4位灰度數(shù)據(jù)4’b1100為例,根據(jù)二進制位權機制,通過時間占空比顯示其灰度,即一組數(shù)據(jù)周期需要點亮LED的時間長度為12t,熄滅時間為3t;而根據(jù)SPWM的工作原理,則將點亮時間平均打散為3個等份,每份 5t,亮滅 1t,總的占空比保持不變(4:1),總點亮時間依然是12t,從而在不影響灰度和亮度的情況下提高了LED顯示屏的刷新率。
圖2 打散PWM顯示原理
在數(shù)字PWM波形的上升沿和下降沿,如果邊沿傾斜很小,模擬通道將不能快速反映數(shù)字信號的變化,另外在每顆芯片之間或者芯片通道之間的工作過程不可能完全一樣,產(chǎn)生的脈沖傾斜也將不同,由此會在LED顯示屏上產(chǎn)生“麻點”現(xiàn)象。這種情況在低灰條件下更為明顯,因為打散的脈寬將更小。本文采用的OS-PWM算法是在打散PWM算法的基礎之上,增加等級優(yōu)化功能,在不改變總灰度的前提下提高刷新率,使顯示畫面更加清晰、細膩,同時在低灰條件下進行等級優(yōu)化,有效解決低灰色塊、偏色、麻點、第一行偏暗等問題。該算法流程如圖3所示,在本文中的具體步驟為:
(1)16 位二進制灰度數(shù)據(jù) D15D14…D1D0,由外部輸入至驅動芯片中,范圍為0~65535,刷新倍數(shù)2K=1/2/4/8倍,為在打散成64個子周期的基礎上進一步打散提高的刷新倍數(shù),優(yōu)化等級G=0/1/2/3,要求每個子周期中每組PWM脈沖不小于設定的參考時鐘周期數(shù)1/2/4/8個GLCK。
(2)將灰度數(shù)據(jù)劃分為10位高階數(shù)據(jù)和6位低階數(shù)據(jù),每個打散子周期的時鐘周期數(shù)為1024個GCLK,整個顯示周期最小打散的子周期個數(shù)為64。在設計中定義一個10位的計數(shù)器CNT1用于計數(shù)每個子周期時鐘周期數(shù),6位的計數(shù)器CNT2用于計數(shù)打散的子周期個數(shù),優(yōu)先計數(shù)CNT1,在每個時鐘上升沿加1,當CNT1溢出時CNT2自動累加。
(3)根據(jù)刷新倍數(shù),將整個顯示周期打散成64/128/256/512個子周期,此時每個子周期的時鐘周期數(shù)為1024/512/256/128個,整個顯示周期依舊為65536個GCLK。
(4)根據(jù)刷新倍數(shù)和優(yōu)化等級,將10位高階數(shù)據(jù)平均分配到64/128/256/512個子周期中,每個子周期中PWM脈沖個數(shù)為TM=D1529-K-G+D1428-K-G+…+D6+K+G20,在每個子周期中,CNT1從0-TM-1依次輸出PWM脈沖。
(5)將剩余6位低階數(shù)據(jù)均勻分配到64/128/256/512個子周期中,此時每個子周期中PWM脈沖個數(shù)TL不超過1/2/4/8個,并按照均勻分配原則分布到各子周期中,其均勻分布原則為按照CNT2[0:5]//{CNT[9],CNT2[0:5]}/{CNT[8:9],CNT2[0:5]}/{CNT[7:9],CNT2[0:5]}順序,在 CNT1 為 TM時,依次將TL個PWM脈沖輸出。
(6)根據(jù)行數(shù)32和通道數(shù)16,分別應用32×16次步驟(1)~(5),生成 PWM 控制 LED 顯示。
圖3 OS-PWM算法流程
圖4所示為本文設計的32掃16通道恒流LED驅動芯片的整體結構圖。R-EXT為外掛電阻輸入端,可調節(jié)輸出端恒流值;GCLK為灰度顯示周期;DCLK為數(shù)據(jù)時鐘,用于寫入數(shù)據(jù)或指令;LE為數(shù)據(jù)與指令的鎖存端,不同的LE長度代表不同指令;SDI為串行數(shù)據(jù)輸入端;SDO為串行數(shù)據(jù)輸出端;GND為接地端;OUT0~OUT15為16通道的恒流輸出端。整個芯片包括數(shù)字和模擬兩個部分,模擬部分配合數(shù)字部分產(chǎn)生特定大小恒定的輸出電流,包括基準、振蕩器、輸入輸出保護(ESD)、過溫保護、輸出電流調節(jié)、輸出電流鏡像等模塊。數(shù)字部分主要包括同步控制器模塊、寄存器配置模塊、移位寄存器模塊、SRAM緩沖器模塊、開路功能模塊和PWM生成模塊等。
在圖4中,輸出電流調節(jié)器代表的就是芯片的整個模擬部分,比較器與16位計數(shù)器則構成OS-PWM信號的輸出模塊,控制器控制整個芯片各個模塊之間的協(xié)調工作,對狀態(tài)寄存器數(shù)據(jù)的讀寫依靠16位移位寄存器來完成,灰階數(shù)據(jù)緩存的更新方式依賴于狀態(tài)寄存器內數(shù)據(jù)位的具體數(shù)值。通過移位緩存器將串行數(shù)據(jù)轉換成并行數(shù)據(jù)輸入灰階數(shù)據(jù)緩沖存儲器當中,然后調制成OS-PWM信號進行輸出。每個通道間的電流大小不受負載的影響,透過外接電阻(REXT)的大小以及存儲于狀態(tài)寄存器的8位電流增益數(shù)值來調整輸出電流的大小。
圖4 LED驅動芯片整體架構圖
同步控制器模塊由LE指令譯碼模塊和控制邏輯模塊兩部分組成。LE指令譯碼模塊為整個芯片工作模式的設定提供外部操作接口,主要通過LE和DCLK兩個信號產(chǎn)生全局的控制信號。根據(jù)LE高電平期間DCLK上升沿個數(shù),譯碼成相應的控制指令,如表1所示。在每幀開始發(fā)送前,需要先發(fā)送PRE_ACT和EN_OP指令,然后再配置寄存器,配置每個寄存器前也需要先發(fā)PRE_ACT。
控制邏輯模塊主要產(chǎn)生SRAM行列計數(shù)使能信號控制SRAM地址變換,行掃換行信號控制多行顯示時不同行之間的切換,消影控制使能信號控制消影在PWM輸出或停止時是否有效,PWM刷新倍率根據(jù)需求自由配置成1/2/3/4倍刷新,低灰白平衡使能信號控制低灰白平衡功能開啟和關閉,消影時間控制信號用于消除下鬼影。
表1 指令系統(tǒng)表
寄存器模塊分為移位寄存器和狀態(tài)寄存器。16位移位寄存器的主要功能是將串行輸入的數(shù)據(jù)轉換成并行數(shù)據(jù)傳輸至PWM信號發(fā)生模塊的緩存器、狀態(tài)寄存器的數(shù)據(jù)讀取和測試調試模塊;通過SDO端口可以將移位寄存器內的數(shù)據(jù)串行發(fā)送至下一芯片,完成芯片的串聯(lián)使用。16位移位寄存器由D觸發(fā)器級聯(lián),在DCLK的上升沿觸發(fā),將16位數(shù)據(jù)依次移位,最后根據(jù)LE譯碼指令進行鎖存,根據(jù)輸入的數(shù)據(jù)類型和譯碼指令傳輸至相應模塊進行后續(xù)操作。
狀態(tài)寄存器包含了芯片配置信息、功能配置以及測試信息,共5組16位寄存器,通過LE和DCLK的適配命令,通過移位寄存器實現(xiàn)對狀態(tài)寄存器的讀寫操作。配置寄存器的時序如圖5所示,具體步驟如下:
(1)時刻A到B,發(fā)送PRE_ACT指令(14個DCLK的LE高電平);
(2)時刻C到D,發(fā)送EN_OP指令(12個DCLK的LE高電平),使能通道;
(3)時刻E到F,發(fā)送PRE_ACT指令(14個DCLK的LE高電平);
(4)時刻G到H,發(fā)送WR_CFG1指令(4個DCLK的LE高電平),將16位串行數(shù)據(jù)WR_DATA1通過SDI寫入寄存器1;
(5)時刻 I到 J,發(fā)送 PRE_ACT指令(14個DCLK的LE高電平),此時SDO串行輸出RD_DATA1;
(6)時刻 K到L,發(fā)送 WR_CFG2指令(6個DCLK的LE高電平),將16位串行數(shù)據(jù)WR_DATA2通過SDI寫入寄存器2;
(7)重復I到L,依次寫入寄存器3和4的值。
圖5 寄存器配置時序圖
本文設計的驅動芯片內建 16 kB(4×32×8×16 bit)雙SRAM(SRAM 1/3和SRAM 2/4)的創(chuàng)新架構,用于緩存多行灰度數(shù)據(jù),有4個完全一樣的SRAM,IO接口位寬為16位,深度256(32行8通道),平均分成SRAM 1/3和SRAM 2/4兩組。當主機通過DCLK將灰度數(shù)據(jù)寫進SRAM 1/3時,在SRAM 2/4中的灰度數(shù)據(jù)將通過GCLK產(chǎn)生PWM波形驅動LED顯示屏,兩者同時工作,互不影響。如果SRAM 1/3寫滿和SRAM 2/4讀空,將會通過指令VSYNC交換兩組SRAM的功能,即SRAM 1/3轉換為發(fā)送顯示數(shù)據(jù),SRAM 2/4轉換為接收主機數(shù)據(jù),依此反復執(zhí)行,從而實現(xiàn)利用雙SRAM結構存儲和處理灰度數(shù)據(jù)的目的,使數(shù)據(jù)能夠“流水線”式讀寫,最大程度節(jié)省數(shù)據(jù)頻帶。
本芯片支持1~32掃任意配置的LED顯示屏,并僅需傳送一次完整的幀數(shù)據(jù),就可以將灰度數(shù)據(jù)儲存在芯片內的SRAM中。此方法不但能夠節(jié)省數(shù)據(jù)的頻帶,也可以在非常低的時鐘頻率下達到高灰階的顯示效果,即顯示系統(tǒng)的控制器只需提供數(shù)據(jù)給驅動芯片,芯片就可以通過輸入的灰度數(shù)據(jù)來調整相應LED燈珠的亮度,并使每個輸出通道表現(xiàn)出16位(65536種灰階)的顏色變化。
在灰度數(shù)據(jù)存儲進SRAM之前,該驅動芯片有三種類型的數(shù)據(jù)處理方式,分別為:
(1)根據(jù)狀態(tài)寄存器1中的GRAY_DIS位(REG1[2:0]),當灰度數(shù)據(jù)值在0-GRAYDIS時灰度數(shù)據(jù)將被直接置換成GRAY_DIS。比如GRAY_DIS的值為3,寫進SRAM的數(shù)據(jù)灰度值為1或2時將被直接置換成3;若灰度數(shù)據(jù)大于GRAY_DIS中的數(shù)據(jù),則原數(shù)據(jù)不做變化。
(2)狀態(tài)寄存器 1中的 OPEN_DEF位(REG1[14])為1時,開路檢測功能有效。若驅動芯片的一個通道被檢測為開路狀態(tài),所有寫入該通道的灰度將直接清零。
(3)如果是MBIST模式,則輸入到SRAM的數(shù)據(jù)為固定值{8{mbist_data}}。
PWM信號發(fā)生模塊的功能是將亮度控制信號即灰度數(shù)據(jù)運用OS-PWM算法轉換成PWM信號,并傳輸至模擬部分,控制輸出電流的通斷。其主要有一個16位的計數(shù)器,由時鐘GCLK控制計數(shù)間隔,通過同步控制模塊進行控制;16個比較器,比較緩存中的灰度數(shù)據(jù)與計數(shù)器輸出數(shù)據(jù)的大小,輸出高低電平;輸出栓鎖器用來緩存灰度數(shù)據(jù),提高芯片的工作性能以及穩(wěn)定性。
將16位數(shù)據(jù)分為10位的高階數(shù)據(jù)和6位的低階數(shù)據(jù)。由于高10位的高階數(shù)據(jù)在圖像顯示中占有主要作用的地位,故采用將高階數(shù)據(jù)計數(shù)打散的方式來提高LED顯示屏的刷新率。高階數(shù)據(jù)的計數(shù)周期打散后將重復計數(shù)多次,再加上一次低階數(shù)據(jù)的計數(shù)周期就可以達到和未分解的PWM一樣的分辨率。如圖6所示,將一個顯示周期T分為64等分,每份以10位1023 t為基礎,和一個低位數(shù)據(jù)的計時時鐘周期t組成1024個計數(shù)周期。這樣總計仍為1024 t×64=65536t=T,總灰度不變,但刷新率提高了64倍。同理,打散成128/256/512組,即刷新倍數(shù)K為1/2/3時,也提高了相應的倍數(shù)。
本文增加了優(yōu)化等級G,在低灰條件下,設定每個子周期最小PWM脈沖數(shù),如圖7所示,當優(yōu)化等級G=1時,每個子周期的最小PWM脈沖數(shù)為2個GCLK,當優(yōu)化等級G=2時,每個子周期的最小PWM脈沖數(shù)為4個GCLK,當優(yōu)化等級G=3時,每個子周期的最小PWM脈沖數(shù)為8個GCLK,增加通道打開時間,提高亮度,增強顯示效果,解決“麻點”現(xiàn)象。
圖7 OS-PWM算法優(yōu)化等級顯示控制圖
對于LED顯示首行偏暗的現(xiàn)象,本文增加計數(shù)器反向計數(shù)設計,在通道打開前,提前預留時間,圖8中預留12個GCLK時間,降低列上的電壓,使電容提前放電,有助于解決首行偏暗的問題。當灰度值特別小時,圖8中輸入灰度大小為3,低灰顯示效果較差,本文增加置換低灰度值設計,設置一個灰度閾值,圖8中該閾值為7,當灰度值低于該閾值時,將該閾值作為該灰度值使用,可有效地改善低灰顯示效果。
圖8 OS-PWM算法反向計數(shù)和低灰度替換控制圖
其他模塊主要包括開路檢測模塊和測試調試模塊。
開路的LED燈珠會影響周圍燈珠的顯示效果,容易產(chǎn)生“開路十字架”問題。通過檢測開路LED燈珠,將已開路的LED燈珠信息記錄下來,在顯示過程中不點亮開路LED燈珠,由此從根本上解決了“開路十字架”的問題。
本文的開路檢測由配置REG1[14]的OPEN_DEF位及REG4[7]的OPEN_SCAN位控制。其中OPEN_DEF為開路檢測總開關,一般全程開啟;OPEN_SCAN為開路復位重置,在開啟新的開路檢測時會打開,檢測完成后關閉。當我們檢測到通道x為開路時,輸出會自動將第x個通道屏蔽。
測試調試模塊用于工作模式選擇以及相關測試調試模式,圖9所示為工作模式選擇圖,PWM_DATA[15:0]是PWM輸出的顯示數(shù)據(jù),EN/DIS_OP是通道使能信號,VSYNC是數(shù)據(jù)同步信號,它們用來產(chǎn)生PWM0[15:0]信號,正常工作時,REG5[12:8]=00,選擇PWM0信號輸出到DRV模塊,去驅動LED屏,而當REG5[12:8]是數(shù)值(01~1F)之間任何一個值時,電路進入DEBUG工作模式,一共有31種選擇,此時把DEBUG_DATA[15:0]輸出到16通道輸出端口OUT[15:0]。
圖9 工作模式選擇圖
本文設計的32掃恒流PWM輸出LED驅動芯片是一款全彩LED顯示屏驅動芯片,內建PWM高刷新算法,專門針對小間距顯示屏存在的低灰問題做出優(yōu)化處理,可以有效地解決傳統(tǒng)的PWM刷新率較低、灰度等級不高、低灰麻點、首行偏暗、開路十字架等問題。樣片整體布局如圖10所示。
圖10 樣片整體布局
通過對芯片內部各個模塊單獨的設計仿真,以不同的狀態(tài)值實現(xiàn)對數(shù)據(jù)流的控制,在PSM輸出端得到灰度控制信號,驅動LED顯示屏;最后整合各個部分設計模塊到頂層TOP模塊,基于LINUX系統(tǒng),進行全局仿真。仿真實驗中,重點實現(xiàn)16位數(shù)據(jù)PWM灰度輸出,并完成對狀態(tài)轉移的控制,主要仿真功能可分為5類,如表2所示。
表2 仿真測試表
圖11所示為寄存器配置仿真圖,依次讀出寄存的復位值為:0x1F00、0x7FFF、0x4007、0x0 和 0x8。根據(jù)輸入的不同LE指令,在LE的下降沿將數(shù)據(jù)依次寫入相應寄存器。寫入數(shù)據(jù)依次為0xAAAA、0x5555、0xFFFF、0x0000,由于各寄存器的最高位為保留位,實際寫入值依次為 0x2AAA、0x5555、0x7FFF、0x0000。
圖11 寄存器配置仿真圖
圖12為數(shù)據(jù)0xFFFF鎖存,輸入寫使能指令PRE_ACT,輸入通道使能指令EN_OP,再次輸入寫配置寄存器指令PRE_ACT,輸入指令DATA_LATCH,則該指令LE信號下降沿前的16位數(shù)據(jù)將打入RAM中。
圖13到圖15為應用OS-PWM算法之后的PWM輸出波形圖。通道15~0寫入的數(shù)據(jù)依次為0xFFFF、0x7FFFF、…、0x3、0x1,在圖 13 和圖 14 中,刷新倍率相同,優(yōu)化等級不同,優(yōu)化等級1時最小PWM脈沖個數(shù)為4;在圖13、圖15中,優(yōu)化等級相同,刷新倍率不同,圖13刷新倍數(shù)提高了8倍。
圖12 數(shù)據(jù)鎖存0xFFFF
圖13 OS-PWM算法刷新倍率8,優(yōu)化等級0
圖14 OS-PWM算法刷新倍率8,優(yōu)化等級1
圖15 OS-PWM算法刷新倍率1,優(yōu)化等級0
圖16所示為通道15~0依次開路檢測仿真圖。配置REG1[14]的OPEN_DEF位及REG4[7]的OPEN_SCAN位控制。其中OPEN_DEF為開路檢測總開關,一般全程開啟;OPEN_SCAN為開路復位重置,在開啟新的開路檢測時會打開,檢測完成后關閉。當我們檢測到通道x為開路時,輸出會自動將第x個通道屏蔽。
圖16 通道15~0開路檢測
仿真結果符合預期,本文所設計的芯片已完成流片,芯片尺寸為 1288 μm×1266 μm,測試驗證結果與仿真一致。
本文針對小間距LED顯示屏中存在的刷新率較低、灰度等級不高、低灰麻點、首行偏暗、開路十字架和下鬼影等問題,基于傳統(tǒng)PWM算法,提出了OS-PWM算法,并設計了一款多通道恒流LED驅動芯片。針對刷新率較低、灰度等級不高的問題,通過OS-PWM算法將顯示周期均勻打散,在不影響總體灰度的前提下,提高刷新率,同時支持多灰度等級;針對低灰麻點增加了等級優(yōu)化,提升低灰顯示效果;針對首行偏暗的問題提出了反向PWM計數(shù)方法,預留時間使電容提前放電,有助于改善該問題;針對開路十字架問題,內建開路檢測模塊,從根本上屏蔽了這一問題。實驗測試結果證明了本文設計的正確性和合理性。