mikrocontroller.net

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


Autor: Tamas Kurczveil (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Frangenberg (startrekmichi)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tamas Kurczveil (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)?

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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"...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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...

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.