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.
> 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.
>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.
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 |
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.
> 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.
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?
> 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?
> 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"
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"
> 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.
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.