Forum: Mikrocontroller und Digitale Elektronik ATMega162 mit ?2? UARTS?


von Tamas Kurczveil (Gast)


Angehängte Dateien:

Lesenswert?

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

von Michael F. (startrekmichi)


Lesenswert?

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.

von Tamas Kurczveil (Gast)


Lesenswert?

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)?

von TravelRec. (Gast)


Lesenswert?

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"...

von Hannes L. (hannes)


Lesenswert?

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