Forum: Mikrocontroller und Digitale Elektronik Controller mit Ethernet


von timtam (Gast)


Lesenswert?

Hallo

Ich bin auf der Suche nach einem passenden Controller für folgende 
Problmestellung:

Die Daten von 7 ADC Kanälen, jeweils 1MSps bei 8Bit pro Sample, in Summe 
also 7*8*1MBps=56MBps sollen an einen PC gesendet werden. Für die 
Übertragung zum PC würde ich gerne UDP über Ethernet verwenden.

Folgende Controller sind aktuell meine Favoriten:
- STM32F407ZG: ADC würde nur für 6 Kanäle reichen, wäre noch akzeptabel
- LPC1837 oder LPC4337: mit externem ADC

Der Controller sollte noch per Hand lötbar sein.
Außerdem bin ich auf Codebeispiele insbesondere für den Ethernetteil 
angewiesen.

Ist die Datenrate so überhaupt realisiebar?
Kann mir jemand einen der Controller empfehlen oder von einem abraten?
Ich bin auch offen für andere Vorschläge.

Vielen Dank!
timtam

von René K. (cyprius)


Lesenswert?

Im Prinzip würden ja auch schon die Connectivity-Modelle der 
STM32F1-Reihe reichen (STM32F107 z.b.). Die lassen sich auch per Hand 
löten.

Eventuell wäre es auch sinnvoll, direkt auf externe ADCs zu setzen.

von Peeter (Gast)


Lesenswert?

timtam schrieb:
> Die Daten von 7 ADC Kanälen, jeweils 1MSps bei 8Bit pro Sample, in Summe
> also 7*8*1MBps=56MBps sollen an einen PC gesendet werden. Für die
> Übertragung zum PC würde ich gerne UDP über Ethernet verwenden.
>
> Folgende Controller sind aktuell meine Favoriten:
> - STM32F407ZG: ADC würde nur für 6 Kanäle reichen, wäre noch akzeptabel
> - LPC1837 oder LPC4337: mit externem ADC

Die haben frei keine 6 ADCs drin (STM32F und LPC) sondern die haben 2 
ADCs drin auf die die AD-Pins gemultiplext sind. Maximal erzeugst du dir 
also 2*10bit*1MSPS = 20MBit/s = 2,5MB/s
Das sollte ein Cortex M4 + Ethernetphy + DMA problemlos hinbekommen.

von c-hater (Gast)


Lesenswert?

timtam schrieb:

> Ist die Datenrate so überhaupt realisiebar?

Ja, da bleibt auch bei einem 100Mbit-Netz noch genug Luft. Es sei denn, 
außergewöhnlich hoher Broadcast-Traffic im Netz beansprucht die Resource 
zu stark.

Dagegen hilft dann u.U. ein managebarer Switch. Die dort zu treffende 
Konfiguration schränkt allerdings auch die Universalität wieder ein, 
denn Sender und Empfänger deines Datenstroms können ja dann zumindest 
Teile der Broadcasts nicht mehr "hören", die entsprechenden Dienste dann 
also auch nicht mehr verwenden.

von Kaj (Gast)


Lesenswert?

timtam schrieb:
> Der Controller sollte noch per Hand lötbar sein.
Warum?

timtam schrieb:
> Folgende Controller sind aktuell meine Favoriten:
> - STM32F407ZG:
Wenn du LQFP-144 von Hand löten willst... bitte. da kauf ich lieber das 
fertige STM32F4-Discovery Board (ist auch ein stm32f407 + noch ein 
bisschen nettes speilzeug drauf + stlink/v2 debugger on board) für rund 
15€, mit erweiterungsboard für netzwerk sinds zusammen 50€. Der 
Controller alleine kostet bei Farnell zwischen 11€ und 17€ und dann hast 
du immer noch das selber löten und ne Platine brauchst du auch noch...

Board: 
(https://hbe-shop.de/Art-2009276-STMICROELECTRONICS-STM32F4DISCOVERY-EVALUATIONSBORDSTM32F4-DISCOVERY)

Erweiterung: 
(https://hbe-shop.de/Art-2250205-STMICROELECTRONICS-STM32F4DIS-BB-ERWEITER-STM32F4-CORTEX-M4-DISCOV)

timtam schrieb:
> Außerdem bin ich auf Codebeispiele insbesondere für den Ethernetteil
> angewiesen.
Fertige Funktionen/Libs und Beispiele gibt es da genug, in der regel 
liegen Beispiele auch schon der IDE deines vertrauens bei. z.B. 
Keil-MDK5 (codegröße auf 32k begrenzt)

Grüße

von stefanus (Gast)


Lesenswert?

Falls Du TCP/IP zur Übertragung nutzen willst, bedenke, dass der 
Controller die Prüfsummen der IP Pakete berechnen muss. Bei der 
anvisierten Datenrate erwarte ich Probleme.

von Jan B. (berge)


Lesenswert?

Moin,

also die Prüfsummenberechnung ist kein Thema, da in Hardware gegossen 
beim STM32F4. Da gehen noch ein paar Mbits mehr.
Es wäre nur ggfs. die Frage, ob du etwas mehr Speicher brauchst um die 
Datenrate so hoch zu kriegen bzw. zu halten. Vielleicht ein F429 
Discovery? Aber LQFP144 per Hand löten geht ganz gut.

Eine auf 32KB beschränkte IDE würde ich nicht empfehlen. Die hat man mit 
einem entsprechenden Stack schnell geknackt.

LG Jan

von timtam (Gast)


Lesenswert?

Vielen Dank für eure Antworten.

Ich wollte sowieso mit eineme fertigen Board anfagen um Hardwarefehler 
erst einmal ausschließen zu können, wenn die Software dann läuft würde 
ich ein eigenens Board in angriff nehmen. Ursprünglich hatte ich an das 
olimex STM32-E407[1] gedacht, auf das ich auch hier im Forum gestoßen 
bin. Der Speicher auf dem F429 Discovery ist aber natürlich ein gutes 
Argument. Das werde ich mir nochmal im Detail ansehen.

Bei den ADCs bin ich davon ausgegangen zwei Kanäle über einen ADC Kanal 
laufen lassen zu können, indem ich nach jeder Sampleaufnahme den 
Eingangspin umstelle. Ist das so nicht machbar?

Die Netzwerkseite ist ersteinmal unproblematisch, da ich eine 
Dirketverbindung zum PC verwenden will.
Mir ist allerdings noch nicht klar, wie ein Prozessor der mit maximal 
168MHz läuft (STM32F407ZG), es schafft 56MBit+Frame+Codierung seriell 
kontinuierlich auszugeben ohne an seine Leistungsgrenze zu stoßen (es 
müsste ja etwa bei jedem zweiten Takt ein Pinzustand geändert geändert 
werden. Liegt das daran, dass der integrierte Ethernet Controller das 
setzen der Pinzustände völlig unabhängig vom Controller macht?


Gruß
timtam

[1] https://www.olimex.com/Products/ARM/ST/STM32-E407/

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Vielleicht erforschst du einfach den Unterschied zwischen Bit und Byte. 
Je nach Controller schiebt der auch gleich 32Bit rüber.

von Dr. Sommer (Gast)


Lesenswert?

timtam schrieb:
> Liegt das daran, dass der integrierte Ethernet Controller das setzen der
> Pinzustände völlig unabhängig vom Controller macht
Das ist der Sinn eines Ethernet Controllers. Wenn das nicht so wäre, 
könnte man ja gleich alles in Software machen... Und dann gibt es ja 
auch noch DMA .

von ./. (Gast)


Lesenswert?

Ein laestiges Thema sind bei STM32 immer die externen PHYs.
Seine eigene PHY STE100 verwendet selbst ST nicht mehr...

Die neuen LM4F von TI haben den schon Onboard.

Was unter anderem heisst, dass auch alle von TI bereit gestellten
Codebeispiele out of the box funktionieren.

Ein nettes Evalboard hat TI natuerlich auch: EK-TM4C1294XL.

Gibt es im TI-Store versandkostenfrei fuer etwas mehr als 14 Eu.

von Somebody123 (Gast)


Lesenswert?

timtam schrieb:
> Mir ist allerdings noch nicht klar, wie ein Prozessor der mit maximal
> 168MHz läuft (STM32F407ZG), es schafft 56MBit+Frame+Codierung seriell
> kontinuierlich auszugeben ohne an seine Leistungsgrenze zu stoßen (es
> müsste ja etwa bei jedem zweiten Takt ein Pinzustand geändert geändert
> werden. Liegt das daran, dass der integrierte Ethernet Controller das
> setzen der Pinzustände völlig unabhängig vom Controller macht?

DMA lautet das Zauberwort. Da muss der Prozessor gar nichts machen, nur 
die Sache Starten, der Rest geht ohne Prozessorleistung.
Noch dazu muss der DMA nur den Ethernet-Block (Byteweise oder so) 
befüllen, um die einzelen Bits kümmert sich der Block.
Du must nur die Übertragung eines Speicherbereichs starten, der Rest 
sollte von alleine gehen.
--> der Prozessor langweilt sich dabei zu Tode, wenn du es richtig 
machst;-)

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.