Indholdsfortegnelse:

Sådan laver du en statisk LCD -driver med I²C -grænseflade: 12 trin
Sådan laver du en statisk LCD -driver med I²C -grænseflade: 12 trin

Video: Sådan laver du en statisk LCD -driver med I²C -grænseflade: 12 trin

Video: Sådan laver du en statisk LCD -driver med I²C -grænseflade: 12 trin
Video: KRAFTIGT multimeter UNI-T UT171B køb i dag, eller hvilket er bedre? 2024, November
Anonim
Sådan laver du en statisk LCD -driver med I²C -interface
Sådan laver du en statisk LCD -driver med I²C -interface

Liquid Crystal Displays (LCD) bruges i vid udstrækning til kommercielle og industrielle applikationer på grund af deres gode visuelle egenskaber, lave omkostninger og lave strømforbrug. Disse egenskaber gør LCD'en til standardløsningen for batteridrevne enheder, f.eks. Bærbare instrumenter, lommeregnere, ure, radioer osv.

For at kontrollere, hvad LCD -skærmen viser, skal LCD -elektronikkens driver imidlertid generere passende spændingsbølgeformer til LCD -ben. Bølgeformerne skal have en vekselstrøm (vekselstrøm), fordi DC (jævnstrøm) spændinger permanent vil beskadige enheden. Den relevante driver ville kilde disse signaler til LCD med et minimum af strømforbrug.

Der findes to typer LCD -skærme, den statiske, med kun et bagplan og en pin til individuel segmentstyring og Multiplexed med flere bagplaner og flere segmenter forbundet til hver pin.

Denne instruktionsbog præsenterer designet af en statisk LCD -driver med SLG46537V GreenPAK ™ -enhed. Den designede LCD -driver ville køre op til 15 LCD -segmenter ved hjælp af et par mikroampere strøm fra strømforsyningen og tilbyde en I²C -grænseflade til kontrol.

I de følgende afsnit vises:

● grundlæggende viden om LCD -skærme;

● SLG46537V GreenPAK LCD -driverdesign i detaljer;

● hvordan man driver et syv segment, 4-cifret statisk LCD med to GreenPAK-enheder.

Nedenfor beskrev vi de nødvendige trin for at forstå, hvordan løsningen er blevet programmeret til at oprette den statiske LCD -driver med I²C -interface. Men hvis du bare vil få resultatet af programmeringen, skal du downloade GreenPAK -software for at se den allerede gennemførte GreenPAK -designfil. Tilslut GreenPAK Development Kit til din computer, og tryk på programmet for at oprette den statiske LCD -driver med I²C interface.

Trin 1: Grundlæggende om Liquid Crystal Displays

Grundlæggende om Liquid Crystal Displays
Grundlæggende om Liquid Crystal Displays
Grundlæggende om Liquid Crystal Displays
Grundlæggende om Liquid Crystal Displays

Liquid Crystal Displays (LCD) er en teknologi, der ikke udsender lys, den styrer kun, hvordan en ekstern lyskilde passerer igennem. Denne eksterne lyskilde kan være det tilgængelige omgivende lys i den reflekterende displaytype eller lyset fra en baggrundsbelysning eller lampe i transmissiv displaytype. LCD'er er konstrueret med to plader af glas (øverst og nederst), et tyndt lag flydende krystal (LC) mellem dem og to lyspolarisatorer (Application Note AN-001-Basics of LCD Technology, Hitachi, Application Note AN-005-Display Tilstande, Hitachi). Polarisatoren er et lysfilter til det lyselektromagnetiske felt. Kun lyskomponenterne i den rigtige elektromagnetiske feltretning passerer gennem polarisatoren, mens de andre komponenter er blokeret.

Flydende krystal er et organisk materiale, der roterer lysets elektromagnetiske felt 90 grader eller mere. Når et elektrisk felt påføres LC, roterer det imidlertid ikke længere lyset. Med tilføjelse af transparente elektroder i det øverste og nederste displayglas er det muligt at styre, hvornår lyset passerer igennem, og når ikke, med en ekstern kilde til det elektriske felt. Figur 1 (se Application Note AN-001-Basics of LCD Technology, Hitachi) ovenfor illustrerer denne betjeningskontrol. I figur 1 er displayet mørkt, når der ikke er et elektrisk felt. Dette skyldes, at begge polarisatorer filtrerer lyset i samme retning. Hvis polarisatorerne er ortogonale, vil displayet være mørkt, når det elektriske felt er til stede. Dette er den mest almindelige situation for reflekterende displays.

Det minimale elektriske felt eller spænding til at styre LCD'et kaldes ON -tærsklen. LC'en påvirkes kun af spændingen, og der er næsten ingen strøm i LC -materiale. Elektroderne i LCD danner en lille kapacitans, og dette er den eneste belastning for en driver. Dette er grunden til, at en LCD -skærm er en enhed med lavt strømforbrug til at vise visuel information.

Det er imidlertid vigtigt at bemærke, at LCD -skærmen ikke kan fungere med en jævnstrøm (DC) spændingskilde for længe. Anvendelse af en jævnstrømsspænding vil forårsage kemiske reaktioner i LC-materiale og permanent skade det (applikationsbemærkning AN-001-Basics of LCD Technology, Hitachi). Løsningen er at anvende en vekselstrøm (AC) i LCD -elektroder.

I statiske LCD -skærme er en bagplanelektrode bygget i det ene glas, og individuelle LCD -segmenter eller pixels sættes i det andet glas. Dette er en af de enkleste LCD -typer og den med det bedste kontrastforhold. Denne type skærm kræver dog normalt for mange ben til at styre hvert enkelt segment.

Generelt kilder en førerkontroller et firkantbølgesurssignal til bagplanen og et ursignal til segmenterne i frontplanet sammen. Når bagplanets ur er i fase med segmenturet, er rod-middel-kvadrat (RMS) spændingen mellem begge fly nul, og segmentet er gennemsigtigt. Hvis RMS -spændingen ellers er højere end LCD ON -tærsklen, bliver segmentet mørkt. Bølgeformerne for bagplanet, on og off segmentet er vist i figur 2. Som det kan ses på figuren, er ON-segmentet ude af fase i forhold til backplane-signalet. Off-segmentet er i fase i forhold til backplane-signalet. Den påførte spænding kan være mellem 3 og 5 volt for billige, lave strømdisplayer.

Ursignalet for LCD's bagplan og segmenter ligger normalt i området 30 til 100 Hz, minimumsfrekvensen for at undgå en visuel flimmereffekt på LCD. Højere frekvenser undgås for at reducere strømforbruget i det samlede system. Systemet sammensat af LCD og drivere ville forbruge lidt strøm i størrelsesordenen mikroampere. Dette gør dem perfekt egnede til applikationer med lav strøm og batteristrømforsyning.

I de følgende afsnit præsenteres designet af en statisk LCD -driver med GreenPAK -enhed, der kan generere bagplansurssignal og det individuelle segmenturssignal for en kommerciel LCD i detaljer.

Trin 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

Et blokdiagram, der illustrerer GreenPAK -designet, er vist i figur 3. Designets grundlæggende blokke er I²C -grænsefladen, udgangssegmentdriveren, den interne oscillator og bagplaneurets kildevælger.

I²C interfaceblokken styrer hvert enkelt segmentoutput og bagplanets urkilde på LCD'et. I²C -interfaceblokken er den eneste systemindgang til segmentoutputstyring.

Når den interne segmentstyrelinje er indstillet (højt niveau), er det respektive LCD -segment mørkt uigennemsigtigt. Når den interne segmentstyrelinje nulstilles (lavt niveau), er det respektive LCD -segment gennemsigtigt.

Hver intern segmentstyringslinje er forbundet til en outputdriver. Udgangssegmentdriverblokken vil generere et in-fase-kloksignal med relation til bagplanets ur til transparente segmenter. For mørke segmenter er dette signal ude af fase med forholdet til bagplanets ur.

Bagplanets urkilde er også valgt med I²C -interface. Når den interne bagplan -urkilde er valgt, tændes den interne oscillator. Den interne oscillator genererer en clockfrekvens på 48Hz. Dette signal vil blive brugt af udgangssegmentdriverblok og er adresseret til bagplaneurets udgangsstift (GreenPAK pin 20).

Når ekstern bagplan -urkilde er valgt, slukkes den interne oscillator. Udgangssegmentdriverreferencen er den eksterne bagplaneurindgang (GreenPAK pin 2). I dette tilfælde kunne bagplaneurets udgangsstift bruges som en ekstra segmentkontrollinje, segmentet OUT15.

Mere end én GreenPAK -enhed kunne bruges på den samme I²C -linje. For at gøre det skal hver enhed programmeres med en anden I²C -adresse. På denne måde er det muligt at udvide antallet af drevne LCD -segmenter. Én enhed er konfigureret til at generere bagplanets urkilde, der driver 14 segmenter, og den anden er konfigureret til at bruge en ekstern bagplanurskilde. Hver ekstra enhed kunne køre mere 15 segmenter på denne måde. Det er muligt at tilslutte op til 16 enheder på den samme I²C -linje, og derefter er det muligt at styre op til 239 segmenter af en LCD.

I denne instruktionsbog bruges denne idé til at styre 29 segmenter af en LCD med 2 GreenPAK -enheder. Enhedens pinout -funktionalitet er opsummeret i tabel 1.

Trin 3: Design aktuelt forbrug

En vigtig bekymring i dette design er det aktuelle forbrug, der skal være så lavt som muligt. GreenPAK -enhedens estimerede hvilestrøm er 0,75 µA for 3,3 V forsyningsdrift og 1,12 µA for 5 V forsyning. Strømforbruget for den interne oscillator er 7,6 µA og 8,68 µA for henholdsvis 3,3 V og 5 V strømforsyning. Det forventes ikke at have en betydelig stigning i det aktuelle forbrug fra skiftetab, fordi dette design fungerer ved en lav urfrekvens. Den anslåede maksimale strømforbrug til dette design er lavere end 15 µA, når den interne oscillator er tændt, og 10 µA, når den interne oscillator er slukket. Den målte strømforbrug i begge situationer er vist i sektionstestresultater.

Trin 4: GreenPAK Device Schematic

GreenPAK Device Schematic
GreenPAK Device Schematic

Projektet designet i GreenPAK -software er vist i figur 4. Denne skematiske beskrivelse vil blive beskrevet ved hjælp af de grundlæggende blokdiagrammer som reference.

Trin 5: I²C -grænseflade

I²C -grænseflade
I²C -grænseflade
I²C -grænseflade
I²C -grænseflade

I²C grænsefladeblok bruges som hovedbetjeningsblok for enhedens betjeningskontrol. En tæt oversigt over blokforbindelserne og de konfigurerede egenskaber er vist i figur 5.

Denne blok er forbundet til PIN 8 og PIN 9, det vil sige henholdsvis I²C SCL og SDA pins. Inde i enheden tilbyder I²C -blokken 8 virtuelle indgange. Den oprindelige værdi for hver virtuel input vises i egenskabsvinduet (se figur 5). Virtuelle input fra OUT0 til OUT6 bruges som segmentkontrollinjer. Disse kontrollinjer svarer til segmentoutput 1 til segmentoutput 7 og er forbundet til segmentoutputdriveren. Virtual Input OUT7 bruges som linjestyring i bagplanets kildevælger med netnavn BCKP_SOURCE. Dette net vil blive brugt af andre blokke i designet. I²C -kontrolkoden er konfigureret med en anden værdi for hver IC i projektet.

8 flere interne segmentstyringslinjer er tilgængelige i Asynchronous State Machine (ASM) output, som vist i figur 6 ovenfor. Segmentudgangslinje 8 (SEG_OUT_8 i egenskabsvindue) til segmentudgangslinje 15 (SEG_OUT_15) styres af ASM -output på tilstand 0. Der er ingen tilstandsovergang i ASM -blok, den er altid i tilstand 0. ASM -output er forbundet til segmentoutputdrivere.

Segmentoutputdriverne genererer enhedens udgangssignal.

Trin 6: Output Segment Driver

Outputsegmentdriveren er i det væsentlige en opslagstabel (LUT) konfigureret som en XOR -logikport. For hvert udgangssegment skal det være en XOR -port, der er forbundet til segmentstyrelinjen og til bagplanuret (BCKP_CLOCK). XOR-porten er ansvarlig for at generere in-fase og out-of-phase signal til output segment. Når segmentkontrollinjen er på et højt niveau, vil XOR-portudgangen invertere bagplanets urssignal og generere et out-of-phase-signal til segmentstift. Spændingsforskellen mellem LCD -bagplan og LCD -segment vil i dette tilfælde indstille LCD -segmentet som et mørkt segment. Når segmentkontrollinjen er på et lavt niveau, vil XOR-portudgangen følge bagplansurssignalet og derefter generere et in-fase signal til segmentstift. Fordi der ikke påføres spænding mellem LCD -bagplanet og segmentet i dette tilfælde, er segmentet gennemsigtigt for lys.

Trin 7: Intern kilde til kontrol af intern oscillator og bagplan

Intern Oscillator og bagplaneurskildekontrol
Intern Oscillator og bagplaneurskildekontrol

Den interne oscillator bruges, når signalet BCKP_CLOCK fra I²C interface er sat til et højt niveau. Et nærbillede af urkildestyringsdiagrammet er vist i figur 7 ovenfor.

Oscillatoren er konfigureret som 25 kHz RC -frekvens, med den højeste udgangsdeler tilgængelig på oscillator OUT0 (8/64). Hele konfigurationen ses i egenskabsvinduet vist i figur 7. På denne måde vil den interne oscillator generere en urfrekvens på 48 Hz.

Oscillatoren er kun aktiv, når BCKP_SOURCE -signalet er på et højt niveau sammen med POR -signal. Denne kontrol udføres ved at forbinde disse to signaler til NAND-porten på 4-L1 LUT. Udgangen fra NAND tilsluttes derefter indgangen på oscillatorens nedlukningskontrolpind.

Signal BCKP_SOURCE styrer MUX bygget med 3-L10 LUT. Når BCKP_SOURCE -signalet er på et lavt niveau, kommer bagplanets urkilde fra PIN2. Når dette signal er på et højt niveau, kommer bagplanets urkilde fra den interne oscillator.

Trin 8: Bagplaneuroutput eller Segment 15 Output Pin Control

Backplane Clock Output eller Segment 15 Output Pin Control
Backplane Clock Output eller Segment 15 Output Pin Control

Pin 20 i dette design har en dobbeltfunktion, som afhænger af den valgte bagplanets urkilde. Betjeningen af denne pin styres med en 4 input LUT, som vist i figur 8. Med en 4-bit LUT er det muligt at knytte betjeningen af XOR-porten til en output MUX. Når BCKP_SOURCE -signalet er på et højt niveau, følger LUT -udgangen det interne oscillatorur. Derefter fungerer pin 20 som en bagplaneurudgang. Når BCKP_SOURCE -signalet er på et lavt niveau, vil LUT -udgangen være XOR -operationen mellem SEG_OUT_15, fra ASM -udgang og bagplansurssignal. 4-bit LUT-konfigurationen til at udføre denne operation er vist i figur 8.

Trin 9: LCD -systemprototype

LCD -system prototype
LCD -system prototype
LCD -system prototype
LCD -system prototype

For at demonstrere brugen af GreenPAK -designløsningen blev en LCD -systemprototype samlet på et brødbræt. For prototypen drives et syv segment, 4-cifret statisk LCD af to GreenPAK-enheder på DIP-kort. Den ene enhed (IC1) bruger den interne oscillator til at drive LCD -bagplan, og den anden enhed (IC2) bruger dette signal som bagplanindgangsreference. Begge IC'er styres over I²C -interface af en STM32F103C8T6 mikrokontroller (MCU) i et minimumsudviklingskort.

Figur 9 viser skematisk af forbindelserne mellem de to GreenPAK IC'er, LCD -displayet og MCU -kortet. I skematikken driver GreenPAK -enheden med U1 (IC1) reference LCD nummer et og to (LCD venstre side). GreenPAK -enheden med U2 (IC2) reference kører LCD ciffer tre og fire plus COL segmentet (LCD højre side). Strømforsyningen til begge enheder kommer fra regulatoren i mikrokontrollerudviklingskortet. To flytbare jumpere mellem strømforsyningen og VDD -benene på hver GreenPAK -enhed tilføjes til strømmåling med et multimeter.

Et billede af den samlede prototype er vist i figur 10.

Trin 10: I²C -kommandoer til LCD -kontrol

I²C -kommandoer til LCD -kontrol
I²C -kommandoer til LCD -kontrol
I²C -kommandoer til LCD -kontrol
I²C -kommandoer til LCD -kontrol
I²C -kommandoer til LCD -kontrol
I²C -kommandoer til LCD -kontrol

De to GreenPAK -enheder på brødbrættet er programmeret med samme design, undtagen ved kontrolbyteværdien. Kontrolbyte for IC1 er 0 (I²C -adresse 0x00), mens I²C -kontrolbyte er 1 (I²C -adresse 0x10). Forbindelserne mellem displaysegmenter og enhedsdrivere er opsummeret i tabellen ovenfor.

Forbindelserne blev valgt på denne måde for at skabe en klarere skematisk og forenkle montering af brødbrætforbindelserne.

Styringen af segmentets output udføres af I²C skrivekommandoer til I²C Virtual Inputs og ASM output registre. Som beskrevet i ansøgningsnotatet AN-1090 Simple I²C IO Controllers med SLG46531V (se Application Note AN-1090 Simple I²C IO Controllers med SLG46531V, Dialog Semiconductor), er I²C skrivekommandoen opbygget som følger:

● Start;

● Kontrolbyte (R/W -bit er 0);

● Ordadresse;

● Data;

● Stop.

Alle I²C skrivekommandoer foretages til Word Address 0xF4 (I²C Virtual Inputs) og 0xD0 (ASM Output for state 0). Kommandoerne til at skrive i IC1 og styre LCD -ciffer 1 og 2 er opsummeret i tabel 3. I kommandosekvensrepræsentationen angiver det åbne beslag “[“betegner startsignalet, og lukkebeslaget “]” Stop -signalet.

De to bytes ovenfor styrer segmenter af LCD -ciffer 1 og ciffer 2 sammen. Her er metoden at bruge en individuel opslagstabel (LUT) i software til hvert ciffer, i betragtning af segmenterne i begge bytes. Byteværdierne fra opslagstabellen skal blandes ved hjælp af en bitvis ELLER operation og derefter sendes til IC. Tabel 4 viser værdien Byte0 og Byte1 for hver numerisk værdi, der skal skrives i hvert displayciffer.

For eksempel for at skrive i ciffer 1 tallet 3, og i ciffer 2 tallet 4, er Byte0 0xBD (0x8D bitvis ELLER med 0xB0) og Byte 1 er 0x33 (0x30 bitvis ELLER med 0x03).

Kommandoen til at skrive i IC2 og styrer ciffer 3 og 4, er beskrevet i tabel 5.

Kontrollogikken for cifrene 3 og 4 er som kontrollen med cifrene 1 og 2. Tabel 6 viser LUT for disse to cifre.

Forskellen i IC2 er COL -segmentet. Dette segment kontrolleres af Byte1. For at opsætte dette segment mørkt, bør der foretages en bitvis ELLER operation mellem Byte1 og værdien 0x40.

Trin 11: I²C -kommandoer til LCD -test

I²C -kommandoer til LCD -test
I²C -kommandoer til LCD -test

Til LCD -test blev der udviklet en firmware på C -sprog til MCU -kortet. Denne firmware sender en række kommandoer til begge IC'er på brødbrættet. Kildekoden til denne firmware er i afsnittet Appendiks. Hele løsningen blev udviklet ved hjælp af Atollic TrueStudio til STM32 9.0.1 IDE.

Kommandosekvensen og de respektive værdier vist på displayet er opsummeret i tabel 7 ovenfor.

Trin 12: Testresultater

Test resultater
Test resultater
Test resultater
Test resultater

Prototypetesten består i at verificere displayværdierne efter en MCU -kommando og måle den aktuelle synk af hver IC under drift.

Billeder af LCD'et for hver kommandoværdi er vist i tabel 8 ovenfor.

Strømvasken for hver enhed blev målt med et multimeter i sit laveste strømområde på 200 µA. Billeder af den målte strøm for hver enhed under opstart og normal drift er vist i tabel 9 ovenfor.

Konklusion og resultater Diskussion

Designet af en lav effekt statisk LCD -driver med GreenPAK -enhed blev præsenteret. Dette design viser klart en af de største egenskaber ved GreenPAK -enhederne: deres lave hvilestrøm. Fordi GreenPAK-enheder er en hardware-baseret løsning, er det muligt at arbejde med en lavfrekvent drift, i dette tilfælde 48 Hz. En MCU -baseret løsning kræver en højere driftsfrekvens, selv i periodisk korte perioder, og vil derefter trække mere strøm. Og når man sammenligner GreenPAK -enheden med en CPLD (Complex Programmable Logic Device), er det klart at se, at en CPLD normalt har en hvilestrøm højere end 20 µA.

Det er interessant at bemærke, at dette design let kan ændres for bedre at passe til kravene i et specifikt projekt. Et godt eksempel er segmentkontrol pinout. De kan let ændres for at forenkle printkortet og softwareudviklingen på samme tid. Dette er en interessant funktion, når enheden sammenlignes med en ASIC (Application Specific Integrated Circuit) på hylden. Normalt er ASIC'er designet til at passe til en bred vifte af applikationer, og en indledende software -rutine bør skrives for korrekt konfiguration af IC før operationen. En konfigurerbar enhed kan være designet til at starte klar til brug efter opstart. På denne måde er det muligt at reducere softwareudviklingstiden til IC -konfiguration.

Kildekode til applikationen findes her i tillæg A.

Anbefalede: