陣LED驅(qū)動(dòng)IC抗干擾設(shè)計(jì)實(shí)戰(zhàn)指南)
1. 這塊芯片解決什么問(wèn)題1.1 點(diǎn)陣LED顯示的典型痛點(diǎn)做電子產(chǎn)品的人基本都繞不過(guò)點(diǎn)陣LED顯示。小到溫控器上的數(shù)字、電磁爐的檔位、大到廣告燈箱、交通指示牌、電梯樓層顯示凡是需要把數(shù)字、字母、簡(jiǎn)單圖形直接亮給人看的場(chǎng)景點(diǎn)陣LED都是成本最低、可靠性最有保障的方案之一。我前幾年做一款工業(yè)儀表面板時(shí)為了顯示三段溫度加一組狀態(tài)位一度想直接拿MCU的IO口去掃LED矩陣結(jié)果一遍跑下來(lái)發(fā)現(xiàn)幾個(gè)現(xiàn)實(shí)問(wèn)題IO口數(shù)量根本不夠用、動(dòng)態(tài)掃描吃掉了主控大部分時(shí)間片、稍微靠近繼電器一動(dòng)作畫(huà)面就開(kāi)始閃字、花屏。那個(gè)項(xiàng)目最后換了方案才把問(wèn)題壓下去。這就是點(diǎn)陣LED顯示驅(qū)動(dòng)IC存在的意義。VK1620這類芯片把“掃描刷新LED矩陣”這件臟活單獨(dú)接走M(jìn)CU只負(fù)責(zé)通過(guò)串行接口把顯示內(nèi)容發(fā)過(guò)去芯片自己完成掃描、譯碼、電流驅(qū)動(dòng)同時(shí)對(duì)末級(jí)走線做抗干擾處理。標(biāo)題里那句“抗干擾數(shù)顯IC芯片”本質(zhì)上說(shuō)的就是這種分工方式把最容易受干擾的長(zhǎng)距離LED走線和驅(qū)動(dòng)電路隔離出來(lái)讓主控板側(cè)的弱電信號(hào)保持干凈穩(wěn)定。1.2 VK1620適合用在哪類產(chǎn)品上我不建議一上來(lái)就追著型號(hào)挑芯片先看場(chǎng)景合不合適。VK1620這類點(diǎn)陣LED驅(qū)動(dòng)IC最常見(jiàn)的落點(diǎn)是家用電器面板、智能儀表、小型工業(yè)設(shè)備、充電樁顯示單元、醫(yī)療設(shè)備的狀態(tài)顯示區(qū)。它們的共同特征是顯示內(nèi)容為數(shù)字、字母、簡(jiǎn)單圖標(biāo)顯示規(guī)模不大但刷新要求穩(wěn)定工作環(huán)境有電機(jī)、繼電器、開(kāi)關(guān)電源這類干擾源而且產(chǎn)品對(duì)成本敏感、不希望主控資源被顯示邏輯占掉太多。具體到形式上VK1620支持的是點(diǎn)陣式LED不是數(shù)碼管。這兩個(gè)概念容易混很多人問(wèn)我說(shuō)“我用的數(shù)碼管能不能接這個(gè)”實(shí)際上數(shù)碼管驅(qū)動(dòng)和點(diǎn)陣LED驅(qū)動(dòng)在掃描邏輯上接近但電路結(jié)構(gòu)、引腳定義、寄存器映射都不太一樣。VK1620一般對(duì)應(yīng)8x16之類的點(diǎn)陣規(guī)模也就是16個(gè)SEG段加上8個(gè)GRID網(wǎng)一共能控制128個(gè)LED點(diǎn)剛好覆蓋一屏8位數(shù)字加狀態(tài)符號(hào)或者兩塊8x8點(diǎn)陣字模。如果你的產(chǎn)品是數(shù)碼管方案那應(yīng)該去看帶內(nèi)置譯碼的芯片型號(hào)而VK1620更偏向用于需要自由映射點(diǎn)陣的場(chǎng)合比如自定義字符、動(dòng)態(tài)圖標(biāo)、滾動(dòng)字幕。這類芯片在項(xiàng)目里承擔(dān)的角色可以簡(jiǎn)單類比成顯示器里的獨(dú)立顯卡MCU是CPU點(diǎn)陣LED是屏幕VK1620在中間負(fù)責(zé)把CPU發(fā)來(lái)的顯示數(shù)據(jù)轉(zhuǎn)換成LED陣列的逐行掃描信號(hào)并且把LED驅(qū)動(dòng)電流和主控邏輯電源隔開(kāi)。這個(gè)隔離很關(guān)鍵直接關(guān)系到整機(jī)能不能過(guò)電磁兼容測(cè)試、抗住現(xiàn)場(chǎng)復(fù)雜的干擾環(huán)境。2. 整體設(shè)計(jì)與選型思路拆解2.1 為什么非得加一顆專用驅(qū)動(dòng)IC很多工程師的第一反應(yīng)是不就是點(diǎn)亮LED嗎我直接拿MCU的IO口灌電流不就行了短時(shí)間調(diào)通確實(shí)可以但放到產(chǎn)品生命周期里頭這里有三個(gè)繞不開(kāi)的問(wèn)題。第一是IO資源。一個(gè)8x16的點(diǎn)陣如果不用驅(qū)動(dòng)IC也采取動(dòng)態(tài)掃描方式至少需要16個(gè)段引腳和8個(gè)網(wǎng)引腳合計(jì)24個(gè)IO口。MCU的IO口不像白菜一樣隨便給還要兼顧按鍵、通訊、傳感器、蜂鳴器稍微復(fù)雜一點(diǎn)的系統(tǒng)根本擠不出24個(gè)IO于是只能引入擴(kuò)展芯片到頭來(lái)成本和高效率還不如直接上一顆LED專用驅(qū)動(dòng)IC。第二是驅(qū)動(dòng)能力。MCU普通IO口的灌電流能力一般在5-20mA之間而且所有IO口的電流總和還有上限。點(diǎn)陣LED掃描時(shí)每一列要同時(shí)點(diǎn)亮多顆LED比如同時(shí)掃亮6個(gè)點(diǎn)每點(diǎn)10mA就是60mA普通MCU引腳直接扛不住要么亮度上不去要么芯片發(fā)熱嚴(yán)重。VK1620這類專用芯片內(nèi)置恒流源和功率開(kāi)關(guān)單路能提供的驅(qū)動(dòng)電流遠(yuǎn)超MCU IO口可以保證LED亮度的一致性。第三是抗干擾。這才是最容易被忽視的。LED走線通常比較長(zhǎng)尤其是面板和主板分離的結(jié)構(gòu)排線可能走幾十厘米。主控板的邏輯地一旦和LED驅(qū)動(dòng)回流的瞬態(tài)電流攪在一起地彈噪聲會(huì)直接干擾系統(tǒng)里其他敏感信號(hào)比如ADC采樣、觸摸檢測(cè)、通訊總線。VK1620內(nèi)部把驅(qū)動(dòng)級(jí)和邏輯級(jí)做了隔離設(shè)計(jì)LED回流的尖峰電流在主控之外消化掉整個(gè)系統(tǒng)的抗干擾余量一下子就上來(lái)了。2.2 VK1620的接口方式與內(nèi)部機(jī)制VK1620采用串行接口與MCU通信一般支持三線制時(shí)鐘CLK、數(shù)據(jù)DATA、片選/使能STB和部分型號(hào)兼容兩線制。串行方式的好處就是MCU側(cè)只需要占用少量IO口而且接口電平直接兼容3.3V或5V系統(tǒng)不需要額外加電平轉(zhuǎn)換。芯片內(nèi)部結(jié)構(gòu)大致可以分成四塊串行通信模塊、顯示寄存器RAM、控制邏輯/振蕩器和段驅(qū)動(dòng)/網(wǎng)驅(qū)動(dòng)功率輸出。MCU通過(guò)串行總線把顯示數(shù)據(jù)寫(xiě)入芯片內(nèi)部的顯示寄存器芯片自帶的振蕩器產(chǎn)生掃描時(shí)序自動(dòng)循環(huán)選中一行GRID同時(shí)把對(duì)應(yīng)的段SEG數(shù)據(jù)送給輸出引腳。整個(gè)過(guò)程里MCU只需要在顯示內(nèi)容變化時(shí)寫(xiě)一次數(shù)據(jù)之后芯片自己維持掃描完全不占用主控CPU時(shí)間。這在實(shí)時(shí)性要求高的工業(yè)控制系統(tǒng)里特別重要——主控可以放心去跑PID算法或者通訊協(xié)議顯示刷新不會(huì)來(lái)打斷它。有一點(diǎn)需要特別注意VK1620的顯示RAM是按位映射的。每個(gè)LED點(diǎn)對(duì)應(yīng)RAM里的一個(gè)bit寫(xiě)“1”表示點(diǎn)亮寫(xiě)“0”表示熄滅。這個(gè)看起來(lái)簡(jiǎn)單的映射關(guān)系在實(shí)際做字模和動(dòng)態(tài)效果時(shí)特別順手。你想顯示什么內(nèi)容只要在內(nèi)存里拼好對(duì)應(yīng)的位圖一次串行刷過(guò)去就完事。不需要像數(shù)碼管驅(qū)動(dòng)芯片那樣考慮段碼譯碼自由度高了不止一個(gè)級(jí)別。2.3 與常見(jiàn)驅(qū)動(dòng)方案的橫向?qū)Ρ任野炎约鹤鲰?xiàng)目時(shí)常對(duì)比的幾類方案列個(gè)表方便你按場(chǎng)景選型。方案接口方式顯示規(guī)模驅(qū)動(dòng)能力抗干擾設(shè)計(jì)主控負(fù)載典型成本MCU直驅(qū)IO掃描并行小8x8為宜弱無(wú)需自行處理高持續(xù)占用CPU最低74HC595級(jí)聯(lián)擴(kuò)展SPI串行中可級(jí)聯(lián)擴(kuò)展中需外加三極管/MOS一般依賴PCB設(shè)計(jì)中需要外部刷新邏輯較低VK1620專用驅(qū)動(dòng)ICSIO串行點(diǎn)陣8x16級(jí)別強(qiáng)內(nèi)置恒流驅(qū)動(dòng)內(nèi)置抗干擾處理低寫(xiě)完即不管中帶譯碼的數(shù)碼管驅(qū)動(dòng)ICSIO串行面向數(shù)碼管段位強(qiáng)視型號(hào)而定低中74HC595方案是我早年最常用的它確實(shí)靈活級(jí)聯(lián)起來(lái)想擴(kuò)多大擴(kuò)多大但代價(jià)是刷新邏輯要MCU自己跑。LED越多刷新頻率要求越高M(jìn)CU的中斷載荷越來(lái)越大再加上595本身是邏輯芯片驅(qū)動(dòng)大電流LED還得外接三極管陣列PCB面積和物料清單都膨脹得厲害。VK1620把這些全收進(jìn)一顆芯片里掃描、消隱、驅(qū)動(dòng)全自動(dòng)完成板上走線清爽主控代碼也短不少。選VK1620而不是其他同類型芯片時(shí)我主要看重三點(diǎn)一是內(nèi)置的顯示RAM操作簡(jiǎn)單、地址映射直觀二是靜態(tài)電流和驅(qū)動(dòng)電流的平衡做到位節(jié)能模式下功耗很低適合靠電池供電的便攜設(shè)備三是抗干擾特性經(jīng)過(guò)了家電類產(chǎn)品的大量驗(yàn)證用在電機(jī)、繼電器附近不容易出怪問(wèn)題。這也是標(biāo)題里“抗干擾”三個(gè)字含金量的體現(xiàn)。3. 核心細(xì)節(jié)解析與抗干擾實(shí)操要點(diǎn)3.1 點(diǎn)陣掃描機(jī)制與亮度控制動(dòng)態(tài)掃描LED顯示的原理說(shuō)穿了就是“人眼視覺(jué)暫留”效應(yīng)。點(diǎn)陣LED本身不能像LCD那樣自保持像素狀態(tài)它必須靠不停刷新才能維持穩(wěn)定畫(huà)面。比如8x16的點(diǎn)陣掃描電路把8個(gè)GRID逐行選中每行選中的時(shí)間內(nèi)、把16個(gè)SEG的亮滅狀態(tài)拉好循環(huán)往復(fù)。只要每行的刷新率達(dá)到50Hz以上人眼看過(guò)去就是連續(xù)、穩(wěn)定的畫(huà)面不會(huì)感覺(jué)到閃爍。VK1620內(nèi)部有兩層機(jī)制保證這個(gè)過(guò)程的可靠性。第一層是消隱處理在切換到下一行之前會(huì)先把SEG輸出全部關(guān)掉等倒換穩(wěn)定后再輸出新數(shù)據(jù)防止出現(xiàn)“拖影”“鬼影”現(xiàn)象。有些便宜的驅(qū)動(dòng)方案不做消隱掃描到一半突然切換行LED會(huì)出現(xiàn)輕微的亮度不均甚至串?dāng)_發(fā)光雖然拍照不一定拍得出來(lái)但眼睛敏感的人一眼就能看出不干凈。第二層是內(nèi)置振蕩器掃描時(shí)序不依賴外部MCU精確打點(diǎn)即使MCU臨時(shí)處理緊急中斷、來(lái)不及送數(shù)據(jù)已寫(xiě)入RAM的顯示內(nèi)容依然保持穩(wěn)定刷新這在大循環(huán)毛刺多、中斷嵌套頻繁的單片機(jī)系統(tǒng)里是救命的特性。亮度控制方面VK1620通過(guò)調(diào)節(jié)驅(qū)動(dòng)電流大小可以適配不同規(guī)格的LED燈珠。常規(guī)小尺寸貼片LED額定電流多在2-20mA之間具體設(shè)多少要查所用LED的數(shù)據(jù)手冊(cè)。設(shè)得太大容易加速LED光衰設(shè)得太小亮度不夠、陽(yáng)光下看不清。我一般按LED額定電流的70%-80%取值既保證亮度余量又給壽命留有空間。若是高亮型燈珠還打算以低占空比方式增強(qiáng)峰值電流提亮就需要仔細(xì)核算燈珠脈沖承受能力別把LED燒了。3.2 抗干擾設(shè)計(jì)的三個(gè)關(guān)鍵維度VK1620自身號(hào)稱抗干擾但芯片抗干擾不等于整機(jī)抗干擾。很多工程師忽略了這一點(diǎn)以為換上“抗干擾芯片”就能一勞永逸結(jié)果到了電磁兼容測(cè)試還是被搞得很狼狽。芯片只是其中一個(gè)環(huán)節(jié)整機(jī)的抗干擾能力是設(shè)計(jì)出來(lái)的不是買(mǎi)回來(lái)的。以我的經(jīng)驗(yàn)有三個(gè)維度必須同時(shí)做到位。第一是電源去耦。VK1620的電源引腳旁邊必須就近放置0.1uF陶瓷電容最好是0603或0402封裝盡可能貼近芯片電源腳和地腳。如果PCB空間允許再加一顆10uF左右的電解電容做整體儲(chǔ)能。LED瞬態(tài)點(diǎn)亮?xí)r的沖擊電流非常大沒(méi)有足夠的儲(chǔ)能電容支撐電源電壓會(huì)瞬間跌落輕則亮度抖動(dòng)重則芯片邏輯復(fù)位、顯示花掉。LED掃描式的負(fù)載是脈沖負(fù)載電源設(shè)計(jì)要按脈沖電流而不是平均電流去估算。第二是邏輯地和驅(qū)動(dòng)地的隔離處理。VK1620這類芯片雖然內(nèi)部做了驅(qū)動(dòng)隔離但芯片外圍的走線如果糊成一團(tuán)照樣把噪聲帶到主控。設(shè)計(jì)PCB時(shí)盡量讓LED驅(qū)動(dòng)回流的路徑包括SEG和GRID的灌電流回流避開(kāi)MCU的模擬采集區(qū)域、晶振區(qū)域和通訊走線區(qū)域。在雙層板上以大面積鋪地作為回流層、把LED長(zhǎng)線走在頂層并用地線帶保護(hù)是實(shí)操中最有效的辦法之一。第三是接口線的濾波與串阻。MCU到VK1620之間的CLK、DATA、STB三根線如果線長(zhǎng)超過(guò)5cm建議在MCU側(cè)串接33-100歐姆的電阻既能抑制振鈴又能限制高頻噪聲的輻射。如果產(chǎn)品工作在強(qiáng)干擾環(huán)境比如逆變器旁邊、伺服驅(qū)動(dòng)器近場(chǎng)還可以在信號(hào)線對(duì)地并聯(lián)小電容比如10-22pF構(gòu)成簡(jiǎn)單的RC濾波。不過(guò)要注意電容不能太大否則會(huì)拖慢信號(hào)邊沿影響通信時(shí)序我之前調(diào)試時(shí)遇到過(guò)由于線間電容過(guò)大導(dǎo)致上升沿變緩、芯片偶發(fā)識(shí)別錯(cuò)數(shù)據(jù)的情況。3.3 PCB布局與走線的幾條實(shí)戰(zhàn)建議做這類點(diǎn)陣LED驅(qū)動(dòng)板的PCB我總結(jié)了幾條可以直接照搬的經(jīng)驗(yàn)。芯片位置盡量靠近LED連接器的出線口。這樣可以最短距離輸出驅(qū)動(dòng)信號(hào)減少長(zhǎng)走線引入的輻射和串?dāng)_。反面教材是有的工程師為了板面好看把驅(qū)動(dòng)IC放在一角、LED排線放在另一角中間走了十幾厘米平行線最后EMI測(cè)試一不開(kāi)蓋就響這是典型的自找麻煩。SEG和GRID的走線要分開(kāi)方向走。SEG走線在一層GRID走線在另一層避免長(zhǎng)距離平行。如果板子層數(shù)有限無(wú)法做到分層至少拉開(kāi)線間距不要并排走十幾厘米。橫向和縱向信號(hào)分開(kāi)走是減少線間耦合的最樸素而有效的辦法。地平面完整比什么都重要。在雙層板中底層盡量保留完整的地銅皮不要為了走一根線把地切開(kāi)一大塊。一個(gè)完整的地平面既是回流通道又是屏蔽層對(duì)整機(jī)抗干擾能力的貢獻(xiàn)比任何一顆電容都大。反過(guò)來(lái)如果你為了省事在地平面上割出一條長(zhǎng)槽中斷了LED回流路徑噪聲就會(huì)被迫繞行大環(huán)路形成一根天線這個(gè)問(wèn)題排查起來(lái)非常痛苦。4. 實(shí)操過(guò)程從接線點(diǎn)亮到穩(wěn)定顯示4.1 典型應(yīng)用電路設(shè)計(jì)我拿一個(gè)實(shí)際的案子來(lái)走一遍流程。項(xiàng)目需求是一塊8x16點(diǎn)陣LED面板面板和主控板分體安裝中間用8芯排線連接MCU是常見(jiàn)的3.3V供電單片機(jī)工作環(huán)境里有繼電器頻繁通斷。先定義關(guān)鍵引腳VK1620的電源接3.3V邏輯地和驅(qū)動(dòng)地最終匯到一起但芯片底部的散熱焊盤(pán)要可靠焊接到地。SEG0-SEG15接面板的16列GRID0-GRID7接8行。這里務(wù)必查L(zhǎng)ED模塊的引腳排列圖不同廠家的點(diǎn)陣模塊引腳順序差異很大我吃過(guò)虧——第一次做8x8點(diǎn)陣時(shí)想當(dāng)然按邏輯順序接結(jié)果硬件回來(lái)后是鏡像的白調(diào)了半天。電源去耦按前面說(shuō)的芯片VDD腳放0.1uF陶瓷電容靠近引腳放置同層有一小段加粗連線到芯片電源腳再放一個(gè)10uF鉭電容做儲(chǔ)能。LED面板側(cè)的電源通過(guò)排線單獨(dú)供電不與IC邏輯電源共用一條線有效避免LED沖擊電流在邏輯電源上產(chǎn)生壓降。MCU側(cè)三根信號(hào)線各串一個(gè)33歐姆電阻接到MCU的GPIO。MCU這邊同樣在進(jìn)入MCU的每個(gè)信號(hào)線上加一個(gè)10pF對(duì)地電容構(gòu)成低通濾波吸收連接器焊盤(pán)引入的靜電和浪涌。整套電路下來(lái)物料成本增加不超過(guò)幾毛錢(qián)但抗干擾能力提升非常明顯。4.2 軟件驅(qū)動(dòng)的基本框架接著看軟件。VK1620的驅(qū)動(dòng)代碼非常簡(jiǎn)單核心就三件事初始化GPIO、寫(xiě)顯示數(shù)據(jù)、設(shè)置亮度。下面的偽代碼展示了基本流程真實(shí)項(xiàng)目中只需按實(shí)際MCU平臺(tái)適配即可。// 定義三個(gè)控制引腳 #define VK1620_STB P1_0 // 片選/鎖存 #define VK1620_CLK P1_1 // 時(shí)鐘 #define VK1620_DATA P1_2 // 數(shù)據(jù) // 發(fā)送一個(gè)字節(jié)到VK1620 void vk1620_send_byte(unsigned char dat) { unsigned char i; for (i 0; i 8; i) { VK1620_CLK 0; VK1620_DATA (dat 0x01) ? 1 : 0; VK1620_CLK 1; dat 1; } } // 寫(xiě)顯示數(shù)據(jù)偽代碼實(shí)際地址映射以數(shù)據(jù)手冊(cè)為準(zhǔn) void vk1620_write_display(const unsigned char *buf, unsigned char len) { VK1620_STB 0; vk1620_send_byte(0xC0); // 寫(xiě)顯示寄存器命令 for (unsigned char i 0; i len; i) { vk1620_send_byte(buf[i]); // 按位對(duì)應(yīng)LED點(diǎn)亮狀態(tài) } VK1620_STB 1; } // 初始化 void vk1620_init(void) { VK1620_STB 1; VK1620_CLK 0; VK1620_DATA 0; // 按需設(shè)置顯示模式、亮度等命令寄存器 }這個(gè)驅(qū)動(dòng)里最關(guān)鍵的操作是STB信號(hào)的時(shí)序發(fā)送數(shù)據(jù)命令時(shí)STB必須拉低整個(gè)命令串和數(shù)據(jù)串發(fā)送完后再拉高。拉高這個(gè)動(dòng)作相當(dāng)于鎖存VK1620在STB上升沿把數(shù)據(jù)真正寫(xiě)入內(nèi)部寄存器。有的工程師為了圖方便每發(fā)送一個(gè)字節(jié)就拉一次STB導(dǎo)致數(shù)據(jù)只寫(xiě)了一部分就鎖存顯示內(nèi)容錯(cuò)亂排查了半天才發(fā)現(xiàn)是時(shí)序問(wèn)題。字模的生成也不用復(fù)雜工具我一般直接在代碼里用常量數(shù)組放置點(diǎn)陣數(shù)據(jù)。比如想在8x8點(diǎn)陣中間畫(huà)一顆心就在數(shù)組里按行寫(xiě)二進(jìn)制值。這種做法在調(diào)試的時(shí)候很直觀改一個(gè)bit就能看到圖形變化比拿工具生成文件再導(dǎo)入省事得多。4.3 調(diào)試步驟與上電檢查清單第一次上電不建議直接把顯示數(shù)據(jù)往里灌。先做幾個(gè)基礎(chǔ)檢查能省掉后面大量的排查時(shí)間。第一步測(cè)電源。芯片VDD對(duì)地電壓是否正常是否等于預(yù)期電壓萬(wàn)用表量一下先。很多人上來(lái)就調(diào)軟件結(jié)果顯示不對(duì)就懷疑芯片壞了結(jié)果查到最后是排線虛焊、電源沒(méi)供上這種事我見(jiàn)得太多了。第二步用示波器看CLK、DATA、STB的波形。上電后先讓MCU運(yùn)行一個(gè)最簡(jiǎn)單的發(fā)送命令把STB拉低發(fā)幾個(gè)字節(jié)看波形有沒(méi)有正確出現(xiàn)。如果波形沒(méi)有問(wèn)題在MCU側(cè)如果波形有但芯片沒(méi)反應(yīng)再看時(shí)序參數(shù)是否滿足數(shù)據(jù)手冊(cè)要求。第三步用“全亮測(cè)試”驗(yàn)證硬件通路。向顯示RAM全部寫(xiě)0xFF讓所有LED點(diǎn)亮。如果所有LED都能穩(wěn)定點(diǎn)亮說(shuō)明SEG、GRID和電源通路都沒(méi)問(wèn)題。然后逐個(gè)修改bit確認(rèn)顯示映射關(guān)系和自己預(yù)期一致。我在這一步就能快速發(fā)現(xiàn)SEG/GRID接線順序是否正確。第四步做動(dòng)態(tài)刷新測(cè)試確認(rèn)掃描穩(wěn)定沒(méi)有閃爍和鬼影。人眼看不大出來(lái)時(shí)可以用手機(jī)攝像頭拍慢動(dòng)作視頻或者把刷新率故意調(diào)低一檔更容易觀察問(wèn)題。最后進(jìn)入整機(jī)環(huán)境測(cè)試?yán)^電器開(kāi)合、電機(jī)啟動(dòng)、開(kāi)關(guān)電源負(fù)載變化時(shí)觀察屏幕有無(wú)閃動(dòng)、花屏等現(xiàn)象。這一步最真實(shí)能檢驗(yàn)前面的抗干擾設(shè)計(jì)有沒(méi)有做到位。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 常見(jiàn)問(wèn)題速查表做這類LED驅(qū)動(dòng)項(xiàng)目我整理了一張問(wèn)題速查表幫助快速定位異常。表現(xiàn)可能原因排查方向完全無(wú)顯示電源未接通、芯片虛焊、STB電平不對(duì)測(cè)電壓、補(bǔ)焊、檢查STB是否正常拉高/拉低顯示很暗驅(qū)動(dòng)電流設(shè)置過(guò)小、LED規(guī)格不匹配、電源電壓偏低調(diào)亮度寄存器、核對(duì)LED額定電流、檢查電源帶載能力顯示閃爍電源去耦不足、排線過(guò)長(zhǎng)導(dǎo)致波形畸變、刷新配置不對(duì)增強(qiáng)去耦電容、縮短排線或加串阻、檢查掃描配置局部花屏SEG/GRID映射順序錯(cuò)位、顯示RAM寫(xiě)錯(cuò)地址用全亮/隔行點(diǎn)亮測(cè)試逐個(gè)核對(duì)接線參考數(shù)據(jù)手冊(cè)圖像有拖影消隱寄存器未配置或配置不對(duì)查看手冊(cè)配置消隱、抖頻選項(xiàng)靠近繼電器即閃干擾耦合進(jìn)信號(hào)線、地平面不完整加串阻并聯(lián)小電容、優(yōu)化地平面、信號(hào)遠(yuǎn)離干擾源這張表解決了我遇到過(guò)的大多數(shù)問(wèn)題排查的時(shí)候不建議跳步一步一步來(lái)從電源開(kāi)始查再查時(shí)序最后查布局邏輯清晰、定位最快。很多工程師遇到“靠近繼電器就閃”這類抗干擾問(wèn)題第一反應(yīng)是加大電容、加磁珠、加屏蔽罩結(jié)果治標(biāo)不治本。真正問(wèn)題往往出在地回路上LED脈沖電流在地平面上形成電壓梯度干擾了控制信號(hào)的地參考。把地平面修好、驅(qū)動(dòng)回流路徑縮短效果比加任何濾波器件都明顯。5.2 幾個(gè)我實(shí)測(cè)過(guò)很有用的技巧分享幾個(gè)平時(shí)文檔里不會(huì)寫(xiě)、但實(shí)戰(zhàn)中特別有效的處理辦法。技巧一在STB信號(hào)上升沿加頓了頓。有的MCU在GPIO快速翻轉(zhuǎn)時(shí)會(huì)產(chǎn)生過(guò)沖或振鈴VK1620在STB上升沿采樣數(shù)據(jù)如果上升沿上有異常抖動(dòng)偶發(fā)讀寫(xiě)錯(cuò)誤就會(huì)閃現(xiàn)。解決方法是驅(qū)動(dòng)代碼里加入極短延時(shí)或者把STB引腳設(shè)置為推挽輸出并串一只33歐姆電阻衰減振鈴。這個(gè)辦法在長(zhǎng)排線場(chǎng)景下特別有效。技巧二防止LED點(diǎn)亮的瞬間沖擊干擾。LED掃描時(shí)每一行的點(diǎn)亮瞬間會(huì)有較大的電流跳變這個(gè)跳變會(huì)通過(guò)電源線傳播到主控。除了加大電容之外還有一個(gè)技巧是讓軟件在點(diǎn)亮LED之前先把SEG數(shù)據(jù)準(zhǔn)備好然后統(tǒng)一打開(kāi)輸出避免SEG和GRID同時(shí)翻轉(zhuǎn)、形成額外的dV/dt。VK1620支持按命令控制輸出狀態(tài)合理運(yùn)用這些命令可以顯著降低刷新瞬態(tài)噪聲。技巧三不要忘記芯片的省電模式。VK1620通常提供低功耗待機(jī)模式系統(tǒng)空閑時(shí)可以把顯示關(guān)掉讓整個(gè)顯示系統(tǒng)進(jìn)入休眠狀態(tài)。這個(gè)功能在電池供電的產(chǎn)品里非常關(guān)鍵。有一次我做便攜式儀器平均功耗死活降不下來(lái)查了半天才發(fā)現(xiàn)VK1620一直處于全速掃描狀態(tài)后來(lái)加上休眠控制整機(jī)功耗直接降了一半。遇到功耗超標(biāo)的時(shí)候記得檢查驅(qū)動(dòng)IC是否處于正確的電源狀態(tài)。最后再提個(gè)建議批量生產(chǎn)的時(shí)候一定要在產(chǎn)測(cè)階段加入顯示自檢程序。讓每臺(tái)機(jī)器的VK1620上電后自動(dòng)顯示全屏、交替圖案等便于生產(chǎn)人員快速發(fā)現(xiàn)焊接不良、排線接錯(cuò)等問(wèn)題。這個(gè)小程序型號(hào)不大但能把產(chǎn)線的直通率拉高不少而且回修成本大幅度降低。我設(shè)計(jì)的很多產(chǎn)品至今都在用這套自檢邏輯效果很穩(wěn)。