Problem mit Attiny2313 RS232 auf LCD Schaltung

Gast #3626227
Lesenswert?

Hallo Community,
ich bin am Verzweifeln.
Trotzdem vorneweg: Erspart mir bitte euer geflame dafür, dass ich den 
Code nicht selbst geschrieben und bestimmt nicht bis ins Detail 
verstanden habe. Ich bin Anfänger was µC Programmierung angeht und habe 
nicht die Zeit, alles zu lernen und zu verstehen. Ich will auch, dass es 
läuft. Niemand ist gezwungen, mir zu helfen.

Der Schaltplan ist angehängt, den Code habe ich von Arne Rossius 
(http://www.elektronik-kompendium.de/public/arnerossius/schaltungen/avr/lcdplain.htm). 
Meine Schaltung entspricht in wesentlichen Teilen auch der dort 
Abgebildeten.

Ich beobachte folgendes Verhalten: Nach Anlegen der Versorgungsspannung 
erscheint der im Code vorgegebene Beispieltext auf dem LCD. Ich habe 
sowohl ein 16x2 als auch ein 20x4 Zeichen LCD erfolgreich initialisiert.

Pin 2 auf SK1 in meiner Schaltung ist die RS232 Rx-Leitung. Der AVR 
reagiert nicht auf serielle Kommunikation per RS232. Ich habe 
verschiedene Com-Ports, PCs und Terminalprogramme eingesetzt. Auch mit 
einem UART-Adapter über USB oder CMOS-Pegel von meinem Mega aus konnte 
ich keine Reaktion beobachten. Trotzdem gibt es Bedingungen, unter denen 
unerwartet zufälliger Kauderwelsch auftaucht.

Ich erwarte nicht von euch, dass ihr dieses Projekt repariert. Aber ich 
würde mich freuen, wenn ihr mir aus eurer Erfahrung mögliche 
Fehlerquellen nennt, die dieses Verhalten auslösen.

Vielen Dank!
cm2227
Angehängte Dateien:
#3626234
Lesenswert?

Hast du den Tiny per Fuses auf Quarzbetrieb umgestellt?

Wenn nicht, dann ist dein 12Mhz Quarz nur Zierde. Der Tiny benutzt ihn 
nicht und läuft mit seinen werksseitig eingestellten ca. 1Mhz Takt aus 
dem internen Generator.
Für das LCD ist das kein Problem. Das funktioniert deswegen ganauso. 
Aber für die UART ist das nicht egal.
Und damit landen wir beim Kardinalfehler Nummer 2: Du stocherst im 
Nebel, weil du zuerst die UART Richtung in Betrieb nimmst, bei der du 
maximal wenig an Fehlersuchse betreiben kannst. Nimm eine UART immer so 
in Betrieb, dass der AVR sendet und ein Terminal das darstellt, was der 
AVR sendet. Denn dann kannst du auch ausmessen ob das Timing stimmt, 
bzw. du siehst am Terminal ob es stimmt. So, bei dir, siehst du gar 
nichts, ausser das am LCD nichts kommt.

Und nein "ich will das nicht lernen" lass ich nicht gelten.
Du willst etwas bauen, dann musst du dich mit den Grundlagen vertraut 
machen. µC-Technik hat zuviele Fallen und Fallstricke, als das der 
'Malen nach Zahlen' Ansatz funktionieren würde. Schon gar nicht, wenn 
man keine fertige WErkpackung hat, sondern sich aus dem Web etwas 
zusammensucht.
Gast #3627795
Lesenswert?

Ich danke euch für eure bisherigen Antworten.
Ja, der Quarz ist momentan Zierde.
Und das mit der Richtung der UART ist ein guter Tipp. Bisher konnte ich 
aber nur herausfinden, dass der AVR auch nicht erfolgreich sendet.
Ich verstehe, dass fremder Code seine Tücken hat.
Wenn aber bei identischer Hardware der Code beim Einen funktioniert und 
beim Anderen nicht, dann hat man etwas übersehen.
Ich hoffe immer noch, dass jemand auf eine Idee kommt, was ich übersehen 
habe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren