Forum: Mikrocontroller und Digitale Elektronik LCD Display Treiber und Einkopplungen


von Daniel E. (everyday_fun69)


Lesenswert?

Hallo zusammen,

meine Schaltung läuft nun zu 98 % ;-) , so dass ich eine PCB mit Eagle 
erstellen will, da mir die fliegende Verdrahtung auf der Rückseite nicht 
gefällt.

Beim LCD gib es das einzige Problem, dass ab zu mal ein Zeichen spinnt. 
Ich schalte auch Relais, welche aber mit Freilaufdiaode und 
Potentialgetrennt mit Optokoppler angesteuert werden. Ich initialisiere 
das LCD nur einmal am Anfang. Bisher hängt es direkt am µC und ich bin 
mir nicht sicher, ob ich Treiber 5V/ 5V in alle Leitungen schalten 
sollte und am Treiber beidseitig noch 10 K gegen Masse schalten sollte 
um kapazitive Einkopplungen zu unterbinden oder gar Kondensatoren 
vorsehen sollte.

Da das für meine Eagle Schaltung wichtig ist, wäre ich dankbar für 
jegliche selbst gewonnenen Erfahrungen und Ratschläge. Bei Rückfragen 
einfach fragen !

Danke.

Daniel

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


Lesenswert?

Daniel E. schrieb:
> meine Schaltung
Welche denn?

> Bisher hängt es direkt am µC
Dad ist üblich und Macht idR keine Probleme.

> Bisher hängt es direkt am µC
Welches Display über welche Leitungslänge an welchem uC?

von Daniel E. (everyday_fun69)


Angehängte Dateien:

Lesenswert?

Hallo und Danke für die Rückmeldung.

Display anliegend 4x40.

Länge Kabel max. 20-25 cm

Schaltung ebenso anliegend mít PIC18F4580

Danke schon mal!

: Bearbeitet durch User
von Joe (Gast)


Lesenswert?

Welche Programmiersprache?

von Daniel E. (everyday_fun69)


Lesenswert?

Joe schrieb:
> Welche Programmiersprache?

Ansi C

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


Lesenswert?

Daniel E. schrieb:
> Potentialgetrennt mit Optokoppler
Du hast da keine Potentialtrennung, weil du links und rechts vom OK 
die selbe Masse hast...

Wo und wie sind da welche Relais angeschlossen?

> Ich initialisiere das LCD nur einmal am Anfang.
Das reicht. Und dann würde ich den Display-Inhalt laufend auffrischen. 
Dazu wird im Programm ein Display ins RAM "abgebildet" und von dort pro 
ms ein Zeichen auf das Display hinausgeschrieben. Auf diese Art musst du 
nicht auf das Display warten, weil es ja sicher schon mit dem vorigen 
Zeichen/Kommando "fertig" ist. Auf diese Art ist auch ein "Löschen" des 
Displays nie nötig. Und wenn zufällig tatsächlich mal ein falsches 
Zeichen dargestellt wird (EMV- oder ESD-Impuls), dann ist das spätestens 
nach 50ms schon wieder Geschichte...

von Sven S. (boldie)


Lesenswert?

Also wenn ich mir deinen Schaltplan so ansehe, würde ich sagen C C und 
noch mal C. Ich mache das privat oft so, das ich überall wo Versorgung 
ist und Stromimpulse auftreten, Cs setzte. Also am uC, Optokopplern, 
Display, ISP usw.

Was auch helfen kann, ich sehe bei dir einige Eingänge, wenn du diese 
mit einem RC-Glied etwas beruhigst, dann hast du weniger Einstrahlungen 
auf der Platine, die gerade bei langen Leitungen schnell passieren. Ich 
denke mal, das die Signale, wleche du messen möchtest eher 
Niederfrequent sind.

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


Lesenswert?

Sven S. schrieb:
> würde ich sagen C C und noch mal C.
Richtig, die Blockkondensatoren fehlen hier völlig...
http://www.lothar-miller.de/s9y/categories/14-Entkopplung

> Also am uC, Optokopplern, Display, ISP usw.
Die Optokoppler an sich brauchen keinen Blockkondensator. Bestenfalls 
die Last, die dranhängt könnte einen brauchen.
Aber hinter die DCDC-Wandlern würde ich noch ein paar setzen...

: Bearbeitet durch Moderator
von Daniel E. (everyday_fun69)


Lesenswert?

Hallo und danke für die zahlreichen Wortmeldungen.

Ihr habt völlig recht, hinter den DCDC Wandlern gehören auf jeden Fall 
welche hin. Die an JP 1 sind Taster zum Seiten wechseln und Werte des 
LCD Umschalten. An den anderen Eingängen messe ich Temperaturen der 
Solaranlage, welche nur 100 ms kurz an sind (PT1000) und über ISR 
gemeldet werden. An den Ausgängen der Optokoppler sind Siemens PT5 
Relais (max. 20 cm verdrilltes Kabel mit Freilaufdiode dran oder ein 
Reed Relais (40 m in der Heizung entfernt), welches PT 1000 Sensoren 
umschaltet.

Das mit der Potentialtrennung ist richtig, ich schau mal, ob ich das 
noch  auftrennen kann. Zusammengelegt ist es wieder schnell.

Ich schreib das LCD schätzungsweise 3-4x in der Sekunde, dennoch, wenn 
einmal ein Zeichen verkorkst ist sind es nach dem überschreiben die 
neuen Zeichen auch. So hab ich es jedenfalls in Erinnerung -> der Sommer 
ist lange her :-(.

Zurück zum Display, so lassen oder modifizieren der Leitungen und 
Treiber?

Danke.

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


Lesenswert?

Daniel E. schrieb:
> Ich schreib das LCD schätzungsweise 3-4x in der Sekunde,
Komplett?

> wenn einmal ein Zeichen verkorkst ist sind es nach dem überschreiben
> die neuen Zeichen auch.
Alle "neuen" Zeichen, oder nur das eine an der "verkorksten" Stelle?

von Daniel E. (everyday_fun69)


Lesenswert?

Lothar M. schrieb:
> Daniel E. schrieb:
>> Ich schreib das LCD schätzungsweise 3-4x in der Sekunde,
> Komplett?

Ja, erst hat ich einen 4 MHz Qaurz da war das ewig lange >100/200 ms, 
Ich hab es gemessen mit einen Port bei Beginn Ein und am Ende aus, 
genauen Wert hab ich auf einem anderen Laptop. Jetzt hab ich 20 Mhz.



>> wenn einmal ein Zeichen verkorkst ist sind es nach dem überschreiben
>> die neuen Zeichen auch.
> Alle "neuen" Zeichen, oder nur das eine an der "verkorksten" Stelle?

nur das Zeichen an der verkorksten Stelle

ich werden dann mal meine C´s in der Schaltung updaten!

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


Lesenswert?

Daniel E. schrieb:
> nur das Zeichen an der verkorksten Stelle
Wenn das gesamte Display 4 mal pro Sekunde geschrieben wird und dabei 
nur einzelne Zeichen, aber immer die selben, falsch dargestellt werden, 
dann hat das Programm einen Fehler.

Denn wenn es ein Hardwarefehler wäre, dann würde ein falsches Zeichen 
nach 1/4 Sekunde überschrieben, und zudem wäre jedesmal ein anderes 
Zeichen betroffen.

von Frank K. (fchk)


Lesenswert?

> Zurück zum Display, so lassen oder modifizieren der Leitungen und
> Treiber?

Ich denke, bei Deinem Gerät würde es sich anbieten, Bedienteil 
(Display+Taster) und Steuer-/Leistungsteil voneinander zu trennen, einen 
kleinen PIC fürs Bedienteil vorzusehen, und beide per serieller 
Schnittstelle zu verbinden. Die serielle Verbindung kann dann ja 
problemlos auch etwas länger sein.

Dein aktueller PIC18F4580 hat zwar nur eine serielle Schnittstelle. Das 
ist aber auch ein recht alter Typ, der langsam aber sicher teuer wird. 
Dafür gibts einen Nachfolgetyp PIC18F45K80, der besser und schneller ist 
und 2 EUSARTs hat.

fchk

von Daniel E. (everyday_fun69)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,


"Denn wenn es ein Hardwarefehler wäre, dann würde ein falsches Zeichen
nach 1/4 Sekunde überschrieben, und zudem wäre jedesmal ein anderes
Zeichen betroffen."

Eigentlich logisch! Ich schau noch mal nach, ob ich es im ausgebauten 
Zustand nachbilden kann.

@Frank K. (fchk)

Ich bin froh, das es so 98% läuft ! Dein Vorschlag ist gut, übersteigt 
aber meine Kenntnisse und dauert bei mir in der Einarbeitung Wochen und 
dann ist noch nicht mal gesagt, dass es 100% läuft. Hab noch genug 
18F4580 da :-) und damit geht auch SPRUTs Brenner!

Hab die Elkos upgedated. Lassen wir da die LCD Beschaltung so wie sie 
ist, oder soll ich temporär im Layout noch C´s vorsehen?

Sonstige Anmerkungen evtl.?

Danke.

von Frank K. (fchk)


Lesenswert?

Daniel E. schrieb:

> 18F4580 da :-) und damit geht auch SPRUTs Brenner!

Aha. Noch eine Antiquität. Besorge Dir mal ein PICKIT3. Wenn Du dann die 
ICSP-Leitungen unbenutzt lässt, kannst Du richtig debuggen: Breakpoints, 
Speicher anschauen, Single Step, etc. Dann machts erst richtig Spaß.

fchk

von Daniel E. (everyday_fun69)


Lesenswert?

Frank K. schrieb:
> Daniel E. schrieb:
>
>> 18F4580 da :-) und damit geht auch SPRUTs Brenner!
>
> Aha. Noch eine Antiquität. Besorge Dir mal ein PICKIT3. Wenn Du dann die
> ICSP-Leitungen unbenutzt lässt, kannst Du richtig debuggen: Breakpoints,
> Speicher anschauen, Single Step, etc. Dann machts erst richtig Spaß.
>
> fchk

Keine schlechte Idee beim Aussterben der Parallelport-Schnittstelle und 
knapp 20 Euro aus der Bucht von Honkong hab ich auch locker übrig. Um zu 
sehen, wo der Käfer hinspringt, bei welchen Ereignissen auch immer.. auf 
jeden Fall notwendig! Gekauft :-)

von Daniel E. (everyday_fun69)


Lesenswert?

Frank K. schrieb:
> Daniel E. schrieb:
>
>> 18F4580 da :-) und damit geht auch SPRUTs Brenner!
>
> Aha. Noch eine Antiquität. Besorge Dir mal ein PICKIT3. Wenn Du dann die
> ICSP-Leitungen unbenutzt lässt, kannst Du richtig debuggen: Breakpoints,
> Speicher anschauen, Single Step, etc. Dann machts erst richtig Spaß.
>
> fchk

Ahhhh @ fchk:

Beitrag "[S] Pic Programmer"

auch aus der Bucht ;-), wo steht dort das es ein Clone ist? Hab grad bei 
roboter-Bausatz geschaut, sieht nach original aus??

von Frank K. (fchk)


Lesenswert?

Meiner tut so, als würde er funktionieren.

Hab aber noch ein ICD3 fürs ernsthafte Arbeiten. Das PICKIT3 brauchte 
ich nur, um Dokumentation für die Inbetriebnahme zu machen. Da wäre ein 
300€ ICD3 etwas übertrieben, und die Chinesen benutzen eh nur Clones.

Und ja, ich verdiene damit mein Geld.

fchk

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.