Obsah:

Jak vytvořit statický ovladač LCD s rozhraním I²C: 12 kroků
Jak vytvořit statický ovladač LCD s rozhraním I²C: 12 kroků

Video: Jak vytvořit statický ovladač LCD s rozhraním I²C: 12 kroků

Video: Jak vytvořit statický ovladač LCD s rozhraním I²C: 12 kroků
Video: Wi-Fi Guru: Nastavení routeru pomocí webového rozhraní 2024, Červenec
Anonim
Jak vytvořit statický ovladač LCD s rozhraním I²C
Jak vytvořit statický ovladač LCD s rozhraním I²C

Displeje s tekutými krystaly (LCD) jsou široce používány pro komerční a průmyslové aplikace kvůli jejich dobrým vizuálním vlastnostem, nízkým nákladům a nízké spotřebě energie. Díky těmto vlastnostem je LCD standardní řešení pro zařízení napájená bateriemi, jako jsou přenosné přístroje, kalkulačky, hodinky, rádia atd.

Aby však bylo možné správně ovládat to, co zobrazuje LCD, musí elektronický ovladač LCD generovat na piny LCD vhodné průběhy napětí. Průběhy by měly být střídavé (střídavý proud), protože stejnosměrné (stejnosměrné) napětí trvale poškodí zařízení. Příslušný ovladač by tyto signály dodával na LCD při minimální spotřebě energie.

Existují dva typy LCD displejů, statický, pouze s jednou základní deskou a jedním kolíkem pro ovládání jednotlivých segmentů, a multiplexní, s více propojovacími rovinami a více segmenty připojenými pro každý kolík.

Tento Instructable představí návrh jednoho statického ovladače LCD se zařízením SLG46537V GreenPAK ™. Navržený ovladač LCD by poháněl až 15 segmentů LCD pomocí několika mikroampér proudu z napájecího zdroje a nabízel rozhraní I²C pro ovládání.

V následujících částech se zobrazí:

● základní znalosti o LCD displejích;

● podrobný návrh ovladače LCD SLG46537V GreenPAK;

● jak řídit sedmisegmentový, 4místný statický LCD se dvěma zařízeními GreenPAK.

Níže jsme popsali potřebné kroky, abychom pochopili, jak bylo řešení naprogramováno pro vytvoření statického ovladače LCD s rozhraním I²C. Pokud však chcete získat pouze výsledek programování, stáhněte si software GreenPAK a zobrazte již dokončený soubor návrhu GreenPAK. Připojte vývojovou sadu GreenPAK k počítači a spusťte program a vytvořte statický ovladač LCD s rozhraním I²C.

Krok 1: Základy displejů z tekutých krystalů

Základy displejů z tekutých krystalů
Základy displejů z tekutých krystalů
Základy displejů z tekutých krystalů
Základy displejů z tekutých krystalů

Liquid Crystal Displays (LCD) je technologie, která nevyzařuje světlo, ale pouze řídí, jak prochází externí zdroj světla. Tímto externím zdrojem světla může být dostupné okolní světlo v reflexním typu displeje nebo světlo z LED podsvícení nebo žárovky u typu transmisivního displeje. LCD jsou konstruovány se dvěma skleněnými deskami (horní a spodní), tenkou vrstvou tekutých krystalů (LC) mezi nimi a dvěma světelnými polarizátory (Application Note AN-001-Basics of LCD Technology, Hitachi, Application Note AN-005-Display Režimy, Hitachi). Polarizátor je světelný filtr pro světelné elektromagnetické pole. Polarizátorem procházejí pouze světelné složky ve správném směru elektromagnetického pole, zatímco ostatní součásti jsou blokovány.

Tekutý krystal je organický materiál, který otáčí elektromagnetické pole světla o 90 stupňů nebo více. Když je však na LC aplikováno elektrické pole, světlo již neotáčí. S přidáním průhledných elektrod v horním a dolním skle displeje je možné ovládat, kdy světlo prochází, a když ne, pomocí externího zdroje elektrického pole. Obrázek 1 (viz aplikační poznámka AN-001-Základy technologie LCD, Hitachi) výše ilustruje toto ovládání provozu. Na obrázku 1 je displej tmavý, pokud neexistuje elektrické pole. Je to proto, že oba polarizátory filtrují světlo stejným směrem. Pokud jsou polarizátory ortogonální, displej bude při přítomnosti elektrického pole tmavý. Toto je nejběžnější situace u reflexních displejů.

Minimální elektrické pole neboli napětí pro ovládání LCD se nazývá prahová hodnota ZAPNUTO. LC je ovlivněno pouze napětím a v LC materiálu není téměř žádný proud. Elektrody v LCD tvoří malou kapacitu a to je jediná zátěž pro řidiče. To je důvod, proč je LCD zařízení s nízkou spotřebou, které zobrazuje vizuální informace.

Je však důležité si uvědomit, že LCD nemůže pracovat se zdrojem stejnosměrného napětí příliš dlouho. Aplikace stejnosměrného napětí způsobí chemické reakce v materiálu LC a trvale jej poškodí (Poznámka k aplikaci AN-001-Základy technologie LCD, Hitachi). Řešením je aplikovat na elektrody LCD střídavé napětí (AC).

U statických LCD je zabudovaná elektroda v jednom skle a jednotlivé segmenty LCD neboli pixely jsou vloženy do druhého skla. Jedná se o jeden z nejjednodušších typů LCD a ten s nejlepším kontrastním poměrem. Tento typ zobrazení však obvykle vyžaduje příliš mnoho pinů pro ovládání každého jednotlivého segmentu.

Ovladač řidiče obecně generuje hodinový signál čtvercové vlny pro propojovací rovinu a hodinový signál pro segmenty v přední rovině dohromady. Když jsou hodiny propojovací roviny ve fázi s hodinami segmentu, je napětí mezi efektivními fázemi (RMS) mezi oběma rovinami nulové a segment je průhledný. V opačném případě, pokud je efektivní napětí vyšší než práh zapnutí LCD, segment ztmavne. Křivky pro segment backplane, on a off segment jsou znázorněny na obrázku 2. Jak je vidět na obrázku, ON segment je ve vztahu k signálu backplane mimo fázi. Off segment je ve vztahu k signálu základní desky fázový. Použité napětí by mohlo být mezi 3 a 5 volty pro nízké náklady a displeje s nízkým výkonem.

Hodinový signál pro backplane a segmenty LCD je obvykle v rozsahu 30 až 100 Hz, což je minimální frekvence, aby se zabránilo efektu vizuálního blikání na LCD. Vyšší frekvence se vyhýbají, aby se snížila spotřeba energie celého systému. Systém složený z LCD a ovladačů by spotřebovával malý proud v řádu mikroampér. Díky tomu jsou dokonale vhodné pro aplikace s nízkým výkonem a napájením z baterií.

V následujících částech je podrobně představen návrh statického ovladače LCD se zařízením GreenPAK, které může generovat hodinový signál backplane a individuální segmentový hodinový signál pro komerční LCD.

Krok 2: Základní blokový diagram GreenPAK Design

Základní blokový diagram návrhu GreenPAK
Základní blokový diagram návrhu GreenPAK
Základní blokový diagram návrhu GreenPAK
Základní blokový diagram návrhu GreenPAK

Blokové schéma, které ilustruje návrh GreenPAK, je znázorněno na obrázku 3. Základními bloky návrhu jsou rozhraní I²C, ovladač výstupního segmentu, interní oscilátor a volič zdroje hodin backplane.

Blok rozhraní I²C ovládá každý jednotlivý segmentový výstup a zdroj hodin na zadní straně LCD. Blok rozhraní I²C je jediným systémovým vstupem pro řízení segmentového výstupu.

Když je nastaven interní ovládací segmentový řádek (vysoká úroveň), příslušný segment LCD je tmavý neprůhledný. Když je vnitřní řídicí segmentový řádek resetován (nízká úroveň), příslušný segment LCD je průhledný.

Každý interní segmentový ovládací řádek je připojen k výstupnímu ovladači. Blok ovladače výstupního segmentu bude generovat signál fázových hodin ve vztahu k hodinám základní desky pro transparentní segmenty. U tmavých segmentů je tento signál mimo fázi ve vztahu k hodinám sběrnice.

Zdroj hodin backplane je vybrán také s rozhraním I²C. Když je vybrán zdroj interních hodin zpětného vedení, vnitřní oscilátor se zapne. Interní oscilátor bude generovat taktovací frekvenci 48 Hz. Tento signál bude použit v bloku ovladače výstupního segmentu a je adresován výstupnímu pinu hodin backplane (pin 20 GreenPAK).

Když je vybrán zdroj externích hodin na zadním panelu, vnitřní oscilátor je vypnutý. Referenční ovladač výstupního segmentu je vstup hodin externích propojovacích linek (pin 2 GreenPAK). V tomto případě by výstupní pin hodin propojovací desky mohl být použit jako přídavná segmentová řídicí linka, segment OUT15.

Na stejné I²C lince bylo možné použít více než jedno zařízení GreenPAK. K tomu musí být každé zařízení naprogramováno s jinou I²C adresou. Tímto způsobem je možné rozšířit počet poháněných segmentů LCD. Jedno zařízení je konfigurováno pro generování zdroje hodin backplane, pohánějícího 14 segmentů, a ostatní jsou konfigurovány pro použití externího zdroje hodin backplane. Každé další zařízení mohlo tímto způsobem pohánět více 15 segmentů. Na stejnou linku I²C je možné připojit až 16 zařízení a poté je možné ovládat až 239 segmentů LCD.

V tomto Instructable se tato myšlenka používá k ovládání 29 segmentů LCD se 2 zařízeními GreenPAK. Funkce pinoutu zařízení je shrnuta v tabulce 1.

Krok 3: Navrhněte aktuální spotřebu

Důležitým problémem v této konstrukci je aktuální spotřeba, která by měla být co nejnižší. Odhadovaný klidový proud zařízení GreenPAK je 0,75 µA pro napájení 3,3 V a 1,12 µA pro napájení 5 V. Aktuální spotřeba interního oscilátoru je 7,6 µA a 8,68 µA pro napájení 3,3 V a 5 V. Neočekává se, že by došlo k významnému nárůstu odběru proudu ze spínacích ztrát, protože tato konstrukce pracuje na nízké hodinové frekvenci. Odhadovaný maximální proud spotřebovaný pro tento design je nižší než 15 µA, když je vnitřní oscilátor zapnutý, a 10 µA, když je vnitřní oscilátor vypnutý. Naměřený proud spotřebovaný v obou situacích je uveden v části Výsledky testu.

Krok 4: Schéma zařízení GreenPAK

Schéma zařízení GreenPAK
Schéma zařízení GreenPAK

Projekt navržený v softwaru GreenPAK je znázorněn na obrázku 4. Toto schéma bude popsáno pomocí referenčních blokových diagramů.

Krok 5: Rozhraní I²C

Rozhraní I²C
Rozhraní I²C
Rozhraní I²C
Rozhraní I²C

Blok rozhraní I²C se používá jako hlavní řídicí blok řízení provozu zařízení. Podrobný pohled na připojení bloků a nakonfigurované vlastnosti jsou uvedeny na obrázku 5.

Tento blok je připojen k PIN 8 a PIN 9, což jsou piny I²C SCL a SDA. Blok I²C uvnitř zařízení nabízí 8 virtuálních vstupů. Počáteční hodnota pro každý virtuální vstup je zobrazena v okně vlastností (viz obrázek 5). Virtuální vstupy od OUT0 do OUT6 se používají jako segmentové řídicí linky. Tyto řídicí linky odpovídají segmentovému výstupu 1 až segmentovému výstupu 7 a jsou připojeny k segmentovému výstupnímu ovladači. Virtuální vstup OUT7 se používá jako ovládání linky voliče zdroje hodin backplane s čistým názvem BCKP_SOURCE. Tuto síť budou používat jiné bloky v návrhu. Kontrolní kód I²C je konfigurován s jinou hodnotou pro každý IC v projektu.

Na výstupu Asynchronous State Machine (ASM) je k dispozici dalších 8 interních segmentových řídicích linek, jak ukazuje obrázek 6 výše. Segmentový výstupní řádek 8 (SEG_OUT_8 v okně vlastností) přes segmentový výstupní řádek 15 (SEG_OUT_15) je řízen výstupem ASM na stavu 0. V bloku ASM není žádný stavový přechod, je vždy ve stavu 0. Výstupy ASM jsou připojeno k segmentovým výstupním ovladačům.

Segmentové výstupní ovladače budou generovat výstupní signál zařízení.

Krok 6: Ovladač výstupního segmentu

Ovladač výstupního segmentu je v podstatě vyhledávací tabulka (LUT) konfigurovaná jako logický port XOR. Pro každý výstupní segment to musí být port XOR připojený k linii řízení segmentu a k hodinám propojovacího rozhraní (BCKP_CLOCK). Port XOR je zodpovědný za generování signálu ve fázi a mimo fázi do výstupního segmentu. Když je řídicí segmentová linka na vysoké úrovni, výstup portu XOR invertuje hodinový signál backplane a generuje signál mimo fázi na pin segmentu. Rozdíl napětí mezi propojovací rovinou LCD a segmentem LCD v tomto případě nastaví segment LCD jako tmavý segment. Když je řídicí segmentová linka na nízké úrovni, výstup portu XOR bude sledovat hodinový signál základní desky a poté generovat fázový signál na pin segmentu. Protože v tomto případě není mezi propojovací rovinou LCD a segmentem aplikováno žádné napětí, je tento segment pro světlo průhledný.

Krok 7: Řízení zdroje interního oscilátoru a backplane

Ovládání zdroje interního oscilátoru a propojovacích hodin
Ovládání zdroje interního oscilátoru a propojovacích hodin

Interní oscilátor se používá, když je signál BCKP_CLOCK z rozhraní I²C nastaven na vysokou úroveň. Blízký pohled na ovládací diagram zdroje hodin je uveden na obrázku 7 výše.

Oscilátor je konfigurován jako RC frekvence 25 kHz, přičemž nejvyšší výstupní dělič je k dispozici na oscilátoru OUT0 (8/64). Celá konfigurace je vidět v okně vlastností zobrazeném na obrázku 7. Interní oscilátor tímto způsobem generuje taktovací frekvenci 48 Hz.

Oscilátor je aktivní pouze tehdy, když je signál BCKP_SOURCE na vysoké úrovni společně se signálem POR. Toto ovládání se provádí připojením těchto dvou signálů k portu NAND 4-L1 LUT. Výstup NAND je poté připojen ke vstupu ovládacího pinu pro vypnutí oscilátoru.

Signál BCKP_SOURCE ovládá MUX s 3-L10 LUT. Když je signál BCKP_SOURCE na nízké úrovni, zdroj hodin backplane pochází z PIN2. Když je tento signál na vysoké úrovni, zdroj hodin backplane pochází z vnitřního oscilátoru.

Krok 8: Výstup hodinového signálu na zadní straně nebo ovládání segmentu 15 výstupních pinů

Výstup hodinového signálu nebo segmentu 15 Ovládání výstupního pinu
Výstup hodinového signálu nebo segmentu 15 Ovládání výstupního pinu

Pin 20 v tomto provedení má dvojitou funkci, která závisí na zvoleném zdroji hodin backplane. Činnost tohoto pinu je řízena jednou 4 vstupní LUT, jak je znázorněno na obrázku 8. U 4bitové LUT je možné spojit provoz XOR portu s výstupním MUX. Když je signál BCKP_SOURCE na vysoké úrovni, výstup LUT bude sledovat hodiny vnitřního oscilátoru. Pak pin 20 funguje jako výstup hodin backplane. Když je signál BCKP_SOURCE na nízké úrovni, výstup LUT bude operací XOR mezi SEG_OUT_15, od výstupu ASM a hodinovým signálem backplane. 4bitová konfigurace LUT k provedení této operace je znázorněna na obrázku 8.

Krok 9: Prototyp systému LCD

Prototyp systému LCD
Prototyp systému LCD
Prototyp systému LCD
Prototyp systému LCD

Pro demonstraci použití konstrukčního řešení GreenPAK byl prototyp systému LCD sestaven na prkénko. U prototypu je sedmisegmentový 4místný statický LCD poháněn dvěma zařízeními GreenPAK na desce DIP. Jedno zařízení (IC1) používá interní oscilátor k ovládání LCD backplane a druhé zařízení (IC2) používá tento signál jako referenci vstupu backplane. Oba integrované obvody jsou řízeny přes rozhraní I²C pomocí mikrokontroléru STM32F103C8T6 (MCU) na minimální vývojové desce.

Obrázek 9 ukazuje schéma zapojení mezi dvěma integrovanými obvody GreenPAK, LCD displejem a deskou MCU. Ve schématu zařízení GreenPAK s referencí U1 (IC1) pohání číslici jedna a dvě LCD (levá strana LCD). Zařízení GreenPAK s referencí U2 (IC2) pohání LCD číslice tři a čtyři plus segment COL (pravý bok LCD). Napájení pro obě zařízení pochází z regulátoru ve vývojové desce mikrokontroléru. Pro měření proudu pomocí multimetru jsou přidány dva odnímatelné propojky mezi napájecím zdrojem a VDD piny každého zařízení GreenPAK.

Obrázek sestaveného prototypu je znázorněn na obrázku 10.

Krok 10: I²C příkazy pro ovládání LCD

I²C příkazy pro ovládání LCD
I²C příkazy pro ovládání LCD
I²C příkazy pro ovládání LCD
I²C příkazy pro ovládání LCD
I²C příkazy pro ovládání LCD
I²C příkazy pro ovládání LCD

Dvě zařízení GreenPAK na prkénku jsou naprogramována se stejným designem, s výjimkou hodnoty Control Byte. Řídicí bajt IC1 je 0 (adresa I²C 0x00), zatímco řídicí bajt I²C je 1 (adresa I²C 0x10). Spojení mezi segmenty displeje a ovladači zařízení je shrnuto v tabulce výše.

Spojení byla vybrána tímto způsobem, aby se vytvořilo jasnější schéma a aby se zjednodušilo sestavování propojovacích desek.

Řízení výstupu segmentu se provádí pomocí příkazů pro zápis I²C do virtuálních vstupů I²C a výstupních registrů ASM. Jak je popsáno v poznámce k aplikaci Jednoduché řadiče IO I-IC AN-1090 s SLG46531V (viz poznámka k aplikaci Jednoduché řadiče IO I-C AN-1090 s IO SLG46531V, Dialog Semiconductor), příkaz pro zápis I²C má následující strukturu:

● Start;

● Řídicí bajt (bit R/W je 0);

● Word adresa;

● Data;

● Zastavit.

Všechny příkazy pro zápis I²C jsou provedeny na adresu Word 0xF4 (I²C virtuální vstupy) a 0xD0 (výstup ASM pro stav 0). Příkazy k zápisu na IC1 a řídicí číslici 1 a 2 LCD jsou shrnuty v tabulce 3. V reprezentaci posloupnosti příkazů otevřená závorka „[“označuje signál Start a zavřená závorka „]“označuje signál Stop.

Dva bajty nad ovládacími segmenty LCD číslice 1 a číslice 2 dohromady. Zde je přístupem použití individuální vyhledávací tabulky (LUT) v softwaru pro každou číslici s ohledem na segmenty v obou bajtech. Hodnoty bajtů z vyhledávací tabulky by měly být smíchány pomocí bitové operace NEBO a poté odeslány do IC. Tabulka 4 ukazuje hodnotu Byte0 a Byte1 pro každou číselnou hodnotu, která by měla být zapsána do každé zobrazené číslice.

Chcete -li například zapsat na číslici 1 číslo 3 a na číslici 2 číslo 4, bajt 0 je 0xBD (0x8D bitový NEBO s 0xB0) a bajt 1 je 0x33 (0x30 bitový NEBO s 0x03).

Příkaz k zápisu do IC2 a ovládání číslic 3 a 4 jsou popsány v tabulce 5.

Řídicí logika číslic 3 a 4 je stejná jako kontrola číslic 1 a 2. Tabulka 6 ukazuje LUT pro tyto dvě číslice.

Rozdíl v IC2 je segment COL. Tento segment je řízen společností Byte1. Chcete -li nastavit tento segment na tmavý, je třeba provést bitovou operaci NEBO mezi Byte1 a hodnotou 0x40.

Krok 11: Příkazy I²C pro test LCD

I²C příkazy pro test LCD
I²C příkazy pro test LCD

Pro test LCD byl pro desku MCU vyvinut firmware v jazyce C. Tento firmware odešle posloupnost příkazů do obou integrovaných obvodů na desce. Zdrojový kód tohoto firmwaru je v části Dodatek. Celé řešení bylo vyvinuto pomocí Atollic TrueStudio pro STM32 9.0.1 IDE.

Sekvence příkazů a příslušné hodnoty zobrazené na displeji jsou shrnuty v tabulce 7 výše.

Krok 12: Výsledky testu

Výsledky testů
Výsledky testů
Výsledky testů
Výsledky testů

Test prototypu sestává z ověření zobrazovaných hodnot po příkazu MCU a měření aktuálního propadu každým IC během provozu.

Obrázky LCD pro každou hodnotu příkazu jsou uvedeny v tabulce 8 výše.

Sběr proudu pro každé zařízení byl měřen multimetrem v jeho nejnižším proudovém rozsahu 200 µA. Obrázky naměřeného proudu pro každé zařízení během spouštění a normálního provozu jsou uvedeny v tabulce 9 výše.

Diskuse o závěrech a výsledcích

Byl představen návrh statického LCD ovladače s nízkým výkonem a zařízením GreenPAK. Tento design jasně ukazuje jednu z největších vlastností zařízení GreenPAK: jejich nízký klidový proud. Protože jsou zařízení GreenPAK hardwarovým řešením, je možné pracovat při nízkofrekvenčním provozu, v tomto případě 48 Hz. Řešení založené na MCU bude vyžadovat vyšší provozní frekvenci, a to i po krátkou dobu, a poté bude odebírat více energie. A při srovnání zařízení GreenPAK s CPLD (Complex Programmable Logic Device) je zřejmé, že CPLD má obvykle klidový proud vyšší než 20 µA.

Je zajímavé poznamenat, že tento design lze snadno upravit tak, aby lépe vyhovoval požadavkům konkrétního projektu. Dobrým příkladem je pinout ovládání segmentů. Mohly by být snadno změněny, aby se zjednodušila deska s plošnými spoji a vývoj softwaru současně. Toto je zajímavá funkce, když je zařízení porovnáváno s běžně dostupným integrovaným obvodem ASIC (Application Specific Integrated Circuit). Obvykle jsou ASIC navrženy tak, aby vyhovovaly široké škále aplikací, a pro správnou konfiguraci IC před operací by měla být napsána počáteční softwarová rutina. Mohlo by být navrženo konfigurovatelné zařízení, které bude po zapnutí připraveno k použití. Tímto způsobem je možné zkrátit dobu vývoje softwaru pro počáteční konfiguraci IC.

Zdrojový kód k aplikaci najdete zde v příloze A.

Doporučuje: