ATmega8 und UART / MAX zickt

#1108734
Lesenswert?

Hallo,

ich betreibe einen MAX202 an einem ATmega8 als serielle 
Debug-Schnittstelle, die Schaltung ist trivial, nur RxD und TxD 
verbunden. Den MAX202 nehme ich, weil alle C = 100 nF sind.

Meistens funktioniert alles, aber sporadisch empfange ich am PC keine 
Daten vom ATmega, wenn ich dann mit dem Oszi nachmesse, geht es wieder, 
auch dann noch wenn man den Tastkopf wieder wegnimmt. Und irgendwann 
geht es dann wieder nicht. Am ATmega8 hängt noch ein Display als 
Kontrolle, dem geht es die ganze Zeit prima.

Hat dazu jemand eine Idee ?

Der ATmega8 läuft mit einem 7.3428 MHz Quarz und ich nutze 9600,8,n,1 
als Kommunikationsparameter. Zwischen ATmega8 und MAX202 sind ca. 20 cm 
Leitung (Laboraufbau) das kann es doch aber nicht sein ?

matthias
Gast #1108966
Lesenswert?

> Meistens funktioniert alles, aber sporadisch empfange ich am PC keine
> Daten vom ATmega, wenn ich dann mit dem Oszi nachmesse, geht es wieder,
> auch dann noch wenn man den Tastkopf wieder wegnimmt. Und irgendwann
> geht es dann wieder nicht. Am ATmega8 hängt noch ein Display als
> Kontrolle, dem geht es die ganze Zeit prima.
>
> Hat dazu jemand eine Idee ?

Lass mich raten, du misst an einem Pin des Max oder des AVRs, richtig? 
Da würde ich auf eine kalte Lötstelle tippen. Mehr kann man ohne 
Schaltplan nicht dazu sagen.

> Der ATmega8 läuft mit einem 7.3428 MHz Quarz und ich nutze 9600,8,n,1
> als Kommunikationsparameter. Zwischen ATmega8 und MAX202 sind ca. 20 cm
> Leitung (Laboraufbau) das kann es doch aber nicht sein ?

Bei der relativ niedrigen Baudrate sind 20cm kein Problem. Zumindest 
wenn du nicht irgend eine kräftige Störquelle in der Nähe hast. 
Allerdings würde sich die Störquelle dann sicher nicht von einem 
Tastkopf beeindrucken lassen.

Ein SW-Fehler ist auch nicht auszuschließen, wenn z.B. sich nach einiger 
Zeit die SW festfrisst und du beim messen ausversehen den Reset-Pin nach 
Masse brückst.

Zeig doch mal einen Schaltplan ;)
#1109427
Lesenswert?

also, gnd am T1IN ist schon mal sinnlos, aber ansonsten ist der 
schaltplan in ordnug...

versuch doch einfach mal ein zeichen per dauerschleife zu senden und 
miss die pegel am ATmega8 und am max...
gleichzeitig am besten noch ein terminal prog wie zb. hterm laufen 
lassen...

vielleicht hast du einfach die signalleitungen nicht
gekreuzt (rx und tx zum pc) ?
#1109520
Lesenswert?

Matthias D. wrote:
> Meistens funktioniert alles, aber sporadisch empfange ich am PC keine
> Daten vom ATmega,

Klingt nach einem Masseproblem.
Ein PC ist immer geerdet, eventuell aber schlecht (Störspannung).

Idealer Weise sollte daher Deine AVR-Schaltung erdfrei sein, z.B. 
Wandwarze mit Schutzisolation (kein Schuko).

Erdschleifen sollte man möglichst vermeiden. Deshalb sind industrielle 
Datenleitungen immer galvanisch getrennt (z.B. Ethernet: Trenntrafo, 
CAN: Optokoppler).


Peter
#1110450
Lesenswert?

@rick: wenn ich die Leitungen nicht richtig hätte, würde es ja gar nicht 
gehen - es geht aber nur manchmal nicht.

@peter: Danke, da hast du sicher Recht, mein Labornetzteil ist erdfrei 
und ich habe sogar schon mal meine Erdströme geprüft (ich hab eine 2mA 
Stromzange), das war alles ok. In die endgültge Schaltung werde ich 
einen MAX485 setzen, ich benötige ohnehin nur eine Datenrichtung, dass 
passt das.

Allerdings hatte ich auf dem Arbeitstisch noch eine aktive RFID-Spule 
liegen, ich vermute dass diese Schuld war.

Danke für eure Hilfe

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