INHOUDSOPGAWE:

Hoe om 'n statiese LCD -bestuurder te maak met I²C -koppelvlak: 12 stappe
Hoe om 'n statiese LCD -bestuurder te maak met I²C -koppelvlak: 12 stappe

Video: Hoe om 'n statiese LCD -bestuurder te maak met I²C -koppelvlak: 12 stappe

Video: Hoe om 'n statiese LCD -bestuurder te maak met I²C -koppelvlak: 12 stappe
Video: HOW TO: STATISCH METER SNOEKEN VANGEN! 2024, Julie
Anonim
Hoe om 'n statiese LCD -bestuurder te maak met 'n I²C -koppelvlak
Hoe om 'n statiese LCD -bestuurder te maak met 'n I²C -koppelvlak

Liquid Crystal Displays (LCD) word wyd gebruik vir kommersiële en industriële toepassings vanweë hul goeie visuele eienskappe, lae koste en lae kragverbruik. Hierdie eienskappe maak die LCD die standaardoplossing vir toestelle wat op batterye werk, soos draagbare instrumente, sakrekenaars, horlosies, radio's, ens.

Om die LCD -skerm behoorlik te beheer, moet die elektroniese bestuurder van die LCD geskikte spanningsgolfvorms na LCD -penne genereer. Die golfvorms moet wisselstroom (wisselstroom) van aard wees, want GS (gelykstroom) spanning sal die toestel permanent beskadig. Die toepaslike bestuurder sal hierdie seine na die LCD stuur met 'n minimum kragverbruik.

Daar bestaan twee soorte LCD's, die Statiese, met slegs een agtervlak en een pen vir individuele segmentbeheer en, die Multiplexed, met verskeie agtervliegtuie en verskeie segmente wat vir elke pen verbind is.

Hierdie Instructable bied die ontwerp van een statiese LCD -bestuurder met SLG46537V GreenPAK ™ -toestel aan. Die ontwerpte LCD -bestuurder kan tot 15 segmente van die LCD bestuur, met 'n paar mikro -ampère stroom van die kragtoevoer en bied 'n I²C -koppelvlak vir beheer.

In die volgende afdelings sal getoon word:

● basiese kennisinligting oor LCD's;

● die SLG46537V GreenPAK LCD -bestuurderontwerp in detail;

● hoe u 'n sewe segment, vier-syfer-statiese LCD met twee GreenPAK-toestelle kan bestuur.

Hieronder beskryf ons die nodige stappe om te verstaan hoe die oplossing geprogrammeer is om die statiese LCD -bestuurder met I²C -koppelvlak te skep. As u egter net die resultaat van die programmering wil kry, laai GreenPAK -sagteware af om die reeds voltooide GreenPAK -ontwerplêer te sien. Koppel die GreenPAK Development Kit aan u rekenaar en klik op die program om die statiese LCD -bestuurder met I²C -koppelvlak te skep.

Stap 1: Basiese beginsels van Liquid Crystal Displays

Basiese beginsels van Liquid Crystal Displays
Basiese beginsels van Liquid Crystal Displays
Basiese beginsels van Liquid Crystal Displays
Basiese beginsels van Liquid Crystal Displays

Liquid Crystal Displays (LCD) is 'n tegnologie wat nie lig uitstraal nie; dit beheer slegs hoe 'n eksterne ligbron deurgaan. Hierdie eksterne ligbron kan die beskikbare omgevingslig wees, in die tipe reflektiewe vertoning, of die lig van 'n agterlig of 'n lamp met 'n transmissiewe vertoningstipe. LCD's is vervaardig met twee glasplate (bo en onder), 'n dun laag vloeibare kristal (LC) tussen hulle en twee ligte polarisators (Toepassingsnota AN-001-Basics of LCD Technology, Hitachi, Application Note AN-005-Display Modes, Hitachi). Die polarisator is 'n ligfilter vir die ligte elektromagnetiese veld. Slegs die ligkomponente in die regte elektromagnetiese veldrigting gaan deur die polarisator, terwyl die ander komponente geblokkeer is.

Die vloeibare kristal is 'n organiese materiaal wat die elektromagnetiese veld van die lig 90 grade of meer draai. As 'n elektriese veld op die LC toegepas word, draai dit egter nie meer die lig nie. Met die toevoeging van deursigtige elektrodes in die boonste en onderste skermglas, is dit moontlik om te bepaal wanneer die lig deurgaan, en wanneer nie, met 'n eksterne bron van die elektriese veld. Figuur 1 (sien Aansoeknota AN-001-Basics of LCD Technology, Hitachi) hierbo illustreer hierdie bedieningsbeheer. In figuur 1 is die skerm donker as daar nie 'n elektriese veld is nie. Dit is omdat beide polarisators die lig in dieselfde rigting filter. As die polarisators ortogonaal is, is die skerm donker as die elektriese veld teenwoordig is. Dit is die mees algemene situasie vir reflekterende skerms.

Die minimum elektriese veld, of spanning, om die LCD te beheer, word die AAN -drempel genoem. Die LC word slegs deur die spanning beïnvloed, en daar is amper geen stroom in LC -materiaal nie. Die elektrodes in LCD vorm 'n klein kapasitansie en dit is die enigste las vir 'n bestuurder. Dit is die rede waarom 'n LCD 'n laekragapparaat is om visuele inligting te wys.

Dit is egter belangrik om daarop te let dat die LCD nie te lank met 'n gelykstroom (DC) spanningsbron kan werk nie. Die aanwending van 'n GS-spanning sal chemiese reaksies in LC-materiaal veroorsaak en dit permanent beskadig (Aansoeknota AN-001-Basics of LCD Technology, Hitachi). Die oplossing is om 'n wisselspanning (WS) in LCD -elektrodes toe te pas.

In statiese LCD's word 'n agtervlakelektrode in die een glas ingebou en individuele segmente van die LCD, of pixels, word in die ander glas geplaas. Dit is een van die eenvoudigste LCD -tipes en die een met die beste kontrasverhouding. Hierdie tipe skerm benodig egter gewoonlik te veel penne om elke individuele segment te beheer.

Oor die algemeen bring 'n bestuurderbeheerder 'n vierkantgolfkloksignaal vir die agtervlak en 'n kloksignaal vir die segmente in die voorste vliegtuig saam. As die agtervliegtuigklok in fase is met die segmentklok, is die wortelgemiddelde-kwadraat (RMS) spanning tussen beide vliegtuie nul en is die segment deursigtig. Andersins, as die RMS -spanning hoër is as die LCD AAN -drempel, word die segment donker. Die golfvorme vir die agtervlak, aan en af segment word in figuur 2. getoon. Die af-segment is in fase met betrekking tot die agtervliegtuigsein. Die toegepaste spanning kan tussen 3 en 5 volt wees vir lae koste -skerms met lae krag.

Die kloksignaal vir die agtervlak en segmente van die LCD is gewoonlik tussen 30 en 100 Hz, die minimum frekwensie om 'n visuele flikkering op LCD te vermy. Hoër frekwensies word vermy om die kragverbruik van die algehele stelsel te verminder. Die stelsel wat bestaan uit LCD en bestuurders verbruik min stroom, in die volgorde van mikroampers. Dit maak hulle perfek geskik vir brontoepassings met lae krag en battery.

In die volgende afdelings word die ontwerp van 'n statiese LCD -bestuurder met 'n GreenPAK -toestel wat die seine van die agterste vliegtuig en die individuele segmentkloksein vir 'n kommersiële LCD kan genereer, breedvoerig aangebied.

Stap 2: GreenPAK Design Basic Block Diagram

GreenPAK Design Basic Block Diagram
GreenPAK Design Basic Block Diagram
GreenPAK Design Basic Block Diagram
GreenPAK Design Basic Block Diagram

'N Blokdiagram wat die GreenPAK -ontwerp illustreer, word getoon in Figuur 3. Die basiese blokke van die ontwerp is die I²C -koppelvlak, die uitsetsegmentbestuurder, die interne ossillator en die agterplankklokbronkeuse.

Die I²C -koppelvlakblok beheer elke afsonderlike segmentuitset en die agterplank -klokbron van die LCD. Die I²C -koppelvlakblok is die enigste stelselinvoer vir segmentuitsetbeheer.

As die interne segmentbeheerlyn ingestel is (hoë vlak), is die onderskeie LCD -segment donker ondeursigtig. As die interne segmentbeheerlyn herstel word (lae vlak), is die onderskeie LCD -segment deursigtig.

Elke interne segmentbeheerlyn is gekoppel aan 'n uitsetbestuurder. Die uitsetsegment-bestuurderblok sal 'n in-fase-kloksignaal genereer wat verband hou met die agterplankhorlosie vir deursigtige segmente. Vir donker segmente is hierdie sein uit fase met die verhouding met die agtervliegtuigklok.

Die agterplaasklokbron word ook gekies met die I²C -koppelvlak. As die interne agterplank klokbron gekies word, word die interne ossillator aangeskakel. Die interne ossillator sal 'n klokfrekwensie van 48Hz genereer. Hierdie sein sal gebruik word deur die uitsetsegmentbestuurderblok en is gerig aan die agteruitgang -klokuitgangpen (GreenPAK -pen 20).

As die eksterne agterplankhorlosie gekies word, word die interne ossillator afgeskakel. Die verwysing na die uitsetsegmentbestuurder is die eksterne ingang van die agterste vliegtuigklok (GreenPAK -pen 2). In hierdie geval kan die uitsetpen van die agterplaasklok gebruik word as 'n ekstra segmentbeheerlyn, die segment OUT15.

Meer as een GreenPAK -toestel kan op dieselfde I²C -lyn gebruik word. Om dit te kan doen, moet elke toestel met 'n ander I²C -adres geprogrammeer word. Op hierdie manier is dit moontlik om die aantal aangedrewe LCD -segmente uit te brei. Een toestel is gekonfigureer om die agterplaasklokbron te genereer, wat 14 segmente aandryf, en die ander is gekonfigureer om 'n eksterne klok van die agterplaas te gebruik. Elke bykomende toestel kan op hierdie manier meer 15 segmente aandryf. Dit is moontlik om tot 16 toestelle op dieselfde I²C -lyn aan te sluit en dan is dit moontlik om tot 239 segmente van 'n LCD te beheer.

In hierdie instruksies word hierdie idee gebruik om 29 segmente van 'n LCD met 2 GreenPAK -toestelle te beheer. Die funksie om die toestel uit te skakel, word in tabel 1 opgesom.

Stap 3: Ontwerp huidige verbruik

'N Belangrike bekommernis in hierdie ontwerp is die huidige verbruik, wat so laag as moontlik moet wees. Die beraamde ruststroom van die GreenPAK -toestel is 0,75 µA vir 3,3 V toevoer en 1,12 µA vir 5 V toevoer. Die huidige verbruik van die interne ossillator is onderskeidelik 7,6 µA en 8,68 µA vir 3,3 V en 5 V kragvoorsiening. Daar word nie verwag dat die huidige verbruik aansienlik sal toeneem as gevolg van skakelverliese nie, want hierdie ontwerp werk teen 'n lae klokfrekwensie. Die geskatte maksimum stroom wat vir hierdie ontwerp verbruik word, is laer as 15 µA wanneer die interne ossillator aan is, en 10 µA wanneer die interne ossillator af is. Die gemete stroom wat in beide situasies verbruik word, word in die afdelingtoetsresultate getoon.

Stap 4: GreenPAK -toestelschema

GreenPAK -toestelschema
GreenPAK -toestelschema

Die projek wat in GreenPAK -sagteware ontwerp is, word in Figuur 4. getoon. Hierdie skema sal beskryf word met behulp van die basiese blokdiagramme as verwysing.

Stap 5: I²C -koppelvlak

I²C -koppelvlak
I²C -koppelvlak
I²C -koppelvlak
I²C -koppelvlak

I²C -koppelvlakblok word gebruik as die hoofbeheerblok van die bedieningskontrole van die toestel. 'N Oorsig van die blokverbindings en die gekonfigureerde eienskappe word in figuur 5 getoon.

Hierdie blok is gekoppel aan PIN 8 en PIN 9, dit is onderskeidelik I²C SCL en SDA penne. Binne die toestel bied die I²C -blok 8 virtuele insette. Die aanvanklike waarde vir elke virtuele invoer word in die eienskappe venster vertoon (sien figuur 5). Virtuele insette van OUT0 tot OUT6 word as segmentbeheerlyne gebruik. Hierdie bedieningslyne stem ooreen met segmentuitset 1 tot segmentuitset 7 en is gekoppel aan die segmentuitsetbestuurder. Virtuele invoer OUT7 word gebruik as 'n agterlyn -keurlynbeheer met die netto naam BCKP_SOURCE. Hierdie net sal deur ander blokke in die ontwerp gebruik word. Die I²C -beheerkode is gekonfigureer met 'n ander waarde vir elke IC in die projek.

Daar is nog 8 interne lyne vir interne segmente beskikbaar in die Asynchronous State Machine (ASM) uitset, soos in figuur 6 hierbo getoon. Segment -uitsetlyn 8 (SEG_OUT_8 in die venster Eienskappe) deur segmentuitsetlyn 15 (SEG_OUT_15) word beheer deur ASM -uitset op toestand 0. Daar is geen toestandsoortgang in ASM -blok nie, dit is altyd in toestand 0. Die uitsette van ASM is gekoppel aan segment -uitvoerbestuurders.

Die segment -uitvoerbestuurders sal die uitsetsein van die toestel genereer.

Stap 6: Uitvoersegmentbestuurder

Die uitsetsegmentbestuurder is in wese 'n Opzoektabel (LUT) wat as 'n XOR -logiese poort opgestel is. Vir elke uitsetsegment moet dit 'n XOR -poort wees wat gekoppel is aan die segmentbeheerlyn en na die agtervliegtuigklok (BCKP_CLOCK). Die XOR-poort is verantwoordelik om die in-fase en buite-fase sein na die uitsetsegment te genereer. As die segmentbeheerlyn op 'n hoë vlak is, sal die XOR-poortuitset die seine van die agterste vliegtuig omkeer en 'n outfase sein na die segmentpen stuur. Die spanningsverskil tussen LCD -agtervlak en LCD -segment, in hierdie geval, sal die LCD -segment as 'n donker segment stel. As die segmentbeheerlyn op 'n lae vlak is, volg die XOR-poortuitset die agtervliegtuigkloksein en genereer dan 'n in-fase sein na die segmentpen. Omdat daar in hierdie geval geen spanning tussen die LCD -agtervlak en die segment aangewend word nie, is die segment deursigtig vir lig.

Stap 7: Interne ossillator en agtervliegtuigbronbeheer

Interne ossillator- en agtervliegtuigbronbeheer
Interne ossillator- en agtervliegtuigbronbeheer

Die interne ossillator word gebruik wanneer die sein BCKP_CLOCK vanaf die I²C -koppelvlak op 'n hoë vlak gestel is. 'N Oorsig van die klokbronbeheerdiagram word in figuur 7 hierbo getoon.

Die ossillator is opgestel as 'n 25 kHz RC -frekwensie, met die hoogste uitsetverdeler wat beskikbaar is by die ossillator OUT0 (8/64). Die hele konfigurasie word gesien in die eienskappe venster in Figuur 7. Op hierdie manier sal die interne ossillator 'n klokfrekwensie van 48 Hz genereer.

Die ossillator is slegs aktief as die BCKP_SOURCE -sein op 'n hoë vlak is, tesame met die POR -sein. Hierdie beheer word gedoen deur hierdie twee seine aan te sluit op die NAND-poort van die 4-L1 LUT. Die uitset van die NAND word dan gekoppel aan die ingang van die ossillator se afskakelbeheerpen.

Sein BCKP_SOURCE beheer die MUX wat gebou is met 3-L10 LUT. As die BCKP_SOURCE -sein op 'n lae vlak is, kom die agterplankhorlosie van PIN2. As hierdie sein op 'n hoë vlak is, kom die agtervliegtuigbron van die interne ossillator.

Stap 8: Uitvoer van die agtervliegtuigklok of segmentbeheer van segment 15 -uitvoer

Agtervliegtuigklokuitset of segment 15 -uitsetpenbeheer
Agtervliegtuigklokuitset of segment 15 -uitsetpenbeheer

Speld 20 in hierdie ontwerp het 'n dubbele funksie, wat afhang van die gekose agterplankhorlosie. Die werking van hierdie pen word beheer met een 4 ingang LUT, soos getoon in figuur 8. Met 'n 4-bis LUT is dit moontlik om die werking van die XOR-poort te assosieer met 'n MUX-uitgang. As die BCKP_SOURCE -sein op 'n hoë vlak is, volg die LUT -uitset die interne ossillatorklok. Dan werk pen 20 as 'n agteruitgang -klokuitgang. As die BCKP_SOURCE -sein op 'n lae vlak is, is die LUT -uitset die XOR -werking tussen SEG_OUT_15, vanaf ASM -uitset, en die agteruitvlugkloksein. Die 4-bis LUT-opset om hierdie operasie uit te voer, word in figuur 8 getoon.

Stap 9: LCD -stelsel prototipe

LCD -stelsel prototipe
LCD -stelsel prototipe
LCD -stelsel prototipe
LCD -stelsel prototipe

Om die gebruik van die GreenPAK -ontwerpoplossing te demonstreer, is 'n prototipe van 'n LCD -stelsel op 'n broodbord aangebring. Vir die prototipe word 'n sewe segment, 4-syfer statiese LCD aangedryf deur twee GreenPAK-toestelle op die DIP-bord. Die een toestel (IC1) gebruik die interne ossillator om die LCD -agtervliegtuig aan te dryf, en die ander toestel (IC2) gebruik hierdie sein as 'n terugvluginvoerverwysing. Beide IC's word beheer oor die I²C -koppelvlak deur 'n STM32F103C8T6 mikrobeheerder (MCU) in 'n minimum ontwikkelbord.

Figuur 9 toon die skema van die verbindings tussen die twee GreenPAK IC's, die LCD -skerm en die MCU -bord. In die skema dryf die GreenPAK -toestel met U1 (IC1) -verwysing die LCD -syfer een en twee (linkerkantste LCD). Die GreenPAK -toestel met U2 (IC2) verwysing dryf LCD syfer drie en vier, plus die COL segment (LCD regterkant). Die kragtoevoer vir beide toestelle kom van die reguleerder in die ontwikkelingsbord van die mikrobeheerder. Twee verwyderbare springers tussen die kragtoevoer en VDD -penne van elke GreenPAK -toestel word bygevoeg vir stroommeting met 'n multimeter.

'N Afbeelding van die saamgestelde prototipe word in figuur 10 getoon.

Stap 10: I²C -opdragte vir LCD -beheer

I²C bevele vir LCD -beheer
I²C bevele vir LCD -beheer
I²C opdragte vir LCD -beheer
I²C opdragte vir LCD -beheer
I²C opdragte vir LCD -beheer
I²C opdragte vir LCD -beheer

Die twee GreenPAK -toestelle op die broodbord is met dieselfde ontwerp geprogrammeer, behalwe deur die Control Byte -waarde. Die beheerbyte van IC1 is 0 (I²C -adres 0x00), terwyl die I²C -beheerbyte 1 (I²C -adres 0x10) is. Die verbindings tussen skermsegmente en toesteldrywers word in die tabel hierbo opgesom.

Die verbindings is op hierdie manier gekies om 'n duideliker skema te skep en die montering van die broodbordverbindings te vereenvoudig.

Die beheer van die uitset van die segment word uitgevoer deur I²C -opdragte na I²C Virtual Inputs en ASM -output -registers. Soos beskryf in die toepassingsnota AN-1090 Simple I²C IO Controllers met SLG46531V (sien Aansoeknota AN-1090 Simple I²C IO Controllers met SLG46531V, Dialog Semiconductor), is die I²C skryfopdrag soos volg gestruktureer:

● Begin;

● Beheerbyte (R/W -bit is 0);

● Woordadres;

● Data;

● Stop.

Al die I²C skryfopdragte word gemaak na Word Address 0xF4 (I²C Virtual Inputs) en 0xD0 (ASM Output for state 0). Die opdragte om in IC1 te skryf en die LCD -syfer 1 en 2 te beheer, word opgesom in tabel 3. In die opdragreeksvoorstelling dui die oop hakie "[" die beginsein aan, en die nabye hakie "]" die stopsein.

Die twee grepe hierbo beheer segmente van LCD syfer 1 en syfer 2 saam. Hier is die benadering om 'n individuele opzoektabel (LUT) in sagteware vir elke syfer te gebruik, met inagneming van die segmente in beide grepe. Die greepwaardes van die soektafel moet met 'n bit -OF -operasie gemeng word en dan na die IC gestuur word. Die tabel 4 toon die waarde van Byte0 en Byte1 vir elke numeriese waarde wat in elke vertoningsyfer geskryf moet word.

Byvoorbeeld, om in getal 1 die getal 3 te skryf, en in die syfer 2 die getal 4, is Byte0 0xBD (0x8D bitwise OF met 0xB0) en Byte 1 is 0x33 (0x30 bitwise OF met 0x03).

Die opdrag om in IC2 te skryf en die syfers 3 en 4 te beheer, word in tabel 5 beskryf.

Die kontrolelogika van syfers 3 en 4 is soos die beheer van syfers 1 en 2. Tabel 6 toon die LUT vir hierdie twee syfers.

Die verskil in IC2 is die COL -segment. Hierdie segment word beheer deur Byte1. Om hierdie segment donker op te stel, moet 'n bitsige OF -operasie tussen die Byte1 en die waarde 0x40 gedoen word.

Stap 11: I²C -opdragte vir LCD -toets

I²C bevele vir LCD toets
I²C bevele vir LCD toets

Vir die LCD -toets is 'n firmware in die C -taal ontwikkel vir die MCU -bord. Hierdie firmware stuur 'n reeks opdragte na beide IC's op die broodbord. Die bronkode vir hierdie firmware is in die bylae -afdeling. Die hele oplossing is ontwikkel met behulp van Atollic TrueStudio vir STM32 9.0.1 IDE.

Die volgorde van opdragte en die onderskeie waardes wat op die skerm vertoon word, word in tabel 7 hierbo opgesom.

Stap 12: Toetsresultate

Toets resultate
Toets resultate
Toets resultate
Toets resultate

Die prototipe toets bestaan uit die verifiëring van die vertoningswaardes na 'n MCU -opdrag en die meting van die huidige sink deur elke IC tydens werking.

Foto's van die LCD vir elke opdragwaarde word in tabel 8 hierbo getoon.

Die stroomwasbak vir elke toestel is gemeet met 'n multimeter, in sy laagste stroombereik van 200 µA. Foto's van die gemete stroom vir elke toestel, tydens aanvang en normale werking, word in tabel 9 hierbo getoon.

Gevolgtrekking en resultate Bespreking

Die ontwerp van 'n statiese LCD -bestuurder met 'n lae krag met 'n GreenPAK -toestel is aangebied. Hierdie ontwerp toon duidelik een van die grootste kenmerke van die GreenPAK -toestelle: hul lae rustende stroom. Omdat GreenPAK-toestelle 'n hardeware-oplossing is, is dit moontlik om teen 'n lae frekwensie operasie te werk, in hierdie geval 48 Hz. 'N MCU -oplossing sal 'n hoër frekwensie vereis, selfs vir kort periodes, en dan meer krag verkry. En as ons GreenPAK -toestel vergelyk met 'n CPLD (Complex Programmable Logic Device), is dit duidelik dat 'n CPLD gewoonlik 'n rustige stroom van meer as 20 µA het.

Dit is interessant om daarop te let dat hierdie ontwerp maklik aangepas kan word om beter aan die vereistes van 'n spesifieke projek te voldoen. 'N Goeie voorbeeld is die pinout -segmentkontroles. Dit kan maklik verander word om die printplaat en die ontwikkeling van sagteware terselfdertyd te vereenvoudig. Dit is 'n interessante kenmerk as die toestel vergelyk word met 'n ASIC (Application Specific Integrated Circuit) van die rak af. Gewoonlik is ASIC's ontwerp om op 'n wye verskeidenheid toepassings te pas, en 'n aanvanklike sagteware -roetine moet geskryf word om die IC voor die operasie behoorlik op te stel. 'N Opstelbare toestel kan ontwerp word om gereed te wees vir gebruik nadat dit aangeskakel is. Op hierdie manier is dit moontlik om die sagteware -ontwikkelingstyd vir die aanvanklike konfigurasie van IC te verminder.

Die bronkode vir die aansoek kan hier gevind word in aanhangsel A.

Aanbeveel: