實際的微控制器都有強(qiáng)大的雙向I/O端口,你可以用不同的技術(shù)來充分利用這些功能。最近有個設(shè)計實例描述了一種“Charlieplexing”方法,它是只用N個雙向I/O端口和N個電阻,驅(qū)動M=N×(N–1)個LED的有效方式(參考文獻(xiàn)1和參考文獻(xiàn)2)。遺憾的是,采用Charlieplexing方法時,每次只能驅(qū)動一只LED,因此當(dāng)使用大量LED時,只有很少時間能用于復(fù)用每只LED:TDRIVE=T/M,其中T是PWM激勵周期。于是,為獲得給定的平均電流和點(diǎn)亮LED,就必須用M倍的電流去激勵它們,而通常無法從微控制器端口獲得這種峰值電流。 本設(shè)計描述的是“Chipiplexing”方法,這種方法需要增加N個廉價的雙極晶體管。本電路使用的是PNP型晶體管,但也可以采用NPN器件。(Chipiplexing這個詞出自于我的昵稱Chipi。)付出這些額外成本帶來的好處是可以同時驅(qū)動N-1只LED,因此將峰值電流減小到N-1分之一。 圖1表示N=3和M=6的方案,但可以將相同準(zhǔn)則用于不同的N值;在這種情況下,可以同時驅(qū)動兩只LED。限流電阻并聯(lián)在新增PNP晶體管的基射極上,所有集電極連接到地。如果你將一個微控制器端口設(shè)為零(或地),則相應(yīng)PNP晶體管就有一個接地的基極,其射極為一個固定電壓(一般是 0.7V)。通過其余端口就可以激勵所有陰極連接到這個射極的LED。如果將端口設(shè)為1,即電池電壓,LED點(diǎn)亮;如果將端口設(shè)為高阻,則LED熄滅。 表1驅(qū)動LED的九種可用端口組合 表1表示三個微控制器端口的九個可能組合:六個可用Charlieplexing方法每次驅(qū)動一只LED,三個新組合每次驅(qū)動二只LED。微控制器端口將晶體管基極接地。這一動作固定了集射結(jié)的壓降,并將所有LED電流拉入大地,而不會給微控制器端口過大壓力,微控制器端口只吸入晶體管基極電流再加上每只電阻的0.7V。每個端口都設(shè)定到只驅(qū)動一只LED電流的電池電壓。 采用Charlieplexing方法時,兩只電阻處于LED電流路徑上;不過,這種情況下可以很容易算出限流電阻值R=(VBAT–VLED–0.7)/ILED,其中VBAT是電池電壓,VLED是 LED電壓,而ILED是所需要的LED電流。隨著LED數(shù)量的增加,優(yōu)點(diǎn)會更明顯。對于N=5,20只LED情況,這種方案驅(qū)動每只LED時間為 20%,而采用Charlieplexing方法時驅(qū)動時間只有5%。 |