Talaan ng mga Nilalaman:

HD44780 LCD sa I2C Adapter Board para sa Bus Pirate: 9 Mga Hakbang
HD44780 LCD sa I2C Adapter Board para sa Bus Pirate: 9 Mga Hakbang

Video: HD44780 LCD sa I2C Adapter Board para sa Bus Pirate: 9 Mga Hakbang

Video: HD44780 LCD sa I2C Adapter Board para sa Bus Pirate: 9 Mga Hakbang
Video: The Rabbits Hole - Part 2 2024, Nobyembre
Anonim
HD44780 LCD sa I2C Adapter Board para sa Bus Pirate
HD44780 LCD sa I2C Adapter Board para sa Bus Pirate
HD44780 LCD sa I2C Adapter Board para sa Bus Pirate
HD44780 LCD sa I2C Adapter Board para sa Bus Pirate

Ang mga murang karakter ng LCD batay sa chipset ng HD44780 ay may iba't ibang laki: 2x16, 4x20, atbp. Ang mga ipinapakitang ito ay mayroong dalawang karaniwang mode ng interface, 4bit at 8bit parallel. Ang 8bit ay nangangailangan ng isang kabuuang 11 mga linya ng data, ang 4bit ay nangangailangan ng 7 (6 para sa pagsulat lamang). Sinusuportahan ng ilang mga LCD ang isang karagdagang serial data mode, tulad ng VFD na saklaw ko sa Hack a Day. Ang mga HD44780 LCDs sa pangkalahatan ay mga bahagi ng 5volt na may isang hiwalay na supply para sa ilaw sa likuran. Ang Bus Pirate ay mayroon lamang limang 5volt tolerant na I / O pin, kaya gumawa kami ng isang maliit na adapter board na may sapat na mga pin upang makontrol ang LCD. Kinokontrol ng Bus Pirate ang adapter board sa pamamagitan ng library ng interface ng LCD. Patuloy na basahin ang tungkol sa Bus Pirate HD44780 character LCD adapter board at interface library. Maaari akong magkaroon ng mga PCB, kit, o assemble kit na ginawa ng Seeed Studio sa halagang $ 15, kabilang ang pagpapadala sa buong mundo, higit pa dito. Hindi ko maisama ang ilang mga elemento ng pag-format at mga talahanayan ng HTML sa isang Maituturo, maaari mong makita ang orihinal na post sa Dangerous Prototypes Blog.

Hakbang 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Pangkalahatang-ideya Sa artikulong ito binabalangkas namin ang isang board ng adapter ng I2C para sa mga LCD na nakabatay sa HD44780. Ipinapakita namin ito sa isang unibersal na serial interface ng Bus Pirate. Ang source code ng Bus Pirate para sa interface ng I2C na nakabatay sa HD44780 interface library ay pampublikong domain, kaya libre itong umangkop sa iyong sariling mga proyekto. Ang imahe ng circuit circuit na FullwareFull [PNG]. Ang circuit at PCB ay dinisenyo kasama ang libreng bersyon ng Cadsoft Eagle. Maaaring ma-download ang mga file ng disenyo mula sa Bus Pirate SVN. Bago gamitin ang adapter board, tiyaking i-verify ang datasheet para sa iyong LCD laban sa pinout ng adapter. Hindi lahat ng LCD ay pareho. PCF8574 I / O expander IC Ito ay isang simpleng 8 I / O expander chip na kinokontrol sa pamamagitan ng two-wire I2C interface. Ma-access ang interface ng I2C mula sa header JP1. Gumagana ang PCF8574 mula 2.5 hanggang 5volts. Ang mga I / O pin ay nagpapatakbo sa boltahe ng suplay, kaya't kung pakainin natin ito ng 5volts ay pinapasok nito ang LCD sa 5volts. Ang C1 (0.1uF) ay nagpapalabas ng IC mula sa mga pagbagu-bago sa supply ng kuryente. Ang isang pin ng PCF8574 ay kumokontrol sa isang 3mm LED (LED1) sa pamamagitan ng kasalukuyang nililimitahan ang risistor R2 (1000 ohms). Ang mga ilaw ng LED upang ipahiwatig ang matagumpay na komunikasyon sa pagitan ng Bus Pirate at ng adapter. Ang PCF8574 ay hindi maaaring mapagkukunan ng sapat na kasalukuyang upang mapagana ang LED, kaya pinapagana namin ang LED mula sa supply ng 5volt at ilipat ang lupa. LCD Ang board ng adaptor ay nakikipag-usap sa isang HD44780-based character LCD sa 4bit parallel interface mode. Ang 4bit interface pin - RS, RW, EN, at D4-D7 - ay konektado sa pito sa mga PCF8574 I / O pin. Nais naming gumamit ng 0.1 "male pin header upang ikonekta ang adapter sa isang LCD, karaniwang maaari mong isandal ang LCD laban sa mga pin upang lumikha ng sapat na contact para sa isang mabilis na pagsubok. Ang trimmer resistor R1 (10K) ay nagbibigay ng isang boltahe ng pagsasaayos ng kaibahan sa pin 3 ng ang LCD header. Hindi namin nakakonekta ang mga backlight pin dahil maraming iba't ibang mga estilo ng backlight. Ang pagbibigay ng lakas para sa isang LED backlight ay maaaring makapinsala sa isang screen na nangangailangan ng isang negatibong supply ng boltahe. Ang supply ng kuryente Karamihan sa mga LCD ay nangangailangan ng 5volts, magbigay ng isang panlabas na supply ng kuryente sa pamamagitan ng header JP2. Nagbigay kami ng pangalawang power supply pin upang ikonekta ang mga pull-up resistors ng Bus Pirate. PCB Ang circuit at PCB ay idinisenyo kasama ang libreng bersyon ng Cadsoft Eagle. Ang mga file ng disenyo ay maaaring ma-download mula sa Bus Pirate SVN. Ang PCB ay isang solong panig, lahat ng disenyo ng buong butas na may isang solong wire na lumulukso (ipinapakita sa pula). Maaari kaming magkaroon ng mga PCB, kit, o assemble kit na ginawa ng Seeed Studio para sa humigit-kumulang na $ 15, kabilang ang pagpapadala sa buong mundo, higit pa rito. Halaga ng Partlist Bahagi (lahat ng ika rough-hole) C10.1uF / 10volts + R110000 (10K) ohm single turn trimmer / potentiometer, 6mmR21000 (1K) ohm resistor, 1/4 wattLED13mm (T1) LED, redJP1 + JP20.1 "male header, 5 pinsIC1PCF8574N, 8bit Ang I2C I / O expander DIP16ICS116 pin DIP socket para sa IC1 Hindi ko maisama ang ilang mga elemento ng pag-format at mga talahanayan ng HTML sa isang Maaaring turuan, maaari mong makita ang orihinal na post sa blog na Dangerous Prototypes.

Hakbang 2: Mga Koneksyon

Mga koneksyon
Mga koneksyon

Device: HD44780 character LCD. Bus: 4bit parallel, na may PCF8574 I2C adapter board. Mga kinakailangan sa kapangyarihan: 5volts. Mga Sanggunian: halimbawa ng datasheet [PDF], sanggunian sa utos ng HD44780, HD44780 LCD uber-site. Kumpletuhin ang log ng Pirate ng session para sa demonstrasyong ito. dinisenyo ang adapter para sa LCD library ng unibersal na serial interface ng Bus Pirate, ngunit gagana ito sa anumang maaaring sabihin ang I2C protocol. Tingnan ang source code ng Bus Pirate para sa isang halimbawa ng pagpapatupad ng I2C-> HD44780. Ikonekta ang Pirate ng Bus sa adapter board tulad ng ipinakita sa talahanayan. Ipinapakita rin ng talahanayan ang mga hilaw na koneksyon sa PCF8574 IC kung sumusunod ka nang walang isang adapter board. Ikonekta ang adapter sa isang supply ng kuryente na sapat para sa LCD, sa pangkalahatan ay 5volts. Ang koneksyon sa I2C sa pagitan ng adapter at ng Bus Pirate ay nangangailangan ng mga pull-up resistors sa pagitan ng 2 at 10K. Narito ang higit pang impormasyon tungkol sa halo-halong boltahe na nakikipag-ugnay sa mga pull-up, at mga resistors ng board on-board na pull-up ng Bus. Hindi ko maisama ang ilang mga elemento ng pag-format at mga talahanayan ng HTML sa isang Maituturo, maaari mong makita ang orihinal na post sa blog na Dangerous Prototypes.

Hakbang 3: Hakbang 1. Setup Library

Hakbang 1. Setup Library
Hakbang 1. Setup Library

Sinasaklaw namin ang disenyo ng adapter at kung paano ito ikonekta sa Bus Pirate, oras na rin sa wakas upang magsulat ng isang bagay sa LCD. HiZ> m <<11 <<1 <<W <

p <<2 <<v <<< kumuha ng ulat ng boltaheVOLTAGE MONITOR: 5V: 4.9 | 3.3V: 3.3 | VPULLUP: 5.0 <<Pindutin ang 'm' sa terminal ng Bus Pirate at piliin ang LCD library. Kasalukuyan lamang itong sumusuporta sa mga LCD character na HD44780 gamit ang PFC8574 adapter na inilarawan sa unang kalahati ng artikulong ito (pagpipilian 1). Paganahin ang mga power supply (malaking 'W') at mga pull-up resistor (menu 'p'). Suriin ang monitor ng boltahe (menu 'v') at siguraduhin na ang boltahe ng pull-up (Vpullup) ay bumabasa sa paligid ng 5volts.

Hakbang 4: Hakbang 2. I-reset at Initialization

Hakbang 2. I-reset at Initialization
Hakbang 2. I-reset at Initialization
Hakbang 2. I-reset at Initialization
Hakbang 2. I-reset at Initialization

Binabalangkas ng talahanayan na ito ang mga solong-byte na utos na kumokontrol sa isang HD44780 LCD, narito ang isang detalyadong sanggunian. Ang mga utos na ito ay maaaring mailagay mula sa linya ng utos ng Bus Pirate, ngunit gumawa kami ng mga macros para sa karamihan sa kanila upang makatipid ng oras. LCD> (0) <<< ipakita ang menu ng macro0. Menu ng Macro <<< ang menu na ito. <i-reset ang LCD2. LCD ng LCD <<< i-reset at ipasimula ang LCD3. I-clear ang LCD <<< i-clear ang LCD, ibalik ang cursor sa 04. Posisyon ng kursor: (4: 0) <<< itakda ang cursor postion5. Isulat ang teksto ng pagsubok <<Ipinapakita ng Macro 0 ang macro menu para sa anumang mode ng Bus Pirate. LCD> (2) <<< ipasimula ang mga linya ng LCD macro Display: 1. 1 <<< solong pagpapakita ng linya2. Maramihang <<2 'RESET <<< kasama sa macro 2 ang isang reset na pagkakasunud-sunodINIT <<Ang inisyal na LCD macro (2) ay nag-configure ng screen para sa 4bit interface mode, nagbibigay-daan sa pagpapakita ng cursor, at nagtatakda ng ilang iba pang mga kapaki-pakinabang na pagpipilian. I-configure ang bilang ng mga linya ng pagpapakita, pumili ng 1 para sa isang solong pagpapakita ng linya, o 2 para sa lahat ng iba pang mga pagpapakita. Pagkatapos ng pagsisimula, dapat na malinaw ang screen na may isang cursor na nakikita sa sulok. Kung hindi ito gumana, suriin ang koneksyon ng I2C, mga pull-up resistor, at supply ng kuryente, pagkatapos ay subukang muli. Ang mga HD44780 LCDs ay kailangang i-reset gamit ang isang espesyal na pagkakasunud-sunod ng signal bago sila mapasimulan para sa 4bit o 8bit interface mode. Lumilikha ang Macro 1 ng pagkakasunud-sunod na ito. Kasama sa Macro 2 ang pagkakasunud-sunod ng pag-reset, kaya hindi na kailangang gumamit ng macro 1 bago ang macro 2.

Hakbang 5: Hakbang 3. Sumulat ng Mga Character sa Pagsubok

Hakbang 3. Sumulat ng Mga Character sa Pagsubok
Hakbang 3. Sumulat ng Mga Character sa Pagsubok
Hakbang 3. Sumulat ng Mga Character sa Pagsubok
Hakbang 3. Sumulat ng Mga Character sa Pagsubok

LCD> (6:80) <<Ang mga numero ng pagsulat na macro ay pinunan ang LCD ng mga numero ng pagsubok sa pagitan ng 0 at 9. Ang numero pagkatapos sabihin sa colon ang Bus Pirate kung gaano karaming mga numero ng pagsubok ang isusulat, gumagamit kami ng isang 4x20LCD, kaya nagsusulat kami ng 80 mga numero upang punan ito. Pansinin na ang cursor ay nagtatapos sa posisyon 0, sa ilalim ng unang '0'. LCD> (7:80) <<Pinupuno ng mga character na sulat ang macro ng LCD ng mga character na ASCII, ipasok ang dami pagkatapos ng colon. Pansinin na ang linya ng kamao ay nagpapatuloy sa pangatlo, ang pangatlo sa pangalawa, at ang pangalawa sa huli. Ang mga character ay hindi tuloy-tuloy dahil ang mga character na LCD ay hindi balot mula sa isang linya hanggang sa susunod. Pag-uusapan natin nang kaunti pa tungkol dito sa paglaon.

Hakbang 6: Hakbang 4. I-clear ang LCD

Hakbang 4. I-clear ang LCD
Hakbang 4. I-clear ang LCD

LCD> (3) <<Ang malinaw na LCD macro ay nagpapadala ng utos ng HD44780 na binubura ang screen at ibabalik ang cursor sa unang posisyon. Maaari mo ring gawin ang alinman sa mga operasyon na ito nang walang mga macros, sumangguni sa command table sa simula ng seksyong ito. Ipasok ang '[0b1' sa Bus Pirate upang maitakda ang interface sa command mode ([) at ipadala ang HD44780 clear screen command (0b00000001) nang walang isang macro.]

Hakbang 7: Hakbang 5. Mag-type ng Teksto

Hakbang 5. I-type ang Teksto
Hakbang 5. I-type ang Teksto
Hakbang 5. I-type ang Teksto
Hakbang 5. I-type ang Teksto

LCD> (8) <<< ipasok ang teksto ng gumagamit Magpasok ng teksto upang ipasok sa posisyon ng cursor. HD44780 LCD demo <<Matapos i-clear ang LCD sa hakbang 4, ang cursor ay nakaposisyon sa unang bloke. Maaari din nating itakda ito sa macro (4: 0), na inililipat ang cursor sa unang character. Ang insert na teksto sa cursor macro ay humihingi ng input ng teksto, at pagkatapos ay kopyahin ito sa LCD kapag pinindot mo ang enter. LCD> (4: 0x40) <& lt

LCD> (8) <<< magsingit ng teksto Magpasok ng teksto upang ipasok sa posisyon ng cursor. Bus Pirate v2go <<Ang pagsulat sa pangalawang linya ay medyo mas kumplikado, talagang nagsisimula ito sa character 64 sa isang 4x20 LCD. Kung nagpatuloy ka sa pagsusulat mula sa dulo ng linya 1 (character 20) pagkatapos ay magtatapos ka sa simula ng linya na tatlo! Ang pahinang ito ay may magandang koleksyon ng mga mapa ng memorya para sa karamihan ng mga laki ng LCD ng character. Una, pinoposisyon namin ang cursor sa pangalawang linya (4: 0x40). Susunod, kinukuha ng macro ng 'insert text' ang aming input at kinopya ito sa LCD. LCD> (4: 0x14) (8) (4: 0x54) (8) <<< maraming macro syntaxEnter na teksto upang ipasok sa posisyon ng cursor. Firmware v2.0 + <<< nai-type namin ito Ipasok ang teksto upang ipasok sa posisyon ng cursor. Mapanganib na Mga Prototype <<Tumatanggap ang Bus Pirate ng maraming mga macros sa parehong linya, kaya't ang buong screen ay maaaring maisulat nang sabay-sabay. Sumulat kami sa huling dalawang linya na may isang solong linya ng syntax. Maaari naming gamitin ang '(3) (4: 0) (8) (4: 0x40) (8) (4: 0x14) (8) (4: 0x54) (8) 'upang limasin ang LCD at isulat ang lahat ng apat na linya na may isang solong pagpasok ng syntax.

Hakbang 8: Hakbang 6. Pagbasa Mula sa LCD

Hakbang 6. Pagbasa Mula sa LCD
Hakbang 6. Pagbasa Mula sa LCD

Ang Bus Pirate at LCD adapter board ay maaaring basahin mula sa LCD. Basahin namin ang teksto na isinulat namin sa screen (DDRAM), ngunit maaari mo ring basahin ang mga setting at pasadyang character character (CGRAM) sa pamamagitan ng pagtatakda ng tamang address. LCD> [0b10000000 "" <<< itakda ang read pointer " '] HD44780 RS LOW, CommAND MODE <<< rehistro piliin ang pin mababaCMD WRITE: 0x80 <<Una, sinabi namin sa Bus Pirate na magpadala ng data sa LCD command register ([). Susunod, ginagamit namin ang itinakdang utos ng address ng DDRAM (0b1xxxxxxx) upang itakda ang nabasa na pointer sa simula ng DDRAM (xxxxxxx = 0000000).] LCD>] rrrrrrr <<< basahin ang memorya ng data pin highREAD: 0x48 <<< 'H'READ: 0x44 <<<' D'READ: 0x34 <<< '4'READ: 0x34 <<<' 4'READ: 0x37 <<< '7'READ: 0x38 < << '8'READ: 0x30 <<<' 0'LCD> Panghuli, sabihin sa Pirate ng Bus na basahin mula sa memorya ng data (]), at pagkatapos ay basahin ang ilang mga byte (rrrrrrr). Nakuha namin ang "HD44780", ang teksto na isinulat namin sa screen sa hakbang 5. Dapat mo ring magamit ang shortcut r: 7 upang mabasa ang pitong byte, ngunit hindi ito gumagana sa kasalukuyang firmware - ayusin namin ito bago ang susunod na paglaya.

Hakbang 9: Gumagawa ng Higit Pa

Gumagawa pa
Gumagawa pa

Magbigay ng isang pangkalahatang paglalarawan ng Hakbang Ang HD44780 character LCD adapter ay isang madaling gamiting gamit para sa Bus Pirate. Maaari itong magamit para sa isang mabilis na pagsubok, o mas advanced na pag-unlad ng lohika. Bilang karagdagan sa mga LCD, ang walong 2.5volt-5volt I / O na mga pin ay maaaring maging kapaki-pakinabang para sa iba pang mga mataas na pin-count na application ng Bus Pirate. Maaari kaming magkaroon ng mga PCB, kit, o binuo kit na ginawa ng Seeed Studio para sa humigit-kumulang na $ 15, kabilang ang pagpapadala sa buong mundo, higit dito. Hindi ko maisama ang ilang mga elemento ng pag-format at mga talahanayan ng HTML sa isang Maituturo, maaari mong makita ang orihinal na post sa blog na Dangerous Prototypes.

Inirerekumendang: