3 USART auf einmal in einem Chip?

Gast #2083982
Lesenswert?

Noch was ist zu bedenken.

Es kann sein, dass alle drei RxD gleichzeitig mit Daten bedient werden, 
da die "Sender" unabhängig voneinander arbeiten und Messdaten ausgeben.
Deshalb die drei uC - ich kann über Interrupt die Daten in ein Buffer 
schreiben und danach in den Hauptroutinen gemütlich hintereinander über 
einen anderen Bus ausgeben. Also uC2 und uC3 geben ihre Daten an uC1 
(wenn sie von uC1 aufgefordert werden) - der macht dann die Hauptarbeit 
und gibt letztendlich alles weiter über TxD.

Der 644 hat nur eine USART. ???

Ich muss das Projekt jetzt auch zu Ende bekommen. Aber in Zukunft werde 
ich mich mal mit den ATxMega32a4 usw. beschäftigen.
Moderator Persönliche Seite #2084041
Lesenswert?

Jens schrieb:

> Deshalb die drei uC - ich kann über Interrupt die Daten in ein Buffer
> schreiben und danach in den Hauptroutinen gemütlich hintereinander über
> einen anderen Bus ausgeben. Also uC2 und uC3 geben ihre Daten an uC1
> (wenn sie von uC1 aufgefordert werden) - der macht dann die Hauptarbeit
> und gibt letztendlich alles weiter über TxD.

Das funktioniert auch mit 4 USARTs und deren Rx-Interrupt problemlos.
Die ISR schreibt einfach das aktuelle Byte in einen Ringpuffer, und
der main thread überprüft regelmäßig alle Puffer.  Bei deiner Mehr-
Controller-Lösung verschiebst du das Problem doch nur, da du dann
wieder eine master-slave-Kommunikation zwischen den Controllern
brauchst, und die ist deutlich teurer als das Abholen der Bytes aus
dem Ringpuffer.
Gast #2084182
Lesenswert?

Ja - das ist richtig.

Ich muss nur abwägen was aufwendiger für mich ist. Lötarbeit mit 
SMD-Gehäuse und dafür die bessere Variante oder auf Lochraster und 
mehrere uC usw..

Die Kommunikation unter den 3 uC gestaltet sich in meinem Projekt 
einfach, da nach "außen" nur Fehl- und Vergleichswerte getragen werden. 
Jeder der uC sammelt seine Daten und gibt nach außen nur dann etwas 
weiter, wenn entsprechende Fehler oder Schlüsseldaten auftauchen. Es 
kommen sozusagen viele Messdaten an und es werden nur wenige 
verarbeitet.
Gast #2084239
Lesenswert?

Die größeren Atmels bekommt man bei diversen Anbietern auf 
Breakoutboards mit 0,1" Rastermaß. z.B. Atmega1280 16€ tigal.com

Auch ein Arduino Mega2560 könntest du in Betracht ziehen. Preislich zwar 
etwas teurer (ca. 45€-50€ je nach Distri), dafür hängt der µC auch schon 
an einem USB/UART inkl. Stromversorgung.
Wenn du die Zeit für die Verkabelung auf Lochraster mitkalkulierst, bist 
du mit günstigen Evaluationboards i.d.R. besser bedient. Die 
Erweiterungskarten kannst du immer noch auf Lochraster bauen ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren