Forum: Mikrocontroller und Digitale Elektronik Schmitt Trigger und LCD - Verständnisfrage


von Rudolf M. (rudolf_58)


Lesenswert?

Es scheint dass ein  invertierender Schmitt Trigger de facto Standard 
ist, während ein nicht Invertierender eher selten ist (?).
Ich möchte zwecks Signalaufbereitung zwischen dem ATMega8A und einem LCD 
einen Schmitt Trigger verbauen. Soweit ich das sehe werden die Signale 
umgedreht, aus High wird Low usw.. Das würde bedeuten, dass ich ALLE 
Signale über den Schmitt Trigger ziehen muss, also Daten- und 
Steuersignale. Bin ich da richtig oder komplett auf dem Holzweg ?
Beim LCD Controller kommen dann praktisch alle Signale gespiegelt an und 
werden dann zeitversetzt richtig interpretiert ?
Hintergrund dabei ist, dass mein Versuch ein LCD anzusteuern bis 2 MHz 
problemlos funktioniert, darüber hinaus aber nichts mehr läuft.
Bin dankbar für eine kompetente Antwort :-)

von Jens M. (schuchkleisser)


Lesenswert?

Rudolf M. schrieb:
> Ich möchte zwecks Signalaufbereitung zwischen dem ATMega8A und einem LCD
> einen Schmitt Trigger verbauen

Warum?
Dein Problem ist ein Zeichen schlechten Layouts und/oder zu langer Kabel 
und/oder Störeintrahlungen.
Bei keinem dieser Probleme helfen STs.

Rudolf M. schrieb:
> Soweit ich das sehe werden die Signale
> umgedreht, aus High wird Low usw.

Tja, wie das bei Invertern so ist...

Rudolf M. schrieb:
> Das würde bedeuten, dass ich ALLE
> Signale über den Schmitt Trigger ziehen muss, also Daten- und
> Steuersignale.

Das hat nichts mit der Invertierung zu tun.

Rudolf M. schrieb:
> Beim LCD Controller kommen dann praktisch alle Signale gespiegelt an und
> werden dann zeitversetzt richtig interpretiert ?

Nein, sie sind invertiert und werden pegelversetzt (fehl-)interpretiert.
Du könntest einfach in der Software einfach alles invertieren, dann ist 
es am Dispay wieder richtigrum.

Rudolf M. schrieb:
> Hintergrund dabei ist, dass mein Versuch ein LCD anzusteuern bis 2 MHz
> problemlos funktioniert, darüber hinaus aber nichts mehr läuft.

Ein ST als Bustreiber wird nicht wirklich was nutzen.
Ein Bustreiber dagegen schon, der ST-Teil ist über, denn beide Partner 
liefern einwandfreie digitale Signale.
Warum muss es schneller als 2MHz sein? Was für ein Display?

Fazit:
- du plenkst
- du lernst hoffentlich noch wie das mit dem Controller geht
- zeige Fotos und einen Schaltplan

von MaWin (Gast)


Lesenswert?

Rudolf M. schrieb:
> Bin ich da richtig

Nein.

Ausgänge eines ATmega können beliebig programmiert werden.

Du kannst also die Invertierung per Programm korrigieren.

Rudolf M. schrieb:
> Hintergrund dabei ist, dass mein Versuch ein LCD anzusteuern bis 2 MHz
> problemlos funktioniert, darüber hinaus aber nichts mehr läuft.

Das wird mit Schmitt-Trigger nicht besser, das Timing direkt vom ATmega 
ist direkter, die Signalqualität von kurzen Leitungen ausreichend. Du 
hast ein anderes Problem.

von Bauform B. (bauformb)


Lesenswert?

Die klassischen Text-LCDs mit HD44780 sind langsam, max. 1MHz.

von Axel S. (a-za-z0-9)


Lesenswert?

Rudolf M. schrieb:
> Es scheint dass ein  invertierender Schmitt Trigger de facto Standard
> ist, während ein nicht Invertierender eher selten ist (?).

Du faselst. "Schmitt-Trigger" ist eine Funktion, kein Bauelement. Du 
meinst wohl Logikgatter mit Schmitt-Trigger Eingängen? Die gibt es 
natürlich auch in nichtinvertierend, bspw. als Bustreiber.

> Ich möchte zwecks Signalaufbereitung zwischen dem ATMega8A und einem LCD
> einen Schmitt Trigger verbauen.
...
> Bin ich da richtig oder komplett auf dem Holzweg ?

Ziemlich sicher Holzweg.

> Hintergrund dabei ist, dass mein Versuch ein LCD anzusteuern bis 2 MHz
> problemlos funktioniert, darüber hinaus aber nichts mehr läuft.

Bahnhof. Was für ein LCD? Welche Schnittstelle? Kann der LCD-Controller 
so schnell? Und warum muß es überhaupt so schnell sein?

von Olaf (Gast)


Lesenswert?

> Dein Problem ist ein Zeichen schlechten Layouts und/oder zu langer Kabel
> und/oder Störeintrahlungen.

Naja, bei zu langen Kabel koennte ein Bustreiber schon helfen, egal ob 
dann ein Schmitttriger drin ist oder nicht.

Aber wie immer in solchen Faellen. BILDER! Wozu habt ihr alle eure 
coolen Handy. Schickt bilder vom Aufbau damit wir euch richtig 
runtermachen koennen. :-)

Olaf

von Wolfgang (Gast)


Lesenswert?

Rudolf M. schrieb:
> Das würde bedeuten, dass ich ALLE
> Signale über den Schmitt Trigger ziehen muss, also Daten- und
> Steuersignale. Bin ich da richtig oder komplett auf dem Holzweg ?

Was auch immer du für ein LCD betreibst: Du könntest evtl. ein 
I2C-Interface davor setzen. Dann wären es nur noch 2 Leitungen.

Aber vielleicht verrätst du mal, worum es geht, welcher Art deine Fehler 
sind und wie die Signale aussehen. Wie sieht dein Aufbau aus und was ist 
das für eine Störquelle, die deine Signale derartig versaut.

von Peter D. (peda)


Lesenswert?

Rudolf M. schrieb:
> Hintergrund dabei ist, dass mein Versuch ein LCD anzusteuern bis 2 MHz
> problemlos funktioniert, darüber hinaus aber nichts mehr läuft.

Was steht denn dazu im Datenblatt des unbekannten LCD?

In Foren ist es gute Sitte, unbekannte Bauteile zu vermeiden. Also 
entweder die vollständige Bezeichnung zu nennen oder darauf zu 
verlinken.

von Rudolf M. (rudolf_58)


Lesenswert?

Das LCD ist ein HD44780 kompatibles Display ( Reichelt LCD 162C BL, 
zweizeilig, blau). Im Datenblatt ist u.a. auf ein "74LS" hingewiesen um 
die Steilheit des Enable Signals (<25ns) sicherzustellen. Auch ohne 
74LS.. erreiche ich eine Anstiegs-/Abfallzeit unter 10ns. Diese Seite 
habe ich soweit untersuchen können, dürfte also nicht das Thema sein. 
Vielen Dank für Ihre Antwort !

von jo mei (Gast)


Lesenswert?

Rudolf M. schrieb:
> dürfte also nicht das Thema sein.

Das Thema ist dein beschissener Aufbau.

Bzw du null Ahnung hast weil du dein Teil weit jenseits
der Spezifkation betreiben willst.

Rudolf M. schrieb:
> Hintergrund dabei ist, dass mein Versuch ein LCD anzusteuern bis 2 MHz
> problemlos funktioniert, darüber hinaus aber nichts mehr läuft.

von MaWin (Gast)


Lesenswert?

Rudolf M. schrieb:
> Das LCD ist ein HD44780 kompatibles Display

Was willst du denn da mit 2MHz ?
Oder einer Taktfrequenz des uC von 2MHz und entsprechend geringerem I/O 
Tempo, aber immer noch offenbar eine Überschreitung der maximalen 
Geschwindigkeit.
Mich würde auch nicht überraschen, wenn du das BUSY Bit gar nicht 
abfragst, gar kein READ vom Display machst, sondern einfach nur die 
Daten reinhämmerst.

von Rudolf M. (rudolf_58)


Lesenswert?

Ich bin schon öfter auf den Hinweis mit I²C gestoßen, hatte bisher aber 
noch keine Zeit gefunden mich damit näher zu beschäftigen. Für mich wäre 
es sehr interessant einen geeigneten Einstieg in das Thema zu finden. 
Ich finde dazu einige Beiträge aber nicht wirklich etwas, das für einen 
Einsteiger geeignet wäre. Könnten Sie mir da einen Tip geben ?
Vielen Dank für Ihre Antwort !

von jo mei (Gast)


Lesenswert?

Rudolf M. schrieb:
> Ich bin schon öfter auf den Hinweis mit I²C gestoßen, hatte bisher aber
> noch keine Zeit gefunden mich damit näher zu beschäftigen.

Rudolf M. schrieb:
> Hintergrund dabei ist, dass mein Versuch ein LCD anzusteuern bis 2 MHz
> problemlos funktioniert,


Toll-Alarm! Toll-Alarm! Toll-Alarm!

Freitag, und noch dazu der dreizehnte.

von Rudolf M. (rudolf_58)


Lesenswert?

an bauform:
Ich dachte bei Abfrage des BF dürfte die Frequenz des Senders eigentlich 
keine Rolle spielen. In diversen Forenbeiträgen ist da von 8 MHz die 
Rede was da ohne Probleme funktionieren würde.

von Joachim B. (jar)


Lesenswert?


von jo mei (Gast)


Lesenswert?

Noch mehr Toll-Alarm!

von Karl B. (gustav)


Lesenswert?

Rudolf M. schrieb:
> Ich finde dazu einige Beiträge aber nicht wirklich etwas, das für einen
> Einsteiger geeignet wäre. Könnten Sie mir da einen Tip geben ?

https://www.e-lab.de/downloads/DOCs/mega8A.pdf
Seite 220 ff

ciao
gustav

von spess53 (Gast)


Lesenswert?

Hi

>Ich dachte bei Abfrage des BF dürfte die Frequenz des Senders eigentlich
keine Rolle spielen. In diversen Forenbeiträgen ist da von 8 MHz die
>Rede was da ohne Probleme funktionieren würde.

Das Display arbeitet intern mit ca. 250kHz. Das wird nicht schneller. 
Alles andere ist blanke Augenwischerei.

MfG Spess

von Peter D. (peda)


Lesenswert?

Rudolf M. schrieb:
> ( Reichelt LCD 162C BL,
> zweizeilig, blau)

Was ist denn im Datenblatt an "Enable Cycle Time min 1000ns" unklar?
Schneller als 1MHz ist also nicht garantiert. Und auch nicht notwendig, 
denn so schnell kann kein Mensch ablesen.

: Bearbeitet durch User
von Rudolf M. (rudolf_58)


Lesenswert?

an Jens und Olaf:
An die softwareseitige Lösung zum invertierten Signals hätte ich 
wirklich selber kommen können, Schande über mich.
Aber für mich hat das auch eine gute Seite, weil ich dabei dazulerne.
Der Hinweis auf einen Bustreiber ist wirklich brauchbar.
Zur Frage der Geschwindigkeit: Es ist mir wichtig die Ursache zu finden 
warum das mit höherer Frequenz nicht mehr funktioniert. Die Signale 
haben an sich eine recht brauchbare Form und die timing Angaben im 
Datenblatt werden eingehalten. Ich habe das mit dem Oszi nachgemesssen ( 
ist mit 2 Kanälen eine mühsame Sache ) und dabei nicht wirklich etwas 
signifikantes als Fehlerquelle entdecken können.

out of records: was ist mit " - plenkst " gemeint ?

Vien Dank für Ihre Antwort.

von Bauform B. (bauformb)


Lesenswert?

Peter D. schrieb:
> "Enable Cycle Time min 1000ns"

Enable Pulse Witdth min. 450ns sollte man auch einhalten.

von Rudolf M. (rudolf_58)


Lesenswert?

an bauform:
wird eingehalten ! Danke !

von Rudolf M. (rudolf_58)


Lesenswert?

an Peter:
ich verstehe den Beitrag nicht ganz. Für mich sagt das, daß der Impuls 
(high 450ns und low 550ns) lang sein muss. Es muss eben sichergestellt 
sein dass der Impuls solange dauert, egal mit welcher Geschwindigkeit 
die CPU sendet.
Mit Einfügen von NOPs muss das eben gesteuert werden.

von Rudolf M. (rudolf_58)


Lesenswert?

an Karl:
das kommt davon wenn man zuerst nach Tutorials sucht und nicht gleich 
nach dem Richtigen greift :-)  Vielen Dank !!

von Rudolf M. (rudolf_58)


Lesenswert?

an Joachim:
Meine Schlussfolgerung beruht darauf, dass die Suchfunktion bei Reichelt 
nur einen invertierenden Schmitt Trigger ausgibt. Das ist aber sicher 
nicht der Weisheit letzter Schluss :-)  Vien Dank!

von Jens M. (schuchkleisser)


Lesenswert?

Rudolf M. schrieb:
> Für mich sagt das, daß der Impuls
> (high 450ns und low 550ns) lang sein muss.

Falsch.
Er muss mindestens 450ns aktiv sein, und er muss insgesamt mindestens 
1000ns dauern.
Du kannst auch 3 Sekunden H und 5 low machen, das geht auch.
2MHz erfordert aber <1µs Cycle, und das ist nicht zulässig.

Rudolf M. schrieb:
> Die Signale
> haben an sich eine recht brauchbare Form und die timing Angaben im
> Datenblatt werden eingehalten.

Kann also irgendwie nicht sein.

Rudolf M. schrieb:
> Mit Einfügen von NOPs muss das eben gesteuert werden.

Hatte ich noch nie, bei 10MHz PICs in Assembler.
Wenn man das passend aufbaut, geht's ohne Verzögerungen.
Zudem ist das Display eh nicht so schnell, das läuft mit einigen hundert 
kHz.
Warum da 62500 komplette Bilder mit 2 Zeilen a 16 Buchstaben pro Sekunde 
reinschicken, wenn es eh nur so 50 oder so anzeigen kann?

Rudolf M. schrieb:
> was ist mit " - plenkst " gemeint ?

https://de.wikipedia.org/wiki/Plenk

von Rudolf M. (rudolf_58)


Lesenswert?

an Jens:
Im timing chart des Datenblattes steht das so PWEH min 450ns High Level
und Enable Cycle Time tCYCE min 1000ns. Rise and Delay time max. 25ns.
Ja stimmt, bei einer Frequenz von 2 MHz braucht es zumindetst 2 Takte um 
die notwendige Zeit von 1µs zu erreichen. Bei 2 MHz funktioniert das 
auch, aber darüber ( bei entsprechender Anpassung ) eben nicht mehr.
Hab ich jetzt wieder geplenkt ?

von Wolfgang (Gast)


Lesenswert?

Rudolf M. schrieb:
> Es scheint dass ein  invertierender Schmitt Trigger de facto Standard
> ist, während ein nicht Invertierender eher selten ist (?).

Digikey hat von den 74HC7014 (6-fach Schmitt-Trigger, nicht 
invertierend) aktuell noch 5272 liegen und würde sogar welche verkaufen.
https://assets.nexperia.com/documents/data-sheet/74HC7014.pdf

von Dietrich L. (dietrichl)


Lesenswert?

Rudolf M. schrieb:
> an Jens:

Kannst du vielleicht die Funktionen "Markierten Text zitieren" oder 
"Antwort mit Zitat" benutzen? Dann kann direkt zum Text des Zitierten 
kommen und muss nicht suchen/raten, auf was genau du dich bei der Anwort 
beziehst.

Rudolf M. schrieb:
> Hab ich jetzt wieder geplenkt ?

Ja.

von Axel S. (a-za-z0-9)


Lesenswert?

Rudolf M. schrieb:
> Im timing chart des Datenblattes steht das so PWEH min 450ns High Level
> und Enable Cycle Time tCYCE min 1000ns.

Ja. Eben. Du kannst das Display mit maximal 1MHz ansteuern. Punkt.

> bei einer Frequenz von 2 MHz braucht es zumindetst 2 Takte um
> die notwendige Zeit von 1µs zu erreichen.

Du sprichst in Rätseln. 2MHz an welcher Stelle denn? Sprichst du von der 
Taktfrequenz deines µC? Die interessiert das LCD nicht die Bohne. Dem 
LCD geht es einzig darum, wie schnell du an seinen Anschlüssen (und da 
insbesondere an E) wackelst. Und da ist bei 1MHz Schluß.

Es ist auch vollkommen sinnlos, schneller sein zu wollen. Nicht nur, daß 
du das LCD gar nicht so schnell ablesen kannst. Der LCD-Controller 
steuert das Glas mit einer Wiederholrate von ca. 80Hz an. Das heißt das 
Display-RAM wird nur einmal alle 12ms dargstellt. Du kannst das 
Display-RAM locker 10-mal überschreiben, während der Controller es nur 
einmal auf das Glas ausgibt.

von HildeK (Gast)


Lesenswert?

Rudolf M. schrieb:
> ( bei entsprechender Anpassung ) eben nicht mehr.
   ^                            ^
Ja, ich habe dir die Stellen markiert.
> Hab ich jetzt wieder geplenkt ?
und hier wieder:               ^

Vor Satzzeichen (Komma, Punkt, Strichpunkt, Doppelpunkt, Fragezeichen, 
Ausrufezeichen) ist kein Leerzeichen, nur danach.
Bei Klammern, Hochkommas oder Anführungszeichen gibt es ebenfalls innen 
keine Leerzeichen, richtig ist so: (Text Text), 'Text, Text' oder "Text 
Text".

Beim Gedankenstrich vorher und nachher ja, jeweils eines - so mein 
Gedanke.

Bei Maßangaben wird es teils unterschiedlich gehandhabt, ich füge die 
Einheit ohne Leerzeichen an den Wert an: 1kΩ; 5V.

'Plenken' stört den Lesefluss und führt an ungünstiger Stelle dazu, dass 
das Satzzeichen oder auch die Einheiten auf eine neue Zeile kommen.

In seltenen Fällen (ASCII-Simleys) kann man mal davon abweichen.

Ich hoffe, ich habe dich ein wenig schlauer gemacht. :-)

von Jens M. (schuchkleisser)


Lesenswert?

Rudolf M. schrieb:
> Ja stimmt, bei einer Frequenz von 2 MHz braucht es zumindetst 2 Takte um
> die notwendige Zeit von 1µs zu erreichen.

So, jetzt wird ein Schuh draus.
Du betreibst deine CPU mit 2MHz, nicht das Signal zum Display.
Jetzt ist aber die Frage: welche CPU, wie ist das da mit den 
Hardwaretakten, wie sieht das aus wenn man in zwei aufeinanderfolgenden 
Befehlen einen Port H und dann wieder L setzt usw. usf.
Wenn man schlau wäre, würde man
1
SetClock()
2
SetData()
3
ClearClock()
4
goto 10
machen, dann ist das automatisch langsamer, aber trotzdem maximal 
schnell.
Und wenn du deine Signalform mal anschaust, musst du da eben ne halbe 
Mikrosekunde H und mindestens ne weitere Mikrosekunde L erreichen, das 
ist selbst mit dem überlappenden System der PICs problemlos schaffbar, 
ohne NOPs zu benutzen.
Wenn du da aber bsf/bcf benutzt, ist mit Pech gar kein Puls mehr da, 
weil die Befehle überlappt werden, obwohl sie technisch passend weit 
auseinander wären.

Übrigens:
Hättest du Schaltplan, Fotos und oder Code gepostet, wäre hier viel 
weniger "häää" gewesen...
Welcher Prozessor, welcher Code, wie sieht der Plan aus, wie die 
Schaltung?

Rudolf M. schrieb:
> Hab ich jetzt wieder geplenkt ?
                               ^  Da!
Komischerweise nur bei Fragezeichen... :)

von Stefan F. (Gast)


Lesenswert?

Rudolf M. schrieb:
> Hab ich jetzt wieder geplenkt ?

Leerzeichen gehören hinter Satzzeichen, nicht davor.

von Rudolf M. (rudolf_58)


Lesenswert?

Zunächst vielen Dank an Alle die sich die Mühe gemacht haben mir zu 
antworten. Man lernt dabei sehr viel, auch wenn m.E. manche Kommentare 
eher demjenigen helfen der sie verfasst.
Ich bitte um Nachsicht wenn ich die Technik des Zitierens (noch) nicht 
beherrsche. Ich werde das bei meinem 3. Posting (das erste war 2018) 
jedenfalls versuchen?!.
Die herrschende Meinung bezüglich Leerzeichen oder nicht ist 
interessant, dabei gibt es auch andere Meinungen. Für mein Dafürhalten 
sieht das einfach besser aus, wenn zwischen dem letzten Wort und dem 
Fragezeichen ein Abstand ist. Letztendlich ist das aber out of topic.
Gott sei Dank bin ich in einem Alter wo ich das nicht mehr ganz so 
tierisch ernst sehe.
Insbesondere mein Dank an Jens und Wolfgang. Die Hinweise sind 
konstruktiv und bringen mich wieder ein Stück weiter.

von Stefan F. (Gast)


Lesenswert?

Rudolf M. schrieb:
> Die herrschende Meinung bezüglich Leerzeichen oder nicht ist
> interessant, dabei gibt es auch andere Meinungen. Für mein Dafürhalten
> sieht das einfach besser aus,

Es gibt allgemein gültige Rechtschreibregeln. Wer sie ignoriert muss 
auch damit klarkommen, dass sich andere daran stören.

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Es gibt allgemein gültige Rechtschreibregeln. Wer sie ignoriert muss
> auch damit klarkommen, dass sich andere daran stören.

Im besonderen Fall des Plenkens gibt es auch noch Aspekte, die über die 
reine Rechtschreibungs-Gülle deutlich hinaus reichen. Oder anders 
ausgedrückt: hier sind die Rechtschreibregeln tatsächlich objektiv 
sinnvoll. Selbst in der gegenwärtigen Form...

Deswegen: wer plenkt, ist ein Vollidiot oder ein Troll oder unbelehrbar, 
also Vollidiot+Troll.

von Rudolf M. (rudolf_58)


Lesenswert?

Ich komme damit gut klar, MICH stört das ja nicht :-)

von Wolfgang (Gast)


Lesenswert?

HildeK schrieb:
> Bei Maßangaben wird es teils unterschiedlich gehandhabt, ich füge die
> Einheit ohne Leerzeichen an den Wert an: 1kΩ; 5V.

Keiner muss sich an irgendwelche Normen gebunden fühlen. Jeder kann es 
mit dem Leerzeichen zwischen Zahl und zugehöriger Maßeinheit halten wie 
er möchte.

Die DIN 5008 legt fest, dass zwischen einer Zahl und der zugehörigen 
Maßeinheit ein Leerraum gehört. Ausnahmen bilden die Einheitenzeichen °, 
′, ″ für Grad, Fuß, Bogenminute und -sekunde.

Die normwidrige Schreibweise ohne Leerzeichen wird hier im Forum meist 
verwendet, um einen automatischen/hirnlosen Zeilenumbruch zwischen 
Zahlenwert und Einheitenzeichen auszuschließen, da feste Leerzeichen in 
der Forensoftware wohl unbekannt sind.

von Karl B. (gustav)


Lesenswert?

Axel S. schrieb:
> Dem
> LCD geht es einzig darum, wie schnell du an seinen Anschlüssen (und da
> insbesondere an E) wackelst. Und da ist bei 1MHz Schluß.

Hi,
es gibt current state bits und transition state bits.
RS und RWquer sind zum Bleistift current state bits.
Das Enable ist ein ganz kritisches Bit.
Es ist das transition state bit.
Es kommt auf die Flanke an.
Und auf nichts anderes.
Habe schon Displays n den Fingern gehabt, bei denen war angeblich alles 
völlig ok, auch vom Programm her.
Aber schaut man sich dann im Oszi den Ena Impuls an, weiß man, wieso es 
nicht funktionieren konnte. Der könnte durchaus eine Vitamin-Spritze 
durch Schmitt Trigger vertragen.
Bei allen anderen Bits völliger Mumpitz.

ciao
gustav

von Peter D. (peda)


Lesenswert?

Ein CPU-Takt von 2MHz hat keinerlei Aussagekraft.
Wichtig wäre, ob das gesamte Timing eingehalten wird, also der exakte 
Quelltext.

Will man die CPU möglichst kurz belasten, bietet sich ein Timerinterrupt 
an, der alle 1ms jeweils nur ein Byte ausgibt. Das ist immer deutlich 
über der Ableserate des Menschen.

von Wolfgang (Gast)


Lesenswert?

Karl B. schrieb:
> Aber schaut man sich dann im Oszi den Ena Impuls an, weiß man, wieso es
> nicht funktionieren konnte.

Dann bau einen Serienwiderstand ein und gut is'.
Dein Oszi hast du hoffentlich mit Tastkopf und Erdfeder angehängt?

von Peter D. (peda)


Lesenswert?

Wolfgang schrieb:
> Dann bau einen Serienwiderstand ein und gut is'.

Na ob das gegen Timingfehler im Quelltext hilft?

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Karl B. schrieb:
> Aber schaut man sich dann im Oszi den Ena Impuls an, weiß man, wieso es
> nicht funktionieren konnte. Der könnte durchaus eine Vitamin-Spritze
> durch Schmitt Trigger vertragen

Never.

Das Problem liegt dann woanders.

(Und sei es nur ein schlecht geeigneter Oszi-Tastkopf).

von Karl B. (gustav)


Lesenswert?

MaWin schrieb:
> Das Problem liegt dann woanders.

Hi, war ja nur ein Beispiel.
Wenn überhaupt, dann nur Ena.
Sonst ST Mumpitz.
Was oft auch nicht richtig gesehen wird,
die Impulsdauer kann durch einen ST richtig schön vermatscht werdemn, so 
dass
die exakte 1:1 Tastverhältnbis (Duty-Cycle) mit nachgeschalteten FF 
nötig wird. (Mit Frequenzteilung).
Beim Ena kommt es ja nur auf die Flanke an, da spielt ein vermurkstes 
Tastverhältnis keine große Rolle. Dort kann der ST eingesetzt werden, 
wenn überhaupt.
Ich hab es noch nie nötig gehabt. Bei Leitungslängen bis 30 cm vom µC 
zum LCD.

ciao
gustav

: Bearbeitet durch User
von Harald W. (wilhelms)


Lesenswert?

HildeK schrieb:


> 'Plenken' stört den Lesefluss und führt an ungünstiger Stelle dazu, dass
> das Satzzeichen oder auch die Einheiten auf eine neue Zeile kommen.

Oder sogar auf die nächste Seite (bei einem mehrseitigen Dokument).

von Harald W. (wilhelms)


Lesenswert?

c-hater schrieb:

> Deswegen: wer plenkt, ist ein Vollidiot oder ein Troll oder unbelehrbar,
> also Vollidiot+Troll.

Könnte man da nicht vereinfacht Trollidiot sagen? :-)

von Nop (Gast)


Lesenswert?

MaWin schrieb:

> Mich würde auch nicht überraschen, wenn du das BUSY Bit gar nicht
> abfragst, gar kein READ vom Display machst

Braucht man auch nicht zwingend. Ich hab mir mal in einem Anwendungsfall 
mit einem 5V-Display an einem 3.3V-µC den Levelshifter damit eingespart, 
und natürlich vorher nach Datenblatt sichergestellt, daß das verwendete 
Display 3.3V sicher als high erkennt.

> sondern einfach nur die Daten reinhämmerst.

Geht problemlos - allerdings sollte man dann die Zeiten aus dem 
Datenblatt sicherheitshalber verdoppeln.

von Axel S. (a-za-z0-9)


Lesenswert?

Nop schrieb:
> MaWin schrieb:
>
>> Mich würde auch nicht überraschen, wenn du das BUSY Bit gar nicht
>> abfragst, gar kein READ vom Display machst
>
> Braucht man auch nicht zwingend.

Wenn man Daten so schnell wie möglich auf das Display ausgeben will, 
sollte man es schon tun. Wenn man einfach nur stumpf wartet, muß man 
sonst ordentlich Sicherheitszuschlag bei den Wartezeiten machen. Das 
Timing des Controllers kommt ja aus einem RC-Oszillator. Mit ordentlich 
Toleranzen.

> Ich hab mir mal in einem Anwendungsfall mit einem 5V-Display an
> einem 3.3V-µC den Levelshifter damit eingespart

Klar. Wenn man nicht vom LCD lesen will, spart man sich durchaus 
Aufwand. Es gibt da ja auch diese Trickschaltung mit einem 74HC595 am 
LCD, wo man nachher nur noch zwei Steuerleitungen braucht.

von Wolfgang (Gast)


Lesenswert?

Axel S. schrieb:
> Es gibt da ja auch diese Trickschaltung mit einem 74HC595 am
> LCD, wo man nachher nur noch zwei Steuerleitungen braucht.

Für unter 1€ bekommst du auch "Trickschaltungen", die ein LCD1602 per 
I2C ansteuerbar machen.
https://www.ebay.com/itm/293383214103

von Karl B. (gustav)


Lesenswert?

Wolfgang schrieb:
> Für unter 1€ bekommst du auch "Trickschaltungen", die ein LCD1602 per
> I2C ansteuerbar machen.

Hi,
dabei die richtige Lib nehmen. Die Pinne für Enable, Read/write/quer, RS 
sind ja nicht direkt hardwaremäßig ansprechbar, das muss bei der 
Ansteuersoftware unbedingt beachtet werden. Null-acht-fünfzehn-LCD-Init 
geht da nicht.
Und die Slave-Adressen sind ursprünglich 7-bittig. Fallstrick numero 1.
Beitrag "Re: Anfänger Will ATtiny2313 mit Display uber I2C verbinden"

Peter D. schrieb:
> Das Setzen der Pindirection in "lcd_init" fällt natürlich weg.

ciao
gustav

: Bearbeitet durch User
von Jens M. (schuchkleisser)


Lesenswert?

Karl B. schrieb:
> Pinne

Pins

Karl B. schrieb:
> Read/write/quer

Read/Not-Write

Diese I2C-Dinger sind m.E. Schrott, weil man da eben auch 2 Sequenzen 
schicken muss, um ein Bit (z.B. das E-Bit) zu pulsen, dadurch wird das 
noch lahmer.

von Wolfgang (Gast)


Lesenswert?

Karl B. schrieb:
> Und die Slave-Adressen sind ursprünglich 7-bittig. Fallstrick numero 1.

I2C Adressen sind immer 7-bittig. Das ist im Standard so fest gelegt.

Dass das ohne passende Bibliothek nicht geht, sollte jedem klar sein, 
der Copy&Paste halbwegs selbständig hinbekommt.

von Karl B. (gustav)


Lesenswert?

Wolfgang schrieb:
> Dass das ohne passende Bibliothek nicht geht, sollte jedem klar sein,
> der Copy&Paste halbwegs selbständig hinbekommt.

Hi,
nicht alle sind so schlau wie Du:

Beitrag "Re: I2C-Protokoll aus Datenblatt erfüllt? (Fuel Gauge LC709203F)"

ciao
gustav

von MaWin (Gast)


Lesenswert?

Nop schrieb:
> Braucht man auch nicht zwingend

Wenn man ganz schnell mit rinem Display kommunizieren will, dann schon.

Axel S. schrieb:
> Es gibt da ja auch diese Trickschaltung mit einem 74HC595 am LCD, wo man
> nachher nur noch zwei Steuerleitungen braucht.

Echt ?

Clock, Data, Strobe wäre normal, also 3.

Da ein 595 keine Schmitt-Trigger-Eingänge hat, und ein Wrchsel von 0/1 
oder 1/0 laut Datenblatt (Nexperia) maximal 500ns dauern darf, kann man 
keine simple RC Verzögerung nutzen.

Clock und Data koppeln geht beim Auslesen, also der Gegenrichtung, aber 
beim Schreiben ?

von Stefan F. (Gast)


Lesenswert?

MaWin schrieb:
> Clock, Data, Strobe wäre normal, also 3.

Strobe kann man aus dem Ausbleiben eines Clock Impulses ableiten.

von MaWin (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Strobe kann man aus dem Ausbleiben eines Clock Impulses ableiten

Nicht ohne Zusatz-IC.

von jo mei (Gast)


Lesenswert?

MaWin schrieb:
> Nicht ohne Zusatz-IC.

So weit sind wir (besser gesagt seid ihr) schon wieder weg
vom Thema. Gratuliere!

Hauptsache es wird gelabert und jeder weiss was besser als
der Andere, egal wohin es führt.

von Axel S. (a-za-z0-9)


Lesenswert?

MaWin schrieb:
> Stefan ⛄ F. schrieb:
>> Strobe kann man aus dem Ausbleiben eines Clock Impulses ableiten

Darauf lief es hinaus. Wobei es nicht darum geht, den '595 zu latchen - 
dafür kann man einfach Schiebetakt und Latchtakt verbinden. Der 595 
latcht dann immer die Daten vom Takt vorher. Aber das stört nicht, weil 
man ja sowieso nur 5 Bits braucht. Vom ausbleibenden Taktsignal wird der 
Impuls für E(nable) des LCD abgeleitet.

> Nicht ohne Zusatz-IC.

Ich finde die Schaltung nicht mehr. Ich weiß aber noch, daß ich das mal 
gesehen habe. Wahrscheinlich sogar in diesem Forum. Und mir damals 
gedacht habe "meine Güte, was für ein Aufriss, um einen GPIO zu sparen".

Ist aber für diese Diskussion egal. Denn auch wenn man den '595 mit 3 
GPIOs ansteuert, kann man trotzdem das BUSY Flag des LCD nicht auslesen.

: Bearbeitet durch User
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.