Inhaltsverzeichnis:

DIY 4xN LED-Treiber - Gunook
DIY 4xN LED-Treiber - Gunook

Video: DIY 4xN LED-Treiber - Gunook

Video: DIY 4xN LED-Treiber - Gunook
Video: 30W RGB LED with 3x 1W Driver Module - Catching Fire 2024, Juli
Anonim
DIY 4xN LED-Treiber
DIY 4xN LED-Treiber

LED-Anzeigen werden häufig in Systemen verwendet, die von Digitaluhren, Zählern, Zeitgebern, elektronischen Zählern, einfachen Taschenrechnern und anderen elektronischen Geräten reichen, die numerische Informationen anzeigen können. Abbildung 1 zeigt ein Beispiel für eine 7-Segment-LED-Anzeige, die Dezimalzahlen und Zeichen anzeigen kann. Da jedes Segment der LED-Anzeige einzeln angesteuert werden kann, kann diese Ansteuerung viele Signale erfordern, insbesondere bei mehreren Ziffern. Dieses Instructable beschreibt eine GreenPAK™-basierte Implementierung zum Ansteuern mehrerer Ziffern mit einer 2-Draht-I2C-Schnittstelle von einer MCU.

Im Folgenden haben wir die erforderlichen Schritte beschrieben, um zu verstehen, wie der GreenPAK-Chip programmiert wurde, um den 4xN-LED-Treiber zu erstellen. Wenn Sie jedoch nur das Ergebnis der Programmierung erhalten möchten, laden Sie die GreenPAK-Software herunter, um die bereits fertige GreenPAK-Designdatei anzuzeigen. Schließen Sie das GreenPAK Development Kit an Ihren Computer an und klicken Sie auf Programm, um den benutzerdefinierten IC für den 4xN-LED-Treiber zu erstellen.

Schritt 1: Hintergrund

Hintergrund
Hintergrund
Hintergrund
Hintergrund
Hintergrund
Hintergrund

Die LED-Anzeigen sind in zwei Kategorien unterteilt: Common Anode und Common Cathode. In einer Konfiguration mit gemeinsamer Anode sind die Anodenanschlüsse intern kurzgeschlossen, wie in Abbildung 2 gezeigt. Um die LED einzuschalten, wird der gemeinsame Anodenanschluss mit der Systemversorgungsspannung VDD und die Kathodenanschlüsse über Strombegrenzungswiderstände mit Masse verbunden.

Eine Konfiguration mit gemeinsamer Kathode ähnelt einer Konfiguration mit gemeinsamer Anode, außer dass die Kathodenanschlüsse wie in Abbildung 3 gezeigt kurzgeschlossen sind. Um die LED-Anzeige mit gemeinsamer Kathode einzuschalten, werden die gemeinsamen Kathodenanschlüsse mit Masse und die Anodenanschlüsse mit dem System verbunden Versorgungsspannung VDD durch Strombegrenzungswiderstände.

Eine gemultiplexte N-stellige LED-Anzeige kann durch Verketten von N einzelnen 7-Segment-LED-Anzeigen erhalten werden. Abbildung 4 zeigt ein Beispiel einer 4x7-LED-Anzeige, die durch Kombination von 4 einzelnen 7-Segment-Anzeigen in einer gemeinsamen Anodenkonfiguration erhalten wird.

Wie in Abbildung 4 zu sehen ist, hat jede Ziffer einen gemeinsamen Anodenstift / eine gemeinsame Rückwandplatine, die verwendet werden kann, um jede Ziffer einzeln zu aktivieren. Die Kathodenstifte für jedes Segment (A, B, …G, DP) sollten extern kurzgeschlossen werden. Um dieses 4x7-LED-Display zu konfigurieren, benötigt der Benutzer nur 12 Pins (4-gemeinsame Pins für jede Ziffer und 8-Segment-Pins), um alle 32 Segmente des multiplexierten 4x7-Displays zu steuern.

Das unten beschriebene GreenPAK-Design zeigt, wie die Steuersignale für diese LED-Anzeige erzeugt werden. Dieses Design kann auf bis zu 4 Ziffern und 16 Segmente erweitert werden. Im Abschnitt Referenzen finden Sie einen Link zu den GreenPAK-Designdateien, die auf der Dialog-Website verfügbar sind.

Schritt 2: GreenPAK-Design

GreenPAK-Design
GreenPAK-Design

Das in Abbildung 5 dargestellte GreenPAK-Design umfasst sowohl die Segment- als auch die Ziffernsignalerzeugung in einem Design. Die Segmentsignale werden aus dem ASM und die Ziffernauswahlsignale aus der DFF-Kette erzeugt. Die Segmentsignale sind über Strombegrenzungswiderstände mit den Segmentpins verbunden, aber die Ziffernauswahlsignale sind mit den gemeinsamen Pins des Displays verbunden.

Schritt 3: Generierung von Ziffernsignalen

Generierung von Ziffernsignalen
Generierung von Ziffernsignalen

Wie in Abschnitt 4 beschrieben, hat jede Ziffer eines Multiplex-Displays eine individuelle Backplane. In GreenPAK werden die Signale für jede Ziffer von der internen oszillatorgesteuerten DFF-Kette erzeugt.

Diese Signale steuern die gemeinsamen Pins des Displays. Abbildung 6 zeigt die Ziffernauswahlsignale.

Kanal 1 (Gelb) – Pin 6 (Stelle 1)

Kanal 2 (Grün) – Pin 3 (Ziffer 2)

Kanal 3 (Blau) – Pin 4 (Stelle 3)

Kanal 4 (Magenta) – Pin 5 (Stelle 4)

Schritt 4: Segmentsignalerzeugung

Das GreenPAK ASM generiert unterschiedliche Muster zum Ansteuern der Segmentsignale. Ein 7,5 ms-Zähler durchläuft zyklisch die ASM-Zustände. Da das ASM pegelempfindlich ist, verwendet dieses Design ein Steuersystem, das die Möglichkeit eines schnellen Umschaltens durch mehrere Zustände während der hohen Periode des 7,5-ms-Takts vermeidet. Diese spezielle Implementierung beruht auf aufeinanderfolgenden ASM-Zuständen, die durch invertierte Taktpolaritäten gesteuert werden. Sowohl das Segment- als auch das Ziffernsignal werden von demselben internen 25-kHz-Oszillator erzeugt.

Schritt 5: ASM-Konfiguration

ASM-Konfiguration
ASM-Konfiguration
ASM-Konfiguration
ASM-Konfiguration
ASM-Konfiguration
ASM-Konfiguration

Abbildung 7 beschreibt das Zustandsdiagramm des ASM. Zustand 0 wechselt automatisch zu Zustand 1. Ein ähnlicher Wechsel erfolgt von Zustand 2 zu Zustand 3, Zustand 4 zu Zustand 5 und Zustand 6 zu Zustand 7. Daten von Zustand 0, Zustand 2, Zustand 4 und Zustand 6 werden sofort mit zwischengespeichert DFF 1, DFF 2 und DFF 7, wie in Abbildung 5 gezeigt, bevor das ASM in den nächsten Zustand übergeht. Diese DFFs speichern die Daten aus den geraden Zuständen des ASM, wodurch der Benutzer eine erweiterte 4x11/4xN-Anzeige (N bis zu 16 Segmente) mit dem ASM von GreenPAK steuern kann.

Jede Ziffer auf einem 4xN-Display wird von zwei Zuständen des ASM gesteuert. Zustand 0/1, Zustand 2/3, Zustand 4/5 und Zustand 6/7 steuern jeweils Digit 1, Digit 2, Digit 3 und Digit 4. Tabelle 1 beschreibt die ASM-Zustände zusammen mit ihren jeweiligen RAM-Adressen, um jeden zu steuern Ziffer.

Jeder Zustand des ASM-RAM speichert ein Datenbyte. Um also eine 4x7-Anzeige zu konfigurieren, werden drei Segmente von Digit 1 von State 0 des ASM und fünf Segmente von Digit 1 von State 1 des ASM gesteuert. Als Ergebnis werden alle Segmente jeder Ziffer auf der LED-Anzeige durch Verketten der Segmente aus ihren entsprechenden zwei Zuständen erhalten. Tabelle 2 beschreibt die Position jedes der Segmente von Ziffer 1 im ASM-RAM. In ähnlicher Weise enthalten ASMs Zustand 2 bis Zustand 7 jeweils die Segmentpositionen von Ziffer 2 bis Ziffer 4.

Wie aus Tabelle 2 ersichtlich, werden die Segmente OUT 3 bis OUT 7 des Zustands 0 und die Segmente OUT 0 bis OUT 2 des Zustands 1 nicht verwendet. Das GreenPAK-Design in Abbildung 5 kann eine 4x11-Anzeige steuern, indem die Segmente OUT 0 bis OUT 2 aller ungeraden Zustände des ASM konfiguriert werden. Dieses Design kann weiter erweitert werden, um eine erweiterte 4xN-Anzeige (N bis zu 16 Segmente) zu steuern, indem mehr DFF-Logikzellen und GPIOs verwendet werden.

Schritt 6: Testen

Testen
Testen
Testen
Testen
Testen
Testen

Abbildung 8 zeigt das Testschema zur Anzeige von Dezimalzahlen auf der 4x7-Segment-LED-Anzeige. Ein Arduino Uno wird für die I2C-Kommunikation mit den ASM-RAM-Registern des GreenPAK verwendet. Weitere Informationen zur I2C-Kommunikation finden Sie in [6]. Die gemeinsamen Anodenpins des Displays sind mit den Ziffernauswahl-GPIOs verbunden. Die Segmentpins sind über Strombegrenzungswiderstände mit dem ASM verbunden. Die Dimensionierung des strombegrenzenden Widerstands ist umgekehrt proportional zur Helligkeit der LED-Anzeige. Der Benutzer kann die Stärke der Strombegrenzungswiderstände abhängig vom maximalen Durchschnittsstrom der GreenPAK GPIOs und dem maximalen DC-Strom des LED-Displays auswählen.

Tabelle 3 beschreibt die Dezimalzahlen 0 bis 9 sowohl im Binär- als auch im Hexadezimalformat, die auf dem 4x7-Display angezeigt werden. 0 zeigt an, dass ein Segment EIN ist, und 1 bedeutet, dass das Segment AUS ist. Wie in Tabelle 3 gezeigt, sind zwei Bytes erforderlich, um eine Zahl auf dem Display anzuzeigen. Durch Korrelieren von Tabelle 1, Tabelle 2 und Tabelle 3 kann der Benutzer die RAM-Register des ASM modifizieren, um unterschiedliche Zahlen auf dem Bildschirm anzuzeigen.

Tabelle 4 beschreibt die I2C-Befehlsstruktur für Ziffer 1 auf der 4x7-LED-Anzeige. Die I2C-Befehle erfordern ein Startbit, ein Steuerbyte, eine Wortadresse, ein Datenbyte und ein Stoppbit. Ähnliche I2C-Befehle können für Digit 2, Digit 3 und Digit 4 geschrieben werden.

Um beispielsweise 1234 auf das 4x7 LED-Display zu schreiben, werden die folgenden I2C-Befehle geschrieben.

[0x50 0xD0 0xF9 0xFF]

[0x50 0xD2 0xFC 0xA7]

[0x50 0xD4 0xF8 0xB7]

[0x50 0xD6 0xF9 0x9F]

Durch wiederholtes Schreiben aller acht Bytes des ASM kann der Benutzer das angezeigte Muster modifizieren. Als Beispiel ist ein Zählercode in der ZIP-Datei der Application Note auf der Website von Dialog enthalten.

Schlussfolgerungen

Die in diesem Instructable beschriebene GreenPAK-Lösung ermöglicht es dem Benutzer, Kosten, Komponentenanzahl, Platinenplatz und Stromverbrauch zu minimieren.

In den meisten Fällen haben MCUs eine begrenzte Anzahl von GPIOs, so dass das Auslagern der LED-treibenden GPIOs auf einen kleinen und kostengünstigen GreenPAK-IC dem Benutzer ermöglicht, IOs für zusätzliche Funktionen zu sparen.

Darüber hinaus sind GreenPAK-ICs einfach zu testen. Der ASM-RAM kann mit wenigen Klicks in der GreenPAK Designer Software modifiziert werden, was flexible Designänderungen anzeigt. Durch die Konfiguration des ASM wie in dieser Anleitung beschrieben, kann der Benutzer vier N-Segment-LED-Anzeigen mit jeweils bis zu 16 Segmenten steuern.

Empfohlen: