Innholdsfortegnelse:

HD44780 LCD til I2C adapterkort for busspiraten: 9 trinn
HD44780 LCD til I2C adapterkort for busspiraten: 9 trinn

Video: HD44780 LCD til I2C adapterkort for busspiraten: 9 trinn

Video: HD44780 LCD til I2C adapterkort for busspiraten: 9 trinn
Video: #5 Жидкокристаллический дисплей I2C || ESP8266 FLPROG ЛЕСТНИЧНАЯ ЛОГИКА 2024, November
Anonim
HD44780 LCD til I2C adapterkort for busspiraten
HD44780 LCD til I2C adapterkort for busspiraten
HD44780 LCD til I2C adapterkort for busspiraten
HD44780 LCD til I2C adapterkort for busspiraten

Billige LCD -skjermer basert på HD44780 -brikkesettet kommer i en rekke størrelser: 2x16, 4x20, etc. Disse skjermene har to standard grensesnittmoduser, 4bit og 8bit parallell. 8bit krever totalt 11 datalinjer, 4bit krever 7 (6 for skrivebeskyttet). Noen LCD -skjermer støtter en ekstra seriell datamodus, for eksempel VFD jeg dekket på Hack a Day. HD44780 LCD -er er vanligvis 5 volt deler med en separat forsyning for bakgrunnslyset. Bus Pirate har bare fem 5 volt tolerante I/O -pinner, så vi laget et lite adapterkort med nok pinner til å kontrollere LCD -skjermen. Bus Pirate styrer adapterkortet gjennom sitt LCD -grensesnittbibliotek. Fortsett å lese om Bus Pirate HD44780 karakter LCD -adapterkort og grensesnittbibliotek. Jeg kan få kretskort, sett eller monterte sett produsert av Seeed Studio for ca $ 15, inkludert verdensomspennende frakt, mer her. blogg.

Trinn 1: Maskinvare

Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare

Oversikt I denne artikkelen skisserer vi et I2C-adapterkort for HD44780-baserte LCD-skjermer. Vi demonstrerer det med et universelt serielt grensesnitt for Bus Pirate. Bus Pirate-kildekoden for det I2C-baserte HD44780 grensesnittbiblioteket er offentlig domene, så det er gratis å tilpasse seg dine egne prosjekter. HardwareFull størrelse kretsbilde [PNG]. Kretsen og kretskortet ble designet med gratisversjonen av Cadsoft Eagle. Designfilene kan lastes ned fra Bus Pirate SVN. Før du bruker adapterkortet, må du kontrollere dataarket for LCD -skjermen mot adapterens pinout. Ikke alle LCD -skjermer er like. PCF8574 I/O-ekspander IC Dette er en enkel 8 I/O-ekspander-chip som styres gjennom to-leder I2C-grensesnittet. I2C -grensesnittet er tilgjengelig fra topptekst JP1. PCF8574 fungerer fra 2,5 til 5 volt. I/O -pinnene fungerer ved forsyningsspenningen, så hvis vi mater den 5 volt, grensesnittes LCD -en med 5 volt. C1 (0.1uF) kobler IC fra svingninger i strømforsyningen. En pinne på PCF8574 styrer en 3 mm LED (LED1) gjennom strømbegrensningsmotstand R2 (1000 ohm). LED -lampene indikerer vellykket kommunikasjon mellom Bus Pirate og adapteren. PCF8574 kan ikke skaffe nok strøm til å drive LED -en, så vi driver LED -en fra 5 volt -forsyningen og bytter bakken. LCD Adapterkortet kommuniserer med en HD44780-basert tegn-LCD i 4-biters parallelt grensesnittmodus. 4 -bits grensesnittpinnene - RS, RW, EN og D4 -D7 - er koblet til syv av PCF8574 I/O -pinnene. Vi liker å bruke 0,1 "mannlige pin -overskrift for å koble adapteren til en LCD, du kan vanligvis lene LCD -skjermen mot pinnene for å skape tilstrekkelig kontakt for en rask test. Trimmermotstand R1 (10K) gir en kontrastjusteringsspenning til pin 3 på LCD -overskriften. Vi koblet ikke bakgrunnsbelysningspinnene fordi det er så mange forskjellige bakgrunnsbelysningsmåter. Tilførsel av strøm til en LED -bakgrunnsbelysning kan skade en skjerm som krever negativ spenningsforsyning. Strømforsyning De fleste LCD -skjermer krever 5 volt, gi ekstern strømforsyning gjennom header JP2. Vi leverte en annen strømforsyningspinne for å koble Bus Pirates pull-up motstander. PCB Kretsen og PCB ble designet med gratisversjonen av Cadsoft Eagle. Designfilene kan lastes ned fra Bus Pirate SVN. PCB er en ensidig, gjennomgående hulldesign med en enkelt jumper wire (vist i rødt). Vi kan ha PCB, sett eller monterte sett produsert av Seeed Studio for omtrent $ 15, inkludert verdensomspennende frakt, mer her. Partlist Part Value (alle th grovt hull) C10.1uF/10volt+R110000 (10K) ohm enkeltsvinget trimmer/potensiometer, 6mmR21000 (1K) ohm motstand, 1/4 watt LED13mm (T1) LED, rødJP1+JP20.1 "hannhodet, 5 pinner IC1PCF8574N, 8bit I2C I/O -ekspander DIP16ICS116 pin DIP -kontakt for IC1I kunne ikke inkludere noen formateringselementer og HTML -tabeller i en Instructable, du kan se det opprinnelige innlegget på bloggen Dangerous Prototypes.

Trinn 2: Tilkoblinger

Tilkoblinger
Tilkoblinger

Enhet: HD44780 tegn LCD. Buss: 4-biters parallell, med PCF8574 I2C-adapterkort. Strømkrav: 5 volt. Referanser: eksempeldatablad [PDF], HD44780 kommandoreferanse, HD44780 LCD uber-site. Komplett Bus Pirate-sesjonslogg for denne demonstrasjonen. Vi designet adapteren for LCD -biblioteket til det universelle serielle grensesnittet Bus Pirate, men det fungerer med alt som kan snakke I2C -protokollen. Ta en titt på Bus Pirate kildekoden for et eksempel I2C-> HD44780 implementering. Koble Bus Pirate til adapterkortet som vist i tabellen. Tabellen viser også de rå tilkoblingene til PCF8574 IC hvis du følger med uten adapterkort. Koble adapteren til en strømforsyning som er tilstrekkelig for LCD -skjermen, vanligvis 5 volt. I2C-tilkoblingen mellom adapteren og Bus Pirate krever pull-up-motstander mellom 2 og 10K. Her er mer informasjon om blandet spenningsgrensesnitt med pull-ups og Bus Pirate innebygde pull-up-motstander..

Trinn 3: Trinn 1. Oppsettbibliotek

Trinn 1. Oppsettbibliotek
Trinn 1. Oppsettbibliotek

Grensesnitt Vi har dekket adapterdesignet og hvordan du kobler det til Bus Pirate, nå er det endelig på tide å skrive noe til LCD -skjermen. Hi> m <<11 <<1 <<W <

p <<2 <<v <<< få spenningsrapport VOLTAGE MONITOR: 5V: 4.9 | 3.3V: 3.3 | VPULLUP: 5,0 <<Trykk på 'm' i Bus Pirate -terminalen og velg LCD -biblioteket. For øyeblikket støtter den bare HD44780 tegn LCD-skjermer ved hjelp av PFC8574-adapteren beskrevet i første halvdel av denne artikkelen (alternativ 1). Aktiver strømforsyningene (store 'W') og opptrekkmotstandene (meny 'p'). Kontroller spenningsmonitoren (meny 'v') og kontroller at opptrekksspenningen (Vpullup) leser rundt 5 volt.

Trinn 4: Trinn 2. Tilbakestill og initialisering

Trinn 2. Tilbakestill og initialisering
Trinn 2. Tilbakestill og initialisering
Trinn 2. Tilbakestill og initialisering
Trinn 2. Tilbakestill og initialisering

Denne tabellen skisserer enkeltbyte-kommandoene som styrer en HD44780 LCD, her er en detaljert referanse. Disse kommandoene kan legges inn fra Bus Pirate -kommandolinjen, men vi har laget makroer for de fleste av dem for å spare tid. LCD> (0) <<< vis makro -meny0. Makro -meny <<< denne menyen1. LCD Reset << <tilbakestill LCD2. Init LCD <<< tilbakestill og initialiser LCD3. Clear LCD <<< clear LCD, returner markøren til 04. Markørposisjon eks: (4: 0) <<< sett markørstilling 5. Skriv testtekst <<Makro 0 viser makro -menyen for alle Bus Pirate -modus. LCD> (2) <<< initialiser LCD -makro Displaylinjer: 1. 1 <<< enkeltlinjes display2. Flere <<2 'RESET <<< makro 2 inkluderer en reset -sekvensINIT <<Initialiser LCD -makroen (2) konfigurerer skjermen for 4 -biters grensesnittmodus, aktiverer markørvisning og angir noen andre nyttige alternativer. Konfigurer antall displaylinjer, velg 1 for en enkeltlinjesvisning eller 2 for alle andre skjermer. Etter initialisering skal skjermen være klar med en markør synlig i hjørnet. Hvis det ikke fungerte, sjekk I2C-tilkoblingen, opptrekkmotstandene og strømforsyningen, og prøv igjen. HD44780 LCD-skjermer må tilbakestilles med en spesiell signalsekvens før de kan initialiseres for 4-biters eller 8-biters grensesnittmodus. Makro 1 oppretter denne sekvensen. Makro 2 inkluderer tilbakestillingssekvensen, så det er ikke nødvendig å bruke makro 1 før makro 2.

Trinn 5: Trinn 3. Skriv testtegn

Trinn 3. Skriv testtegn
Trinn 3. Skriv testtegn
Trinn 3. Skriv testtegn
Trinn 3. Skriv testtegn

LCD> (6:80) <<Makroen til skrive tall fyller LCD -skjermen med testnummer mellom 0 og 9. Tallet etter kolon forteller busspiraten hvor mange testnumre vi skal skrive, vi bruker en 4x20LCD, så vi skriver 80 tall for å fylle det. Legg merke til at markøren ender på posisjon 0, under den første '0'. LCD> (7:80) <<Makoen skrive tegn fyller LCD -skjermen med ASCII -tegn, angi mengden etter kolon. Legg merke til at knyttneve -linjen fortsetter på den tredje, den tredje på den andre, og den andre på den siste. Tegnene er ikke kontinuerlige fordi tegn -LCD -er ikke vikles fra en linje til den neste. Vi snakker litt mer om dette senere.

Trinn 6: Trinn 4. Fjern LCD -skjermen

Trinn 4. Fjern LCD -skjermen
Trinn 4. Fjern LCD -skjermen

LCD> (3) <<Den klare LCD -makroen sender kommandoen HD44780 som sletter skjermen og returnerer markøren til første posisjon. Du kan også utføre noen av disse operasjonene uten makroene, se kommandotabellen i begynnelsen av denne delen. Angi '[0b1' i Bus Pirate for å sette grensesnittet til kommandomodus ([) og sende kommandoen for klar skjerm for HD44780 (0b00000001) uten en makro.]

Trinn 7: Trinn 5. Skriv inn tekst

Trinn 5. Skriv inn tekst
Trinn 5. Skriv inn tekst
Trinn 5. Skriv inn tekst
Trinn 5. Skriv inn tekst

LCD> (8) <<< sett inn brukertekst Skriv inn tekst som skal settes inn ved markørposisjonen. HD44780 LCD -demo <<Etter å ha fjernet LCD -skjermen i trinn 4, er markøren plassert i den første blokken. Vi kan også sette den med makroen (4: 0), som flytter markøren til det første tegnet. Sett inn teksten ved markørmakroen ber om tekstinndata, og kopierer den deretter til LCD -skjermen når du trykker enter. LCD> (4: 0x40) <& lt

LCD> (8) <<< sett inn tekst Skriv inn tekst som skal settes inn ved markørposisjonen. Bus Pirate v2go <<Å skrive til den andre linjen er litt mer komplisert, den starter faktisk med tegn 64 på en 4x20 LCD. Hvis du fortsetter å skrive fra slutten av linje 1 (tegn 20), vil du ende opp i begynnelsen av linje tre! Denne siden har en fin samling av minnekart for de fleste tegn -LCD -størrelser. Først plasserer vi markøren på den andre linjen (4: 0x40). Deretter tar makroen "sett inn tekst" vår input og kopierer den til LCD. LCD> (4: 0x14) (8) (4: 0x54) (8) <<< multiple macro syntax Skriv inn tekst som skal settes inn ved markørposisjonen. Firmware v2.0+ <<< vi skrev dette Skriv inn tekst for å sette inn ved markørposisjonen. Farlige prototyper <<Bus Pirate godtar flere makroer på samme linje, slik at hele skjermen kan skrives samtidig. Vi skrev til de to siste linjene med en enkelt syntakslinje. Vi kunne bruke '(3) (4: 0) (8) (4: 0x40) (8) (4: 0x14) (8) (4: 0x54) (8) 'for å tømme LCD -skjermen og skrive alle fire linjene med en enkelt syntaksoppføring.

Trinn 8: Trinn 6. Lese fra LCD -skjermen

Trinn 6. Lesing fra LCD -skjermen
Trinn 6. Lesing fra LCD -skjermen

Bus Pirate og LCD -adapterkort kan lese fra LCD -skjermen. Vi leser teksten vi skrev til skjermen (DDRAM), men du kan også lese innstillinger og tilpasset tegnram (CGRAM) ved å angi riktig adresse. LCD> [0b10000000 '' '<<< sett lesepekeren' ' '] HD44780 RS LOW, COMMAND MODE <<< register velg pin lavCMD WRITE: 0x80 <<Først ber vi busspiraten om å sende data til LCD -kommandoregisteret ([). Deretter bruker vi den angitte DDRAM -adressekommandoen (0b1xxxxxxx) for å sette lesepekeren til begynnelsen av DDRAM (xxxxxxx = 0000000).] LCD>] rrrrrrr <<< les dataminneHD44780 RS HIGH, DATA MODE <<< register velg pin highREAD: 0x48 <<< 'H'READ: 0x44 <<<' D'READ: 0x34 <<< '4'READ: 0x34 <<<' 4'READ: 0x37 <<< 7'READ: 0x38 < << '8'LESE: 0x30 <<<' 0'LCD> Fortell busspiraten til slutt å lese fra dataminnet (]), og les deretter noen få byte (rrrrrrr). Vi fikk "HD44780", teksten vi skrev til skjermen i trinn 5. Du bør også kunne bruke snarveien r: 7 til å lese syv byte, men den fungerer ikke i gjeldende fastvare - vi fikser dette før neste utgivelse.

Trinn 9: Gjør mer

Gjør mer
Gjør mer

Gi en generell beskrivelse av trinnet LCD -adapteren HD44780 tegn er et praktisk tilbehør for Bus Pirate. Den kan brukes til en rask test eller mer avansert logikkutvikling. I tillegg til LCD-skjermer kan de åtte 2,5 volt-5 volt I/O-pinnene være nyttige for andre Bus-piratprogrammer med høy pinne. Vi kan ha PCB, sett, eller monterte sett produsert av Seeed Studio for omtrent $ 15, inkludert verdensomspennende frakt, mer her. Jeg kunne ikke inkludere noen formateringselementer og HTML -tabeller i en Instructable, du kan se det opprinnelige innlegget på Dangerous Prototypes -bloggen.

Anbefalt: