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