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.
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.
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?
>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:
1 | UDR1 = UDR0; |
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?
an den Fragestellungen merke ich schon, dass kan man bestimt auch Softwareseitig lösen?
Sorry nochmal. Empfang von LIN an Sender Atmel und umgekehrt. So habe ich das verschaltet
> 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.
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.
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.
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
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!!!!!!!!!!!!!!!!!!!!!
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.