Suche µC mit 10 MBit/s via UART

Gast #1397210
Lesenswert?

Hallo!

Ich bin auf der Suche nache einem µC, der über seine UART-Schnittstelle 
mindestens 10 MBit/s Senden und Empfangen kann.
Natürlich sollte der Stromverbrauch des µC so gering wie möglich sein. - 
Am Besten 0mA. :P

Hab mir erstmal die MSP-Reihe ein wenig angeschaut und musste 
feststellen, dass die nur 2 MBit können...

Könnt ihr einen Tipp geben?

Danke!

Gruß
Timo
#1397222
Lesenswert?

Falls es UART sein muss: Das Hauptproblem ist hier, dass die asynchronen 
Daten beim Empfangen mit der 16x Baudrate abgetastet werden. Bei 10MBaud 
also 160MHz. Etliche Hersteller haben daher einen zusätzlichen Modus 
eingebaut, um diesen Faktor zu reduzieren. Meist um den Faktor 2 (z.B. 
bei den AVRs). Bei den dsPICs um den Faktor 4. Hier könnte man also mit 
40MHz CPU Takt die 10MBaud erreichen. Allerdings sind die dsPICs nicht 
wirklich stromsparend.
Bei SPI hat man ein ähnliches Problem, wenn auch nicht ganz so extrem: 
Hier muss der CPU Takt meist Faktor 2 oder 4 über der maximalen Bitrate 
liegen.
Gast #1397245
Lesenswert?

Ok, dann frage ich mal anders herum:
Das Aufgrund der asynchronen Übertragung ein Bit mehrfach abgestastet 
werden muss und somit die Taktfrequenz der CPU höher sein muss als der 
Baudrate ist mir bekannt. Ich kenne den Faktor 4-8.
ABER wenn es so schnelle RS-485-Bausteine gibt, die alle asynchrone 
Ein-/Ausgänge haben, was für mich UART ist und nicht SPI oder USART, 
dann frage ich mich wie die sonst angesteuert werden, wenn es "kaum" 
µC-gibt die diese Datenrate über UART "fahren" können....
Moderator (Firma: Titel) Persönliche Seite #1397266
Lesenswert?

Timo schrieb:
> Hab mir mal schnell die AVR32 angeschaut.
> 1,3mW/Mhz .... bei 60 MHz bin ich da ja bei rund 90mW!
> Keine Chance! Viel zu viel ...
Es gibt auch Stromsparmodi...
10MBit/s wirst du niemals nicht für 0mA bekommen.

>> Ich bin auf der Suche nache einem µC, der über seine UART-Schnittstelle
>> mindestens 10 MBit/s Senden und Empfangen kann.
Wenn er sonst nichts können muß (also nur empfangen und senden). Dann 
reicht auch eine Drahtbrücke...
#1397276
Lesenswert?

Timo schrieb:

> ABER wenn es so schnelle RS-485-Bausteine gibt, die alle asynchrone
> Ein-/Ausgänge haben,

RS-485 Transceiver haben weder synchrone noch asynchrone Ein/Ausgänge, 
sondern sind einfach nur Sende/Empfansgbausteine für beliebige 
Protokolle, von denen die asynchrone serielle Schnittstelle nur eines 
ist.

> was für mich UART ist und nicht SPI oder USART,

Es gibt so schnelle RS485 Bausteine, weil RS-485 keineswegs nur mit UART 
verwendet wird. So wurde beispielsweise RS-485 auch für HVD-SCSI 
verwendet.
Gast #1397310
Lesenswert?

Achwas, der verbräht doch keine 200mW
(2V)^2/120ohm sind bei mir 34mW.

Ein Scherzkeks ist der benutzer Lothar Miller mit seiner Drahtbrücke! ;)
Wobei das auch nur bei Vollduplex-Mode etwas bringt.
Der µC soll natürlich auch noch die Datenverarbeiten und muss mit 
zwei...drei anderen Bausteinen auf der Paltine kommunitieren (SPI).

Die 0mA waren auch ein Scherz. Dafür gibt es Smileys: ":P"


Welche max. UART-Datenraten sind den bei einem Stromsparenden µC wie 
MSP, AT(x)mega und wie sie alle heißen mögen, möglich?
Persönliche Seite #1397324
Lesenswert?

Wie schon angedeutet, Du musst kein asynchrones Protokoll über RS485 
betreiben.

Du kannst auch SPI verwenden, dann benötigst Du zwar eine Leitung mehr 
(Takt), kommst dafür aber auf erheblich höhere Datenraten.

Die möglichen Datenraten der verschiedenen Schnittstellen kannst
Du selber in den entsprechenden Datenblättern nachlesen. Die musst Du 
Dir sowieso früher oder später ansehen.
Moderator (Firma: Titel) Persönliche Seite #1397334
Lesenswert?

Timo schrieb:
> Ein Scherzkeks ist der benutzer Lothar Miller mit seiner Drahtbrücke! ;)
Mein Denkanstoss bzw. meine Frage war offenbar zu gut versteckt:
Was soll denn der uC sonst noch können?
Wenn da Daten mit 10MBit/s hin- und hergeprügelt werden, dann muss mit 
denen doch auch was passieren. Muß der uC nur einen Sensor linearisieren 
oder muß da ein aufwendiger Regler drauf laufen? Allein ein Zeichen 
epfangen und eines senden kann doch nicht alles sein :-o
Gast #1397347
Lesenswert?

Der µC soll nur Postbote spielen und Päckchen basteln. Datenpackete 
genau genommen.
Daten von den anderen Bausteinen entgegennehmen in das Protokoll packen 
und verschicken und umgekehrt.

Wie gesagt, leiber Rufus t. Firefly, habe ich schon in einegen 
Datenblättern geschnuppet, aber ich habe noch keinen RS-485 Baustein 
gesehen, der eine SPI Schnittstelle hat. Immer nur RX TX und evtl. 
TX_Enable bzw. RX_Enable. Aber bisher nirgends einen Eingang wie Clock, 
der für SPI zwingend erforderlich ist....
#1397349
Lesenswert?

Profibus ist ja auch RS485 wenn ich mich nicht irre.

Da gibt es von Profichip ICs, die den Profibusteil mit 12MHz 
verarbeiten. Als Abfallprodukt ist auf diesen IC's auch eine flotte UART 
(12MHz) mit drauf. Ist halt nix Internes und muss per SPI oder Datenbus 
an den Controller angeschlossen werden. Vorteil waere, dass du den 
Controller langsam takten koenntest und den Interface IC auch notfalls 
abschalten kannst, wenn du Ihn nicht brauchst.

Bezueglich Abschlusswiderstand. Da nimmt man ja meist zwei von und dann 
sind es 60 Ohm oder nicht?!
Persönliche Seite #1397360
Lesenswert?

Timo schrieb:
> Wie gesagt, leiber Rufus t. Firefly, habe ich schon in einegen
> Datenblättern geschnuppet, aber ich habe noch keinen RS-485 Baustein
> gesehen, der eine SPI Schnittstelle hat. Immer nur RX TX und evtl.
> TX_Enable bzw. RX_Enable. Aber bisher nirgends einen Eingang wie Clock,
> der für SPI zwingend erforderlich ist....

Es wurde jetzt schon oft genug in diesem Thread geschrieben, dass es bei 
den "Bausteinen" nur um den physical layer geht. Was du dann damit 
machst, ist deine Sorge. Das sind nur Bustreiber.

Deswegen wurde auch weiter oben geschrieben, dass man für SPI z.B. 2 
Stück braucht: Daten und Takt.

In der Redundanz liegt die Erleuchtung ;)
Gast #1397361
Lesenswert?

Jetzt mal ernsthaft, Deine Aufgabe lässt sich mit einem "normalen" 
Mikrocontroller definitiv nicht lösen, da diese schlichtweg zu wenig 
Rechenpower haben. Entweder Du nimmst spezielle Mikrocontroller mit z.B. 
einer schnellen ARM CPU drin, welche sich mit > 100MHz takten lässt oder 
machst es gleich mit einer reinen CPU oder einem "kleinen" DSP.
Wie bereits geschrieben wurde, Strom sparen und Daten schnell übertragen 
geht nicht; entweder optimierst Du eines davon oder machst einen 
Kompromiss.
In der Praxis sieht das dann meist so aus, dass ein kleiner, 
stromsparender Mikrocontroller die grosse CPU anwirft und sie mit Strom 
versorgen lässt, wenn die Rechenpower benötigt wird. Im Standby schaltet 
der Mikrocotnroller alles aus, was nicht gebraucht wird.
Gast #1397363
Lesenswert?

vonTimo:
>wie gesagt, leiber Rufus t. Firefly, habe ich schon in einegen
>Datenblättern geschnuppet, aber ich habe noch keinen RS-485 Baustein
>gesehen, der eine SPI Schnittstelle hat. Immer nur RX TX und evtl.
>TX_Enable bzw. RX_Enable. Aber bisher nirgends einen Eingang wie Clock,
>der für SPI zwingend erforderlich ist....


Verstehst Du eigentlich irgendetwas von E-Technik?

Ein Name RX oder TX hat doch nichts mit der Funktion zu tun. A.K. hat 
doch schon alles geschrieben. RS485 oder RS422 ist doch nur ein 
physikalischer Layer. Da kannst Du locker ne SPI oder I2C aufbauen. Nur 
solltest Du Dich mal von deiner Blindheit trennen.
Gast #1397366
Lesenswert?

"the integration of the complete Profibus-DP protocol"
In dem VPC3-S ist das Profibus-Protokoll hardwaremäßig implementiert ...

@Christian S.:
Die Terminierung beim Sender muss nicht unbedingt sein.
Aber selsbt wenn, dann wäre die "nur" Leistung doppelt so hoch und mit 
round about 66mW um Faktor 3 kleiner als die von Peter Dannegger 
genannten 200mW...
#1397377
Lesenswert?

Timo schrieb:

> Achwas, der verbräht doch keine 200mW
> (2V)^2/120ohm sind bei mir 34mW.

Milchmädchenrechnung. Wenn der Widerstand den Minimalwert von 2V kriegt, 
dann sind es dort 34mW. Bei realistischeren 3V sind es dort 25mA. Die 
fliessen von 5V durch den Transmitter raus, den Widerstand und zum 
Transmitter wieder rein. Macht insgesamt 5V*25mA=125mW, teils im 
Widerstand teils im Transmitter.
Gast #1397381
Lesenswert?

"Verstehst Du eigentlich irgendetwas von E-Technik?"

Anscheinend nicht... was zugegeben eine Schande wäre.

Aber wen man sagt, das RX und TX nichts mit der Funktion zu tun hätte, 
dann hat man IMHO auch ein wenig E-Technik-SChwäche.
TX ist allgemein die Bezeichnung für einen Sendepin oder Senderichtung 
(Transmit), RX ist das Gegenstück dazu, eben die Empfangsrichtung 
(Receive).

Wenn mein RS-485 Baustein zu meinem µC nur zwei Leitungen hat, eben TX 
und RX (Auf der RS-485-Seite werden die Anschlüsse meist mit A B, oder X 
Y bezeichnet), dann komme ich mit SPI nicht weit. Denn SPI ist ein 
Master-Slave Zugriffsverfahren, dass aus 3 Leitungen besteht. Der Clock, 
mit dem die Daten übertragen werden werden vom Master (den µC) 
vorgegeben.
Zudem wäre aber noch eine 4. Leitung sinnvoll: Eine Interrupt-Leitung 
zum µC mit der verfügbare, empfangenen Daten angezeigt werden....

Und I²C hat auch eine Taktleitung...

Jetzt sag mir mal, wo ich meinen Denkfehler habe!?
#1397391
Lesenswert?

Timo schrieb:

> TX ist allgemein die Bezeichnung für einen Sendepin oder Senderichtung
> (Transmit), RX ist das Gegenstück dazu, eben die Empfangsrichtung
> (Receive).

Korrekt. Aber da sagt nichts darüber aus, was über TX gesendet wird. 
Darf auch der Takt sein.

> Wenn mein RS-485 Baustein zu meinem µC nur zwei Leitungen hat, eben TX
> und RX (Auf der RS-485-Seite werden die Anschlüsse meist mit A B, oder X
> Y bezeichnet), dann komme ich mit SPI nicht weit.

Wenn du nur einen Halfduplex-Transceiver verwendest, wird das mit SPI 
wirklich nix. Also plündere dein Sparschwein und investiere in drei 
solche Bausteine, SCK, MOSI, MISO. Also 2 Transmitter, einen Receiver. 
Darf bei Punkt-zu-Punkt auch RS422 sein.

Und dann bist du auch bei 3,3V Transceivern bei 200mW. ;-)
Persönliche Seite #1397395
Lesenswert?

> Wenn mein RS-485 Baustein zu meinem µC nur zwei Leitungen hat,
> eben TX und RX (Auf der RS-485-Seite werden die Anschlüsse meist
> mit A B, oder X Y bezeichnet), dann komme ich mit SPI nicht weit.

Ach? Was hindert Dich daran, einfach zwei RS485-Transceiver zu 
verwenden?

> Denn SPI ist ein Master-Slave Zugriffsverfahren, dass aus 3
> Leitungen besteht.

Das kann so sein, muss aber nicht. Wenn es als 
Punkt-zu-Punkt-Verbindung genutzt wird, gibt es nur Takt und Daten.

> Zudem wäre aber noch eine 4. Leitung sinnvoll:
> Eine Interrupt-Leitung zum µC mit der verfügbare,
> empfangenen Daten angezeigt werden....

Dann ist das ganze mit vier Leitungen und je zwei 
RS485/RS422-Transceivern ganz einfach zu erledigen:

In Senderichtung vom µC zum abgesetzten Gerät: Takt und Sendedaten,
in Empfangsrichtung vom abgesetzten Gerät zum µC: Empfangsdaten und 
"Interrupt".

Eine Sender/Empfänger-Umschaltung, wie sie RS485 im Halbduplexbetrieb 
vorsieht, entfällt hier, daher kann auch RS422 verwendet werden.
Gast #1397405
Lesenswert?

Jetzt weiß ich worauf ihr hinauswollt.

Dann will ich euch mal in das Reich der Blinden holen:
Ich sag nur: Zwei-Draht-Leitung
Mehr ist nicht.

MISO, MOSI & CLK parallel über drei RS-485 zu übertagen ist also nicht 
möglich.

Ein RS-485 Treiber und Halbduplex sind also die Eckdaten, denn für 
Vollduplex brauch man auch zwei zusätzliche Daten-Leitungen.
#1397420
Lesenswert?

Timo schrieb:

> Ich sag nur: Zwei-Draht-Leitung
> Mehr ist nicht.

Dann wünsche ich dir dabei viel Glück. Entweder du lebst bei AVRs mit 
maximal 2,5Mbps UART. Oder du arbeitest synchron mit 
Takt/Daten-Codierung vgl. Manchestercode, was auf einen externen 
Codierer/Decodierer rausläuft - oder auf einen Controller das dies 
direkt beherrscht.
#1397481
Lesenswert?

Maik F. schrieb:

>> Der ist mit maximal 230Kbps ein bischen weit weg von seinen angepeilten
>> 10Mbps.
>
> mh? Siehe Anhang.

10MHz wird die maximale Datenrate der integrierten aber technisch 
unabhängig arbeitenden RS485-Transceiver sein. Wenn man sie getrennt von 
der UART verwendet.

Die UART hingegen arbeitet wie es aussieht wie üblich asynchron mit 
Baudratenteiler 16 und gibt bei einem 3,6MHz Quarz maximal 230Kbps her. 
Für 10Mbps braucht man also einen 160MHz Grundwellenquarz.
Persönliche Seite #1397499
Lesenswert?

A. K. schrieb:
> Maik F. schrieb:
>
>>> Der ist mit maximal 230Kbps ein bischen weit weg von seinen angepeilten
>>> 10Mbps.
>>
>> mh? Siehe Anhang.
>
> 10MHz wird die maximale Datenrate der integrierten aber technisch
> unabhängig arbeitenden RS485-Transceiver sein. Wenn man sie getrennt von
> der UART verwendet.
>
> Die UART hingegen arbeitet wie es aussieht wie üblich asynchron mit
> Baudratenteiler 16 und gibt bei einem 3,6MHz Quarz maximal 230Kbps her.
> Für 10Mbps braucht man also einen 160MHz Grundwellenquarz.

Ja... man sollte nicht immer die Datenblätter auf der Suche nach Zahlen 
überfliegen. Die externen Verbindungen an den internen RS485-Treiber 
hätten mich jedoch aufmerksam werden lassen sollen ;)
#1397563
Lesenswert?

Mal ein paar Vorschläge:
http://www.nxp.com/acrobat_download/datasheets/SC16C850SV_1.pdf
Single Port UART, max. Takt 80 MHz, Oversampling 4x, 8x, 16x d.h. max 20 
MBps, Anschluss: 8-Bit multiplexed also mit allem was genug Pins hat 
ansteuerbar.

Ähnliche UART von Exar
http://www.exar.com/Common/Content/ProductDetails.aspx?ID=259&ParentID=1

Cyan eCOG1X-Controller: Takt der internen UARTs max. ~200 MHz, 
Oversampling 16x d.h max. 12.5 MBps

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