Forum: Mikrocontroller und Digitale Elektronik Atmega MAX232 Kommunikationsfehler


von gw (Gast)


Lesenswert?

Ein kleines Problem, bei dem ich nicht weiter komme. Ich habe mit eine 
Schaltung mit einem Atmega8 aufgebaut. Dieser soll über die serielle 
Schnittstelle mit Excel kommunizieren. Der Datentransfer vom Atmega zu 
Excel funktioniert. Leider nicht umgekehrt. Ich habe mit dem AVR 
Terminal den Empfang in das Uart-Register simuliert und keine 
Übertragung hinbekommen. Zu Testen nehme ich die UART-Beispiele aus dem 
Microcontroller-Lehrbuch von R.Walter. Deshalb gehe ich davon aus, dass 
der Fehler in der Hardware liegt. Ich arbeite mit einem MAX 232 von ST 
mit 100nF Kondensatoren. Baudrate ist bei 8MHz 9600. Ich bin ein wenig 
ratlos bei der Fehlerquelle ...


von Andrew (Gast)


Lesenswert?

100 nF? 5 Stück am MAX232?
Wenn das stimmt, kann's nicht funktionieren. Nimm 22uF!

von crazy horse (Gast)


Lesenswert?

tja, und da weder dein Programm noch ein Schaltplan zu sehen ist, wird 
dir auch keiner weiterhelfen können.

von Hannes L. (hannes)


Lesenswert?

> Baudrate ist bei 8MHz 9600.

Wie wird der Takt von 8MHz erzeugt?
- Externer Quarz,
- externer Quarzoszillator oder
- interner RC-Oszillator?

...

von Null (Gast)


Lesenswert?

Ich hatte auch gestern einen Mega169 laufen. Mit internem RC. Wenn der 
nicht relativ exakt kalibriert wurde, war nix mit serieller 
Kommunikation.

von Andrew (Gast)


Lesenswert?

>Ich hatte auch gestern einen Mega169 laufen. Mit internem RC.

Das macht man ja auch nicht...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn der Datentransfer vom AVR zum PC funktioniert, aber in der 
Gegenrichtung nicht, dann liegt die Fehlerursache definitiv nicht beim 
MAX232. Die Kondensatoren sind für die Ladungspumpe erforderlich, die 
die Spannungen für den V24-Sendeteil erzeugt. Der Sendeteil wird aber, 
wie der Name impliziert, für das Senden benötigt - für den Empfang sind 
diese Spannungen nicht erforderlich, der funktioniert auch so.

Die Baudratenerzeugung scheint prinzipiell auch in Ordnung zu sein, da 
ja sonst der PC keine Daten hätte empfangen können.

Also liegt entweder ein elektrisches Problem (fehlerhafte Verdrahtung), 
ein Softwareproblem (fehlerhafte UART-Empfangsroutinen) oder ein 
Baudratenspitzfindigkeitsproblem (Baudrate stimmt fast, aber so, daß 
viele Empfangsfehler auftreten) vor.

Letzteres halte ich jedoch wegen des funktionierenden Sendens für eher 
unwahrscheinlich.

von Karl H. (kbuchegg)


Lesenswert?

Ich tippe mal darauf, dass am PC noch ein Hardware Handshake
aktiviert ist. Gleichzeitig ist im RS232 Kabel die zusätzliche
Brücke RTS/CTS nicht eingebaut worden, sodass der PC auf
die Sende Feigabe wartet. Und er wartet und wartet und wartet ...

http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART

Es geht um die Brücke am RS232 4-6-8

von Null (Gast)


Lesenswert?

Die Baudratenerzeugung muss nicht ok sein. Beim RC betriebenen Mega169 
hat der Mega169 vom PC korrekt empfangen, zurueck ging's aber nicht. Das 
Osccal register war etwas daneben. Normalerweise habe ich auch immer 
Quarze, aber diesmal eben nicht - n' butterfly. War ne sehr interessante 
Experience. Bei Vorhandensein eines 32kHz Quarzes kann man sich die 
15cent fuer einen schnellen Quarz sparen, und den RC mit dem 32k 
kalibrieren.

von gw (Gast)


Lesenswert?

Fehlerursache war der Hardware-Handshake durch die fehlenden Brücken 
4-6-8 am RS232. Danke an alle!

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.