Inhoudsopgave:

DIY 4xN LED-stuurprogramma - Ajarnpa
DIY 4xN LED-stuurprogramma - Ajarnpa

Video: DIY 4xN LED-stuurprogramma - Ajarnpa

Video: DIY 4xN LED-stuurprogramma - Ajarnpa
Video: PXN V9 Connection Tutorial with PS4 2024, December
Anonim
DIY 4xN LED-stuurprogramma
DIY 4xN LED-stuurprogramma

LED-displays worden veel gebruikt in systemen variërend van digitale klokken, tellers, timers, elektronische meters, eenvoudige rekenmachines en andere elektronische apparaten die numerieke informatie kunnen weergeven. Afbeelding 1 toont een voorbeeld van een 7-segments LED-display dat decimale cijfers en tekens kan weergeven. Omdat elk segment op het LED-display afzonderlijk kan worden bediend, kan deze besturing veel signalen vereisen, vooral voor meerdere cijfers. Deze Instructable beschrijft een op GreenPAK™ gebaseerde implementatie om meerdere cijfers aan te sturen met een 2-draads I2C-interface van een MCU.

Hieronder hebben we de stappen beschreven die nodig zijn om te begrijpen hoe de GreenPAK-chip is geprogrammeerd om de 4xN LED-driver te maken. Als u echter alleen het resultaat van het programmeren wilt hebben, download dan GreenPAK-software om het reeds voltooide GreenPAK-ontwerpbestand te bekijken. Sluit de GreenPAK Development Kit aan op uw computer en klik op programma om de aangepaste IC voor de 4xN LED-driver te maken.

Stap 1: Achtergrond

Achtergrond
Achtergrond
Achtergrond
Achtergrond
Achtergrond
Achtergrond

De LED-displays zijn onderverdeeld in twee categorieën: Common Anode en Common Cathode. In een gemeenschappelijke anodeconfiguratie zijn de anode-aansluitingen intern kortgesloten, zoals weergegeven in figuur 2. Om de LED in te schakelen, wordt de gemeenschappelijke anode-aansluiting verbonden met de systeemvoedingsspanning VDD en zijn de kathode-aansluitingen verbonden met aarde via stroombeperkende weerstanden.

Een gemeenschappelijke kathodeconfiguratie is vergelijkbaar met een gemeenschappelijke anodeconfiguratie, behalve dat de kathode-aansluitingen aan elkaar zijn kortgesloten zoals weergegeven in figuur 3. Om het LED-display van de gemeenschappelijke kathode AAN te zetten, zijn de gemeenschappelijke kathode-aansluitingen verbonden met aarde en zijn de anode-aansluitingen verbonden met het systeem voedingsspanning VDD via stroombegrenzende weerstanden.

Een N-cijferige multiplex LED-display kan worden verkregen door N individuele 7-segment LED-displays aaneen te schakelen. Figuur 4 toont een voorbeeld van een 4x7 LED-display verkregen door het combineren van 4 individuele 7segment-displays in een gemeenschappelijke anodeconfiguratie.

Zoals te zien is in figuur 4, heeft elk cijfer een gemeenschappelijke anodepin / backplane die kan worden gebruikt om elk cijfer afzonderlijk in te schakelen. De kathodepinnen voor elk segment (A, B, …G, DP) moeten extern worden kortgesloten. Om dit 4x7 LED-display te configureren, heeft de gebruiker slechts 12 pinnen nodig (4-gemeenschappelijke pinnen voor elk cijfer en 8-segments-pinnen) om alle 32 segmenten van het gemultiplexte 4x7-display te bedienen.

Het GreenPAK-ontwerp, hieronder gedetailleerd, laat zien hoe de besturingssignalen voor dit LED-display kunnen worden gegenereerd. Dit ontwerp kan worden uitgebreid om tot 4 cijfers en 16 segmenten te bedienen. Zie de sectie Referenties voor een link naar de GreenPAK-ontwerpbestanden die beschikbaar zijn op de website van Dialog.

Stap 2: GreenPAK-ontwerp

GreenPAK-ontwerp
GreenPAK-ontwerp

Het GreenPAK-ontwerp dat wordt weergegeven in afbeelding 5 omvat zowel het genereren van segment- als cijfersignalen in één ontwerp. De segmentsignalen worden gegenereerd vanuit de ASM en de cijferselectiesignalen worden gecreëerd vanuit de DFF-keten. De segmentsignalen zijn verbonden met de segmentpennen via stroombeperkende weerstanden, maar de cijferselectiesignalen zijn verbonden met de gemeenschappelijke pennen van het display.

Stap 3: Digit Signaal Generatie

Digit Signaal Generatie
Digit Signaal Generatie

Zoals beschreven in sectie 4, heeft elk cijfer op een multiplex display een individuele backplane. In GreenPAK worden de signalen voor elk cijfer gegenereerd door de interne, door een oscillator aangedreven DFF-keten.

Deze signalen sturen de gemeenschappelijke pinnen van het display aan. Afbeelding 6 geeft de cijferselectiesignalen weer.

Kanaal 1 (geel) – Pin 6 (cijfer 1)

Kanaal 2 (Groen) – Pin 3 (Cijfer 2)

Kanaal 3 (Blauw) – Pin 4 (Cijfer 3)

Kanaal 4 (Magenta) – Pin 5 (Cijfer 4)

Stap 4: Segmentsignaal genereren

De GreenPAK ASM genereert verschillende patronen om de segmentsignalen aan te sturen. Een teller van 7,5 ms doorloopt de ASM-statussen. Omdat de ASM niveaugevoelig is, maakt dit ontwerp gebruik van een besturingssysteem dat de mogelijkheid vermijdt om snel door meerdere statussen te schakelen tijdens de hoge periode van de 7,5 ms-klok. Deze specifieke implementatie is gebaseerd op opeenvolgende ASM-toestanden die worden bestuurd door omgekeerde klokpolariteiten. Zowel de segment- als de cijfersignalen worden gegenereerd door dezelfde interne oscillator van 25 kHz.

Stap 5: ASM-configuratie

ASM-configuratie
ASM-configuratie
ASM-configuratie
ASM-configuratie
ASM-configuratie
ASM-configuratie

Figuur 7 beschrijft het toestandsdiagram van de ASM. Toestand 0 schakelt automatisch over naar Toestand 1. Een soortgelijke omschakeling vindt plaats van Toestand 2 naar Toestand 3, Toestand 4 naar Toestand 5 en Toestand 6 naar Toestand 7. Gegevens van Toestand 0, Toestand 2, Toestand 4 en Toestand 6 worden onmiddellijk vergrendeld met DFF 1, DFF 2 en DFF 7 zoals weergegeven in figuur 5, voordat de ASM overgaat naar de volgende status. Deze DFF's vergrendelen de gegevens van de even toestanden van de ASM, waardoor de gebruiker een uitgebreid 4x11/4xN-scherm (N tot 16 segmenten) kan besturen met behulp van GreenPAK's ASM.

Elk cijfer op een 4xN-display wordt bestuurd door twee statussen van de ASM. Status 0/1, State 2/3, State 4/5 en State 6/7 besturen respectievelijk Digit 1, Digit 2, Digit 3 en Digit 4. Tabel 1 beschrijft de ASM-statussen samen met hun respectievelijke RAM-adressen om elk te besturen cijfer.

Elke toestand van het ASM RAM slaat één byte aan gegevens op. Dus om een 4x7-display te configureren, worden drie segmenten van cijfer 1 bestuurd door staat 0 van de ASM en vijf segmenten van cijfer 1 worden bestuurd door staat 1 van de ASM. Als resultaat worden alle segmenten van elk cijfer op het LED-display verkregen door de segmenten uit hun overeenkomstige twee toestanden samen te voegen. Tabel 2 beschrijft de locatie van elk van de segmenten van cijfer 1 in het ASM RAM. Op een vergelijkbare manier bevatten ASM's State 2 tot en met State 7 respectievelijk de segmentlocaties van Cijfer 2 tot Cijfer 4.

Zoals blijkt uit tabel 2, zijn de OUT 3 tot OUT 7 segmenten van State 0 en OUT 0 tot OUT 2 segmenten van State 1 ongebruikt. Het GreenPAK-ontwerp in Afbeelding 5 kan een 4x11-display besturen door de OUT 0 tot OUT 2-segmenten van alle oneven toestanden van de ASM te configureren. Dit ontwerp kan verder worden uitgebreid om een uitgebreid 4xN (N tot 16 segmenten) display te besturen door meer DFF-logische cellen en GPIO's te gebruiken.

Stap 6: Testen

Testen
Testen
Testen
Testen
Testen
Testen

Afbeelding 8 toont het testschema dat wordt gebruikt om decimale getallen weer te geven op het 4x7-segment LED-display. Een Arduino Uno wordt gebruikt voor I2C-communicatie met de ASM RAM-registers van de GreenPAK. Raadpleeg [6] voor meer informatie over I2C-communicatie. De gemeenschappelijke anodepinnen van het display zijn verbonden met de cijferselectie-GPIO's. De segmentpennen zijn via stroombeperkende weerstanden met de ASM verbonden. De grootte van de stroombeperkende weerstand is omgekeerd evenredig met de helderheid van het LED-display. De gebruiker kan de sterkte van de stroombeperkende weerstanden selecteren, afhankelijk van de maximale gemiddelde stroom van GreenPAK GPIO's en de maximale gelijkstroom van het LED-display.

Tabel 3 beschrijft de decimale getallen 0 tot en met 9 in zowel binaire als hexadecimale indeling die op het 4x7-display moeten worden weergegeven. 0 geeft aan dat een segment AAN is en 1 geeft aan dat het segment UIT is. Zoals weergegeven in Tabel 3 zijn er twee bytes nodig om een getal op het display weer te geven. Door tabel 1, tabel 2 en tabel 3 te correleren, kan de gebruiker de RAM-registers van de ASM wijzigen om verschillende nummers op het scherm weer te geven.

Tabel 4 beschrijft de I2C-opdrachtstructuur voor cijfer 1 op het 4x7 LED-display. De I2C-opdrachten vereisen een startbit, stuurbyte, woordadres, databyte en stopbit. Soortgelijke I2C-opdrachten kunnen worden geschreven voor cijfer 2, cijfer 3 en cijfer 4.

Om bijvoorbeeld 1234 op het 4x7 LED-display te schrijven, worden de volgende I2C-opdrachten geschreven.

[0x50 0xD0 0xF9 0xFF]

[0x50 0xD2 0xFC 0xA7]

[0x50 0xD4 0xF8 0xB7]

[0x50 0xD6 0xF9 0x9F]

Door herhaaldelijk alle acht bytes van de ASM te schrijven, kan de gebruiker het weergegeven patroon wijzigen. Als voorbeeld is een tellercode opgenomen in het ZIP-bestand van de aanvraagnota op de website van Dialog.

conclusies

De GreenPAK-oplossing die in deze Instructable wordt beschreven, stelt de gebruiker in staat om de kosten, het aantal componenten, de bordruimte en het stroomverbruik te minimaliseren.

Meestal hebben MCU's een beperkt aantal GPIO's, dus door de LED-aansturende GPIO's over te brengen naar een kleine en goedkope GreenPAK IC, kan de gebruiker IO's opslaan voor extra functionaliteiten.

Bovendien zijn GreenPAK IC's eenvoudig te testen. Het ASM RAM kan worden gewijzigd met een klik op een paar knoppen in de GreenPAK Designer Software, die flexibele ontwerpaanpassingen aangeeft. Door de ASM te configureren zoals beschreven in deze Instructable, kan de gebruiker vier N-segment LED-displays bedienen met elk maximaal 16 segmenten.

Aanbevolen: