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?
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.