Hallo zusammen, es gibt ja reichlich Fehlerquellern bei der UART Progammierung - aber eine besonders schön dähmliche habe ich mir geleistet: Habe auf meinem gekauften Board DIISPLAY3000 nicht erkannt, dass der UART1 gar nicht am MAX232 angeschlossen ist (sondern der UART0). Gibt einen wunderschönen Fehler: Bei allen Baudraten ergeben sich reproduzierbar die falschen Zeichen d.h. die Kommunikation läuft schon (zumindestens vom Hyperterminal zum AVR, umgekehrt nicht, d.h. das Terminal zeigt nichts an). Das liegt natürlich daran, dass der MAX232 nicht nur die Spannung von TTL auf +12V/-12V erhöht, sondern auch noch die Manchestercodierung auf das Signal aufbringt ...! Schön, dass der AVR Eingang die 12 V verkraftet hat ...! Dabei ein ganz besonders Lob an Peter Fleury: Seine Interrupt gesteuerte UART Lib mit Ringpuffer Verwaltung ist allerfeinste Sahne. Hat auf Anhieb gefunzt. Dabei habe ich das DISPLAY3000 als Scroll-Terminal für die übertragenen Datensequenzen / Telegramme benutzt - Super Tool zur Fehlerdiagnose. Da lässt sich nun wirkllich schnell der Fehler eingrenzen. Es liegt also nicht immer an den Fuses und Frequenzen. Aber das ist ja schon ausreichend alles behandelt worden. Weiterhin viel Erfolg bei der Fehlersuche. Grüsse
Ich vermute mal, Dein Kauderwelsch kann kein einziger verstehen. Wenn Du die UARTs vertauschst, dann passiert garnichts, die liegen nämlich auf völlig verschiedenen Pins. Oder hast Du sie mit den berühmten WLAN-Kabeln verbunden? Daß ein MAX232 Manchester codieren kann, ist totaler Quatsch. Dazu müßte er ja den doppelten Baudratentakt zugeführt bekommen. Wenn Du +/-10V auf den AVR bekommst, dann hast Du einfach nur Eingang mit Ausgang vertauscht. Mach Dir nichts draus, ist mir auch schon mal passiert. Kaputt gehen kann dabei kaum was, die Ladungspumpen sind ja nicht als Schweißtrafo ausgelegt. Peter
Hallo, Uuuppps, sorry, Peter hat natürlich Recht. Ich habe mich früher beruflich mit der Digitalen Funkübertragung beschäftigt, wo zur Vermeidung von von Gleichanteilen in den Bitfolgen Manchestercodierung zum zwecke der Taktrückgewinnung auf der Luftschnittstelle zum Einsatz kommt. Ohne über Baudraten nachzudenken habe ich gedacht, das würde auch bei der seriellen leitungsgebunden Kommunikation eingesetzt. Wie gewinnt man eigentlich hier die Taktung bei einer Folge von geichen Bits zurück ? Der Rest simmt aber: Vergisst man auf AVR Seite den MAX232 an den Portausgang zu hängen, dann sind die gesendeten Bitfolgen für den Empfänger immer 1:1 invertiert. Dann kommt es zu der Fehlersymtpmatik, dass alle Zeichen reproduzierbar GLEICH falsch sind - unabhängig von der eingestellten Baudrate. Dies ist ein guter Fehlerhinweis, dass Fuses und Frquenze stimmen, aber eben der MAX232 nicht zwischengeschaltet ist (wenn man vorher gepennnt hat). Nix mehr und nix weniger wollte ich sagen. nachts sollte man besser schlafen!!! Grüsse
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.