Gast
#2145226
Moin, ich versuche Grade eine Kommunikation zwischen einem ATMega32 und einem PC per RS232 aufzubauen. Es gibt dort jedoch einen merkwürdiges Verhalten. Sende ich 2 oder mehr Byte hintereinander, und ein Byte ist 0x00, wird das folgende Byte falsch empfangen. Ist beim ersten Byte ein beliebiges Bit gesetzt, wird das zweite Byte korrekt empfangen. Ich muss mindestens 6 ms warten, um das zweite Byte erfolgreich zu senden. Das Problem konnte ich auf das angehängte Minimalbeispiel eindampfen. Infos zum Aufbau: Ein ATmega32 (TQFP) mit 5V und 16 MHz betrieben sitzt auf einer selbst entwickelten Platine. Er wird über eine Ethernetbuchse mit 9V (2 Adern Plus; 2 Minus; 7805 auf Platine) versorgt und sendet seine Daten ebenfalls über diese Buchse. Daran angeschlossen ein Cat5 Kabel mit 0,5 Metern. Von dort aus geht es über einen MAX3232 und knapp zwei Metern Kabel in den PC. Baudrate: 9600 Terminal-Programm: GtkTerm (Debian/Linux) Auf dem Auszug vom Oszi (angehängt) sieht alles in Ordnung aus (bis auf den Sägezahn durch den MAX3232). Die mit dem Oszi gemessene Baudrate beträgt 9612. Das zweite Byte sieht man auf dem Auszug nicht komplett, aber ist ebenfalls in Ordnung. Weitere Messungen kann ich bei Bedarf einreichen. Kanal 1 vom Oszi ist nach dem Ethernetkabel aufgenommen worden. Kanal zwei direkt hinter den MAX3232. Meine Lösungsversuche (ohne Erfolg): - Ich habe bereits den RS232 Pegelwandler getauscht (MAX232N DIP gegen MAX3232 SMD) - Ich habe einen RS232-Usb-Dongle verwendet und diesen direkt hinter dem MAX232 angeschlossen, so dass das 2 Meter RS232 Kabel zum PC entfielen. Kennt jemand das Problem, hatte es selbst und konnte es Lösen? Grüße emperor PS: Das Errata vom ATMega32 enthält keine Punkte zum USART.

