Hi,
ich hab hier ein LCD, welches ich gerne mit einem 8051 Derivat ansteuern
möchte. Standardmäßig sind bei diesem µC alle Pins Input Pins. Da ich
aber für die Ansteuerung des LCDs 8 I/O Pins benötige muss ich die
Konfiguration ändern. Im Datenblatt hab ich bereits die SFR gefunden mit
denen ich die Ports konfigurieren kann, aber ich bin mir nicht sicher
welcher Modus der richtige ist:
-) Quasi Bidirectional
-) Push Pull
-) Open Drain
-) Input Only
Meine Überlegung Open Drain mit einem Pull-Up Widerstand?
Liege ich damit falsch?
KeinPlan
Falls es ein HD44780 kompatibles LCD ist dann würde ich das LCD im 4Bit
Mode ansteuern bei welchem du mit 7 Pins (4 Daten, RW,EN,RS) auskommst.
Mit ein paar Software Tricks auch mit 6 Pins (ohne EN).
Viele der neueren 8051er mit verschiedenen Portmodes sind nach dem Reset
auf input-only gesetzt und nicht auf quasi-bidirektional. Abhängig von
deinem Controller musst du also die Portpins erst auf diesen Mode
umstellen per Software.
Ciao,
Rainer
> Mit ein paar Software Tricks auch mit 6 Pins (ohne EN)
Wie soll das gehen? Ohne RW kann ich mir noch vorstellen. Aber ohne EN
werden ja keine Kommandos übernommen, oder täuschts mir da?
Ralf
Ohne EN geht nicht. Oder man nimmt irgendeine externe Beschaltung.
Übrigens ist ein einfaches Schieberegister einfacher und billiger als
ein I2C PCF-Port Expander.
Am einfachsten und schnellsten ist die Ansteuerung alledings über den
Adressbus. Alle Steuersignale werden von der Hardware erzeugt. Du musst
lediglich deine Daten an die entsprechende Adresse schicken oder
auslesen und der Rest brauch dich garnicht zu interessieren.
So mache ich das schon seit Jahren ohne Probleme.
MC wrote:
> Am einfachsten und schnellsten ist die Ansteuerung alledings über den> Adressbus.
Lohnt sich aber nur, wenn der eh schon benutzt wird.
Ansonsten verlierst Du satte 18 Portpins.
> Alle Steuersignale werden von der Hardware erzeugt.
Nein.
Das E-Signal mußt Du mit zusätzlicher Logik erzeugen (NAND aus /RD,/WR
mit AND vom Chip-Select).
> Du musst> lediglich deine Daten an die entsprechende Adresse schicken oder> auslesen und der Rest brauch dich garnicht zu interessieren.
Nur wenn es ein standard 8051 bei max 12MHz ist.
Moderne 8051-er sind aber zu schnell. Manche erlauben es, zusätzlich
Waits einzufügen.
Peter
>> Alle Steuersignale werden von der Hardware erzeugt.>>Nein.>Das E-Signal mußt Du mit zusätzlicher Logik erzeugen (NAND aus /RD,/WR>mit AND vom Chip-Select).
Das zusätzliche NAND hatte ich zu der Hardware dazugezählt.
>Nur wenn es ein standard 8051 bei max 12MHz ist.>Moderne 8051-er sind aber zu schnell. Manche erlauben es, zusätzlich>Waits einzufügen.
Nö, wieso? Ich benutze einen 8051er mit 14,7456MHz und das funktioniert
einwandfrei. Auch bei 16MHz habe ich das schon erfolgreich und
fehlerfrei gemacht. Außerdem sollte man den Zustand des LCDs immer
Abfragen, wenn man Daten oder Komandos schreiben will.
MC wrote:
> Nö, wieso? Ich benutze einen 8051er mit 14,7456MHz und das funktioniert> einwandfrei. Auch bei 16MHz habe ich das schon erfolgreich und> fehlerfrei gemacht.
"Funktioniert aufm Basteltisch", das ist natürlich ein fundiertes
Qualitätskriterium. Wenn ich sowas meinem Arbeitgeber erzähle, müßte er
mich fristlos entlassen.
Was allein zählt, ist eine Worst-Case-Betrachtung:
Und da steht im HD44780-Datenblatt E-Pulse: min 450ns.
Und gucke ich ins AT89C52 Datenblatt, steht da WR-Pulse: min 400ns
[12MHz].
Ich bin also schon bei 12MHz außerhalb der Spezifikation!
Nehme ich jetzt nen schnelleren P89C668, ist dort WR-Pulse: 50ns
[20MHz], also nur schlappe 800% zu schnell.
Peter
>"Funktioniert aufm Basteltisch"
Vom Basteltisch war nie die Rede. Ich meinte ein 8051-System, welches
kommerziell vertrieben wird.
Ansonsten habe ich mir die Datenblätter wenig angesehen. Wenn's läuft,
dann läuft's. Was interessieren mich da die vom Hersteller angegebenen
Grenzen.
Aber wenn es mal nicht funktionieren will, dann frage ich hier nach.
MC wrote:
> Ansonsten habe ich mir die Datenblätter wenig angesehen. Wenn's läuft,> dann läuft's. Was interessieren mich da die vom Hersteller angegebenen> Grenzen.
?!? Ich hoffe, daß ist keine berufliche Grundeinstellung von dir :)
Das klingt jedenfalls nicht sehr professionell...
Da ich ja bis jetzt nur Bastler bin, nehm ich's leicht. Wieso auch
unnötig schwer machen.
Während verschiedener Praktika,... habe ich natürlich professioneller
gearbeitet. Auch eine (lästige) Dokumentation hat da nicht gefehlt.