Obsah:

Ako vytvoriť statický ovládač LCD s rozhraním I²C: 12 krokov
Ako vytvoriť statický ovládač LCD s rozhraním I²C: 12 krokov

Video: Ako vytvoriť statický ovládač LCD s rozhraním I²C: 12 krokov

Video: Ako vytvoriť statický ovládač LCD s rozhraním I²C: 12 krokov
Video: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, November
Anonim
Ako vytvoriť statický ovládač LCD s rozhraním I²C
Ako vytvoriť statický ovládač LCD s rozhraním I²C

Displeje s tekutými kryštálmi (LCD) sú široko používané v komerčných a priemyselných aplikáciách kvôli dobrým vizuálnym vlastnostiam, nízkym nákladom a nízkej spotrebe energie. Vďaka týmto vlastnostiam je LCD displej štandardným riešením pre zariadenia napájané batériami, ako sú prenosné nástroje, kalkulačky, hodinky, rádiá atď.

Na správnu kontrolu toho, čo ukazuje displej LCD, však musí elektronický ovládač displeja LCD generovať na kolíky LCD vhodné napäťové vlny. Krivky by mali mať charakter striedavého prúdu (striedavý prúd), pretože napätie jednosmerným prúdom zariadenie trvale poškodí. Príslušný ovládač by tieto signály dodával na LCD pri minimálnej spotrebe energie.

Existujú dva typy displejov LCD, statický, iba s jednou prepojovacou doskou a jedným kolíkom na ovládanie jednotlivých segmentov a multiplexované s viacerými prepojovacími rovinami a viacerými segmentmi pripojenými pre každý kolík.

Tento inštruktážny dokument predstaví návrh jedného statického ovládača LCD so zariadením SLG46537V GreenPAK ™. Navrhnutý ovládač LCD by poháňal až 15 segmentov LCD pomocou niekoľkých mikroampérov prúdu zo zdroja napájania a na ovládanie ponúka rozhranie I²C.

V nasledujúcich častiach sa zobrazia:

● základné znalosti o LCD displejoch;

● podrobný návrh ovládača LCD SLG46537V GreenPAK;

● ako ovládať sedemsegmentový, 4-miestny statický LCD s dvoma zariadeniami GreenPAK.

Ďalej sme popísali potrebné kroky, aby ste pochopili, ako bolo riešenie naprogramované na vytvorenie statického ovládača LCD s rozhraním I²C. Ak však chcete získať iba výsledok programovania, stiahnite si softvér GreenPAK a zobrazte už dokončený súbor návrhu GreenPAK. Pripojte vývojovú súpravu GreenPAK k počítaču a spustite program, aby ste vytvorili statický ovládač LCD s rozhraním I²C.

Krok 1: Základy displejov z tekutých kryštálov

Základy displejov z tekutých kryštálov
Základy displejov z tekutých kryštálov
Základy displejov z tekutých kryštálov
Základy displejov z tekutých kryštálov

Displeje s tekutými kryštálmi (LCD) sú technológiou, ktorá nevyžaruje svetlo, ale riadi iba to, ako prechádza externý svetelný zdroj. Týmto externým zdrojom svetla môže byť dostupné okolité svetlo v reflexnom type displeja alebo svetlo z LED podsvietenia alebo žiarovky v prípade transmisívneho displeja. LCD sú konštruované s dvoma sklenenými doskami (horná a dolná), tenkou vrstvou tekutých kryštálov (LC) medzi nimi a dvoma polarizátormi svetla (Poznámka k aplikácii AN-001-Základy technológie LCD, Hitachi, Poznámka k aplikácii AN-005-Displej Režimy, Hitachi). Polarizátor je svetelný filter pre svetelné elektromagnetické pole. Polarizátorom prechádzajú iba svetelné komponenty v správnom smere elektromagnetického poľa, zatiaľ čo ostatné súčiastky sú zablokované.

Tekuté kryštály sú organický materiál, ktorý otáča elektromagnetické pole svetla o 90 stupňov alebo viac. Keď je však na LC aplikované elektrické pole, svetlo už neotáča. Po pridaní priehľadných elektród do horného a dolného skla displeja je možné ovládať, kedy svetlo prechádza, a keď nie, pomocou externého zdroja elektrického poľa. Obrázok 1 (pozri poznámku k aplikácii AN-001-Základy technológie LCD, Hitachi) vyššie ilustruje toto ovládanie prevádzky. Na obrázku 1 je displej tmavý, ak neexistuje elektrické pole. Je to spôsobené tým, že oba polarizátory filtrujú svetlo rovnakým smerom. Ak sú polarizátory ortogonálne, displej bude pri prítomnosti elektrického poľa tmavý. Toto je najbežnejšia situácia pre reflexné displeje.

Minimálne elektrické pole alebo napätie na ovládanie LCD sa nazýva prahová hodnota ZAPNUTÉ. LC je ovplyvnené iba napätím a v materiáli LC nie je takmer žiadny prúd. Elektródy v LCD majú malú kapacitu a to je jediná záťaž pre vodiča. To je dôvod, prečo je LCD zariadenie s nízkym výkonom, ktoré zobrazuje vizuálne informácie.

Je však dôležité poznamenať, že LCD nemôže pracovať so zdrojom jednosmerného napätia (DC) príliš dlho. Aplikácia jednosmerného napätia spôsobí chemické reakcie v materiáli LC a trvale ho poškodí (Poznámka k aplikácii AN-001-Základy technológie LCD, Hitachi). Riešením je použiť na elektródy LCD striedavé napätie (AC).

Na statických displejoch LCD je elektróda základnej dosky zabudovaná v jednom skle a jednotlivé segmenty LCD alebo pixely sú vložené do druhého skla. Jedná sa o jeden z najjednoduchších typov LCD a ten s najlepším kontrastným pomerom. Tento typ zobrazenia však spravidla vyžaduje príliš veľa pinov na ovládanie každého jednotlivého segmentu.

Ovládač vodiča spravidla generuje hodinový signál štvorcovej vlny pre prepojovaciu dosku a hodinový signál pre segmenty v prednej rovine spoločne. Keď sú hodiny základnej dosky vo fáze s hodinami segmentu, napätie medzi koreňovými kvadrátmi (RMS) medzi oboma rovinami je nulové a segment je priehľadný. V opačnom prípade, ak je napätie RMS vyššie ako prahová hodnota zapnutia LCD, segment stmavne. Krivky pre segment základnej dosky, zapnutý a vypnutý segment sú znázornené na obrázku 2. Ako je možné vidieť na obrázku, segment ON je vo vzťahu k signálu základnej dosky mimo fázy. Vypnutý segment je vo vzťahu k signálu základnej dosky fázový. Použité napätie by mohlo byť medzi 3 a 5 voltmi pre lacné displeje s nízkym výkonom.

Hodinový signál pre zadnú dosku a segmenty LCD je zvyčajne v rozsahu 30 až 100 Hz, čo je minimálna frekvencia, aby sa zabránilo efektu vizuálneho blikania na LCD. Vyšším frekvenciám sa vyhýba, aby sa znížila spotreba energie celého systému. Systém zložený z LCD a ovládačov by spotreboval malý prúd v poradí mikroampérov. Vďaka tomu sú dokonale vhodné pre aplikácie s nízkym výkonom a napájaním z batérií.

V nasledujúcich častiach je podrobne predstavený návrh statického ovládača LCD so zariadením GreenPAK, ktoré môže generovať hodinový signál základnej dosky a individuálny segmentový hodinový signál pre komerčný LCD displej.

Krok 2: Základný blokový diagram dizajnu GreenPAK

Základný blokový diagram dizajnu GreenPAK
Základný blokový diagram dizajnu GreenPAK
Základný blokový diagram dizajnu GreenPAK
Základný blokový diagram dizajnu GreenPAK

Blokový diagram, ktorý ilustruje návrh GreenPAK, je znázornený na obrázku 3. Základnými blokmi návrhu sú rozhranie I²C, ovládač výstupného segmentu, interný oscilátor a volič zdroja hodín základnej dosky.

Blok rozhrania I²C ovláda každý jednotlivý segmentový výstup a zdroj hodinového signálu na zadnej doske LCD. Blok rozhrania I²C je jediným systémovým vstupom pre riadenie segmentového výstupu.

Keď je nastavený riadok interného segmentu (vysoká úroveň), príslušný segment LCD je tmavý nepriehľadný. Keď sa vnútorný riadiaci segmentový segment resetuje (nízka úroveň), príslušný segment LCD je priehľadný.

Každý interný riadiaci segment je pripojený k výstupnému ovládaču. Blok ovládača výstupného segmentu bude generovať signál fázových hodín vo vzťahu k hodinám základnej dosky pre transparentné segmenty. V prípade tmavých segmentov je tento signál mimo fázy vo vzťahu k hodinám základnej dosky.

Zdroj hodín backplane je vybraný aj s rozhraním I²C. Keď je zvolený zdroj interných spätných kmitočtov, je interný oscilátor zapnutý. Interný oscilátor bude generovať hodinovú frekvenciu 48 Hz. Tento signál bude použitý v bloku ovládača výstupného segmentu a je adresovaný výstupnému kolíku hodín základnej dosky (pin 20 GreenPAK).

Keď je vybratý externý zdroj hodinových ručičiek, vnútorný oscilátor je vypnutý. Referenciou ovládača výstupného segmentu je vstup hodín externých prepojovacích liniek (pin 2 GreenPAK). V tomto prípade by výstupný kolík hodinového prepojenia mohol byť použitý ako dodatočný riadiaci segmentový segment, segment OUT15.

Na tej istej linke I²C bolo možné použiť viac ako jedno zariadenie GreenPAK. Na to musí byť každé zariadenie naprogramované s inou I²C adresou. Týmto spôsobom je možné rozšíriť počet poháňaných segmentov LCD. Jedno zariadenie je nakonfigurované na generovanie zdroja hodín prepojovacej roviny poháňajúceho 14 segmentov a ostatné sú nakonfigurované na používanie externého zdroja hodín spätnej roviny. Každé ďalšie zariadenie mohlo týmto spôsobom poháňať viac ako 15 segmentov. Na rovnakú linku I²C je možné pripojiť až 16 zariadení a potom je možné ovládať až 239 segmentov LCD.

V tomto návode sa táto myšlienka používa na ovládanie 29 segmentov LCD s 2 zariadeniami GreenPAK. Funkcia vývodov zariadenia je zhrnutá v tabuľke 1.

Krok 3: Navrhnite aktuálnu spotrebu

Dôležitou obavou v tomto prevedení je aktuálna spotreba, ktorá by mala byť čo najnižšia. Odhadovaný pokojový prúd zariadenia GreenPAK je 0,75 µA pri napájaní 3,3 V a 1,12 µA pri napájaní 5 V. Spotreba prúdu vnútorného oscilátora je 7,6 µA a 8,68 µA pri napájaní 3,3 V a 5 V. Neočakáva sa, že by došlo k významnému zvýšeniu spotreby prúdu zo spínacích strát, pretože táto konštrukcia pracuje na nízkej hodinovej frekvencii. Odhadovaný maximálny prúd spotrebovaný pre tento dizajn je nižší ako 15 µA, keď je vnútorný oscilátor zapnutý, a 10 µA, keď je vnútorný oscilátor vypnutý. Nameraný prúd spotrebovaný v oboch situáciách je uvedený v časti Výsledky testu.

Krok 4: Schéma zariadenia GreenPAK

Schéma zariadenia GreenPAK
Schéma zariadenia GreenPAK

Projekt navrhnutý v softvéri GreenPAK je znázornený na obrázku 4. Táto schéma bude popísaná pomocou základných blokových schém ako referencie.

Krok 5: Rozhranie I²C

Rozhranie I²C
Rozhranie I²C
Rozhranie I²C
Rozhranie I²C

Blok rozhrania I²C sa používa ako hlavný riadiaci blok ovládania prevádzky zariadenia. Podrobný pohľad na blokové spojenia a nakonfigurované vlastnosti sú uvedené na obrázku 5.

Tento blok je spojený s PIN 8 a PIN 9, ktorými sú piny I²C SCL a SDA. Blok I²C vo vnútri zariadenia ponúka 8 virtuálnych vstupov. Počiatočná hodnota pre každý virtuálny vstup je zobrazená v okne vlastností (pozri obrázok 5). Virtuálne vstupy od OUT0 do OUT6 sa používajú ako riadky segmentového riadenia. Tieto riadiace riadky zodpovedajú segmentovému výstupu 1 až segmentovému výstupu 7 a sú spojené so segmentovým výstupným ovládačom. Virtuálny vstup OUT7 sa používa ako riadiaca linka zdroja voliča hodín spätného signálu, s čistým názvom BCKP_SOURCE. Túto sieť budú používať ostatné bloky v návrhu. Riadiaci kód I²C je nakonfigurovaný s inou hodnotou pre každý IC v projekte.

Na výstupe asynchrónneho stavového stroja (ASM) je k dispozícii ďalších 8 riadkov interného segmentu, ako je to znázornené na obrázku 6 vyššie. Segmentový výstupný riadok 8 (SEG_OUT_8 v okne vlastností) cez segmentový výstupný riadok 15 (SEG_OUT_15) je riadený výstupom ASM na stave 0. V bloku ASM nie je žiadny prechod stavu, je vždy v stave 0. Výstupy ASM sú pripojené k segmentovým výstupným ovládačom.

Segmentové výstupné ovládače budú generovať výstupný signál zariadenia.

Krok 6: Ovládač výstupného segmentu

Ovládač výstupného segmentu je v podstate vyhľadávacia tabuľka (LUT) nakonfigurovaná ako logický port XOR. Pre každý výstupný segment to musí byť port XOR pripojený k riadiacej línii segmentu a k hodinám základnej dosky (BCKP_CLOCK). Port XOR je zodpovedný za generovanie signálu vo fáze a mimo fázy do výstupného segmentu. Keď je riadiaca čiara segmentu na vysokej úrovni, výstup portu XOR invertuje hodinový signál základnej dosky a generuje signál mimo fázy na kolíku segmentu. Rozdiel napätia medzi zadnou doskou LCD a segmentom LCD v tomto prípade nastaví segment LCD ako tmavý segment. Keď je riadiaca čiara segmentu na nízkej úrovni, výstup portu XOR bude sledovať hodinový signál základnej dosky a potom vygeneruje fázový signál na kolíkový segment. Pretože v tomto prípade nie je medzi zadnou doskou LCD a segmentom aplikované žiadne napätie, segment je pre svetlo priehľadný.

Krok 7: Ovládanie zdroja interného oscilátora a základnej dosky

Vnútorné ovládanie zdroja oscilátora a základnej dosky
Vnútorné ovládanie zdroja oscilátora a základnej dosky

Interný oscilátor sa používa, keď je signál BCKP_CLOCK z rozhrania I²C nastavený na vysokú úroveň. Podrobný pohľad na ovládací diagram zdroja hodín je znázornený na obrázku 7 vyššie.

Oscilátor je konfigurovaný ako 25 kHz RC frekvencia, pričom najvyšší výstupný deliteľ je k dispozícii na oscilátore OUT0 (8/64). Celá konfigurácia je viditeľná v okne vlastností znázornenom na obrázku 7. Interný oscilátor týmto spôsobom generuje taktovaciu frekvenciu 48 Hz.

Oscilátor je aktívny iba vtedy, ak je signál BCKP_SOURCE na vysokej úrovni spolu so signálom POR. Táto kontrola sa vykonáva pripojením týchto dvoch signálov k portu NAND 4-L1 LUT. Výstup NAND je potom pripojený k vstupu ovládacieho pinu napájania oscilátora.

Signál BCKP_SOURCE riadi MUX s 3-L10 LUT. Keď je signál BCKP_SOURCE na nízkej úrovni, zdroj hodinových ručičiek zdroja pochádza z PIN2. Keď je tento signál na vysokej úrovni, zdroj hodinových ručičiek pochádza z vnútorného oscilátora.

Krok 8: Výstup hodinového prepojenia alebo segmentový 15 výstupný ovládací prvok

Výstup hodinového prepojenia alebo segmentu 15 výstupných pinov
Výstup hodinového prepojenia alebo segmentu 15 výstupných pinov

Pin 20 v tomto prevedení má dvojitú funkciu, ktorá závisí od zvoleného zdroja hodín základnej dosky. Činnosť tohto pinu je riadená jednou 4 vstupnou LUT, ako je znázornené na obrázku 8. So 4-bitovou LUT je možné priradiť činnosť portu XOR k výstupnému MUX. Keď je signál BCKP_SOURCE na vysokej úrovni, výstup LUT bude sledovať hodiny vnútorného oscilátora. Potom kolík 20 funguje ako výstup hodinového prepojenia. Keď je signál BCKP_SOURCE na nízkej úrovni, výstup LUT bude operáciou XOR medzi SEG_OUT_15, od výstupu ASM a hodinovým signálom základnej dosky. 4-bitová konfigurácia LUT na vykonanie tejto operácie je znázornená 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

Na ukážku použitia konštrukčného riešenia GreenPAK bol prototyp systému LCD zostavený na doske. U prototypu je sedemsegmentový 4-miestny statický LCD poháňaný dvoma zariadeniami GreenPAK na doske DIP. Jedno zariadenie (IC1) používa interný oscilátor na napájanie základnej dosky LCD a druhé zariadenie (IC2) používa tento signál ako referenciu vstupu základnej dosky. Oba integrované obvody sú riadené cez rozhranie I²C pomocou mikrokontroléra STM32F103C8T6 (MCU) na minimálnej vývojovej doske.

Obrázok 9 zobrazuje schému zapojenia medzi dvoma integrovanými obvodmi GreenPAK, LCD displejom a doskou MCU. V schéme zariadenie GreenPAK s referenciou U1 (IC1) riadi číslicu jedna a dve LCD (ľavá strana LCD). Zariadenie GreenPAK s referenciou U2 (IC2) poháňa tri a štyri číslice LCD a segment COL (pravý bok LCD). Napájanie oboch zariadení pochádza z regulátora vo vývojovej doske mikrokontroléra. Na meranie prúdu multimetrom sú pridané dva odnímateľné prepojky medzi zdrojom napájania a VDD kolíkmi každého zariadenia GreenPAK.

Obrázok zostaveného prototypu je znázornený na obrázku 10.

Krok 10: Príkazy I²C na ovládanie LCD

I²C príkazy na ovládanie LCD
I²C príkazy na ovládanie LCD
I²C príkazy na ovládanie LCD
I²C príkazy na ovládanie LCD
I²C príkazy na ovládanie LCD
I²C príkazy na ovládanie LCD

Dve zariadenia GreenPAK na doske sú naprogramované s rovnakým dizajnom, s výnimkou hodnoty Control Byte. Riadiaci bajt IC1 je 0 (adresa I²C 0x00), zatiaľ čo riadiaci bajt I²C je 1 (adresa I²C 0x10). Spojenia medzi segmentmi displeja a ovládačmi zariadení sú zhrnuté v tabuľke vyššie.

Spojenia boli zvolené týmto spôsobom, aby sa vytvorila jasnejšia schéma a zjednodušila montáž spojov na doske.

Riadenie výstupu segmentu sa vykonáva pomocou príkazov na zápis I²C do virtuálnych vstupov I²C a výstupných registrov ASM. Ako je popísané v poznámke k aplikácii Jednoduché radiče IO I-IC AN-1090 s SLG46531V (pozri poznámku k aplikácii Jednoduché ovládače IO IOC AN-1090 s IO-SLG46531V, Dialog Semiconductor), príkaz na zápis I²C je štruktúrovaný nasledovne:

● Štart;

● Riadiaci bajt (bit R/W je 0);

● adresa slova;

● Údaje;

● Zastaviť.

Všetky príkazy na zápis I²C sa vykonávajú do adresy Word 0xF4 (virtuálne vstupy I²C) a 0xD0 (výstup ASM pre stav 0). Príkazy na zápis v IC1 a riadiacej číslici 1 a 2 na LCD sú zhrnuté v tabuľke 3. V reprezentácii postupnosti príkazov otvorená zátvorka „[“označuje štartovací signál a uzavretá zátvorka „]“označuje signál Stop.

Dva bajty nad riadiacimi segmentmi LCD číslice 1 a číslice 2 spoločne. V tomto prípade ide o použitie individuálnej vyhľadávacej tabuľky (LUT) v softvéri pre každú číslicu, pričom sa zohľadňujú segmenty v oboch bajtoch. Bajtové hodnoty z vyhľadávacej tabuľky by mali byť zmiešané pomocou bitovej operácie ALEBO a potom odoslané do IC. Tabuľka 4 uvádza hodnotu Byte0 a Byte1 pre každú číselnú hodnotu, ktorá by mala byť zapísaná v každej zobrazovanej číslici.

Ak napríklad chcete zapísať na číslicu 1 číslo 3 a na číslicu 2 číslo 4, bajt 0 je 0xBD (0x8D bitový ALEBO s 0xB0) a bajt 1 je 0x33 (0x30 bitový ALEBO s 0x03).

Príkaz na zápis v IC2 a ovládanie číslic 3 a 4 sú popísané v tabuľke 5.

Riadiaca logika číslic 3 a 4 je rovnaká ako kontrola číslic 1 a 2. Tabuľka 6 zobrazuje LUT pre tieto dve číslice.

Rozdiel v IC2 je segment COL. Tento segment je riadený systémom Byte1. Na nastavenie tohto segmentu na tmavú by mala byť vykonaná bitová operácia ALEBO medzi Byte1 a hodnotou 0x40.

Krok 11: Príkazy I²C na test LCD

I²C príkazy na test LCD
I²C príkazy na test LCD

Na testovanie LCD bol pre dosku MCU vyvinutý firmvér v jazyku C. Tento firmvér odošle postupnosť príkazov do obidvoch integrovaných obvodov na doske. Zdrojový kód tohto firmvéru je v časti Príloha. Celé riešenie bolo vyvinuté pomocou Atollic TrueStudio pre STM32 9.0.1 IDE.

Postupnosť príkazov a príslušné hodnoty zobrazené na displeji sú zhrnuté v tabuľke 7 vyššie.

Krok 12: Výsledky testu

Výsledky testu
Výsledky testu
Výsledky testu
Výsledky testu

Test prototypu pozostáva z overenia zobrazovaných hodnôt po príkaze MCU a zmerania aktuálneho prepadu každým IC počas prevádzky.

Obrázky LCD pre každú hodnotu príkazu sú uvedené v tabuľke 8 vyššie.

Prúdový odber pre každé zariadenie bol meraný multimetrom v jeho najnižšom rozsahu prúdu 200 µA. Obrázky nameraného prúdu pre každé zariadenie počas štartu a normálnej prevádzky sú uvedené v tabuľke 9 vyššie.

Diskusia o záveroch a výsledkoch

Bol predstavený návrh statického ovládača LCD s nízkym výkonom so zariadením GreenPAK. Tento dizajn jasne ukazuje jednu z najväčších vlastností zariadení GreenPAK: ich nízky pokojový prúd. Pretože zariadenia GreenPAK sú hardvérovým riešením, je možné pracovať pri nízkofrekvenčnej prevádzke, v tomto prípade 48 Hz. Riešenie založené na MCU bude vyžadovať vyššiu prevádzkovú frekvenciu, dokonca aj počas periodicky krátkych časových období, a potom bude čerpať viac energie. A pri porovnaní zariadenia GreenPAK s CPLD (komplexné programovateľné logické zariadenie) je zrejmé, že CPLD má zvyčajne pokojový prúd vyšší ako 20 µA.

Je zaujímavé poznamenať, že tento dizajn je možné ľahko upraviť tak, aby lepšie zodpovedal požiadavkám konkrétneho projektu. Dobrým príkladom je pinout segmentového ovládania. Dali sa ľahko zmeniť, aby sa súčasne zjednodušila doska s plošnými spojmi a vývoj softvéru. Je to zaujímavá funkcia, keď sa zariadenie porovnáva s bežným ASIC (integrovaný obvod špecifický pre aplikáciu). ASIC sú zvyčajne navrhnuté tak, aby vyhovovali širokému spektru aplikácií, a pred operáciou by mala byť napísaná počiatočná softvérová rutina na správnu konfiguráciu IC. Konfigurovateľné zariadenie by mohlo byť navrhnuté tak, aby bolo pripravené na použitie po zapnutí. Týmto spôsobom je možné skrátiť čas vývoja softvéru pre počiatočnú konfiguráciu IC.

Zdrojový kód k aplikácii nájdete tu v prílohe A.

Odporúča: