www.mikrocontroller.net

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


Autor: Dietmar (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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:
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.

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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:
Instruction compatible to ST7066U and KS0066U and HD44780

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.