Hallo, ich frage mich, ob auch jemand von Euch schon mal auf mein Problem gestossen ist: Ich initialisiere bei meinem ATMega162, welche laut ATMEL 2 UARTs hat, den UART0 und fange an eine Zeichenkette wiederholt an den Rechner zu schicken (Auslesen mit Terminal). Mit Kabel von COM1 auf UART0 funktioniert alles wunderbar. Nun habe ich aber aus Versehen das Kabel vom Computer an meinen UART1 angeschlossen, und mit Erstaunen feststellen müssen, dass er die selbe Zeichenkette über UART1 schickt, obwohl ich nur UART0 initialisiert habe. Kann mir jemand von Euch erklären, was ich falsch mache? Laut ATMEL sollen die beiden UARTs des ATMega162 total unabhängig voneinander ansprechbar sein. Ich habe meinen Assembler-Programmcode angehägt. Vielen Dank für Eure Hilfe! Tamas
Ich verwende schon länger den 162 eben weil er zwei UARTs hat. Poste mal deinen Sourcecode und überprüf deine Schaltung, weil so ein Problem hatte ich noch nie.
Also mit dem Kabel in den Hintern stecken...keine Ahnung...kann funktionieren... Ich muss zu meiner Schande aber zugestehen, ich bin auf dem Gebiet auch überhaupt nicht bewandert, wie Markus Wanckel. Vielleicht kannst Du uns von Deinen Erfahrungen dahingehend berichten? Was für Kabel (Durchmesser?) machen sich denn da so am besten? Der Quellcode ist übrigens in .asm im 1. Post mitgeliefert. Es ist zwar nun schon eine Weile her, aber interessieren würde es mich dennoch, weil das Problem zwar umgangen, aber nicht gelöst wurde. Ist im Quellcode alles in Ordnung (bei der Initialisierung)?
So wie ich das sehe, sollte das 2. USART auch initialisiert werden, um zu funktionieren. Desweiteren sollten die Portpins richtig initialisiert werden, da floatende Portpins alles mögliche auffangen und "ausgeben"...
Markus' Aussage ist garnicht so abwegig... g Wenn beide UARTs einen gemeinsamen MAX232 benutzen, der TXD-Pin der zweiten Schnittstelle des Controllers aber hochohmig (Eingang) ist, dann kann es vermutlich ein Übersprechen innerhalb des MAX232 oder auf dem Leitungsweg dorthin sein. Da wird also irgendwas als Antenne fungieren und die Daten kapazitiv auf den zweiten Kanal übertragen... Also TXD der unbenutzten UART auf Ausgang schalten und/oder UART auch initialisieren... ...
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.