UART: AVR1->PC & AVR2<->PC ok, AVR1->AVR2 nicht

Gast #2692953
Lesenswert?
• ▲
▼
Hallo zusammen,

ich kämpfe hier mit einem UART-Problem.

Und zwar habe ich 2 Sachen aufgebaut:

Ein Messgerät mit einem Mega8, welches über die serielle Schnittstelle 
Daten zum PC schickt. Das läuft einwandfrei.

Jetzt habe ich mir mit einem Mega32 noch was zusammengebastelt, damit 
ich mir die Daten auf einem Display statt auf dem Computer anzeigen 
kann. Das läuft auch einwandfrei über den PC. Alles, was ich im Terminal 
eintippe, erscheint auf dem Display und wird auch wieder zum PC zurück 
geschickt. Das zurückschicken hatte ich nur testweise eingebaut, um die 
serielle Kommunikation zu überprüfen.

Schliesse ich den Mega32 (Display) über die serielle an den Mega8 
(Messgerät) an, dann passiert gar nichts. Es werden keine Daten 
übertragen.

Das Messgerät kann ich direkt am PC anschliessen, für das Displaygerät 
nehme ich ein gekreuztes Nullmodemkabel.
Beide haben einen MAX232 als Pegelwandler. Der Pegel wird also beim 
direkten Anschliessen 2x umgewandelt.
Der Mega8 läuft mit einem Quarzoszillator mit 12MHz, der Mega32 ist mit 
4MHz über einen Quarz getaktet, die Taktfrequenzen sollten also stabil 
sein.

Habe ich da irgendwo einen Denkfehler drin? Das müsste doch eigentlich 
laufen?
#2693366
Lesenswert?
• ▲
▼
Hallo,

deine Hardware scheint ja nach deiner Beschreibung erst mal 
funktionsfähig.
Zu Testzwecken kannst du auch TX/RX der µC's gekreuzt ohne Pegelwandler 
verbinden.
An sonsten kann der Fehler ja nur noch in der Software liegen. Wie sieht 
deine Empfangsroutine am M32 aus?
Einen Unterschied zwischen PC mit Terminal und deinem M8 als Sender 
kanns schon geben. Während der µC die Bytes in kurzer Zeit 
hintereinander sendet, kommen die Daten vom PC (abhängig vom verwendeten 
Terminal) einzeln an - eben wie du sie auf der Tastatur eingibst.

Sascha
Gast #2693491
Lesenswert?
• ▲
▼
Hab's gefunden. Nach etlichen erfolglosen Umbauten des Empfängers 
(Hardware & Software).

Dieser Fehler war so selten dämlich...

Ich habe alte Sachen wiederverwendet. Und zwar meine MAX232 Platine und 
das "Nullmodemkabel". Das "Nullmodemkabel" war kein Nullmodemkabel, 
sondern ein - naja... nennen wir es Bugfix ;) - für die MAX232 Platine, 
weil ich da die Pins vom Stecker falsch angeschlossen hatte.
Deswegen konnte ich Daten vom/zum Computer übertragen, weil da das Kabel 
mit dran hing. Sobald ich es direkt an das Messgerät angeschlossen habe, 
ging's natürlich nicht mehr.

Für den Sch....-Fehler habe ich einige Stunden gebraucht, um ihn zu 
finden.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.