INHOUDSOPGAWE:

HD44780 LCD na I2C Adapter Board vir die Bus Pirate: 9 stappe
HD44780 LCD na I2C Adapter Board vir die Bus Pirate: 9 stappe

Video: HD44780 LCD na I2C Adapter Board vir die Bus Pirate: 9 stappe

Video: HD44780 LCD na I2C Adapter Board vir die Bus Pirate: 9 stappe
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, November
Anonim
HD44780 LCD na I2C adapterbord vir die Bus Pirate
HD44780 LCD na I2C adapterbord vir die Bus Pirate
HD44780 LCD na I2C adapterbord vir die Bus Pirate
HD44780 LCD na I2C adapterbord vir die Bus Pirate

Goedkoop karakter LCD's gebaseer op die HD44780 chipset kom in 'n verskeidenheid groottes voor: 2x16, 4x20, ens. Hierdie skerms het twee standaard koppelvlakmodusse, 4bit en 8bit parallel. 8bit benodig 'n totaal van 11 data lyne, 4bit benodig 7 (6 slegs vir skryf). Sommige LCD's ondersteun 'n ekstra seriële data -modus, soos die VFD wat ek behandel het by Hack a Day. Die Bus Pirate het slegs vyf I/O -penne wat verdraagsaam is met 5 volt, so ons het 'n klein adapterbord gemaak met genoeg penne om die LCD te beheer. Die Bus Pirate beheer die adapterkaart deur sy LCD -koppelvlakbiblioteek. Lees verder oor die Bus Pirate HD44780 karakter LCD -adapterbord en koppelvlakbiblioteek. Ek kan PCB's, kits of gekombineerde kits vir ongeveer $ 15 vervaardig, insluitend wêreldwye aflewering, meer hier. blog.

Stap 1: Hardeware

Hardeware
Hardeware
Hardeware
Hardeware
Hardeware
Hardeware

Oorsig In hierdie artikel skets ons 'n I2C-adapterbord vir HD44780-gebaseerde LCD's. Ons demonstreer dit met 'n universele seriële koppelvlak van Bus Pirate. Die Bus Pirate-bronkode vir die I2C-gebaseerde HD44780-koppelvlakbiblioteek is in die publieke domein, en dit is dus gratis om aan te pas by u eie projekte. Die kring en PCB is ontwerp met die gratis weergawe van Cadsoft Eagle. Die ontwerp lêers kan afgelaai word vanaf die Bus Pirate SVN. Voordat u die adapterbord gebruik, moet u die datablad van u LCD kontroleer teen die pinout van die adapter. Nie alle LCD's is dieselfde nie. PCF8574 I/O expander IC Dit is 'n eenvoudige 8 I/O expander chip wat beheer word deur die tweedraad I2C koppelvlak. Die I2C -koppelvlak is toeganklik vanaf kop JP1. Die PCF8574 werk van 2,5 tot 5 volt. Die I/O -penne werk met die voedingspanning, so as ons dit 5 volt voed, koppel dit die LCD teen 5 volt. C1 (0.1uF) ontkoppel die IC van skommelinge in die kragtoevoer. Een pen van die PCF8574 beheer 'n 3 mm LED (LED1) deur die stroombeperkingsweerstand R2 (1000 ohm). Die LED -ligte dui op suksesvolle kommunikasie tussen die Bus Pirate en die adapter. Die PCF8574 kan nie genoeg stroom kry om die LED aan te dryf nie, so ons dryf die LED van die 5 volt -toevoer en verander die grond. LCD Die adapterbord kommunikeer met 'n HD44780-gebaseerde karakter-LCD in 'n parallelle koppelvlakmodus van 4 bit. Die 4bit -koppelvlakpenne - RS, RW, EN en D4 -D7 - is gekoppel aan sewe van die PCF8574 I/O -penne. Ons gebruik graag 'n 0,1 "manlike penkop om die adapter aan 'n LCD te koppel. U kan die LCD gewoonlik teen die penne leun om voldoende kontak te maak vir 'n vinnige toets. die LCD -kop. Ons het nie die agterligpenne gekoppel nie, want daar is soveel verskillende beligtingstyle. Die verskaffing van krag vir 'n LED -agterlig kan 'n skerm beskadig wat 'n negatiewe spanning benodig. Kragtoevoer Die meeste LCD's benodig 5 volt, bied 'n eksterne kragtoevoer deur kop JP2. Ons het 'n tweede voedingspen voorsien om die Bus Pirate se optrekweerstands aan te sluit. PCB Die kring en PCB is ontwerp met die gratis weergawe van Cadsoft Eagle. Die ontwerp lêers kan afgelaai word vanaf die Bus Pirate SVN. Die PCB is 'n enkelzijdige ontwerp met 'n deurlopende gat met 'n enkele jumperdraad (in rooi getoon). Ons kan PCB's, kits of saamgestelde kits vir ongeveer $ 15 vervaardig deur Seeed Studio, insluitend wêreldwye versending, meer hier. Partlist Part Value (al die ruwe gat) C10.1uF/10volts+R110000 (10K) ohm enkeldraaier/potensiometer, 6mmR21000 (1K) ohmweerstand, 1/4 watt LED13mm (T1) LED, roodJP1+JP20.1 "manlike kopstuk, 5 penne IC1PCF8574N, 8bit I2C I/O -uitbreider DIP16ICS116 pin DIP -aansluiting vir IC1I kon nie 'n paar opmaakelemente en HTML -tabelle in 'n Instructable insluit nie; u kan die oorspronklike pos op die blog Dangerous Prototypes sien.

Stap 2: Verbindings

Verbindings
Verbindings

Toestel: HD44780 karakter LCD. Bus: 4bit parallel, met PCF8574 I2C adapterbord. Kragvereistes: 5volts. Verwysings: voorbeeld datablad [PDF], HD44780 opdragverwysing, HD44780 LCD uber-site. Complete Bus Pirate-sessielogboek vir hierdie demonstrasie. We het die adapter ontwerp vir die LCD -biblioteek van die Bus Pirate universele seriële koppelvlak, maar dit werk met alles wat die I2C -protokol kan spreek. Kyk na die Bus Pirate-bronkode vir 'n voorbeeld van I2C-> HD44780-implementering. Koppel die Bus Pirate aan die adapterbord soos in die tabel getoon. Die tabel toon ook die rou verbindings met die PCF8574 IC as u sonder 'n adapterbord volg. Sluit die adapter aan op 'n kragtoevoer wat voldoende is vir die LCD, gewoonlik 5 volt. Die I2C-verbinding tussen die adapter en die Bus Pirate benodig optrekweerstands tussen 2 en 10K. Hier is meer inligting oor die vermenging van gemengde spanning met pull-ups en die Bus Pirate aan boord optrekweerstands..

Stap 3: Stap 1. Opstelbiblioteek

Stap 1. Stel biblioteek op
Stap 1. Stel biblioteek op

Koppelvlak Ons het die ontwerp van die adapter behandel en hoe ons dit met die Bus Pirate kan koppel, nou is dit uiteindelik tyd om iets op die LCD te skryf. Hi> m <<11 <<1 <<W <

p <<2 <<v <<< kry spanningsverslag VOLTAGE MONITOR: 5V: 4.9 | 3.3V: 3.3 | VPULLUP: 5.0 <<Druk 'm' in die Bus Pirate -terminale en kies die LCD -biblioteek. Dit ondersteun tans slegs LCD's met HD44780-tekens met behulp van die PFC8574-adapter wat in die eerste helfte van hierdie artikel beskryf word (opsie 1). Aktiveer die kragtoevoer (groot 'W') en optrekweerstands (menu 'p'). Kontroleer die spanningsmonitor (menu 'v') en maak seker dat die trekspanning (Vpullup) ongeveer 5 volt is.

Stap 4: Stap 2. Herstel en inisialisering

Stap 2. Herstel en initialisering
Stap 2. Herstel en initialisering
Stap 2. Herstel en initialisering
Stap 2. Herstel en initialisering

Hierdie tabel gee 'n uiteensetting van die enkel-byte opdragte wat 'n HD44780 LCD beheer, hier is 'n gedetailleerde verwysing. Hierdie opdragte kan ingevoer word vanaf die Bus Pirate -opdragreël, maar ons het vir die meeste makro's gemaak om tyd te bespaar. LCD> (0) <<< wys makro -menu0. Makro -menu <<< hierdie spyskaart1. LCD Herstel << <herstel die LCD2. Init LCD <<< herstel en initialiseer die LCD3. Clar LCD <<< clear LCD, return cursor to 04. cursor position ex: (4: 0) <<< set cursor postion5. Skryf toets teks <<Makro 0 vertoon die makro -spyskaart vir enige Bus Pirate -modus. LCD> (2) <<< initialiseer LCD -makro Vertoonlyne: 1. 1 <<< enkelreëlvertoning2. Veelvuldige <<2 'RESET <<< macro 2 bevat 'n reset -reeks INIT <<Die inisialiseer LCD -makro (2) stel die skerm in vir 'n 4bit -koppelvlakmodus, stel wyser in staat en stel 'n paar ander nuttige opsies in. Stel die aantal vertoonlyne op, kies 1 vir 'n enkele reël of 2 vir alle ander skerms. Na die inisialisering moet die skerm duidelik wees met 'n wyser in die hoek. As dit nie werk nie, kyk na die I2C-verbinding, optrekweerstands en kragtoevoer, en probeer dan weer. HD44780 LCD's moet met 'n spesiale seinreeks herstel word voordat dit vir 4bit- of 8bit-koppelvlakmodus geïnitialiseer kan word. Makro 1 skep hierdie volgorde. Makro 2 bevat die herstelvolgorde, dus hoef u nie makro 1 voor makro 2 te gebruik nie.

Stap 5: Stap 3. Skryf toetskarakters

Stap 3. Skryf toetskarakters
Stap 3. Skryf toetskarakters
Stap 3. Skryf toetskarakters
Stap 3. Skryf toetskarakters

LCD> (6:80) <<Die makro skryfgetalle vul die LCD met toetsgetalle tussen 0 en 9. Die getal na die dubbelpunt sê vir die Bus Pirate hoeveel toetsnommers ons moet skryf, ons gebruik 'n 4x20LCD, dus skryf ons 80 getalle om dit te vul. Let op dat die wyser eindig op posisie 0, onder die eerste '0'. LCD> (7:80) <<Die makro skryftekens vul die LCD met ASCII -karakters, voer die hoeveelheid na die dubbelpunt in. Let op dat die vuislyn voortgaan op die derde, die derde op die tweede en die tweede op die laaste. Die karakters is nie deurlopend nie, want karakter -LCD's draai nie van die een reël na die volgende nie. Ons sal later 'n bietjie meer hieroor praat.

Stap 6: Stap 4. Maak LCD skoon

Stap 4. Maak LCD skoon
Stap 4. Maak LCD skoon

LCD> (3) <<Die duidelike LCD -makro stuur die HD44780 -opdrag wat die skerm uitvee en die wyser na die eerste posisie terugkeer. U kan ook enige van hierdie bewerkings doen sonder die makro's, verwys na die opdragstabel aan die begin van hierdie afdeling. Voer '[0b1' in die Bus Pirate in om die koppelvlak in opdragmodus ([) in te stel en stuur die HD44780 duidelike skermopdrag (0b00000001) sonder 'n makro.]

Stap 7: Stap 5. Tik teks

Stap 5. Tik teks
Stap 5. Tik teks
Stap 5. Tik teks
Stap 5. Tik teks

LCD> (8) <<< voeg gebruikersteks in Voer teks in om by die wyserposisie in te voeg. HD44780 LCD -demo <<Nadat die LCD in stap 4 skoongemaak is, word die wyser op die eerste blok geplaas. Ons kan dit ook stel met die makro (4: 0), wat die wyser na die eerste karakter skuif. Die invoegteks by die wyser -makro vra vir teksinvoer, en kopieer dit dan na die LCD as u op enter druk. LCD> (4: 0x40) <& lt

LCD> (8) <<< voeg teks in Voer teks in om by die wyserposisie in te voeg. Bus Pirate v2go <<Om na die tweede reël te skryf, is 'n bietjie ingewikkelder; dit begin eintlik by karakter 64 op 'n 4x20 LCD. As u aanhou skryf vanaf die einde van reël 1 (karakter 20), eindig u aan die begin van reël drie! Hierdie bladsy bevat 'n goeie versameling geheuekaarte vir die meeste LCD -groottes. Eerstens plaas ons die wyser op die tweede reël (4: 0x40). Vervolgens gryp die 'voeg teks' -makro ons insette en kopieer dit na die LCD. LCD> (4: 0x14) (8) (4: 0x54) (8) <<< veelvuldige makrosintaksis Voer teks in om by die wyserposisie in te voeg. Firmware v2.0+ <<< ons tik hierdie Tik teks om by die wyserposisie in te voeg. Gevaarlike prototipes <<Die Bus Pirate aanvaar verskeie makros op dieselfde reël, sodat die hele skerm tegelyk geskryf kan word. Ons het na die laaste twee reëls met 'n enkele sintaksisreël geskryf. Ons kan '(3) (4: 0) (8) (4: 0x40) (8) (4: 0x14) (8) (4: 0x54) gebruik (8) 'om die LCD skoon te maak en al vier reëls met 'n enkele sintaksisinskrywing te skryf.

Stap 8: Stap 6. Lees uit die LCD

Stap 6. Lees uit die LCD
Stap 6. Lees uit die LCD

Die Bus Pirate- en LCD -adapterbord kan vanaf die LCD gelees word. Ons lees die teks wat ons op die skerm geskryf het (DDRAM), maar u kan ook instellings en aangepaste karakterramme (CGRAM) lees deur die korrekte adres in te stel. LCD> [0b10000000 '' '<<< stel die leeswyser in' ' '] HD44780 RS LOW, COMMAND MODE <<< register select pin lowCMD SKRYF: 0x80 <<Eerstens sê ons vir die Bus Pirate om data na die LCD -opdragregister ([) te stuur. Vervolgens gebruik ons die ingestelde DDRAM -adresopdrag (0b1xxxxxxx) om die leeswyser aan die begin van die DDRAM te stel (xxxxxxx = 0000000).] LCD>] rrrrrrr <<< lees data geheueHD44780 RS HOOG, DATAMODUS <<< register kies pin highREAD: 0x48 <<< 'H'READ: 0x44 <<<' D'READ: 0x34 <<< '4'LES: 0x34 <<<' 4'LES: 0x37 <<< 7'LES: 0x38 < << '8'LES: 0x30 <<<' 0'LCD> Laastens, vertel die Bus Pirate om uit die data geheue (]) te lees, en lees dan 'n paar grepe (rrrrrrr). Ons het 'HD44780', die teks wat ons in stap 5. op die skerm geskryf het. U moet ook die kortpad r: 7 kan gebruik om sewe grepe te lees, maar dit werk nie in die huidige firmware nie - ons sal dit regmaak voordat die volgende uitgawe.

Stap 9: Meer doen

Meer doen
Meer doen

Gee 'n algemene beskrywing van die StepThe HD44780 karakter LCD -adapter is 'n handige bykomstigheid vir die Bus Pirate. Dit kan gebruik word vir 'n vinnige toets of meer gevorderde ontwikkeling van logika. Benewens LCD's, kan die agt I/O-penne van 2.5volt-5volt nuttig wees vir ander Bus Pirate-toepassings met 'n groot aantal pinne. Ons kan PCB's, kits, of saamgestelde kits vervaardig deur Seeed Studio vir ongeveer $ 15, insluitend wêreldwye aflewering, meer hier.

Aanbeveel: