mikrocontroller.net

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


Autor: Matthias D. (marvin42)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Hmm... (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: Matthias D. (marvin42)
Datum:
Angehängte Dateien:

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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rick Noname (rickstar)
Datum:

Bewertung
0 lesenswert
nicht 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) ?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias D. (marvin42)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: wt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.