Obsah:

Deska adaptéru HD44780 LCD na I2C pro sběrnici Pirate: 9 kroků
Deska adaptéru HD44780 LCD na I2C pro sběrnici Pirate: 9 kroků

Video: Deska adaptéru HD44780 LCD na I2C pro sběrnici Pirate: 9 kroků

Video: Deska adaptéru HD44780 LCD na I2C pro sběrnici Pirate: 9 kroků
Video: Výroční speciál Iklonovy patlaniny - Digitální přehrávač zvuků s Arduinem 1.část (w/ Trix) 2024, Listopad
Anonim
Deska adaptéru HD44780 LCD na I2C pro sběrnici Pirate
Deska adaptéru HD44780 LCD na I2C pro sběrnici Pirate
Deska adaptéru HD44780 LCD na I2C pro sběrnici Pirate
Deska adaptéru HD44780 LCD na I2C pro sběrnici Pirate

Levné LCD displeje založené na čipové sadě HD44780 se dodávají v různých velikostech: 2x16, 4x20 atd. Tyto displeje mají dva standardní režimy rozhraní, 4bitové a 8bitové paralelní. 8bit vyžaduje celkem 11 datových linek, 4bit vyžaduje 7 (6 pouze pro zápis). Některé LCD displeje podporují další režim sériových dat, jako například VFD, který jsem pokryl na Hack a Day. Displeje HD44780 jsou obecně 5voltové díly se samostatným napájením pro zadní světlo. Bus Pirate má pouze pět 5voltových tolerantních I/O pinů, proto jsme vytvořili malou desku adaptéru s dostatečným počtem pinů pro ovládání LCD. Bus Pirate ovládá desku adaptéru prostřednictvím své knihovny rozhraní LCD. Pokračujte ve čtení o desce LCD adaptéru Bus Pirate HD44780 a knihovně rozhraní. Mohu mít PCB, soupravy nebo sestavené soupravy vyrobené společností Seeed Studio za přibližně 15 USD, včetně celosvětové dopravy, více zde. Některé instrukce pro formátování a tabulky HTML jsem do Instructable nemohl zahrnout, původní příspěvek můžete vidět na Dangerous Prototypes blog.

Krok 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Přehled V tomto článku nastíníme desku adaptéru I2C pro displeje HD44780. Předvádíme to pomocí univerzálního sériového rozhraní Bus Pirate. Zdrojový kód Bus Pirate pro knihovnu rozhraní HD44780 na bázi I2C je veřejnou doménou, takže se můžete volně přizpůsobit svým vlastním projektům. Obrázek obvodu s plnou velikostí hardwaru [PNG]. Obvod a PCB byly navrženy s bezplatnou verzí Cadsoft Eagle. Soubory návrhu lze stáhnout z Bus Pirate SVN. Před použitím desky adaptéru si ověřte datový list displeje LCD vůči vývodu adaptéru. Ne všechny LCD jsou stejné. PCF8574 I/O expandér IC Jedná se o jednoduchý 8 I/O expandér, který je řízen prostřednictvím dvouvodičového rozhraní I2C. Rozhraní I2C je přístupné z hlavičky JP1. PCF8574 pracuje od 2,5 do 5 voltů. I/O piny pracují na napájecím napětí, takže pokud jej napájíme 5 volty, propojí LCD s 5 volty. C1 (0,1uF) odděluje IC od kolísání napájecího zdroje. Jeden pin PCF8574 ovládá 3mm LED (LED1) přes odpor omezující proud R2 (1000 ohmů). LED dioda indikuje úspěšnou komunikaci mezi Bus Pirate a adaptérem. PCF8574 nemůže dodávat dostatek proudu k napájení LED, takže napájíme LED z 5voltového zdroje a přepneme uzemnění. LCD Deska adaptéru komunikuje se znakovým LCD displejem založeným na HD44780 v režimu 4bitového paralelního rozhraní. 4bitové piny rozhraní - RS, RW, EN a D4 -D7 - jsou připojeny k sedmi I/O pinům PCF8574. Rádi používáme 0,1 "zástrčku pinů pro připojení adaptéru k LCD, obvykle můžete LCD opřít o kolíky, abyste vytvořili dostatečný kontakt pro rychlý test. Rezistor trimru R1 (10K) poskytuje napětí pro nastavení kontrastu na pinu 3 Záhlaví LCD. Nepřipojili jsme piny podsvícení, protože existuje tolik různých stylů podsvícení. Poskytnutí napájení pro podsvícení LED může poškodit obrazovku, která vyžaduje záporné napětí. Napájení Většina LCD vyžaduje 5 voltů, externí zdroj záhlaví JP2. Poskytli jsme druhý napájecí kolík pro připojení výsuvných odporů Bus Pirate. PCB Obvod a PCB byly navrženy s bezplatnou verzí Cadsoft Eagle. Soubory návrhů lze stáhnout z Bus Pirate SVN. PCB je jednostranný design s průchozím otvorem s jediným propojovacím drátem (zobrazeno červeně). Můžeme mít desky plošných spojů, soupravy nebo sestavené soupravy vyráběné společností Seeed Studio za přibližně 15 USD, včetně celosvětové dopravy, více zde. Partlist Part Value (všechny hrubý otvor) C10.1uF/10voltů+R110000 (10K) ohm jednootáčkový trimr/potenciometr, 6mmR21000 (1K) ohmový rezistor, 1/4 watt LED LED 13mm (T1), červený konektor JPJ+JP20,1 ", 5 pinůIC1PCF8574N, 8bit I2C I/O expander DIP16ICS116 pin DIP socket pro IC1I nemohl obsahovat některé formátovací prvky a HTML tabulky v Instructable, původní příspěvek můžete vidět na blogu Dangerous Prototypes.

Krok 2: Připojení

Připojení
Připojení

Zařízení: LCD s rozlišením HD44780. Autobus: 4bitový paralelní, s deskou adaptéru PCF8574 I2C. Požadavky na napájení: 5 voltů. Reference: příklad datového listu [PDF], reference příkazu HD44780, HD44780 LCD uber-site. Kompletní protokol relace Bus Pirate pro tuto ukázku. navrhl adaptér pro knihovnu LCD univerzálního sériového rozhraní Bus Pirate, ale bude fungovat s čímkoli, co dokáže mluvit protokolem I2C. Podívejte se na zdrojový kód Bus Pirate pro příklad implementace I2C-> HD44780. Připojte Bus Pirate k desce adaptéru, jak je uvedeno v tabulce. Tabulka také ukazuje nezpracovaná připojení k IC PCF8574, pokud se řídíte bez desky adaptéru. Připojte adaptér k napájení dostatečnému pro LCD, obvykle 5 voltů. Připojení I2C mezi adaptérem a sběrnicí Pirate vyžaduje stahovací odpory mezi 2 a 10 K. Zde jsou další informace o rozhraní se smíšeným napětím s výsuvy a palubních výsuvných odporech Bus Pirate. Některé prvky formátování a tabulky HTML jsem do Instructable zahrnout nemohl, původní příspěvek můžete vidět na blogu Dangerous Prototypes.

Krok 3: Krok 1. Nastavení knihovny

Krok 1. Nastavení knihovny
Krok 1. Nastavení knihovny

Rozhraní Rozebrali jsme návrh adaptéru a jeho připojení k Bus Pirate, nyní je konečně čas něco napsat na LCD. HiZ> m <<11 <<1 <<W <

p <<2 <<v <<< získat hlášení o napětíMONITOR NAPĚTÍ: 5V: 4,9 | 3,3 V: 3,3 | VPULLUP: 5,0 <<Na terminálu Bus Pirate stiskněte 'm' a vyberte knihovnu LCD. V současné době podporuje pouze znakové LCD HD44780 pomocí adaptéru PFC8574 popsaného v první polovině tohoto článku (možnost 1). Povolte napájecí zdroje (velké 'W') a výsuvné odpory (nabídka 'p'). Zkontrolujte monitor napětí (nabídka „v“) a ujistěte se, že napětí (Vpullup) dosahuje přibližně 5 voltů.

Krok 4: Krok 2. Reset a inicializace

Krok 2. Reset a inicializace
Krok 2. Reset a inicializace
Krok 2. Reset a inicializace
Krok 2. Reset a inicializace

Tato tabulka popisuje jednobajtové příkazy, které ovládají LCD HD44780, zde je podrobný odkaz. Tyto příkazy lze zadávat z příkazového řádku Bus Pirate, ale pro většinu z nich jsme vytvořili makra, abychom ušetřili čas. LCD> (0) <<< zobrazit nabídku maker0. Makro menu <<< toto menu1. LCD Reset << <resetujte LCD2. Zapněte LCD <<< resetujte a inicializujte LCD3. Čistý LCD <<< čistý LCD, vraťte kurzor na 04. Pozice kurzoru ex: (4: 0) <<< nastavte pozici kurzoru 5. Napište testovací text <<Makro 0 zobrazí nabídku makra pro jakýkoli režim Bus Pirate. LCD> (2) <<< inicializuje LCD makro Řádky zobrazení: 1. 1 <<< jednořádkový displej 2. Několik <<2 'RESET <<< makro 2 obsahuje sekvenci resetování INIT <<Makro inicializace LCD (2) konfiguruje obrazovku pro režim 4bitového rozhraní, umožňuje zobrazení kurzoru a nastavuje několik dalších užitečných možností. Nakonfigurujte počet řádků displeje, vyberte 1 pro jednořádkový displej nebo 2 pro všechny ostatní displeje. Po inicializaci by měla být obrazovka čistá s kurzorem viditelným v rohu. Pokud to nefungovalo, zkontrolujte připojení I2C, výsuvné odpory a napájení a zkuste to znovu. LCD displeje HD44780 je třeba před inicializací pro režim 4bitového nebo 8bitového rozhraní resetovat pomocí speciální sledu signálů. Makro 1 vytvoří tuto sekvenci. Makro 2 obsahuje sekvenci resetování, takže před makrem 2 není nutné používat makro 1.

Krok 5: Krok 3. Napište testovací znaky

Krok 3. Napište testovací znaky
Krok 3. Napište testovací znaky
Krok 3. Napište testovací znaky
Krok 3. Napište testovací znaky

LCD> (6:80) <<Makro pro zápis čísel zaplní LCD testovacími čísly mezi 0 a 9. Číslo za dvojtečkou říká Bus Pirate, kolik testovacích čísel má zapsat, používáme 4x20LCD, takže napíšeme 80 čísel, abychom ji vyplnili. Všimněte si, že kurzor končí na pozici 0 pod první '0'. LCD> (7:80) <<Makro pro zápis znaků zaplní LCD znaky ASCII, zadejte množství za dvojtečkou. Všimněte si, že první linie pokračuje na třetí, třetí na druhou a druhá na poslední. Znaky nejsou souvislé, protože LCD displeje znaků se nezalamují z jednoho řádku na druhý. O tom si povíme trochu více později.

Krok 6: Krok 4. Vymažte LCD

Krok 4. Vymažte LCD
Krok 4. Vymažte LCD

LCD> (3) <<Makro pro jasný LCD odešle příkaz HD44780, který vymaže obrazovku a vrátí kurzor na první pozici. Všechny tyto operace můžete provádět i bez maker, viz tabulka příkazů na začátku této části. V Bus Pirate zadejte „[0b1“, čímž nastavíte rozhraní do příkazového režimu ([) a odešlete příkaz pro vymazání obrazovky HD44780 (0b00000001) bez makra.]

Krok 7: Krok 5. Zadejte text

Krok 5. Zadejte text
Krok 5. Zadejte text
Krok 5. Zadejte text
Krok 5. Zadejte text

LCD> (8) <<< vložit uživatelský text Zadejte text, který chcete vložit na pozici kurzoru. HD44780 LCD ukázka <<Po vymazání displeje LCD v kroku 4 je kurzor umístěn v prvním bloku. Mohli bychom to také nastavit pomocí makra (4: 0), které přesune kurzor na první znak. Vložit text do makra kurzoru požádá o zadání textu a poté jej zkopíruje na LCD, když stisknete Enter. LCD> (4: 0x40) <& lt

LCD> (8) <<< vložit text Zadejte text, který chcete vložit na pozici kurzoru. Bus Pirate v2go <<Zápis do druhého řádku je trochu komplikovanější, ve skutečnosti začíná znakem 64 na LCD 4x20. Pokud budete pokračovat v psaní od konce řádku 1 (znak 20), skončíte na začátku řádku tři! Tato stránka má pěknou sbírku paměťových map pro většinu velikostí znaků LCD. Nejprve umístíme kurzor na druhý řádek (4: 0x40). Dále makro 'vložte text' uchopí náš vstup a zkopíruje jej na LCD. LCD> (4: 0x14) (8) (4: 0x54) (8) <<< více syntaxe makra Zadejte text, který chcete vložit na pozici kurzoru. Firmware v2.0+ <<< zadali jsme tentoEnter text pro vložení na pozici kurzoru. DangerousPrototypes <<Bus Pirate přijímá více maker na stejném řádku, takže lze zapsat celou obrazovku najednou. Do posledních dvou řádků jsme zapsali jeden řádek syntaxe. Mohli bychom použít '(3) (4: 0) (8) (4: 0x40) (8) (4: 0x14) (8) (4: 0x54) (8) 'pro vymazání displeje LCD a zápis všech čtyř řádků jediným záznamem syntaxe.

Krok 8: Krok 6. Čtení z LCD

Krok 6. Čtení z LCD
Krok 6. Čtení z LCD

Deska adaptéru Bus Pirate a LCD může číst z displeje LCD. Přečteme text, který jsme napsali na obrazovku (DDRAM), ale můžete také číst nastavení a vlastní znakový RAM (CGRAM) nastavením správné adresy. LCD> [0b10000000 '' '<<< nastavit ukazatel čtení' ' '] HD44780 RS NÍZKÝ, PŘÍKAZOVÝ REŽIM <<< registr vyberte pin lowCMD WRITE: 0x80 <<Nejprve řekneme Bus Pirate, aby odeslal data do příkazového registru LCD ([). Dále použijeme příkaz set DDRAM address address (0b1xxxxxxx) pro nastavení ukazatele čtení na začátek DDRAM (xxxxxxx = 0000000).] LCD>] rrrrrrr <<< čtení datové pamětiHD44780 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> Nakonec řekněte Bus Pirate, aby četl z datové paměti (]), a poté přečtěte několik bajtů (rrrrrrr). Dostali jsme „HD44780“, text, který jsme napsali na obrazovku v kroku 5. Měli byste také umět použít zkratku r: 7 pro čtení sedmi bajtů, ale v aktuálním firmwaru to nefunguje - opravíme to před další vydání.

Krok 9: Dělejte víc

Dělat víc
Dělat víc

Uveďte obecný popis Stepu Znakový adaptér LCD HD44780 je praktickým doplňkem pro Bus Pirate. Lze jej použít k rychlému testu nebo pokročilejšímu vývoji logiky. Kromě LCD může být osm 2,5voltových-5voltových I/O pinů užitečné i pro jiné aplikace Bus Pirate s vysokým počtem pinů. Můžeme mít PCB, soupravy, nebo sestavené sady vyráběné společností Seeed Studio za zhruba 15 $, včetně celosvětové dopravy, více zde. Některé prvky formátování a tabulky HTML jsem do Instructable zahrnout nemohl, původní příspěvek můžete vidět na blogu Dangerous Prototypes.

Doporučuje: