DOG-M: 4bit oder SPI?

Gast #1230012
Würdet ihr für DOG-Text-Displays 4 Bit-Mode (ohne Busy-Flag-Auswertung) 
oder Software-SPI empfehlen?

Ich möchte eine kleine DOG-LCD-Adapterplatine herstellen, um so ein 
Display auf einem PCB zu betreiben, das für ein 16x2-Display Bohrungen 
hat (und Code im Mikrokontroller) - und kann mich bei der Ansteuerung 
nicht entscheiden.

Ist eine dieser beiden Varianten vorteilhafter? 4 Bit wäre mir lieber, 
weil ich dann nur eine Sorte LCD-Code brauche, egal welches Display der 
User einsetzt (hoffe ich zumindest, dass man den Init-Code so schreiben 
kann, dass er mit DOG und anderen Displays läuft) - aber im Datenblatt 
wird auf der Verwendung des Busy-Flags insisitiert, wofür ich keinen Pin 
an der LCD-Buchse hätte.

Eine Anforderung wäre auch, dass das Display in etwas grösserer 
Entfernung betrieben werden kann - bis zu max 50 cm Kabel.
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #1230038
> Würdet ihr für DOG-Text-Displays 4 Bit-Mode (ohne Busy-Flag-Auswertung)
> oder Software-SPI empfehlen?
Ja.

> ... 4 Bit wäre mir lieber ...
> ... im Datenblatt wird auf der Verwendung des Busy-Flags insisitiert
Und genau dieses Busy-Flag wird über eine der 4 bidirektionalen 
Datenleitungen (die siebte) gelesen.
Zitat aus dem DB:
1
DB7 can be used as a busy flag

> Eine Anforderung wäre auch, dass das Display in etwas grösserer
> Entfernung betrieben werden kann - bis zu max 50 cm Kabel.
Sieh Widerstände für eine Serienterminierung (Suche im Forum) vor.
#1230068
Ja schon, aber z.B. die Kontrasteinstellung per Kommando ist halt eher 
speziell und bei anderen Displays nicht zu finden. Ob's da wirklich 
Datentechnisch keine Probleme gibt? Ein Dog läuft jedenfalls nicht mit 
Standard HD44780 Code (Andere Initialisierung). Anderstrum hab ich's 
noch nicht probiert.
Gast #1230081
> Zitat aus dem DB:DB7 can be used as a busy flag

Dafür fehlt ein Pin am vorhandenen LCD-Header, d.h. R/W ist fest auf 
GND. Wenn 4 bit-Mode, dann ohne Auswertung des Busy-Flags.
Gast #1230091
Nimm SPI, spart auf die Dauer Leitungen :-)
Vorallem führe ein Chipselect raus, damit noch andre Teilnehmer am SPI 
hängen können.
Aber warum Software-SPI?
Gast #1230148
> Sieh Widerstände für eine Serienterminierung (Suche im Forum) vor.

Dazu eine Frage: Im DOG-Datenblatt steht, dass zur Verbesserung der 
Übertragung Pull-Downs eingesetzt werden können ("kann dadurch [...] zu 
Signalverschleifungen und unsauberen Pegeln
kommen. Im Zweifelsfall sind zusätzliche Pull-Down Widerstände (8051) 
erforderlich, oder..."). Ich würde demnach statt Serienterminierug eher 
bei E und RS auf der Display-Platine (4 bit-Ansteuerung) Pads für 
Pull-Downs vorsehen und D4 ... D7 als unkritische Leitungen nicht weiter 
beachten. Ist das richtig oder sollte es doch Serienterminierung sein?
Moderator (Firma: Titel) Persönliche Seite #1230213
> Ein Dog läuft jedenfalls nicht mit Standard HD44780 Code
Jaja, immer diese Marketingversprechen... :-/

> Wenn 4 bit-Mode, dann ohne Auswertung des Busy-Flags.
Dann besser SPI.

> Im Zweifelsfall sind zusätzliche Pull-Down Widerstände (8051)
Gerade Pull-Down-Widerstände braucht ein 8051er garantiert nicht!!
Wenn dann Pull-Up Widerstände :-/

> Ist das richtig
Nein, du brauchst das bei einem zeitgemäßen uC-Port nicht.
> oder sollte es doch Serienterminierung sein?
Pullup/Pulldown-Widerstände haben mit Terminierung nichts zu tun.
Wenn du keine Überschwinger und weiß sonst noch was willst, dann lies 
den Beitrag "Re: Signalproblem bei langem Kabel"
Gast #1230393
> Dann besser SPI

Gibt es einen konkreten Grund, ist das DOG-Display dann nicht mehr 
zuverlässig? Ich verwende zur Zeit problemlos ein EA W162B-N3LW ohne 
Busy-Flag-Auswertung (der LCD-Thread ist ein FreeRTOS-Task, grosszügige 
Warteschleifen sind kein Problem, die CPU kann was anderes machen).

> Pullup/Pulldown-Widerstände haben mit Terminierung nichts zu tun

Von der Schaltung her sieht ein Pull-Down am LCD-Ende aber so aus, wie 
eine Parallelterminierung? 
(http://www.mikrocontroller.net/articles/Wellenwiderstand)

> Gerade Pull-Down-Widerstände braucht ein 8051er garantiert nicht!!

Keine Ahnung, was ein 8051 ist, aber der Hinweis auf Pull-Downs am Modul 
ist direkt aus dem DOG-Datenblatt.
Moderator (Firma: Titel) Persönliche Seite #1230410
> Keine Ahnung, was ein 8051 ist...
Na sowas ...
Es gibt auch noch andere uC als nur AVR&Co&so, und der 8051 war (und 
ist) ein echter High-Runner.

> grosszügige Warteschleifen sind kein Problem
Dann brauchst du auch das Busy-Flag nicht abzufragen.
> die CPU kann was anderes machen
Ja, z.B. Taskumschaltung.
Die gibts nämlich auch nicht kostenlos.

> sieht ein Pull-Down am LCD-Ende so aus wie eine Parallelterminierung
Richtig: sieht so aus  :-(
Allerdings müsstest du einen Widerstand im Bereich der Leitungsimpedanz 
wählen, und die liegt so um 50-200 Ohm. Mit einem 4,7k Ohm 
Pulldown-Widerstand hättest du also krasse Fehlanpassung und die 
Terminierung wäre wirkungslos. Das steht aber im selben Artikel neben 
den Bildern.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.