Innehållsförteckning:

HD44780 LCD till I2C adapterkort för busspiraten: 9 steg
HD44780 LCD till I2C adapterkort för busspiraten: 9 steg

Video: HD44780 LCD till I2C adapterkort för busspiraten: 9 steg

Video: HD44780 LCD till I2C adapterkort för busspiraten: 9 steg
Video: How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial 2024, November
Anonim
HD44780 LCD till I2C adapterkort för busspiraten
HD44780 LCD till I2C adapterkort för busspiraten
HD44780 LCD till I2C adapterkort för busspiraten
HD44780 LCD till I2C adapterkort för busspiraten

Billiga LCD -skärmar baserade på HD44780 -chipset finns i olika storlekar: 2x16, 4x20, etc. Dessa skärmar har två standardgränssnittslägen, 4bit och 8bit parallell. 8bit kräver totalt 11 datarader, 4bit kräver 7 (6 för skrivskydd). Vissa LCD -skärmar stöder ytterligare ett seriellt dataläge, som VFD som jag täckte vid Hack a Day. HD44780 LCD -skärmar är i allmänhet 5 volts delar med separat matning för bakgrundsbelysningen. Bus Pirate har bara fem 5 volt toleranta I/O -stift, så vi gjorde ett litet adapterkort med tillräckligt med stift för att styra LCD -skärmen. Bus Pirate styr adapterkortet genom sitt LCD -gränssnittsbibliotek. Fortsätt läsa om Bus Pirate HD44780 tecken LCD -adapterkort och gränssnittsbibliotek. Jag kan ha PCB, kit eller monterade kit som produceras av Seeed Studio för cirka $ 15, inklusive världsomspännande frakt, mer här. blogg.

Steg 1: Hårdvara

Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara

Översikt I denna artikel beskriver vi ett I2C-adapterkort för HD44780-baserade LCD-skärmar. Vi demonstrerar det med ett universellt seriellt gränssnitt för Bus Pirate. Bus Pirate-källkoden för det I2C-baserade gränssnittsbiblioteket HD44780 är offentligt område, så det är gratis att anpassa sig till dina egna projekt. HardwareFullstorlekskretsbild [PNG]. Kretsen och kretskortet utformades med den kostnadsfria versionen av Cadsoft Eagle. Designfilerna kan laddas ner från Bus Pirate SVN. Innan du använder adapterkortet, se till att verifiera databladet för din LCD mot adapternas uttag. Alla LCD -skärmar är inte desamma. PCF8574 I/O expander IC Detta är ett enkelt 8 I/O expanderchip som styrs via det tvåtrådiga I2C-gränssnittet. I2C -gränssnittet är tillgängligt från rubrik JP1. PCF8574 fungerar från 2,5 till 5 volt. I/O -stiften fungerar med matningsspänningen, så om vi matar den 5 volt gränsar LCD -skärmen till 5 volt. C1 (0.1uF) frikopplar IC från fluktuationer i strömförsörjningen. Ett stift på PCF8574 styr en 3 mm LED (LED1) genom strömbegränsande motstånd R2 (1000 ohm). Lysdioden lyser för att indikera framgångsrik kommunikation mellan Bus Pirate och adaptern. PCF8574 kan inte få tillräckligt med ström för att driva lysdioden, så vi driver lysdioden från 5 volt -strömförsörjningen och byter marken. LCD Adapterkortet kommunicerar med en HD44780-baserad tecken-LCD i 4-bitars parallellt gränssnittsläge. 4 -bitars gränssnittsstiften - RS, RW, EN och D4 -D7 - är anslutna till sju av PCF8574 I/O -stiften. Vi gillar att använda 0,1 "hanstifthuvud för att ansluta adaptern till en LCD -skärm, du kan vanligtvis luta LCD -skärmen mot stiften för att skapa tillräcklig kontakt för ett snabbt test. Trimmotstånd R1 (10K) ger en kontrastjusteringsspänning till stift 3 på LCD -rubriken. Vi anslöt inte bakgrundsbelysningstapparna eftersom det finns så många olika bakgrundsbelysningssätt. Att ge ström till en LED -bakgrundsbelysning kan skada en skärm som kräver negativ spänning. Strömförsörjning De flesta LCD -skärmar kräver 5 volt, ger extern strömförsörjning genom rubrik JP2. Vi tillhandahåller en andra strömförsörjningsstift för att ansluta Bus Pirates uppdragsmotstånd. Kretskortet och kretskortet har utformats med gratisversionen av Cadsoft Eagle. Designfilerna kan laddas ner från Bus Pirate SVN. Kretskortet är en enkelsidig, genomgående hålsdesign med en enda bygeltråd (visas i rött). Vi kan ha kretskort, kit eller monterade kit tillverkade av Seeed Studio för cirka $ 15, inklusive världsomfattande frakt, mer här. Partlist Part Value (alla th grovhål) C10.1uF/10volt+R110000 (10K) ohm enkelvarvig trimmer/potentiometer, 6mmR21000 (1K) ohm-motstånd, 1/4 watt LED13mm (T1) LED, rödJP1+JP20.1 "hanrubrik, 5 stiftIC1PCF8574N, 8bit I2C I/O -expander DIP16ICS116 -stifts DIP -uttag för IC1I kunde inte inkludera några formateringselement och HTML -tabeller i en Instructable, du kan se det ursprungliga inlägget på bloggen Dangerous Prototypes.

Steg 2: Anslutningar

Anslutningar
Anslutningar

Enhet: HD44780 tecken LCD. Buss: 4-bitars parallell, med PCF8574 I2C-adapterkort. Strömkrav: 5 volt. Referenser: exempeldatablad [PDF], HD44780-kommandoreferens, HD44780 LCD-uber-site. Komplett Bus Pirate-sessionslogg för denna demonstration. Vi utformade adaptern för LCD -biblioteket i Bus Pirates universella seriella gränssnitt, men det fungerar med allt som kan tala I2C -protokollet. Ta en titt på Bus Pirate-källkoden för ett exempel I2C-> HD44780-implementering. Anslut Bus Pirate till adapterkortet som visas i tabellen. Tabellen visar också de råa anslutningarna till PCF8574 IC om du följer med utan adapterkort. Anslut adaptern till en strömförsörjning som räcker till LCD -skärmen, vanligtvis 5 volt. I2C-anslutningen mellan adaptern och Bus Pirate kräver uppdragningsmotstånd mellan 2 och 10K. Här är mer information om blandad spänningsgränssnitt med pull-ups och Bus Pirates inbyggda pull-up-motstånd. Jag kunde inte inkludera några formateringselement och HTML-tabeller i en Instructable..

Steg 3: Steg 1. Installationsbibliotek

Steg 1. Inställningsbibliotek
Steg 1. Inställningsbibliotek

Gränssnitt Vi har täckt adapterdesignen och hur man ansluter den till Bus Pirate, nu är det äntligen dags att skriva något till LCD -skärmen. HiZ> m <<11 <<1 <<W <

p <<2 <<v <<< få spänningsrapport VOLTAGE MONITOR: 5V: 4.9 | 3.3V: 3.3 | VPULLUP: 5,0 <<Tryck på 'm' i Bus Pirate -terminalen och välj LCD -biblioteket. För närvarande stöder den bara HD44780-tecken LCD-skärmar med PFC8574-adaptern som beskrivs i den första halvan av denna artikel (alternativ 1). Aktivera strömförsörjningen (stort 'W') och pull-up-motstånd (meny 'p'). Kontrollera spänningsmonitorn (meny 'v') och se till att uppdragsspänningen (Vpullup) läser cirka 5 volt.

Steg 4: Steg 2. Återställ och initiera

Steg 2. Återställ och initiera
Steg 2. Återställ och initiera
Steg 2. Återställ och initiera
Steg 2. Återställ och initiera

Denna tabell beskriver enkel-byte-kommandon som styr en HD44780 LCD, här är en detaljerad referens. Dessa kommandon kan matas in från Bus Pirate -kommandoraden, men vi har gjort makron för de flesta för att spara tid. LCD> (0) <<< visa makromeny0. Makro -meny <<< denna meny1. LCD Återställ << <återställ LCD2. Init LCD <<< återställ och initiera LCD3. Rensa LCD <<< rensa LCD, återgå markören till 04. Markörposition ex: (4: 0) <<< ställ markörens position 5. Skriv testtext <<Makro 0 visar makromenyn för alla Bus Pirate -lägen. LCD> (2) <<< initiera LCD -makro Displaylinjer: 1. 1 <<< enradig display2. Flera <<2 'ÅTERSTÄLL <<< makro 2 inkluderar en återställningssekvensINIT <<Initialiserings -LCD -makrot (2) konfigurerar skärmen för 4 -bitars gränssnittsläge, aktiverar markörvisning och ställer in några andra användbara alternativ. Konfigurera antalet visningsrader, välj 1 för en enda radvisning eller 2 för alla andra displayer. Efter initiering ska skärmen vara tydlig med en markör synlig i hörnet. Om det inte fungerade, kontrollera I2C-anslutningen, uppdragningsmotstånden och strömförsörjningen, försök sedan igen. HD44780 LCD-skärmar måste återställas med en speciell signalsekvens innan de kan initieras för 4-bitars eller 8-bitars gränssnittsläge. Makro 1 skapar denna sekvens. Makro 2 inkluderar återställningssekvensen, så det är inte nödvändigt att använda makro 1 före makro 2.

Steg 5: Steg 3. Skriv testtecken

Steg 3. Skriv testtecken
Steg 3. Skriv testtecken
Steg 3. Skriv testtecken
Steg 3. Skriv testtecken

LCD> (6:80) <<Makrona för skrivnummer fyller LCD -skärmen med testnummer mellan 0 och 9. Siffran efter kolon säger till busspiraten hur många testnummer som ska skrivas, vi använder en 4x20LCD, så vi skriver 80 nummer för att fylla den. Lägg märke till att markören slutar vid position 0, under den första '0'. LCD> (7:80) <<Skrivteckens makro fyller LCD -skärmen med ASCII -tecken, ange kvantiteten efter kolon. Lägg märke till att nävarna fortsätter på den tredje, den tredje på den andra och den andra på den sista. Tecknen är inte kontinuerliga eftersom tecken LCD -skärmar inte sveper från en rad till nästa. Vi pratar lite mer om detta senare.

Steg 6: Steg 4. Rensa LCD

Steg 4. Rensa LCD
Steg 4. Rensa LCD

LCD> (3) <<Det tydliga LCD -makrot skickar kommandot HD44780 som raderar skärmen och återgår markören till den första positionen. Du kan också utföra någon av dessa operationer utan makron, se kommandotabellen i början av detta avsnitt. Ange "[0b1" i Bus Pirate för att ställa in gränssnittet till kommandoläge ([) och skicka HD44780 clear screen -kommandot (0b00000001) utan ett makro.]

Steg 7: Steg 5. Skriv text

Steg 5. Skriv text
Steg 5. Skriv text
Steg 5. Skriv text
Steg 5. Skriv text

LCD> (8) <<< infoga användartext Ange text som ska infogas vid markörpositionen. HD44780 LCD -demo <<Efter att LCD -skärmen har rensats i steg 4, placeras markören vid det första blocket. Vi kan också ställa in det med makrot (4: 0), som flyttar markören till det första tecknet. Infoga texten vid markörmakrot efterfrågar textinmatning och kopierar den sedan till LCD -skärmen när du trycker på enter. LCD> (4: 0x40) <& lt

LCD> (8) <<< infoga text Ange text att infoga vid markörpositionen. Bus Pirate v2go <<Att skriva till den andra raden är lite mer komplicerat, det börjar faktiskt med tecken 64 på en 4x20 LCD. Om du fortsätter att skriva från slutet av rad 1 (tecken 20) kommer du att hamna i början av rad tre! Denna sida har en fin samling av minneskartor för de flesta tecken LCD -storlekar. Först placerar vi markören på den andra raden (4: 0x40). Därefter tar makrot "infoga text" vår inmatning och kopierar den till LCD. LCD> (4: 0x14) (8) (4: 0x54) (8) <<< flera makrosyntax Ange text som ska infogas vid markörpositionen. Firmware v2.0+ <<< vi skrev det här Ange text att infoga vid markörpositionen. Farliga prototyper <<Bus Pirate accepterar flera makron på samma rad, så att hela skärmen kan skrivas på en gång. Vi skrev till de två sista raderna med en enda syntax. Vi kan använda '(3) (4: 0) (8) (4: 0x40) (8) (4: 0x14) (8) (4: 0x54) (8) 'för att rensa LCD -skärmen och skriva alla fyra raderna med en enda syntaxpost.

Steg 8: Steg 6. Läsa från LCD -skärmen

Steg 6. Läsa från LCD -skärmen
Steg 6. Läsa från LCD -skärmen

Bus Pirate och LCD -adapterkort kan läsa från LCD -skärmen. Vi kommer att läsa texten vi skrev till skärmen (DDRAM), men du kan också läsa inställningar och anpassad teckenram (CGRAM) genom att ställa in rätt adress. LCD> [0b10000000 '' '<<< ställ in läspekaren' ' '] HD44780 RS LOW, COMMAND MODE <<< register välj pin lågCMD WRITE: 0x80 <<Först säger vi till busspiraten att skicka data till LCD -kommandoregistret ([). Därefter använder vi det inställda DDRAM -adresskommandot (0b1xxxxxxx) för att ställa in läspekaren till början av DDRAM (xxxxxxx = 0000000).] LCD>] rrrrrrr <<< läs dataminne HD44780 RS HIGH, DATA MODE <<< registerval pin highREAD: 0x48 <<< 'H'READ: 0x44 <<<' D'READ: 0x34 <<< '4'READ: 0x34 <<<' 4'READ: 0x37 <<< 7'READ: 0x38 < << '8'LÄS: 0x30 <<<' 0'LCD> Slutligen säg till busspiraten att läsa från dataminne (]) och läs sedan några byte (rrrrrrr). Vi fick "HD44780", texten vi skrev till skärmen i steg 5. Du borde också kunna använda genvägen r: 7 för att läsa sju byte, men det fungerar inte i den aktuella firmware - vi fixar detta innan nästa utgåva.

Steg 9: Gör mer

Gör mer
Gör mer

Ge en allmän beskrivning av steget LCD -adaptern HD44780 tecken är ett praktiskt tillbehör för Bus Pirate. Den kan användas för ett snabbt test eller en mer avancerad logikutveckling. Förutom LCD-skärmar kan de åtta 2,5 volt-5 volts I/O-stiften vara användbara för andra Bus-piratapplikationer med hög stift. Vi kan ha kretskort, kit, eller monterade kit som producerats av Seeed Studio för cirka $ 15, inklusive global frakt, mer här. Jag kunde inte inkludera några formateringselement och HTML -tabeller i en Instructable, du kan se det ursprungliga inlägget på bloggen Dangerous Prototypes.

Rekommenderad: