Forum: Mikrocontroller und Digitale Elektronik Suche µC mit 10 MBit/s via UART


von Timo (Gast)


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

von Peter (Gast)


Lesenswert?

Was willst Du damit auch machen? Ein PC wird auch nicht 10 MBit/s via 
RS232 schaffen.

Verwende doch SPI, damit sollten die 10 MBit/s kein Problem sein...

von Timo (Gast)


Lesenswert?

Naja, der Prof. will irgendwelche Daten mit 10 MBit/s via RS-485 
schicken. RS-485 Treiber gibt es wie Sand in der Sahara, selbst mit 
Datenraten von 25 MBit oder sogar höher. Und wenn ich deren Eingänge 
richtig verstehe sind das doch alles UART, oder nicht!?

von Dieter Werner (Gast)


Lesenswert?

> ...sind das doch alles UART, oder nicht!?

Das kann alles mögliche sein, RS485 ist nur der physical layer.

von Benedikt K. (benedikt)


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.

von Joe (Gast)


Lesenswert?

Der AVR32 schafft bis zu 33MBit/s mit seiner USART, anschauen lohnt sich 
mal auf jeden Fall...

von Timo (Gast)


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....

von Timo (Gast)


Lesenswert?

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 ...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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...

von (prx) A. K. (prx)


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.

von Peter D. (peda)


Lesenswert?

Timo schrieb:
> 1,3mW/Mhz .... bei 60 MHz bin ich da ja bei rund 90mW!
> Keine Chance! Viel zu viel ...

Scherzkeks.

Mit RS-485 kannst Du eh keinen Strom sparen, schon allein der nötige 
Abschlußwiderstand (120R) verbräht 200mW.


Peter

von Timo (Gast)


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?

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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

von Timo (Gast)


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....

von Christian S. (manatarms)


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?!

von Bastler (Gast)


Lesenswert?

Schau dir mal bei profichip den VPC3-S an.
Der ist klein, sparsam und hat ne SPI & I²C Schnittstelle.

von Maik F. (sabuty) Benutzerseite


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 ;)

von Johnny (Gast)


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.

von kurz (Gast)


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.

von Timo (Gast)


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...

von (prx) A. K. (prx)


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.

von Timo (Gast)


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!?

von Timo (Gast)


Lesenswert?

Der RS-485 wird mit 3,3 V versorgt.

von Justus S. (jussa)


Lesenswert?

Timo schrieb:

>
> Jetzt sag mir mal, wo ich meinen Denkfehler habe!?

Preisfrage: Worin unterscheiden sich bei SPI MOSI bzw TX und Clock 
signal-technisch gesehen?

von (prx) A. K. (prx)


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. ;-)

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Timo (Gast)


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.

von Gast (Gast)


Lesenswert?

Wenn TX ein Sendepin ist, wie du schreibst, was hindert dich daran, 
einfach den Takt zu senden?
Du brauchst dann halt mehrere Bausteine, weil du mehr Sendepins 
brauchst.

von Christian S. (manatarms)


Lesenswert?

@Timo

der VPC3-S hat das Protokoll implementiert. Musst du aber nicht 
benutzen. ;)

von Frank E. (erdi-soft)


Lesenswert?

Ich versteh nicht ganz das Problem.

Such dir doch einfach den passenden Baustein aus, der SPI auf RS485 
umsetzt, wie beispielsweise den MAX3140.

von (prx) A. K. (prx)


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.

von (prx) A. K. (prx)


Lesenswert?

Frank Erdrich schrieb:

> Such dir doch einfach den passenden Baustein aus, der SPI auf RS485
> umsetzt, wie beispielsweise den MAX3140.

Der ist mit maximal 230Kbps ein bischen weit weg von seinen angepeilten 
10Mbps. Und wenn ich ihn richtig verstehe, geht es um die Datenrate auf 
seinen 2 Drähten, egal wie, aber das möglichst ohne Strom.

von Maik F. (sabuty) Benutzerseite


Angehängte Dateien:

Lesenswert?

A. K. schrieb:
> Frank Erdrich schrieb:
>
>> Such dir doch einfach den passenden Baustein aus, der SPI auf RS485
>> umsetzt, wie beispielsweise den MAX3140.
>
> Der ist mit maximal 230Kbps ein bischen weit weg von seinen angepeilten
> 10Mbps.

mh? Siehe Anhang.

von Christian S. (manatarms)


Lesenswert?

Schickes Teil der Maxim.

Wenn er jetzt nur nicht von Maxim waere :)

von Timo (Gast)


Lesenswert?

Mag es sein, dass ein Prof. was will, was technisch nicht oder nur sehr 
schwer zu realisieren ist... !?

von Timo (Gast)


Lesenswert?

Der Maxim sieht auf den ersten Blick wirklich nicht schlecht aus.
(Gefunden habe ich ihn nicht, weil ich bei RS-485 gesucht habe und nicht 
bei "SPI/Microwire-Compatible UARTs")
Aber leider ist der Baustein mit +5V Versorgt. Und +3.3V sind 
vorgeschrieben....

von (prx) A. K. (prx)


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.

von Reinhard S. (rezz)


Lesenswert?

Klar, um seine Schüler zu testen. Stell ich mir als Prof. jedenfalls 
schon reizvoll vor ^^

von Timo (Gast)


Lesenswert?

Gut, das ich euch habe um mich nciht völlig zu blamieren ... ;)

von Maik F. (sabuty) Benutzerseite


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 ;)

von Meck (Gast)


Lesenswert?

Ich wuerd mal ein(zwei) FPGA nehmen und die mal mit RS485 verbinden. 
Dann hat man keine Grenzen alles moegliche auszuprobieren. Ein UART ist 
schnell gemacht...

von Arc N. (arc)


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

von Timo (Gast)


Lesenswert?

Ehrlich gesagt: An diese Option habe ich auch schon gedacht.
Das Probel: FPGAs sind für mich völliges Neuland.

Muss mich erst mal mit diesem Thema befassen.
Gibt es überhaupt FBGA ist der Preisklassen von 2-5€, die für diesen 
Anwendungsfall geeignet sind!?

Und dann muss ich mal mit dem Prof. reden....

von blup (Gast)


Lesenswert?

Versuch es mal mit einem STM32
er braucht bei 2V und 72MHz gerade mal 36mA. Und hat auch sehr effektive 
PowerModi. Via SPI ist maximal 18MHz möglich.
Und der Controller kostet um 1 Euro rum.

von (prx) A. K. (prx)


Lesenswert?

Er kann mit seinen 2 Drähten aber immer noch kein SPI, und mit UART geht 
asynchron nur bis 4,5Mbps.

von blup (Gast)


Lesenswert?

Stimmt allerdings :) Hätte ich vllt alles lesen müßen.

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.