Datum:
Angehängte Dateien:Für die LCD-Ansteuerung werden normaler Weise 11 Signale benötigt. Mit einem billigen 74HC164 kann man das auf nur 3 Drähte reduzieren. Damit ist es leicht, einen AT89C4051 oder auch ATTINY12 zur Ansteuerung zu nehmen. Anbei ein Beispiel für eine Uhr mit Datum für ein 2 * 16 Zeichen Display. Das Testen des Busy-Signals kann man einsparen, wenn man nach jedem Byte die maximale Wartezeit abwartet. Die dadurch höhrere Abarbeitungszeit ist vernachlässigbar (32 Zeichen * 46us = 1,5ms). Da ja ein Display auch abgelesen werden muß, sollten Texte je nach Länge auch mindestens 200ms ... 2s stehen bleiben. Die Datenleitungen des Displays habe ich in der fürs Layout günstigsten Weise mit dem 74HCT164 verbunden. Die Software sorgt dann einfach mit einer Tabelle dafür, daß die Bits auch richtig sortiert am Display anliegen. Bei den meisten Projekten verfahre ich in dieser Weise, d.h. zuerst wird das Layout angefertigt und dann in der Software die richtige Zuordnung definiert. Das kann leicht den Unterschied zwischen einem 2- und 4-Ebenen-Layout bedeuten, d.h. eine erhebliche Kosteneinsparung in der Produktion bewirken. Der zusätzliche Softwareaufwand ist dagegen vernachlässigbar. Die Initialisierungsroutine habe ich dem HD44780 Datenblatt entnommen und funktionierte auf Anhieb. Die Beleuchtungs-LED habe ich über 39 Ohm mit 5V verbunden, das ergibt etwa 30mA Stromverbrauch. Das muß man aber je nach Display ausprobieren. Peter
Datum:
Hallo ! Es geht auch einfacher (im Layout) -> Man nehme einen 574 und verbinde IN 1 mit Out 0, In 2 mit Out 1.... In7 mit Out 6. Die Datenleitungen kommen an Out 0..7, In 0 ist der serielle Dateneingang, Clk ist Clock. Zusätzlich werden noch LCD_Enable, LCD_C/D sowie Vcc und GND benötigt. (Lesen des Displays leider ausgeschlossen) Das Layout ist trivial, da sich In und Out jeweils gegenüberliegen !
Datum:
Es geht noch einfacher. Man nehme ein Display mit einem KS0073 Controller, z.B. die DIP Module. Die kann man in einen seriellen Modus schalten. Dann kann man das Display direkt an die SPI Schnittstelle hängen
Datum:
Zugegeben, die sind etwas teurer als normale, haben aber auch de deutlich kompaktere Bauform bei fast gleicher Anzeigefläche. Geben tuts die bei Reichelt in 1x8, 2x16 und 4x20 und als Grafik mit 122x32 Pixeln. Das 4x20 heißt glaub ich DIP204 und kostet 31 Euro Oder kuckst du hier: http://www.lcd-module.de/deu/doma/doma.htm Einziger Nachteil ist vielleicht die Anschlußleiste im 2mm Raster, aber sonst sind die genial. Die Adressierung der Zeichen unterscheidet sich etwas. Wärend die bei HD44780 etwas durcheinander ist hat man hier eine lineare Adressierung. Das vereinfacht die Ansteuerung etwas. Übrigens, die Bezeichnung 100% HD44780 kompatibel muß nicht immer heißen, das es auch wirklich 100% sind. Gerade die KSxxx machen das immer wieder deutlich Markus
Datum:
Danke, wenn ich das jetzt richtig sehe, ist leider nur das 4*20 seriell, alle anderen aber nicht. Lustig ist die Formulierung "nahezu 100% kompatibel". Also sinds doch nicht 100% sondern nur 99% oder so. Peter
Datum:
Muß gestehen das ich mir nur das 4x20 angeschaut habe. Bin davon ausgegangen, das alle mit dem gleichen Controller arbeiten. Die "nahezu 100%" liegen zum Teil an der besagten abweichenden Adressierung. Der Befehlssatz ist, soweit ich das gesehen hab, identisch, aber erweitert. Der Zeichensatz stimmt auch nicht 100% überein Es gibt also schon einige Unterschiede. Trotzdem finde ich es vor allem wegen seinen Abmessungen ziemlich genial Und nochwas: Wenn man ein Display portsparend anschließen will gibt es noch eine Möglichkeit. Der AVRco hat eine Lib mit der man bis zu 8 Displays am I2C Bus betreiben kann. Hierzu benötigt man den PCA9555. Ist zwar teurer als ein 74HCxxx, aber man kann halt an 2 Portpins bis zu 8 (identische) Displays betreiben. Und man kann den I2C Bus natürlich noch weiter verwenden. Besser gehts eigentlich nicht. Markus
Datum:
Hallo! Was müsste man ändern, damit ich das HD44780 LCD über einen 74HC595 ansteuern kann? Natürlich auch mit möglichst wenigen I/O Pins. Weil ja bei einem normalen Schieberegister (74HC164) die Daten durchgeschoben werden und erst nach 8 clocks am richtigen pin anliegen. Sehe ich das richtig? Hat jemand eine Idee/C-Code für mich wie ich das am besten machen kann? Danke!
Datum:
Das Latch im 595 bringt hierbei nichts. Du kannst z.B. den Latch-Clock mit dem Schiebe-Clock verbinden und dann immer 9 Pulse reinschieben. Mit dem 9. Puls übernimmt dann das Latch die vorherigen 8 Bits. Peter
Datum:
Wieso bringt das Latch im HC595 nichts? http://www.mikrocontroller.net/attachment.php/3085...
Datum:
@Andreas, solange E=0 ist, ist es dem HD44780 völlig wurscht, was an den Datenpins anliegt. Ob 164 oder 595 ist daher egal. Aber der 595 braucht noch einen Impuls extra, um die Daten zu latchen. Peter
Datum:
@Peter, Danke, jetzt ist es mir klar! Da ich aber einen Seriell-Parallelwandler mit Latch für andere Zwecke noch brauche werde ich es mit dem Verbinden von Latch-clock und Schiebe-clock versuchen.
Datum:
Am besten finde ich persöhnlich Lösungen über dem I2C Bus. Das braucht auch nur zwei Pins und hat den Vorteil, dass man mit diesem Bus ja dann nicht nur dass Display ansteuern kann sondern noch massig andere Hardware... Spart dann ne menge Pins wenn man sowieso I2C einsetzt. Falls man dass nicht tut - OK, dann lohnt sich vielleicht doch eher nen Schieberegister. Für die Ansteuerung im 4Bit Modus reicht jedenfalls ein PCF8574 8Bit Portexpander. MfG, Dominik S. Herwald http://www.dsh-elektronik.de/
Datum:
PCF8574 Kessler: 2,44 Euro Sicher ist der teurer als ein Schiberegister aber wenn man sowieso nen I2C Bus verwendet und einen µC wie einen PIC12xxx oder die entsprechenden Atmel versionen (haben ja nur 6 I/Os) ist es damit dann wohl die bessere Lösung. MfG, DSH
Datum:
Wenn ich die Preise für die I²C Portexpander sehe, dann nehme ich aber lieber einen zweiten Controller, den ich dann (auch mehrere) über nur einen I/O-pin ansteuern kann. Der PIC16F628A kostet mich z.B. aktuell 1,40 (bei Reichelt bestimmt das doppelte). Da sehe ich keinen Grund einen teueren I²C Expander zu verwenden. Das Projekt mit dem Nokia 3310 LCD-Display (siehe Codesammlung) wollte ich eigentlich auch erst mit einem einfachen 4x16 Display und zwei PCF8574 aufbauen aber wo ich dann den Preis gesehen hab ... nein danke. Komischerweise ist der Preis für einen recht leistungsfähigen MC wesentlich geringer als so ein einfaches Peripherie-Bausteinchen. Da ist es manchmal sinvoller lieber noch einen zweiten, dritten oder gar vierten MC mit auf die Platine zu packen. Steffen
Datum:
@Steffen: OK. So kann mans natürlich auch machen. Dann kann man die komplette Ansteuerung des Displays auch gleich nem eigenen Controller überlassen - so mach ich dass bei größeren Sachen ja auch. Aber evtl. hat man ja noch nen paar PCFs als Samples rumliegen und von daher ;) Zum Preis: Naja kommt eben auf die Stückzahl und die Produktionskosten an. Stell dir mal vor, die Preise würden sich nach der Leisungsfähigkeit richten :) Nen PCF8574 würde dann 10 Cent kosten, aber nen Pentium 4 10000 Euro... ;) MfG, DSH
Datum:
Angehängte Dateien:Hi, habe im Anhang eine serielle LCD Ansteuerung fuer HD44780 die mit zwei HC164 arbeitet. (CLK, DATA, und E) Gruss, Gerhard
Datum:
@Markus... Hallo, ich hab auch besagtes 4x20 Display, bisher aber mit 4 Bit Ansteuerung. Hast Du vielleicht ein Programmbeispiel mit SPI-Ansteuerung ? @Steffen... wo bekommt man eigentlich ein 3310-Display her ?
Datum:
Eine Frage, kann man alle PINs des LCD-Controllers an den Schieberegister anschließen? EN, RS, R/W und 4 Datapins (4-Bit mode) alle an Ausgang des 74HC595. Geht das?
Datum:
Uqzze wrote: > Eine Frage, kann man alle PINs des LCD-Controllers an den > Schieberegister anschließen? > EN, RS, R/W und 4 Datapins (4-Bit mode) alle an Ausgang des 74HC595. > Geht das? Ja. Bloß es macht keinen Sinn, man braucht trotzdem 3 Drähte und die Software wird umständlicher. Peter
Datum:
Ja, also eine Data-Out-Pin, Clock-Pin und ein Schieberegister-Ausgabepin, stimmt? Wenn man aber es über SPI betreibt, dann braucht man nur einen einzigen extra Pin!
Datum:
Uqzze wrote: > Ja, also eine Data-Out-Pin, Clock-Pin und ein > Schieberegister-Ausgabepin, stimmt? > > Wenn man aber es über SPI betreibt, dann braucht man nur einen einzigen > extra Pin! Genau, wie mit dem 74HC164 im 8Bit-Modus. Ob Du nun den RCK des 595 latcht oder gleich den E-Pin pulst, beides braucht nur einen extra Pin. Peter
Datum:
Hi, es geht sogar mit nur 2 Signalleitungen mittels CD4013 + CD4015 1 FF + CD4015 als 9bit SR für R/W + 8 Databits und das restliche FF für den Enable Input. Der Trick besteht im Ablauf von Clock und Data ähnlich I2C. Realisiert ca. 1998, wobei noch 3 Tasten eine Analogspannung auf die Datenleitung für die Bedienung aufgeprägt haben. War die ansteckbare Bedieneinheit eines Elektroflug Datenloggers mit ST6220. Umsetzung auf Atmel steht demnächst an. Gruss Ingo
Datum:
Angehängte Dateien:habe als Nachschlag noch den Schaltplan der alten 2wire LCD Lösung von 1998 eingescannt. Mit heutigen Mitteln würde ich wohl eher zu einem kleinem Attiny(24) greifen. Als Schnittstelle kann man dann I2C, seriell oder was eigenes realisieren. Gruss Ingo
Datum:
Ingo Stahl wrote: > Mit heutigen Mitteln würde ich wohl eher zu einem kleinem Attiny(24) > greifen. Als Schnittstelle kann man dann I2C, seriell oder was eigenes > realisieren. Ja. Z.B. mit ATTiny25, dann reicht ein Draht: Beitrag "LCD über nur einen IO-Pin ansteuern" Peter
