Forum: Mikrocontroller und Digitale Elektronik Atxmega oder externs UART Interface


von Philipp (Gast)


Lesenswert?

Hi,

für ein aktuelles Projekt benötige ich ca. 5-7 UART's. Ich empfange 
Daten über alle UART's, werte sie aus und schicke sie weiter.
Ich könnte auf die ATxmega Reihe umsteigen, dort gibt es Chips mit bis 
zu 8 UART's und mehr Rechenleistung hätte ich auch. Alternativ hatte ich 
noch überlegt, einen Atmega zu verwenden und über SPI mehrere externe 
IC's mit UART Interface und Fifo anzuschließen. Der Fifo müsste 
allerdings pro UART mindestens 100 bytes groß sein.

Hat jemand Erfahrung mit den Atxmegas und der Verwendung aller UART's 
gleichzeitig?
Hat jemand Erfahrung mit externen UART Fifo's, die min 2-4 UART's haben?

Lg
Philipp

von Max D. (max_d)


Lesenswert?

Je nach dem wie schnell deine UARTs sein müssen kannst du auch 
Software-Uarts benutzen.
Welche Baudrate müssen die denn liefern ?
Müssen alle gleichzietig empfangen (senden ist etwas unkritischer) oder 
reihum ?

von Philipp (Gast)


Lesenswert?

Baud bis ca. 500k. Alle müssen gleichzeitig empfangen können, weil die 
sender keine "Sendepläne" oder ähnliches haben. Es wird dann gesendet 
wenn nötig. Die Daten werden dann aber erstmal gespeichert und dann wird 
immer Fifo für Fifo nacheinander ausgewertet. Wenn ich externe Fifos 
nehme, hole ich mir die Daten immer erst dann, wenn der entsprechende 
Fifo wieder an der Reihe ist, also immer im Kreis.

von Philipp (Gast)


Lesenswert?

Achso, das habe ich schon wieder vergessen. Bei den externen Fifo's habe 
ich mich auch schon umgeguckt, aber ich brauche einen, der das 9. bit 
unterstützt, und soeinen konnte ich noch nicht finden.

von Max D. (max_d)


Lesenswert?

500 kBaud sind eindeutig zu heftig für Software Uarts.
Selbst externe UARTs könnten eng werden (500k * 7 UARTs = 3,5 MBaud 
Gesamtrate), gerade mit overhead vom SPI.
Ein Xmega mit genug internen sollte damit aber klar kommen, gerade wenn 
man die gesprächigeren mit nem DMA abwickelt.
Ein extra Fifo ist meines Erachtens eher hinderlich. Es gibt größere 
Xmegas mit EBI, damit kann man extern Ram-Chips hinhängen.
Wenn du bei jedem Transfer einfach den Inhalt in den externen Ram legst, 
dann kommst du ohne speziellen 9bit fifo aus und billiger ist es auch.
Dann haben Xmegas auchnoch 32 MHz.
Solltest du aber noch keine Erfahrung mit AVRs haben, dann lohnt m.E. 
der Aufwand des Einarbeitens nicht. Mit minimal bis keinem mehr-Aufwand 
lernt man auch einen 32-Bit ARM zu proggen (gerade mit den ganzen 
gratis-IDEs von den Herstellern) und dann hat man genug Power um 20 
UARTs zu managen.
Xmegas lohnen nur, wenn man ohne große Neuerungen einfach noch "ein paar 
MIPS mehr" braucht um das Projekt zu reissen, neu lernen lohnt da 
einfach nicht.

von Philipp (Gast)


Lesenswert?

Max D. schrieb:
> Ein extra Fifo ist meines Erachtens eher hinderlich. Es gibt größere
> Xmegas mit EBI, damit kann man extern Ram-Chips hinhängen.

Ich meinte, dass ein externes UART Interface einen Fifo bräuchte, damit 
ich die Daten erst später rausholen kann.

Max D. schrieb:
> Solltest du aber noch keine Erfahrung mit AVRs haben, dann lohnt m.E.
> der Aufwand des Einarbeitens nicht. Mit minimal bis keinem mehr-Aufwand
> lernt man auch einen 32-Bit ARM zu proggen (gerade mit den ganzen
> gratis-IDEs von den Herstellern) und dann hat man genug Power um 20
> UARTs zu managen.

Ich arbeite schon seit einigen Jahren mit AVR's und habe ich schon 
einige Projekte umgesetzt. Ich habe aber auch schon mal mit nem Stm32f4 
gearbeitet, der hier aber glaube etwas overkill ist.

Ich denke, dass ich mir die XMega mal genauer angucke und dafür ein 
Konzept entwerfe.

Danke und Lg
Philipp

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.