Hallo Ich möchte eine Schaltung realisieren bei der ich über 2 Uarts was empfange und dann auch gleichzeitig was senden kann. Hardware soll ein AVR sein! Ich dachte also an einen µC mit 3 UARTS. Allerdings finde ich, wenn ich mir die in Frage kommenden AVR's anschaue, diese absolut oversized. Eigentlich muss der AVR sonst nicht viel machen. Die beiden Eingansinformationen verarbeiten und dann über einen UART wieder wegsenden. Später kommt vielleicht noch ein 3 Eingangskanal dazu. Wie würdet Ihr das lösen? Gruß
-Software-UART? Besonders beim Senden einfach zu handhaben. -SPI-UART von Maxim
ATmega162 hat 2 Hardware-USART. Fürs reine Senden könnte man auch ein Soft-UART dazubasteln. Sonst gibt es noch nette externe Methoden, wie einen anderen AVR als USART per SPI, TWI oder so an einen anderen zu hängen.
Also wenn ich das richtig verstehe, ist beim Empfang ein Hardware UART immer zu bevorzugen. Einen Software-UART habe ich bis jetzt noch nicht realisiert. Kann der dann Ähnlich angesprochen werden wie ein Hardware UART? Gibts da Tutorials zu? Ich stelle mir halt die Frage ob ein Software-UART einem externen 3. Uart zu bevorzugen ist. programmtechnisch sollte das egal sein... Wie sieht es mit der Baudrade beim Software UART aus? Gruß
Schau dir mal bei Maxim oder Philips die UARTs an.Das sind externe Bauelemente mit 1,2,4 oder gar 8(!) UARTs.Die meisten werden über einen externen Daten/Adressbus gesteuert,was für dich sicherlich etwas Overkill ist. Für dich sind eher die SPI-Typen eine sinnvolle Alternative.Und sooo kompliziert sind die auch nicht zu programmieren.Nachteil ist eben nur das ein weiteres externes Bauelement dazukommt und eventuell noch ein weiterer Quarz an den UART muss.
je höher die Baudrate, desto kniffliger wirds mit Software-UART. 38k4 gehen aber noch problemlos, hängt natürlich auch von der Taktfrequenz das MC ab. Empfangen geht natürlich auch, ist aber etwas diffizieler. Vollduplex wirds dann langsam chaotisch :-) Wenn du auf einem Kanal wirklich nur senden willst, würde ich eine Software-UART nehmen. Bei Atmel findest du da ein paar app. notes.
@ronny: und der Preis, die Dingerchen kosten meist mehr als der MC, an dem sie werkeln :-( Sicher kein Problem für Einzelstück-Spielereien, gerade noch mal bei Maxim nachgeschaut, MAX3110 1000er Preis 4,73$! Für eine Serie habe ich sowas noch nie eingesetzt. Dann lieber einen weiteren Tiny2313, über SPI gekoppelt.
Wenn du auf 2 Kanälen nur empfangen musst und dann die Daten über einen Kanal nur senden musst, reichen dir evtl. auch 2 UARTS, da hast 2x RX und 2x TX. Vorausgesetzt, gleiche Baudrate. Gruß Roland
"Ich möchte eine Schaltung realisieren bei der ich über 2 Uarts was empfange und dann auch gleichzeitig was senden kann." HW-UARTs können immer Vollduplex (gleichzeitg senden + empfangen), wenn die Baudrate die gleiche ist. Es reichen als 2 UARTs aus (z.B. ATMega162). In der Codesammlung ist auch ne Vollduplex-UART in SW. Peter
Hallo Vielen Dank für die zahlreichen Antworten. Wie ich Peters Antwort entnehme reichen mir somit 2 UARTS, da ich mit der gleichen Baudrate empfange und sende. Werde mir dann den ATmega162 mal etwas genauer anschauen. Allerdings werde ich auch den Soft-UART nicht aus den Augen verlieren, da bei einer Erweiterung auf 3x Empfangs-UART eine Softwarelösung her muss. Danke Gruß
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.