mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 1xTX auf 2xRX ATMEGA162


Autor: Ali (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen ATMEGA162 mit 2 UARTS und dazu ein LIN-CHIP der mir vom 
BUS Daten liefert. Der Sender vom LIN-Chip also TX wollte ich die RX von 
UART0 und an RX von UART1 zusammen legen, sodas ich über beide die 
gleichen Daten empfangen kann.Kann ich diese RX einfach miteinander 
verbinden? Eigentlich sind ja beide RX vom ATMEGA162 Eingänge.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Datasheet vom nächstbesten LIN Driver ist TX der 
Transmitter-Anschluss und RX der Receiver-Anschluss. Also ist TX(LIN) 
ein Eingang und an RX(UART1,2) zwar möglich, aber völlig sinnlos.

Verrate mal was du damit eigentlich bezweckst.

Autor: Ali (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich ist es ja so ich habe einen ATMEGA162 mit 2UARTS. An einen 
UART schliesse ich den LIN-Chip an (UART0 RX->TX und TX->RX), an den 
anderen kommt ein CP2102 als Virtueller COM-Port (UART1 RX->TX und 
TX->RX). Damit ich nicht ich nicht intern die das Empfangene Protokoll 
durch die Gegend schiebe habe ich mir gedacht verbinde ich die nur 
beiden RX vom ATMEGA. Dann geht das Signal an den UART0-RX und den 
UAR1-RX oder gibt es eine Möglichkeit intern die Daten von einem UART 
zum andern zu schieben?

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>sodas ich über beide die gleichen Daten empfangen kann.
>Kann ich diese RX einfach miteinander verbinden?
Ja, kannst du. Aber was soll das bringen? Es läuft doch eh nur ein 
Programm.


>intern die Daten von einem UART zum andern zu schieben?
Ja:
UDR1 = UDR0;

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ali wrote:

> UART schliesse ich den LIN-Chip an (UART0 RX->TX und TX->RX),

Also Eingang an Eingang und Ausgang an Augang. Was ausser einem 
Kurzschluss soll das bringen?

Autor: Ali (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
an den Fragestellungen merke ich schon, dass kan man bestimt auch 
Softwareseitig lösen?

Autor: Ali (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry nochmal. Empfang von LIN an Sender Atmel und umgekehrt. So habe 
ich das verschaltet

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> dass kan man bestimt auch Softwareseitig lösen?

Ja. Denn wenn sowohl der CP2102 als auch der LIN-Bus jeweils eine UART 
des Controllers bedienen, dann lässt sich eine direkte Kopplung nur mit 
irgendeinem Multiplexer realisieren, sonst Kurzschluss.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ali wrote:

> Sorry nochmal. Empfang von LIN an Sender Atmel und umgekehrt. So habe
> ich das verschaltet

Der Empfangsanschluss vom LIN-Driver ist logischerweise ein Ausgang. Der 
Sendeanschluss vom Atmel auch. Sowas nenne ich immer noch Kurzschluss.

Autor: Ali (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich werde es so probieren wie lippy geschreiben hat mit dem Befehl
UDR1 = UDR0;
Nochmal zu den Anschlüssen. es wird RX vom LIN an RX von ATMEGA und TX 
an TX angeschlossen. DIe schaltung ist schon aufgebaut und funktioniert! 
Ich wollte nur wissen ob man die Daten von einem UART zum anderen 
schieben kann? Wenn das mit UDR1 = UDR0; geht, dann bin ich glücklich.

Autor: RoK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Verstehe zwar auch nicht warum man das machen sollte, aber gehen tut 
das. Es sind zwei Eingänge und die können auch beide auf das gleiche 
Signal gelegt werden. Es steht halt dann in beiden Receive-Registern der 
selbe Inhalt. Allerdings ist es wohl einfacher nur ein Register zu 
auslesen zu müssen und den Inhalt dann lieber in der Applikation zu 
kopieren als 2 komplette Interrupt Services machen zu müssen, die den 
identischen Inhalt liefern.

Vorsicht bei den LIN und sonstigen Bustreibern! Da verrennt man sich 
schnell mit RX und TX. Wenn es nur ein Transceiver ist, heißen die Pins 
meist so wie die Leitung und nicht wie die Datenrichtung. µC-TX geht 
auch auf LIN-Transceiver-TX, obwohl der Pin am Transceiver ja eigentlich 
ein Eigang ist. TX und RX kreuzen hier noch nicht.
Bsp. RS232
          |           ____               ____           |
  µC1   Rx|-<--<--<--|Rx Rx|--<--\ /-->--|Rx Rx|-->-->-->-|  µC2
  PC      |          |     |      X      |     |          |  ...
  ...   Tx|->-->-->--|Tx Tx|-->--/ \--<--|Tx Tx|--<--<--<-|
          |          |_____|             |_____|          |
                     MAX232               MAX232

Für LIN ist es genauso, nur dass die Transceiver zB. TJA1021 heißen und 
zwischen den Transceivern keine 2 Leitungen mit X sondern nur die 
LIN-Leitung liegt.

MfG
RoK

Autor: RoK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, Du warst schon schneller.
Aber wir reden vom gleichen... :-)

Autor: Ali (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ICh habe alles in C programmiert, da geht der Code

UDR1 = UDR0;


nicht. Wie mach ich das bei C?

Danke nochmal an alle für eure Hilfe!!!!!!!!!!!!!!!!!!!!!

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.