Indholdsfortegnelse:

HD44780 LCD til I2C adapterkort til buspiraten: 9 trin
HD44780 LCD til I2C adapterkort til buspiraten: 9 trin

Video: HD44780 LCD til I2C adapterkort til buspiraten: 9 trin

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

Billige LCD -skærme baseret på HD44780 -chipsættet findes i en række forskellige størrelser: 2x16, 4x20 osv. Disse skærme har to standard interface -tilstande, 4bit og 8bit parallel. 8bit kræver i alt 11 datalinjer, 4bit kræver 7 (6 for skrivebeskyttet). Nogle LCD'er understøtter en ekstra seriel datatilstand, f.eks. Den VFD, jeg dækkede ved Hack a Day. HD44780 LCD'er er generelt 5 volt dele med en separat forsyning til baggrundslyset. Bus Piraten har kun fem 5 volt tolerante I/O -ben, så vi lavede et lille adapterkort med nok ben til at styre LCD'et. Bus Pirate styrer adapterkortet gennem sit LCD -interfacebibliotek. Fortsæt med at læse om Bus Pirate HD44780 karakter LCD -adapterkort og interface -bibliotek. Jeg kan få printkort, kits eller samlede kits produceret af Seeed Studio til omkring $ 15, inklusive forsendelse på verdensplan, mere her. blog.

Trin 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Oversigt I denne artikel skitserer vi et I2C-adapterkort til HD44780-baserede LCD-skærme. Vi demonstrerer det med en Bus Pirate universal seriel grænseflade. Bus Pirate-kildekoden til det I2C-baserede HD44780 grænsefladebibliotek er offentligt ejet, så det er gratis at tilpasse sig dine egne projekter. HardwareFuld størrelse kredsløb [PNG]. Kredsløbet og printet blev designet med den gratis version af Cadsoft Eagle. Designfilerne kan downloades fra Bus Pirate SVN. Inden du bruger adapterkortet, skal du kontrollere dataarket for din LCD mod adapterens pinout. Ikke alle LCD -skærme er ens. PCF8574 I/O-udvidelses-IC Dette er en enkel 8 I/O-udvidelseschip, der styres via to-tråds I2C-interface. I2C -grænsefladen er tilgængelig fra header JP1. PCF8574 fungerer fra 2,5 til 5 volt. I/O -benene fungerer ved forsyningsspændingen, så hvis vi fodrer den med 5 volt, har den en grænseflade på LCD -skærmen ved 5 volt. C1 (0.1uF) afkobler IC'en fra udsving i strømforsyningen. En pin på PCF8574 styrer en 3 mm LED (LED1) gennem strømbegrænsningsmodstand R2 (1000 ohm). LED'en lyser for at indikere en vellykket kommunikation mellem Bus Pirate og adapteren. PCF8574 kan ikke skaffe nok strøm til at drive LED'en, så vi driver LED'en fra 5volts forsyningen og skifter jorden. LCD Adapterkortet kommunikerer med et HD44780-baseret tegn-LCD i 4bit parallel interface-tilstand. 4bit interface -benene - RS, RW, EN og D4 -D7 - er forbundet til syv af PCF8574 I/O -benene. Vi kan godt lide at bruge 0,1 "han -pin -header til at slutte adapteren til en LCD, du kan normalt læne LCD'en mod stifterne for at skabe tilstrækkelig kontakt til en hurtig test. Trimmermodstand R1 (10K) giver en kontrastjusteringsspænding til pin 3 på LCD -headeren. Vi tilsluttede ikke baggrundsbelysningstappene, fordi der er så mange forskellige baggrundsbelysningstilstande. Tilførsel af strøm til en LED -baggrundsbelysning kan beskadige en skærm, der kræver en negativ spændingsforsyning. Strømforsyning De fleste LCD'er kræver 5 volt, giver en ekstern strømforsyning gennem header JP2. Vi leverede en anden strømforsyningsstift til at forbinde Bus Pirates pull-up-modstande. PCB Kredsløbet og printet blev designet med den gratis version af Cadsoft Eagle. Designfilerne kan downloades fra Bus Pirate SVN. PCB er et enkeltsidet, gennemgående huldesign med en enkelt jumpertråd (vist i rødt). Vi kan få printkort, kits eller samlede kits produceret af Seeed Studio for omkring $ 15, inklusive forsendelse på verdensplan, mere her. Partlist Part Value (alle th groft hul) C10.1uF/10volt+R110000 (10K) ohm single turn trimmer/potentiometer, 6mmR21000 (1K) ohm modstand, 1/4 wattLED13mm (T1) LED, rødJP1+JP20.1 "hanhoved, 5 ben IC1PCF8574N, 8bit I2C I/O -ekspander DIP16ICS116 pin DIP -sokkel til IC1I kunne ikke indeholde nogle formateringselementer og HTML -tabeller i en Instructable, du kan se det originale indlæg på bloggen Dangerous Prototypes.

Trin 2: Forbindelser

Forbindelser
Forbindelser

Enhed: HD44780 tegn LCD. Bus: 4bit parallel, med PCF8574 I2C adapterkort. Strømkrav: 5volt. Referencer: eksempel datablad [PDF], HD44780 kommandoreference, HD44780 LCD uber-site. Komplet Bus Pirate session log til denne demonstration. We designet adapteren til LCD -biblioteket i Bus Pirate universal seriel grænseflade, men den fungerer med alt, hvad der kan tale I2C -protokollen. Tag et kig på Bus Pirate kildekoden for et eksempel I2C-> HD44780 implementering. Tilslut Bus Pirate til adapterkortet som vist i tabellen. Tabellen viser også de rå forbindelser til PCF8574 IC, hvis du følger med uden et adapterkort. Tilslut adapteren til en strømforsyning, der er tilstrækkelig til LCD, generelt 5 volt. I2C-forbindelsen mellem adapteren og Bus Pirate kræver pull-up-modstande mellem 2 og 10K. Her er mere information om blandet spændingsinterface med pull-ups og Bus Pirate on-board pull-up-modstande. Jeg kunne ikke inkludere nogle formateringselementer og HTML-tabeller i en Instructable, du kan se det originale indlæg på bloggen Dangerous Prototypes.

Trin 3: Trin 1. Opsætningsbibliotek

Trin 1. Opsætning af bibliotek
Trin 1. Opsætning af bibliotek

Grænseflade Vi har dækket adapterdesignet og hvordan man slutter det til Bus Pirate, nu er det endelig tid til at skrive noget til LCD'en. HiZ> m <<11 <<1 <<W <

p <<2 <<v <<< få spændingsrapport VOLTAGE MONITOR: 5V: 4.9 | 3.3V: 3.3 | VPULLUP: 5,0 <<Tryk på 'm' i Bus Pirate -terminalen, og vælg LCD -biblioteket. Det understøtter i øjeblikket kun LCD-skærme med HD44780 tegn ved hjælp af PFC8574-adapteren beskrevet i første halvdel af denne artikel (option 1). Aktiver strømforsyninger (stort 'W') og pull-up-modstande (menu 'p'). Kontroller spændingsovervågningen (menu 'v'), og sørg for, at pull-up spændingen (Vpullup) læser omkring 5 volt.

Trin 4: Trin 2. Nulstil og initialiser

Trin 2. Nulstil og initialisering
Trin 2. Nulstil og initialisering
Trin 2. Nulstil og initialiser
Trin 2. Nulstil og initialiser

Denne tabel skitserer de enkeltbyte-kommandoer, der styrer en HD44780 LCD, her er en detaljeret reference. Disse kommandoer kan indtastes fra Bus Pirate kommandolinjen, men vi har lavet makroer for de fleste af dem for at spare tid. LCD> (0) <<< vis makro menu0. Makro menu <<< denne menu1. LCD Nulstil << <nulstil LCD2. Init LCD <<< nulstil og initialiser LCD3. Clear LCD <<< clear LCD, returner markøren til 04. Markørposition ex: (4: 0) <<< indstil markørposition 5. Skriv testtekst <<Makro 0 viser makromenuen for enhver Bus Pirate -tilstand. LCD> (2) <<< initialiser LCD -makro Displaylinjer: 1. 1 <<< single line display2. Flere <<2 'RESET <<< makro 2 indeholder en nulstillingssekvensINIT <<Initialiserings -LCD -makroen (2) konfigurerer skærmen til 4 -bit -interfacetilstand, aktiverer markørvisning og angiver et par andre nyttige muligheder. Konfigurer antallet af displaylinjer, vælg 1 for en enkelt linjeskærm eller 2 for alle andre displays. Efter initialisering skal skærmen være klar med en markør synlig i hjørnet. Hvis det ikke fungerede, skal du kontrollere I2C-forbindelsen, pull-up-modstande og strømforsyning, og derefter prøve igen. HD44780 LCD-skærme skal nulstilles med en særlig signalsekvens, før de kan initialiseres til 4bit eller 8bit interface-tilstand. Makro 1 opretter denne sekvens. Makro 2 inkluderer nulstillingssekvensen, så det er ikke nødvendigt at bruge makro 1 før makro 2.

Trin 5: Trin 3. Skriv testtegn

Trin 3. Skriv testtegn
Trin 3. Skriv testtegn
Trin 3. Skriv testtegn
Trin 3. Skriv testtegn

LCD> (6:80) <<Makroen til skrive -tal fylder LCD'et med testnumre mellem 0 og 9. Tallet efter kolon fortæller Bus Pirate, hvor mange testnumre vi skal skrive, vi bruger en 4x20LCD, så vi skriver 80 tal for at udfylde det. Bemærk, at markøren ender på position 0, under den første '0'. LCD> (7:80) <<Makoen skrive tegn fylder LCD'et med ASCII -tegn, indtast mængden efter kolon. Bemærk, at knytnæveslinjen fortsætter på den tredje, den tredje på den anden og den anden på den sidste. Tegnene er ikke kontinuerlige, fordi tegn -LCD'er ikke vikles fra en linje til den næste. Vi taler lidt mere om dette senere.

Trin 6: Trin 4. Ryd LCD

Trin 4. Ryd LCD
Trin 4. Ryd LCD

LCD> (3) <<Den klare LCD -makro sender kommandoen HD44780, der sletter skærmen og returnerer markøren til den første position. Du kan også udføre enhver af disse operationer uden makroerne, se kommandotabellen i begyndelsen af dette afsnit. Indtast '[0b1' i Bus Pirate for at indstille grænsefladen til kommandotilstand ([) og sende HD44780 clear screen -kommandoen (0b00000001) uden en makro.]

Trin 7: Trin 5. Skriv tekst

Trin 5. Skriv tekst
Trin 5. Skriv tekst
Trin 5. Skriv tekst
Trin 5. Skriv tekst

LCD> (8) <<< indsæt brugertekst Indtast tekst, der skal indsættes i markørpositionen. HD44780 LCD -demo <<Efter rydning af LCD'et i trin 4, er markøren placeret i den første blok. Vi kunne også indstille den med makroen (4: 0), der flytter markøren til det første tegn. Indsæt teksten ved markørmakroen beder om tekstindtastning og kopierer den derefter til LCD -skærmen, når du trykker på enter. LCD> (4: 0x40) <& lt

LCD> (8) <<< indsæt tekst Indtast tekst, der skal indsættes på markørpositionen. Bus Pirate v2go <<At skrive til den anden linje er lidt mere kompliceret, det starter faktisk ved tegn 64 på en 4x20 LCD. Hvis du fortsætter med at skrive fra slutningen af linje 1 (tegn 20), ender du i begyndelsen af linje tre! Denne side har en flot samling af hukommelseskort til de fleste tegn LCD -størrelser. Først placerer vi markøren på den anden linje (4: 0x40). Derefter griber 'indsæt tekst' -makroen vores input og kopierer det til LCD. LCD> (4: 0x14) (8) (4: 0x54) (8) <<< flere makrosyntaks Indtast tekst, der skal indsættes ved markørpositionen. Firmware v2.0+ <<< vi skrev dette Indtast tekst, der skal indsættes i markørpositionen. Farlige prototyper <<Bus Piraten accepterer flere makroer på samme linje, så hele skærmen kan skrives på én gang. Vi skrev til de sidste to linjer med en enkelt syntakslinje. Vi kunne bruge '(3) (4: 0) (8) (4: 0x40) (8) (4: 0x14) (8) (4: 0x54) (8) 'for at rydde LCD'et og skrive alle fire linjer med en enkelt syntaksindgang.

Trin 8: Trin 6. Læsning fra LCD

Trin 6. Læsning fra LCD
Trin 6. Læsning fra LCD

Bus Pirate og LCD adapterkort kan læse fra LCD'et. Vi læser teksten, vi skrev til skærmen (DDRAM), men du kan også læse indstillinger og brugerdefineret tegnram (CGRAM) ved at indstille den korrekte adresse. LCD> [0b10000000 '' '<<< indstil læsemarkøren' ' '] HD44780 RS LOW, COMMAND MODE <<< register vælg pin lavCMD SKRIV: 0x80 <<Først fortæller vi Bus Piraten at sende data til LCD -kommandoregistret ([). Dernæst bruger vi den indstillede DDRAM -adressekommando (0b1xxxxxxx) til at indstille læsemarkøren til begyndelsen af DDRAM (xxxxxxx = 0000000).] LCD>] rrrrrrr <<< læs datahukommelseHD44780 RS HIGH, DATA MODE <<< register vælg pin highREAD: 0x48 <<< 'H'READ: 0x44 <<<' D'READ: 0x34 <<< '4'LÆS: 0x34 <<<' 4'LÆS: 0x37 <<< 7'LÆS: 0x38 < << '8'LÆS: 0x30 <<<' 0'LCD> Fortæl endelig buspiraten at læse fra datahukommelse (]), og læs derefter et par bytes (rrrrrrr). Vi fik "HD44780", teksten vi skrev til skærmen i trin 5. Du skulle også kunne bruge genvejen r: 7 til at læse syv bytes, men den fungerer ikke i den aktuelle firmware - vi retter dette før den næste udgivelse.

Trin 9: Gør mere

Gør mere
Gør mere

Giv en generel beskrivelse af trin LCD -adapteren HD44780 karakter er et praktisk tilbehør til Bus Pirate. Det kan bruges til en hurtig test eller mere avanceret logikudvikling. Ud over LCD-skærme kan de otte 2,5volt-5volt I/O-ben være nyttige til andre Bus-pirat-applikationer med højt pin-antal. Vi kan have printkort, kits, eller samlede kits produceret af Seeed Studio for omkring $ 15, inklusive forsendelse på verdensplan, mere her. Jeg kunne ikke inkludere nogle formateringselementer og HTML -tabeller i en Instructable, du kan se det originale indlæg på bloggen Dangerous Prototypes.

Anbefalede: