Forum: Mikrocontroller und Digitale Elektronik Problem mit Attiny2313 RS232 auf LCD Schaltung


von cm2227 (Gast)


Angehängte Dateien:

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

von Klaus I. (Gast)


Lesenswert?

Du hast einen Quarz in der Schaltung, wurde das im Code berücksichtigt?

von Karl H. (kbuchegg)


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.

: Bearbeitet durch User
von cm2227 (Gast)


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.

von Klaus I. (Gast)


Lesenswert?

Du könntest noch Bilder von Deinem Aufbau hier hereinstellen, damit wir 
Dich auf den fehlenden Abblockkondensator hinweisen können ;o)

http://www.mikrocontroller.net/articles/Bildformate

Ist halt arg wenig Input von Dir. Das mit den Bildern (oben und unten 
der Platine) wäre vielleicht noch einen Versuch wert.

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.