Forum: Mikrocontroller und Digitale Elektronik DOG-M: 4bit oder SPI?


von Dietmar (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> 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.

von Jörg S. (joerg-s)


Lesenswert?

>hoffe ich zumindest, dass man den Init-Code so schreiben kann, dass er
>mit DOG und anderen Displays läuft
Da wäre ich eher skeptisch.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jörg S. wrote:
>>hoffe ich zumindest, dass man den Init-Code so schreiben kann, dass er
>>mit DOG und anderen Displays läuft
> Da wäre ich eher skeptisch.
Aus dem DB zum DOG-M Controller ST7036:
1
Instruction compatible to ST7066U and KS0066U and HD44780

von Jörg S. (joerg-s)


Lesenswert?

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.

von Dietmar (Gast)


Lesenswert?

> 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.

von Sven P. (Gast)


Lesenswert?

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?

von Dietmar (Gast)


Lesenswert?

> 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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> 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"

von Matthias (Gast)


Lesenswert?

SPI-Mode ist bei DOG-M recht problemlos und schnell.
Bsp. hier:
Beitrag "LCD DOG-M seriell 5V/3V 1,2,3 zeilige Typen Universalcode in C"

von Dietmar (Gast)


Lesenswert?

> 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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> 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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.