Forum: Mikrocontroller und Digitale Elektronik ATmega8 und UART / MAX zickt


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Matthias D. (marvin42)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Hat dazu jemand eine Idee ?
Klar, der C3 ist falsch herum eingebaut ;-)
Im Ernst: wie soll dir ohne Schaltplan jemand eine vernünfitge Antwort 
geben?

> nur RxD und TxD verbunden.
Das ist zuwenig, GND sollte schon auch dabei sein ;-)

von Hmm... (Gast)


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 ;)

von Matthias D. (marvin42)


Angehängte Dateien:

Lesenswert?

Suuuper, danke für den Tip - aber ich tu dir den Gefallen, anbei ist der 
Schaltplan.

von Ralf (Gast)


Lesenswert?

Also, ob an AREF vom ATmega noch was ran muss, weiss ich nicht, ich 
komme aus der 8051er Ecke. Aber R1IN vom MAX202 auf GND zu legen, passt 
irgendwie nicht, weil GND in der RS232-Signalwelt nicht erlaubt ist. 
Könnts daran liegen?

Ralf

von Rick N. (rickstar)


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) ?

von Peter D. (peda)


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

von Matthias D. (marvin42)


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

von wt (Gast)


Lesenswert?

die schaltung ist ok, die betreibe ich genau so.
Aus deinen Worten heraus würde ich sofort zwei Dinge sagen:

1. sämtliche Pins am MAX, cap's, datenleitungen vom µP, VCC und GND vom 
µP nachlöten

2. sicherstellen, daß dein GND überall in der Schaltung durchverbunden. 
Dies betrifft auch RS232 Stecker (Pin5).

gruß

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.