Sommario:

HD44780 Scheda adattatore da LCD a I2C per Bus Pirate: 9 passaggi
HD44780 Scheda adattatore da LCD a I2C per Bus Pirate: 9 passaggi

Video: HD44780 Scheda adattatore da LCD a I2C per Bus Pirate: 9 passaggi

Video: HD44780 Scheda adattatore da LCD a I2C per Bus Pirate: 9 passaggi
Video: Bus Pirate LCD adapter demo and overview 2024, Dicembre
Anonim
HD44780 Scheda adattatore da LCD a I2C per Bus Pirate
HD44780 Scheda adattatore da LCD a I2C per Bus Pirate
HD44780 Scheda adattatore da LCD a I2C per Bus Pirate
HD44780 Scheda adattatore da LCD a I2C per Bus Pirate

Gli LCD a caratteri economici basati sul chipset HD44780 sono disponibili in una varietà di dimensioni: 2x16, 4x20, ecc. Questi display hanno due modalità di interfaccia standard, 4 bit e 8 bit in parallelo. 8bit richiede un totale di 11 linee dati, 4bit richiede 7 (6 per sola scrittura). Alcuni LCD supportano una modalità dati seriale aggiuntiva, come il VFD che ho trattato in Hack a Day. Gli LCD HD44780 sono generalmente parti a 5 volt con un'alimentazione separata per la retroilluminazione. Il Bus Pirate ha solo cinque pin I/O tolleranti a 5 volt, quindi abbiamo realizzato una piccola scheda adattatore con pin sufficienti per controllare l'LCD. Il Bus Pirate controlla la scheda adattatore attraverso la sua libreria di interfaccia LCD. Continua a leggere sulla scheda adattatore LCD a caratteri Bus Pirate HD44780 e la libreria di interfaccia. Posso avere PCB, kit o kit assemblati prodotti da Seeed Studio per circa $ 15, inclusa la spedizione in tutto il mondo, di più qui. Non ho potuto includere alcuni elementi di formattazione e tabelle HTML in un Instructable, puoi vedere il post originale su Dangerous Prototypes blog.

Passaggio 1: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

PanoramicaIn questo articolo descriviamo una scheda adattatore I2C per LCD basati su HD44780. Lo dimostriamo con un'interfaccia seriale universale Bus Pirate. Il codice sorgente di Bus Pirate per la libreria dell'interfaccia HD44780 basata su I2C è di dominio pubblico, quindi è libero di adattarsi ai tuoi progetti. HardwareImmagine del circuito a grandezza intera [PNG]. Il circuito e il PCB sono stati progettati con la versione gratuita di Cadsoft Eagle. I file di progettazione possono essere scaricati dal Bus Pirate SVN. Prima di utilizzare la scheda dell'adattatore, assicurarsi di verificare la scheda tecnica del proprio LCD rispetto alla piedinatura dell'adattatore. Non tutti gli LCD sono uguali. PCF8574 CI di espansione I/O Si tratta di un semplice chip di espansione a 8 I/O controllato tramite l'interfaccia I2C a due fili. L'interfaccia I2C è accessibile dall'intestazione JP1. Il PCF8574 funziona da 2,5 a 5 volt. I pin I/O funzionano alla tensione di alimentazione, quindi se lo alimentiamo a 5volt si interfaccia con l'LCD a 5volt. C1 (0.1uF) disaccoppia l'IC dalle fluttuazioni dell'alimentazione. Un pin del PCF8574 controlla un LED da 3 mm (LED1) attraverso il resistore di limitazione di corrente R2 (1000 ohm). Il LED si accende per indicare la corretta comunicazione tra il Bus Pirate e l'adattatore. Il PCF8574 non può fornire abbastanza corrente per alimentare il LED, quindi alimentiamo il LED dall'alimentazione a 5 volt e commutiamo la terra. LCD La scheda adattatore comunica con un LCD a caratteri basato su HD44780 in modalità interfaccia parallela a 4 bit. I pin dell'interfaccia a 4 bit - RS, RW, EN e D4-D7 - sono collegati a sette dei pin I/O PCF8574. Ci piace usare un connettore maschio da 0,1" per collegare l'adattatore a un LCD, di solito è possibile appoggiare l'LCD contro i pin per creare un contatto sufficiente per un test rapido. Il resistore di regolazione R1 (10K) fornisce una tensione di regolazione del contrasto al pin 3 di l'intestazione LCD. Non abbiamo collegato i pin di retroilluminazione perché ci sono così tanti stili di retroilluminazione diversi. Fornire l'alimentazione per una retroilluminazione a LED potrebbe danneggiare uno schermo che richiede un'alimentazione di tensione negativa. Alimentazione La maggior parte degli LCD richiede 5 volt, fornire un'alimentazione esterna attraverso header JP2. Abbiamo fornito un secondo pin di alimentazione per collegare i resistori di pull-up del Bus Pirate. PCB Il circuito e il PCB sono stati progettati con la versione gratuita di Cadsoft Eagle. I file di progettazione possono essere scaricati dal Bus Pirate SVN. Il PCB è un design a foro passante su un solo lato con un singolo cavo jumper (mostrato in rosso). Possiamo avere PCB, kit o kit assemblati prodotti da Seeed Studio per circa $ 15, inclusa la spedizione in tutto il mondo, di più qui. tutto quello rough-hole) C10.1uF/10volts+R110000 (10K) ohm trimmer/potenziometro a giro singolo, resistore 6mmR21000 (1K) ohm, 1/4 wattLED13mm (T1) LED, connettore maschio JP1+JP20.1" rosso, 5 pinIC1PCF8574N, 8bit I2C I/O expander DIP16ICS116 pin DIP socket per IC1I non poteva includere alcuni elementi di formattazione e tabelle HTML in un Instructable, puoi vedere il post originale sul blog Dangerous Prototypes.

Passaggio 2: connessioni

Connessioni
Connessioni

Dispositivo: LCD a caratteri HD44780. Bus: parallelo a 4 bit, con scheda adattatore I2C PCF8574. Requisiti di alimentazione: 5 volt. Riferimenti: foglio dati di esempio [PDF], riferimento comando HD44780, sito uber LCD HD44780. Registro della sessione Bus Pirate completo per questa dimostrazione. ha progettato l'adattatore per la libreria LCD dell'interfaccia seriale universale Bus Pirate, ma funzionerà con tutto ciò che può parlare il protocollo I2C. Dai un'occhiata al codice sorgente di Bus Pirate per un esempio di implementazione I2C->HD44780. Collega il Bus Pirate alla scheda adattatore come mostrato nella tabella. La tabella mostra anche le connessioni grezze all'IC PCF8574 se stai seguendo senza una scheda adattatore. Collega l'adattatore a un alimentatore sufficiente per il display LCD, generalmente 5 volt. La connessione I2C tra l'adattatore e il Bus Pirate richiede resistori di pull-up tra 2 e 10K. Ecco maggiori informazioni sull'interfacciamento a tensione mista con i pull-up e i resistori di pull-up a bordo di Bus Pirate. Non ho potuto includere alcuni elementi di formattazione e tabelle HTML in un Instructable, puoi vedere il post originale sul blog Dangerous Prototypes.

Passaggio 3: Passaggio 1. Libreria di configurazione

Passaggio 1. Libreria di configurazione
Passaggio 1. Libreria di configurazione

Interfaccia Abbiamo parlato del design dell'adattatore e di come collegarlo al Bus Pirate, ora è finalmente il momento di scrivere qualcosa sull'LCD. HiZ>m <<11 <<1 <<W <

p <<2 <<v <<<ottenere rapporto tensione TENSIONE MONITOR: 5V: 4.9 | 3.3V: 3.3 | VPULLUP: 5.0 <<Premi 'm' nel terminal Bus Pirate e scegli la libreria LCD. Attualmente supporta solo LCD a caratteri HD44780 utilizzando l'adattatore PFC8574 descritto nella prima metà di questo articolo (opzione 1). Abilitare gli alimentatori (grande 'W') e le resistenze di pull-up (menu 'p'). Controllare il monitor di tensione (menu 'v') e assicurarsi che la tensione di pull-up (Vpullup) sia di circa 5 volt.

Passaggio 4: Passaggio 2. Ripristino e inizializzazione

Passaggio 2. Ripristino e inizializzazione
Passaggio 2. Ripristino e inizializzazione
Passaggio 2. Ripristino e inizializzazione
Passaggio 2. Ripristino e inizializzazione

Questa tabella delinea i comandi a byte singolo che controllano un LCD HD44780, ecco un riferimento dettagliato. Questi comandi possono essere inseriti dalla riga di comando di Bus Pirate, ma abbiamo creato macro per la maggior parte di essi per risparmiare tempo. LCD>(0) <<<mostra menu macro0. Menu macro <<<questo menu1. LCD Reset << <reimposta LCD2. Init LCD <<<reimposta e inizializza LCD3. Clear LCD <<<cancella LCD, riporta il cursore a 04. Posizione cursore ex:(4:0) <<<imposta posizione cursore5. Scrivi testo di prova <<Macro 0 visualizza il menu macro per qualsiasi modalità Bus Pirate. LCD>(2) <<<inizializza macro LCD Righe display:1. 1 <<<display a riga singola2. Multiplo <<2 ' RESET <<<la macro 2 include una sequenza di resetINIT <<La macro LCD di inizializzazione (2) configura lo schermo per la modalità interfaccia a 4 bit, abilita la visualizzazione del cursore e imposta alcune altre opzioni utili. Configura il numero di righe del display, scegli 1 per un display a riga singola o 2 per tutti gli altri display. Dopo l'inizializzazione, lo schermo dovrebbe essere chiaro con un cursore visibile nell'angolo. Se non ha funzionato, controlla la connessione I2C, i resistori di pull-up e l'alimentatore, quindi riprova. Gli LCD HD44780 devono essere ripristinati con una sequenza di segnale speciale prima di poter essere inizializzati per la modalità di interfaccia a 4 bit o 8 bit. La macro 1 crea questa sequenza. La macro 2 include la sequenza di ripristino, quindi non è necessario utilizzare la macro 1 prima della macro 2.

Passaggio 5: Passaggio 3. Scrivi i caratteri di prova

Passaggio 3. Scrivi i caratteri di prova
Passaggio 3. Scrivi i caratteri di prova
Passaggio 3. Scrivi i caratteri di prova
Passaggio 3. Scrivi i caratteri di prova

LCD>(6:80) <<La macro di scrittura dei numeri riempie l'LCD con numeri di test tra 0 e 9. Il numero dopo i due punti dice al Bus Pirate quanti numeri di test scrivere, stiamo usando un 4x20LCD, quindi scriviamo 80 numeri per riempirlo. Notare che il cursore termina alla posizione 0, sotto il primo '0'. LCD>(7:80) <<La macro di scrittura dei caratteri riempie l'LCD con caratteri ASCII, inserisci la quantità dopo i due punti. Notare che la prima linea continua sulla terza, la terza sulla seconda e la seconda sull'ultima. I caratteri non sono continui perché i caratteri LCD non vanno a capo da una riga all'altra. Ne parleremo ancora un po' più tardi.

Passaggio 6: Passaggio 4. Cancella LCD

Passaggio 4. Cancella LCD
Passaggio 4. Cancella LCD

LCD>(3) <<La macro clear LCD invia il comando HD44780 che cancella lo schermo e riporta il cursore nella prima posizione. È possibile eseguire qualsiasi di queste operazioni anche senza le macro, fare riferimento alla tabella dei comandi all'inizio di questa sezione. Immettere '[0b1' nel Bus Pirate per impostare l'interfaccia sulla modalità di comando ([) e inviare il comando di cancellazione dello schermo HD44780 (0b00000001) senza macro.]

Passaggio 7: Passaggio 5. Digitare il testo

Passaggio 5. Digita il testo
Passaggio 5. Digita il testo
Passaggio 5. Digita il testo
Passaggio 5. Digita il testo

LCD>(8) <<<inserisci testo utenteInserisci il testo da inserire nella posizione del cursore. HD44780 Demo LCD <<Dopo aver cancellato l'LCD al punto 4, il cursore viene posizionato sul primo blocco. Potremmo anche impostarlo con la macro (4:0), che sposta il cursore sul primo carattere. La macro di inserimento del testo nel cursore richiede l'inserimento del testo, quindi lo copia sul display LCD quando si preme invio. LCD>(4:0x40) <&lt

LCD>(8) <<<inserisci testoInserisci il testo da inserire nella posizione del cursore. Bus Pirate v2go <<Scrivere sulla seconda riga è un po' più complicato, in realtà inizia dal carattere 64 su un LCD 4x20. Se continui a scrivere dalla fine della riga 1 (carattere 20) finirai all'inizio della riga tre! Questa pagina ha una bella raccolta di mappe di memoria per la maggior parte dei formati LCD di caratteri. Per prima cosa, posizioniamo il cursore sulla seconda riga (4:0x40). Successivamente, la macro 'inserisci testo' cattura il nostro input e lo copia sul display LCD. LCD>(4:0x14)(8)(4:0x54)(8) <<<sintassi macro multipleInserisci il testo da inserire nella posizione del cursore. Firmware v2.0+ <<<abbiamo digitato questo Inserisci il testo da inserire nella posizione del cursore. DangerousPrototypes <<Il Bus Pirate accetta più macro sulla stessa riga, quindi l'intero schermo può essere scritto contemporaneamente. Abbiamo scritto nelle ultime due righe con una singola riga di sintassi. Potremmo usare '(3)(4:0)(8)(4:0x40)(8)(4:0x14)(8)(4:0x54) (8)' per cancellare il display LCD e scrivere tutte e quattro le righe con un'unica voce di sintassi.

Passaggio 8: Passaggio 6. Lettura dal display LCD

Passaggio 6. Lettura dal display LCD
Passaggio 6. Lettura dal display LCD

Il Bus Pirate e la scheda adattatore LCD possono leggere dal display LCD. Leggeremo il testo che abbiamo scritto sullo schermo (DDRAM), ma puoi anche leggere le impostazioni e la RAM dei caratteri personalizzati (CGRAM) impostando l'indirizzo corretto. LCD>[0b10000000 '''<<<imposta il puntatore di lettura'' ']HD44780 RS LOW, COMMAND MODE <<<register select pin lowCMD WRITE: 0x80 <<Per prima cosa, diciamo al Bus Pirate di inviare i dati al registro di comando LCD ([). Successivamente, utilizziamo il comando set DDRAM address (0b1xxxxxxx) per impostare il puntatore di lettura all'inizio della DDRAM (xxxxxxx=0000000).]LCD>]rrrrrrr <<<read data memoryHD44780 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>Infine, di' al Bus Pirate di leggere dalla memoria dati (]), e poi leggere alcuni byte (rrrrrrr). Abbiamo ottenuto "HD44780", il testo che abbiamo scritto sullo schermo nel passaggio 5. Dovresti anche essere in grado di utilizzare la scorciatoia r:7 per leggere sette byte, ma non funziona nel firmware attuale - lo risolveremo prima di la prossima uscita.

Passaggio 9: fare di più

Fare di più
Fare di più

Dai una descrizione generale dello StepL'adattatore LCD a caratteri HD44780 è un pratico accessorio per il Bus Pirate. Può essere utilizzato per un test rapido o per uno sviluppo logico più avanzato. Oltre agli LCD, gli otto pin I/O da 2,5 volt-5 volt potrebbero essere utili per altre applicazioni Bus Pirate ad alto numero di pin. Possiamo avere PCB, kit, o kit assemblati prodotti da Seeed Studio per circa $ 15, inclusa la spedizione in tutto il mondo, più qui. Non ho potuto includere alcuni elementi di formattazione e tabelle HTML in un Instructable, puoi vedere il post originale sul blog Dangerous Prototypes.

Consigliato: