Inhaltsverzeichnis:

HD44780 LCD-zu-I2C-Adapterplatine für den Buspiraten - Gunook
HD44780 LCD-zu-I2C-Adapterplatine für den Buspiraten - Gunook

Video: HD44780 LCD-zu-I2C-Adapterplatine für den Buspiraten - Gunook

Video: HD44780 LCD-zu-I2C-Adapterplatine für den Buspiraten - Gunook
Video: Raspberry Pi Pico Introduction using LCD 1602 (16x2) with HD44780 I2C Adapter in Thonny MicroPython 2024, November
Anonim
HD44780 LCD-zu-I2C-Adapterplatine für den Buspiraten
HD44780 LCD-zu-I2C-Adapterplatine für den Buspiraten
HD44780 LCD-zu-I2C-Adapterplatine für den Buspiraten
HD44780 LCD-zu-I2C-Adapterplatine für den Buspiraten

Günstige LCDs mit Zeichen auf Basis des HD44780-Chipsatzes gibt es in verschiedenen Größen: 2x16, 4x20 usw. Diese Displays haben zwei Standardschnittstellenmodi, 4bit und 8bit parallel. 8bit benötigt insgesamt 11 Datenleitungen, 4bit benötigt 7 (6 für nur schreiben). Einige LCDs unterstützen einen zusätzlichen seriellen Datenmodus, wie das VFD, das ich bei Hack a Day behandelt habe. HD44780 LCDs sind im Allgemeinen 5-Volt-Teile mit einer separaten Stromversorgung für die Hintergrundbeleuchtung. Der Bus Pirate hat nur fünf 5-Volt-tolerante I/O-Pins, daher haben wir eine kleine Adapterplatine mit genügend Pins zur Steuerung des LCD hergestellt. Der Bus Pirate steuert die Adapterplatine über seine LCD-Schnittstellenbibliothek. Lesen Sie weiter über die Bus Pirate HD44780-Charakter-LCD-Adapterplatine und die Schnittstellenbibliothek. Ich kann PCBs, Kits oder zusammengebaute Kits von Seeed Studio für etwa 15 US-Dollar produzieren lassen, einschließlich weltweitem Versand, mehr hier Blogs.

Schritt 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

ÜbersichtIn diesem Artikel skizzieren wir eine I2C-Adapterplatine für HD44780-basierte LCDs. Wir demonstrieren es mit einer universellen seriellen Schnittstelle von Bus Pirate. Der Quellcode von Bus Pirate für die I2C-basierte HD44780-Schnittstellenbibliothek ist gemeinfrei und kann daher kostenlos an Ihre eigenen Projekte angepasst werden. HardwareSchaltungsbild in voller Größe [PNG]. Schaltung und PCB wurden mit der kostenlosen Version von Cadsoft Eagle entwickelt. Die Designdateien können vom Bus Pirate SVN heruntergeladen werden. Vergewissern Sie sich vor der Verwendung der Adapterplatine, dass das Datenblatt für Ihr LCD mit der Adapter-Pinbelegung verglichen wird. Nicht alle LCDs sind gleich. PCF8574 E/A-Expander-IC Dies ist ein einfacher 8 E/A-Expander-Chip, der über die Zweidraht-I2C-Schnittstelle gesteuert wird. Die I2C-Schnittstelle ist über den Header JP1 zugänglich. Der PCF8574 arbeitet von 2,5 bis 5 Volt. Die I / O-Pins arbeiten mit der Versorgungsspannung, wenn wir sie also mit 5 Volt speisen, verbindet sie das LCD mit 5 Volt. C1 (0.1uF) entkoppelt den IC von Schwankungen in der Stromversorgung. Ein Pin des PCF8574 steuert eine 3mm LED (LED1) über den Strombegrenzungswiderstand R2 (1000 Ohm). Die LED leuchtet, um eine erfolgreiche Kommunikation zwischen dem Bus Pirate und dem Adapter anzuzeigen. Der PCF8574 kann nicht genug Strom liefern, um die LED mit Strom zu versorgen, also versorgen wir die LED über die 5-Volt-Versorgung und schalten die Masse um. LCD Die Adapterplatine kommuniziert mit einem auf HD44780 basierenden Zeichen-LCD im 4bit parallelen Schnittstellenmodus. Die 4-Bit-Schnittstellenpins – RS, RW, EN und D4-D7 – sind mit sieben der PCF8574-I/O-Pins verbunden. Wir verwenden gerne 0,1" Stiftleisten, um den Adapter an ein LCD anzuschließen. Normalerweise können Sie das LCD gegen die Stifte lehnen, um ausreichend Kontakt für einen schnellen Test herzustellen. Der Trimmerwiderstand R1 (10K) liefert eine Kontrasteinstellungsspannung an Pin 3 von den LCD-Header. Wir haben die Hintergrundbeleuchtungspins nicht angeschlossen, weil es so viele verschiedene Hintergrundbeleuchtungsarten gibt. Die Stromversorgung einer LED-Hintergrundbeleuchtung kann einen Bildschirm beschädigen, der eine negative Spannungsversorgung erfordert. Stromversorgung Die meisten LCDs benötigen 5 Volt, bieten eine externe Stromversorgung durch Header JP2. Wir haben einen zweiten Stromversorgungspin bereitgestellt, um die Pull-up-Widerstände des Bus Pirate anzuschließen. PCB Die Schaltung und das PCB wurden mit der kostenlosen Version von Cadsoft Eagle entworfen. Die Designdateien können vom Bus Pirate SVN heruntergeladen werden ein einseitiges Design mit durchgehendem Loch und einem einzigen Überbrückungsdraht (in Rot dargestellt). Wir können PCBs, Kits oder zusammengebaute Kits von Seeed Studio für ca. das alles grobes Loch) C10.1uF/10volts+R110000 (10K) Ohm Singleturn Trimmer/Potentiometer, 6mmR21000 (1K) Ohm Widerstand, 1/4 WattLED13mm (T1) LED, rotJP1+JP20.1" Stiftleiste, 5 PinsIC1PCF8574N, 8bit I2C I / O-Expander DIP16ICS116-Pin-DIP-Buchse für IC1I konnte einige Formatierungselemente und HTML-Tabellen nicht in ein Instructable aufnehmen, Sie können den Originalbeitrag im Dangerous Prototypes-Blog sehen.

Schritt 2: Verbindungen

Anschlüsse
Anschlüsse

Gerät: HD44780 Zeichen LCD. Bus: 4bit parallel, mit PCF8574 I2C Adapterplatine. Strombedarf: 5Volt. Referenzen:Beispieldatenblatt [PDF], HD44780 Befehlsreferenz, HD44780 LCD uber-site. Vollständiges Bus Pirate Sitzungsprotokoll für diese Demonstration. Wir hat den Adapter für die LCD-Bibliothek der universellen seriellen Schnittstelle Bus Pirate entwickelt, aber er funktioniert mit allem, was das I2C-Protokoll spricht. Sehen Sie sich den Bus Pirate-Quellcode für ein Beispiel einer I2C->HD44780-Implementierung an. Schließen Sie den Bus Pirate wie in der Tabelle gezeigt an die Adapterplatine an. Die Tabelle zeigt auch die Rohverbindungen zum PCF8574-IC, wenn Sie ohne Adapterplatine arbeiten. Schließen Sie den Adapter an eine für das LCD ausreichende Stromversorgung an, im Allgemeinen 5 Volt. Die I2C-Verbindung zwischen dem Adapter und dem Bus Pirate erfordert Pull-Up-Widerstände zwischen 2 und 10K. Hier finden Sie weitere Informationen zur Mischspannungsschnittstelle mit Pull-Ups und den On-Board-Pull-Up-Widerständen von Bus Pirate. Ich konnte einige Formatierungselemente und HTML-Tabellen nicht in ein Instructable aufnehmen, Sie können den Originalbeitrag im Dangerous Prototypes-Blog sehen.

Schritt 3: Schritt 1. Bibliothek einrichten

Schritt 1. Bibliothek einrichten
Schritt 1. Bibliothek einrichten

Schnittstellen Wir haben das Adapterdesign und den Anschluss an den Bus Pirate behandelt, jetzt ist es endlich an der Zeit, etwas auf das LCD zu schreiben. HiZ>m <<11 <<1 <<W <

p <<2 <<v <<<Spannungsbericht abrufen SPANNUNGSMONITOR: 5V: 4,9 | 3,3V: 3,3 | VPULLUP: 5.0 <<Drücken Sie 'm' im Bus Pirate Terminal und wählen Sie die LCD-Bibliothek. Es unterstützt derzeit nur HD44780-Zeichen-LCDs mit dem in der ersten Hälfte dieses Artikels beschriebenen PFC8574-Adapter (Option 1). Aktivieren Sie die Netzteile (großes 'W') und die Pullup-Widerstände (Menü 'p'). Überprüfen Sie den Spannungsmonitor (Menü 'v') und stellen Sie sicher, dass die Pullup-Spannung (Vpullup) etwa 5 Volt beträgt.

Schritt 4: Schritt 2. Zurücksetzen und Initialisieren

Schritt 2. Zurücksetzen und Initialisieren
Schritt 2. Zurücksetzen und Initialisieren
Schritt 2. Zurücksetzen und Initialisieren
Schritt 2. Zurücksetzen und Initialisieren

Diese Tabelle beschreibt die Einzelbyte-Befehle, die ein HD44780-LCD steuern. Hier ist eine detaillierte Referenz. Diese Befehle können über die Bus Pirate-Befehlszeile eingegeben werden, aber wir haben für die meisten Makros erstellt, um Zeit zu sparen. LCD>(0) <<<Makromenü anzeigen0. Makromenü <<<dieses Menü1. LCD Reset << <LCD zurücksetzen2. LCD initialisieren <<<LCD zurücksetzen und initialisieren3. LCD löschen <<<LCD löschen, Cursor auf 04 zurücksetzen. Cursorposition ex:(4:0) <<<Cursorposition setzen5. Testtext schreiben <<Makro 0 zeigt das Makromenü für jeden Bus Pirate-Modus an. LCD>(2) <<<Initialisierung des LCD-Makros Anzeigezeilen:1. 1 <<<einzeilige Anzeige2. Mehrere <<2 ' RESET <<< Makro 2 enthält eine Reset-SequenzINIT <<Das Initialisierungs-LCD-Makro (2) konfiguriert den Bildschirm für den 4-Bit-Schnittstellenmodus, aktiviert die Cursoranzeige und stellt einige andere hilfreiche Optionen ein. Konfigurieren Sie die Anzahl der Anzeigezeilen, wählen Sie 1 für eine einzeilige Anzeige oder 2 für alle anderen Anzeigen. Nach der Initialisierung sollte der Bildschirm mit einem Cursor in der Ecke klar sein. Wenn es nicht funktioniert, überprüfen Sie die I2C-Verbindung, die Pull-Up-Widerstände und die Stromversorgung und versuchen Sie es erneut. HD44780 LCDs müssen mit einer speziellen Signalsequenz zurückgesetzt werden, bevor sie für den 4-Bit- oder 8-Bit-Schnittstellenmodus initialisiert werden können. Makro 1 erstellt diese Sequenz. Makro 2 enthält die Reset-Sequenz, sodass Sie Makro 1 nicht vor Makro 2 verwenden müssen.

Schritt 5: Schritt 3. Testzeichen schreiben

Schritt 3. Testzeichen schreiben
Schritt 3. Testzeichen schreiben
Schritt 3. Testzeichen schreiben
Schritt 3. Testzeichen schreiben

LCD>(6:80) <<Das Makro zum Schreiben von Zahlen füllt das LCD mit Testnummern zwischen 0 und 9. Die Zahl nach dem Doppelpunkt sagt dem Buspiraten, wie viele Testnummern zu schreiben sind. Wir verwenden ein 4x20LCD, also schreiben wir 80 Zahlen, um es zu füllen. Beachten Sie, dass der Cursor an Position 0 endet, unter der ersten '0'. LCD>(7:80) <<Das Makro zum Schreiben von Zeichen füllt das LCD mit ASCII-Zeichen, geben Sie die Menge nach dem Doppelpunkt ein. Beachten Sie, dass die erste Linie auf der dritten, der dritten auf der zweiten und der zweiten auf der letzten fortgesetzt wird. Die Zeichen sind nicht fortlaufend, da Zeichen-LCDs nicht von einer Zeile zur nächsten umbrechen. Wir werden später noch ein wenig darüber sprechen.

Schritt 6: Schritt 4. LCD löschen

Schritt 4. LCD löschen
Schritt 4. LCD löschen

LCD>(3) <<Das Clear LCD-Makro sendet den HD44780-Befehl, der den Bildschirm löscht und den Cursor an die erste Position zurücksetzt. Sie können jede dieser Operationen auch ohne die Makros ausführen, siehe die Befehlstabelle am Anfang dieses Abschnitts. Geben Sie '[0b1' in den Bus Pirate ein, um die Schnittstelle in den Befehlsmodus ([) zu setzen und den HD44780-Befehl zum Löschen des Bildschirms (0b00000001) ohne Makro zu senden.]

Schritt 7: Schritt 5. Text eingeben

Schritt 5. Text eingeben
Schritt 5. Text eingeben
Schritt 5. Text eingeben
Schritt 5. Text eingeben

LCD>(8) <<<Benutzertext einfügenGeben Sie den Text ein, der an der Cursorposition eingefügt werden soll. HD44780 LCD-Demo <<Nach dem Löschen der LCD in Schritt 4 wird der Cursor auf den ersten Block positioniert. Wir könnten es auch mit dem Makro (4:0) einstellen, das den Cursor zum ersten Zeichen bewegt. Das Makro zum Einfügen von Text am Cursor fordert zur Texteingabe auf und kopiert ihn dann auf das LCD, wenn Sie die Eingabetaste drücken:0x40) <&lt

LCD>(8) <<<Text einfügenGeben Sie den Text ein, der an der Cursorposition eingefügt werden soll. Bus Pirate v2go <<Das Schreiben in die zweite Zeile ist etwas komplizierter, es beginnt tatsächlich bei Zeichen 64 auf einem 4x20-LCD. Wenn Sie ab dem Ende von Zeile 1 (Zeichen 20) weiterschreiben, landen Sie am Anfang von Zeile drei! Diese Seite enthält eine schöne Sammlung von Speicherkarten für die meisten LCD-Zeichengrößen. Zuerst positionieren wir den Cursor in der zweiten Zeile (4:0x40). Als nächstes greift das Makro 'Text einfügen' unsere Eingabe auf und kopiert sie in das LCD. LCD>(4:0x14)(8)(4:0x54)(8) <<<Mehrfache MakrosyntaxGeben Sie Text ein, der an der Cursorposition eingefügt werden soll. Firmware v2.0+ <<<wir haben dies eingegebenGeben Sie Text ein, der an der Cursorposition eingefügt werden soll. DangerousPrototypes <<Der Bus Pirat akzeptiert mehrere Makros in derselben Zeile, sodass der gesamte Bildschirm auf einmal geschrieben werden kann. Wir haben die letzten beiden Zeilen mit einer einzigen Syntaxzeile geschrieben. Wir könnten '(3)(4:0)(8)(4:0x40)(8)(4:0x14)(8)(4:0x54) verwenden. (8)', um das LCD zu löschen und alle vier Zeilen mit einem einzigen Syntaxeintrag zu schreiben.

Schritt 8: Schritt 6. Ablesen vom LCD

Schritt 6. Ablesen vom LCD
Schritt 6. Ablesen vom LCD

Der Bus Pirate und die LCD-Adapterplatine können vom LCD lesen. Wir lesen den Text, den wir auf den Bildschirm geschrieben haben (DDRAM), aber Sie können auch Einstellungen und benutzerdefinierten Zeichenspeicher (CGRAM) lesen, indem Sie die richtige Adresse einstellen. LCD>[0b10000000 '''<<<set the read pointer'' ']HD44780 RS LOW, COMMAND MODE <<< Registerauswahlpin lowCMD WRITE: 0x80 <<Zuerst weisen wir den Buspiraten an, Daten an das LCD-Befehlsregister ([) zu senden. Als nächstes setzen wir mit dem Befehl set DDRAM address (0b1xxxxxxx) den Lesezeiger auf den Anfang des DDRAM (xxxxxxx=0000000).]LCD>]rrrrrrr <<<Datenspeicher lesenHD44780 RS HIGH, DATA MODE <<<register select Pin highREAD: 0x48 <<< 'H'READ: 0x44 <<< 'D'READ: 0x34 <<< '4'READ: 0x34 <<< '4'READ: 0x37 <<< '7'READ: 0x38 < << '8'READ: 0x30 <<< '0'LCD>Befehlen Sie schließlich dem Buspiraten, aus dem Datenspeicher zu lesen (]) und dann einige Bytes zu lesen (rrrrrrr). Wir haben "HD44780", den Text, den wir in Schritt 5 auf den Bildschirm geschrieben haben. Sie sollten auch die Tastenkombination r:7 verwenden können, um sieben Bytes zu lesen, aber es funktioniert nicht in der aktuellen Firmware - wir werden dies vorher beheben die nächste Ausgabe.

Schritt 9: Mehr tun

Mehr tun
Mehr tun

Geben Sie eine allgemeine Beschreibung des StepThe HD44780 Zeichen LCD-Adapter ist ein praktisches Zubehör für den Bus Pirate. Es kann für einen schnellen Test oder eine fortschrittlichere Logikentwicklung verwendet werden. Zusätzlich zu LCDs können die acht 2,5-Volt-5-Volt-I/O-Pins für andere Buspiraten-Anwendungen mit hoher Pinanzahl nützlich sein. Wir können PCBs, Kits, oder zusammengestellte Kits, die von Seeed Studio für etwa 15 US-Dollar produziert wurden, einschließlich weltweitem Versand, mehr hier. Ich konnte einige Formatierungselemente und HTML-Tabellen nicht in ein Instructable aufnehmen, Sie können den Originalbeitrag im Dangerous Prototypes-Blog sehen.

Empfohlen: