www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 3 USART auf einmal in einem Chip?


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bekomme 3 unabhängige Datenströme per USART, also 3 mal TxD.

Nun bräuchte ich einen Atmel, der 3 mal RxD kann, also 3 USART hat -- 
das gibt es glaube ich nicht.
Gibt es einen USART-Chip, der das kann -- ähnlich eines MIDI-Mergers?

Autor: Sebastian M. (sebastian_m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
xmega, zb

ATxmega128A1 hat 8 usarts

seb

Autor: me (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ATmega640, 1280, 2560
je nach Datenrate könnte auch ein Softwareuart bzw. 2x Hardwar, 1x 
Software reichen... das musst du dir aber selber ausrechnen.

http://www.atmel.com/dyn/products/param_table.asp?...

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke ...

das hatte ich mir schon gedacht, dass es keine Lösung im lötbaren PDIP 
Gehäuse gibt.

Autor: XMEGA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

> dass es keine Lösung im lötbaren PDIP
> Gehäuse gibt

besorg dir einen Atxmega32a4, der ist noch gut lötbar (TQFP44 Package) !
Hat 3 Usarts.


Gruß XMEGA

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> das hatte ich mir schon gedacht, dass es keine Lösung im lötbaren PDIP
> Gehäuse gibt.

Was für Baudrate denn?
Z.B. 19200 Baud sind für ne SW-UART kein Thema.
Dann reicht ein ATmega164 (2* HW-UART + 1* SW-UART).


Peter

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, danke.

Das schaue ich mir mal an - gibt es dann auch wirklich 3 verschiedene 
RxD-Pins?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> Nun bräuchte ich einen Atmel

"Einen Atmel" wirst du nicht bekommen, denn das ist eine Firma. ;-)

(Daran, "ein Atmel" zu bekommen, indem man hinreichend viele Aktien
kauft, hat sich vor einigen Jahren schon mal "ein Microchip" die
Zähne ausgebissen ...)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:

> Das schaue ich mir mal an - gibt es dann auch wirklich 3 verschiedene
> RxD-Pins?

Wenn drei UARTs drin sind, gibt's auch 3 RxD-Pins, wie sollte es sonst
gehen?

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher - sehe ich jetzt auch --

2 bei PortD, 2 bei PortC und einen bei PortE ...

Autor: sergey (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MAXIM hat externe SPI-UARTs und SPI kannst du gefahrlos auch per 
Software implementieren.

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> Danke ...
>
> das hatte ich mir schon gedacht, dass es keine Lösung im lötbaren PDIP

Mega640 gibts im 40er DIP. Habe ich da.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Mega640 gibts im 40er DIP. Habe ich da.

Halte ich für ein Gerücht.

MfG Spess

Autor: Thomas K (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das glaube ich nicht.. der Mega640 ist ein 100-Pinner (TQFP oder CBGA). 
Was du haben wirst ist ein Mega644.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OT:
Jörg Wunsch schrieb:
> "Einen Atmel" wirst du nicht bekommen, denn das ist eine Firma. ;-)
Ich habe aber einen Renault, mein Nachbar einen Audi, ich kenne sogar 
einen, der einen Mercedes hat, heute morgen hat mich einer mit seinem 
Mitsubishi überholt und ich weiß von einem, der will sich sogar einen VW 
kaufen...

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Der 644 hat nur eine USART. ???

Der ATMega644 ja. Die ATMega644A/644PA haben 2.

MfG Spess

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: me (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.