Inhoudsopgave:

HD44780 LCD-naar-I2C-adapterkaart voor de buspiraat - Ajarnpa
HD44780 LCD-naar-I2C-adapterkaart voor de buspiraat - Ajarnpa

Video: HD44780 LCD-naar-I2C-adapterkaart voor de buspiraat - Ajarnpa

Video: HD44780 LCD-naar-I2C-adapterkaart voor de buspiraat - Ajarnpa
Video: SKR 1.4 - I2C BlinkM 2024, November
Anonim
HD44780 LCD naar I2C-adapterkaart voor de buspiraat
HD44780 LCD naar I2C-adapterkaart voor de buspiraat
HD44780 LCD-naar-I2C-adapterkaart voor de buspiraat
HD44780 LCD-naar-I2C-adapterkaart voor de buspiraat

Goedkope karakter-LCD's op basis van de HD44780-chipset zijn verkrijgbaar in verschillende formaten: 2x16, 4x20, enz. Deze schermen hebben twee standaard interfacemodi, 4bit en 8bit parallel. 8bit vereist in totaal 11 datalijnen, 4bit vereist 7 (6 voor alleen-schrijven). Sommige LCD's ondersteunen een extra seriële datamodus, zoals de VFD die ik behandelde bij Hack a Day. HD44780 LCD's zijn over het algemeen 5 volt onderdelen met een aparte voeding voor de achtergrondverlichting. De Bus Pirate heeft slechts vijf 5 volt tolerante I/O-pinnen, dus hebben we een klein adapterbord gemaakt met voldoende pinnen om het LCD-scherm te bedienen. De Bus Pirate bestuurt de adapterkaart via zijn LCD-interfacebibliotheek. Lees verder over de Bus Pirate HD44780-karakter LCD-adapterkaart en interfacebibliotheek. Ik kan PCB's, kits of geassembleerde kits laten produceren door Seeed Studio voor ongeveer $ 15, inclusief wereldwijde verzending, meer hier. Ik kon sommige opmaakelementen en HTML-tabellen niet in een Instructable opnemen, je kunt het originele bericht zien op de Dangerous Prototypes blog.

Stap 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

OverzichtIn dit artikel schetsen we een I2C-adapterkaart voor op HD44780 gebaseerde LCD's. We demonstreren het met een Bus Pirate universele seriële interface. De Bus Pirate-broncode voor de I2C-gebaseerde HD44780-interfacebibliotheek is openbaar domein, dus het is gratis om aan te passen aan uw eigen projecten. Hardware Circuitafbeelding op volledige grootte [PNG]. Het circuit en de printplaat zijn ontworpen met de gratis versie van Cadsoft Eagle. De ontwerpbestanden kunnen worden gedownload van de Bus Pirate SVN. Controleer voordat u de adapterkaart gebruikt het gegevensblad voor uw LCD-scherm tegen de adapterpinout. Niet alle LCD's zijn hetzelfde. PCF8574 I/O-expander-IC Dit is een eenvoudige 8 I/O-expanderchip die wordt aangestuurd via de tweedraads I2C-interface. De I2C-interface is toegankelijk vanaf header JP1. De PCF8574 werkt van 2,5 tot 5 volt. De I/O-pinnen werken op de voedingsspanning, dus als we het 5 volt voeden, wordt het op het LCD-scherm aangesloten op 5 volt. C1 (0.1uF) ontkoppelt het IC van schommelingen in de voeding. Eén pin van de PCF8574 stuurt een 3 mm LED (LED1) aan via stroombegrenzende weerstand R2 (1000 ohm). De LED licht op om een succesvolle communicatie tussen de Bus Pirate en de adapter aan te geven. De PCF8574 kan niet genoeg stroom leveren om de LED van stroom te voorzien, dus we voeden de LED van de 5 volt voeding en schakelen de aarde om. LCD De adapterkaart communiceert met een op HD44780 gebaseerde karakter-LCD in 4-bits parallelle interface-modus. De 4-bits interface-pinnen - RS, RW, EN en D4-D7 - zijn verbonden met zeven van de PCF8574 I/O-pinnen. We gebruiken graag 0,1" mannelijke pin-header om de adapter op een LCD aan te sluiten, meestal kunt u de LCD tegen de pinnen leunen om voldoende contact te maken voor een snelle test. Trimmerweerstand R1 (10K) zorgt voor een contrastaanpassingsspanning op pin 3 van de LCD-header. We hebben de pinnen van de achtergrondverlichting niet aangesloten omdat er zoveel verschillende achtergrondverlichtingsstijlen zijn. Het verstrekken van stroom voor een LED-achtergrondverlichting kan een scherm beschadigen dat een negatieve spanningstoevoer nodig heeft. Voeding De meeste LCD's hebben 5 volt nodig, bieden een externe voeding via header JP2. We hebben een tweede voedingspin geleverd om de pull-up-weerstanden van de Bus Pirate aan te sluiten. PCB Het circuit en de PCB zijn ontworpen met de gratis versie van Cadsoft Eagle. De ontwerpbestanden kunnen worden gedownload van de Bus Pirate SVN. De PCB is een enkelzijdig ontwerp met doorlopende gaten en een enkele jumperdraad (in rood weergegeven). We kunnen PCB's, kits of geassembleerde kits laten produceren door Seeed Studio voor ongeveer $ 15, inclusief wereldwijde verzending, meer hier. al de ruw gat) C10.1uF/10volts+R110000 (10K) ohm enkele draai trimmer/potentiometer, 6mmR21000 (1K) ohm weerstand, 1/4 wattLED13mm (T1) LED, rode JP1+JP20.1" mannelijke header, 5 pinsIC1PCF8574N, 8bit I2C I/O-uitbreiding DIP16ICS116 pin DIP-socket voor IC1Ik kon sommige opmaakelementen en HTML-tabellen niet in een Instructable opnemen, je kunt het originele bericht zien op de Dangerous Prototypes-blog.

Stap 2: Aansluitingen

Verbindingen
Verbindingen

Apparaat: HD44780 karakters LCD. Bus: 4bit parallel, met PCF8574 I2C-adapterkaart. Voedingsvereisten: 5volts. Referenties:voorbeeld datasheet [PDF], HD44780 opdrachtreferentie, HD44780 LCD uber-site. Compleet Bus Pirate-sessielogboek voor deze demonstratie. We ontwierp de adapter voor de LCD-bibliotheek van de Bus Pirate universele seriële interface, maar hij werkt met alles dat het I2C-protocol kan spreken. Bekijk de Bus Pirate broncode voor een voorbeeld I2C->HD44780 implementatie. Sluit de Bus Pirate aan op de adapterkaart zoals getoond in de tabel. De tabel toont ook de onbewerkte verbindingen met de PCF8574 IC als je verder gaat zonder een adapterkaart. Sluit de adapter aan op een voeding die voldoende is voor het LCD-scherm, meestal 5 volt. De I2C verbinding tussen de adapter en de Bus Pirate vereist pull-up weerstanden tussen 2 en 10K. Hier is meer informatie over interfacing met gemengde spanning met pull-ups en de Bus Pirate on-board pull-up-weerstanden..

Stap 3: Stap 1. Bibliotheek instellen

Stap 1. Bibliotheek instellen
Stap 1. Bibliotheek instellen

Interface We hebben het ontwerp van de adapter besproken en hoe deze op de Bus Pirate aan te sluiten, nu is het eindelijk tijd om iets naar het LCD-scherm te schrijven. HiZ>m <<11 <<1 <<W <

p <<2 <<v <<<spanningsrapport ophalen VOLTAGE MONITOR: 5V: 4.9 | 3.3V: 3.3 | VPULLUP: 5.0 <<Druk op 'm' in de Bus Pirate-terminal en kies de LCD-bibliotheek. Het ondersteunt momenteel alleen HD44780 karakter LCD's met behulp van de PFC8574 adapter beschreven in de eerste helft van dit artikel (optie 1). Schakel de voedingen (grote 'W') en pull-up weerstanden in (menu 'p'). Controleer de spanningsmonitor (menu 'v') en zorg ervoor dat de optrekspanning (Vpullup) rond de 5 volt ligt.

Stap 4: Stap 2. Reset en initialisatie

Stap 2. Reset en initialisatie
Stap 2. Reset en initialisatie
Stap 2. Reset en initialisatie
Stap 2. Reset en initialisatie

Deze tabel geeft een overzicht van de enkelbyte-commando's die een HD44780 LCD besturen, hier is een gedetailleerde referentie. Deze commando's kunnen worden ingevoerd vanaf de Bus Pirate-opdrachtregel, maar voor de meeste hebben we macro's gemaakt om tijd te besparen. LCD>(0) <<<toon macromenu0. Macromenu <<<dit menu1. LCD Reset << <reset de LCD2. Init LCD <<<reset en initialiseer de LCD3. Clear LCD <<<clear LCD, breng cursor terug naar 04. Cursorpositie bijv:(4:0) <<<set cursorpositie5. Schrijf testtekst <<Macro 0 geeft het macromenu weer voor elke Bus Pirate-modus. LCD>(2) <<<initialiseer LCD-macro Displayregels:1. 1 <<<éénregelige weergave2. Meerdere <<2 ' RESET <<<macro 2 bevat een reset-sequentieINIT <<De macro LCD initialiseren (2) configureert het scherm voor 4-bits interface-modus, maakt cursorweergave mogelijk en stelt een paar andere handige opties in. Configureer het aantal displayregels, kies 1 voor een enkele regeldisplay of 2 voor alle andere displays. Na initialisatie moet het scherm duidelijk zijn met een cursor in de hoek. Als het niet werkt, controleer dan de I2C-verbinding, pull-up-weerstanden en voeding en probeer het opnieuw. HD44780 LCD's moeten worden gereset met een speciale signaalsequentie voordat ze kunnen worden geïnitialiseerd voor de 4-bits of 8bit-interfacemodus. Macro 1 maakt deze reeks. Macro 2 bevat de reset-sequentie, dus het is niet nodig om macro 1 vóór macro 2 te gebruiken.

Stap 5: Stap 3. Testkarakters schrijven

Stap 3. Testkarakters schrijven
Stap 3. Testkarakters schrijven
Stap 3. Testkarakters schrijven
Stap 3. Testkarakters schrijven

LCD>(6:80) <<De macro voor het schrijven van nummers vult het LCD-scherm met testnummers tussen 0 en 9. Het nummer na de dubbele punt vertelt de Bus Pirate hoeveel testnummers hij moet schrijven, we gebruiken een 4x20LCD, dus we schrijven 80 nummers om het te vullen. Merk op dat de cursor eindigt op positie 0, onder de eerste '0'. LCD>(7:80) <<De macro voor het schrijven van tekens vult het LCD-scherm met ASCII-tekens, voer het aantal in na de dubbele punt. Merk op dat de eerste lijn doorgaat op de derde, de derde op de tweede en de tweede op de laatste. De karakters zijn niet doorlopend omdat de karakter-LCD's niet van de ene regel naar de volgende lopen. We zullen hier later wat meer over praten.

Stap 6: Stap 4. LCD wissen

Stap 4. LCD wissen
Stap 4. LCD wissen

LCD>(3) <<De duidelijke LCD-macro verzendt het HD44780-commando dat het scherm wist en de cursor terugbrengt naar de eerste positie. U kunt elk van deze bewerkingen ook zonder de macro's uitvoeren, raadpleeg de opdrachtentabel aan het begin van dit gedeelte. Voer '[0b1' in de Bus Pirate in om de interface in de commandomodus ([) te zetten en stuur het HD44780 clear screen commando (0b00000001) zonder een macro.]

Stap 7: Stap 5. Typ tekst

Stap 5. Typ tekst
Stap 5. Typ tekst
Stap 5. Typ tekst
Stap 5. Typ tekst

LCD>(8) <<<insert user textVoer tekst in om op de cursorpositie in te voegen. HD44780 LCD-demo <<Na het wissen van het LCD-scherm in stap 4, wordt de cursor op het eerste blok geplaatst. We kunnen het ook instellen met de macro (4:0), die de cursor naar het eerste teken verplaatst. De macro voor tekst invoegen bij cursor vraagt om tekstinvoer en kopieert het vervolgens naar het LCD-scherm wanneer u op enter drukt. LCD>(4:0x40) <&lt

LCD>(8) <<<tekst invoegenVoer tekst in om op de cursorpositie in te voegen. Bus Pirate v2go <<Schrijven naar de tweede regel is iets ingewikkelder, het begint eigenlijk bij teken 64 op een 4x20 LCD. Als je doorgaat met schrijven vanaf het einde van regel 1 (teken 20) dan kom je aan het begin van regel drie! Deze pagina heeft een mooie verzameling geheugenkaarten voor de meeste LCD-formaten van tekens. Eerst plaatsen we de cursor op de tweede regel (4:0x40). Vervolgens pakt de macro 'tekst invoegen' onze invoer en kopieert deze naar het LCD-scherm. LCD>(4:0x14)(8)(4:0x54)(8) <<<syntaxis van meerdere macro'sVoer tekst in om in te voegen op de cursorpositie. Firmware v2.0+ <<<we hebben dit getyptVoer tekst in om op de cursorpositie in te voegen. DangerousPrototypes <<De Bus Pirate accepteert meerdere macro's op dezelfde regel, dus het hele scherm kan in één keer worden geschreven. We schreven naar de laatste twee regels met een enkele syntaxisregel. We zouden '(3)(4:0)(8)(4:0x40)(8)(4:0x14)(8)(4:0x54) kunnen gebruiken (8)' om het LCD-scherm leeg te maken en alle vier de regels te schrijven met een enkele syntaxisinvoer.

Stap 8: Stap 6. Lezen van het LCD-scherm

Stap 6. Lezen van het LCD-scherm
Stap 6. Lezen van het LCD-scherm

De Bus Pirate en LCD-adapterkaart kunnen van het LCD-scherm lezen. We lezen de tekst die we op het scherm hebben geschreven (DDRAM), maar je kunt ook instellingen en aangepaste karakterram (CGRAM) lezen door het juiste adres in te stellen. LCD>[0b10000000 '''<<<set the read pointer'' ']HD44780 RS LOW, COMMAND MODE <<<register select pin lowCMD SCHRIJF: 0x80 <<Eerst vertellen we de Bus Pirate om gegevens naar het LCD-commandoregister ([) te sturen. Vervolgens gebruiken we het set DDRAM address commando (0b1xxxxxxx) om de leeswijzer naar het begin van de DDRAM te zetten (xxxxxxx=0000000).]LCD>]rrrrrrr <<<read data memoryHD44780 RS HIGH, DATA MODE <<<register select pin highREAD: 0x48 <<< 'H'READ: 0x44 <<< 'D'READ: 0x34 <<< '4'READ: 0x34 <<< '4'LEES: 0x37 <<< '7'LEES: 0x38 < << '8'READ: 0x30 <<< '0'LCD>Tot slot, vertel de Bus Pirate om uit het datageheugen te lezen (]), en lees dan een paar bytes (rrrrrrr). We hebben "HD44780", de tekst die we in stap 5 op het scherm hebben geschreven. Je zou ook de sneltoets r:7 moeten kunnen gebruiken om zeven bytes te lezen, maar het werkt niet in de huidige firmware - we zullen dit oplossen voordat de volgende uitgave.

Stap 9: Meer doen

Meer doen
Meer doen

Geef een algemene beschrijving van de StepDe HD44780 karakter LCD adapter is een handig accessoire voor de Bus Pirate. Het kan worden gebruikt voor een snelle test of meer geavanceerde logica-ontwikkeling. Naast LCD's kunnen de acht 2,5 volt-5 volt I/O-pinnen nuttig zijn voor andere Bus Pirate-toepassingen met een hoog pin-aantal. We kunnen PCB's, kits, of geassembleerde kits geproduceerd door Seeed Studio voor ongeveer $ 15, inclusief wereldwijde verzending, meer hier. Ik kon sommige opmaakelementen en HTML-tabellen niet opnemen in een Instructable, je kunt het originele bericht zien op de Dangerous Prototypes-blog.

Aanbevolen: