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 ...
tja, und da weder dein Programm noch ein Schaltplan zu sehen ist, wird dir auch keiner weiterhelfen können.
> Baudrate ist bei 8MHz 9600.
Wie wird der Takt von 8MHz erzeugt?
- Externer Quarz,
- externer Quarzoszillator oder
- interner RC-Oszillator?
...
Ich hatte auch gestern einen Mega169 laufen. Mit internem RC. Wenn der nicht relativ exakt kalibriert wurde, war nix mit serieller Kommunikation.
>Ich hatte auch gestern einen Mega169 laufen. Mit internem RC.
Das macht man ja auch nicht...
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.