Forum: Mikrocontroller und Digitale Elektronik UART: AVR1->PC & AVR2<->PC ok, AVR1->AVR2 nicht


von Markus (Gast)


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?

von Sascha W. (sascha-w)


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

von Georg W. (gewe)


Lesenswert?

Welches Kabel verwendest Du zwischen AVR1 und AVR2?

Nicht das Du ein DTE/DCE Problem hast. Sprich, wenn Du ein 1:1 Kabel 
verwendest probiere mal ein gedrehtes.

cu
Georg

von Markus (Gast)


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.

von manu (Gast)


Lesenswert?

Markus kannst du mal dein Quellcode  veröffentlichen ?

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.