Co to je charlieplexing? Metoda, která dostala název po Charlie Allenovi z firmy Maxim Integrated a je určena ke snížení počtu vodičů potřebných k řízení multiplexovaných LED displejů nebo rozměrných LED matic. Uplatní se při přímém ovládání LED pomocí mikrokontroléru (bez vložených dekodérů jako je například dekodér BCD/sedmisegment 7447) nebo ve specializovaných integrovaných řadičích displejů. Byla použita například v obvodech MAX6950, MAX6951, MAX6954, MAX6955, MAX6958 nebo MAX6959.
Při vysvětlení principu vyjdeme z možností ovládání šesti samostatných stejných LED. Nejjednodušší způsob je dát každé LED vlastní pin mikrokontroléru a zdroj proudu (proud omezující rezistor). Ovládání je krajně jednoduché, statické, můžeme nezávisle rozsvítit kteroukoli LED nebo jejich kombinaci. Potřebujeme 6 pinů mikrokontroléru (katody LED jsou společně připojeny na zem).
Standardní multiplexování zapojí LED do matice, v daném případě bude mít 3 sloupce a 2 řádky. LED v řádku mohou svítit společně, řádky se rychle střídají. Vlivem setrvačnosti oka vzniká dojem, že svítí všechny LED současně. Potřebujeme tolik pinů mikrokontroléru, kolik je součet počtu řádků a počtu sloupců, v daném případě 3+2=5. Na počet pinů jsme si tedy moc nepomohli, ale čím je matice větší a čtvercovější, tím je úspora pinů výraznější. Standardní multiplexování vystačí se dvěma logickými úrovněni výstupů, každý výstup je buď v H nebo v L, nic jiného ani nelze.
Charlieplexing využívá toho, že většina pinů mikrokontrolérů může pracovat třístavově. Když je pin nasměrován jako výstup, pak je na něj poslána uroveň H nebo L. Ale je tu ještě další možnost, nasměrovat pin jako vstup, pak se jeví jako vodič s vysokou impedancí. Takové piny nečteme jako vstupy, nepotřebujeme to, stačí nám, že jimi neteče (významný) proud ani proti úrovni H, ani proti úrovni L.
Rezistory ve schématu jsou označeny podle toho, pro kterou LED mohou pracovat. Každou LED je možné ovládat samostatně, současně svítit mohou ale jen vybrané dvojice LED (například 1 a 5). Vystačíme se třemi (třístavovými) piny, to je docela významný pokrok.
Pokud chceme rozsvítit jen LED1, musíme mít na vývodech toto:
A - výstup s úrovní H
B - výstup s úrovní L
C - vstup (respektive vysoká impedance, v podstatě totéž jako odpojený vývod)
Druhý příklad. Chceme rozsvítit LED2 a současně LED6:
A - výstup s úrovní L
B - výstup s úrovní H
C - výstup s úrovní H
Při multiplexování budeme v podobném zapojení zpravidla přepínat LED jednotlivě. Cenou za uspořený počet pinů je jednak nutnost použít třístavové piny, jednak podstatně složitější programové ovládání a vyšší nároky na výkon mikrokontroléru, pokud se má zachovat zdání svitu bez blikání, a leckdy také to, že se zkrátí relativní doba svitu jednotlivých LED, takže buď musí pracovat s vyšším pulzním proudem, nebo se svit jeví méně jasný.
Podívejme se, jak bude vypadat zapojení pro osmimístný sedmisegmentový displej. Počítáme-li segmenty včetně desetinné tečky, pak je znakovka osmisegmentová a celé zapojení je stejné, jako by šlo o ovládání 64 LED v matici 8×8.
Ve standardním zapojení potřebujeme k ovládání celkem 16 dvoustavových pinů (8 pro segmenty a 8 pro volbu znakovky). Všechny segmenty jedné znakovky mohou svítit společně (případně stejný segment na všech znakovkách svítí současně), ovládání je poměrně jednoduché, rozsvěcíme jednu znakovku po druhé a stejné segmenty najdeme vždy na stejných pinech.
Při charlieplexingu vystačíme s 9 třístavovými piny, to ve výrazná úspora. Nelze říci, které piny slouží pro segmenty, a které pro volbu znakovky, všechny mají obojí význam podle situace. Segmenty jedné znakovky mohou svítit současně, ale pro každou znakovku jsou piny ovládající příslušné segmenty jiné! Na ty segmenty, které mají svítit, se posílá stav H, na ty, které nemají svítit, se připojí vysoká impedance (ne stav L !!!), na vývod vybírající znakovku se pošle stav L.
Pro názornější ukázku tohoto zapojení si ještě uvedeme rozkreslení řízení pro jen dvoumístný displej. V prvním případě ovládání znakovky nula je výstup nula řadiče sepnutý proti zemi, tím dostane zem na společnou katodu všech segmentů znakovky nula (modrá linie). Ty segmenty, které mají svítit, mají příslušný FET tranzistor zavřený a teče jimi proud ze spínaného zdroje proudu. Ty segmenty, které nemají svítit, mají příslušný FET také zavřený a jejich zdroj proudu je vypnutý (vývod je ve stavu vysoké impedance). Obdobně na druhém obrázku je stav pro ovládání znakovky jedna. Všimneme si, že stejný segment (levá LED v řadě) NENÍ ovládán vždy stejným pinem.
Zdroj obrázků sedmisegmentových displejů:
http://www.maximintegrated.com/en/app-notes/index.mvp/id/1880
Kat. 1