Forum: Mikrocontroller und Digitale Elektronik STM32F405RGT6 für AD7768 ADC schnell genug?


von Charly (Gast)


Lesenswert?

Hallo,

Ich möchte zwei simultane Kanäle eines AD7768 A/D Wandlers @ 256 kS/s 
nutzen. Die Auflösung beträgt jeweils 24 bit, was eine Datenrate von 2 x 
24 bit x 256 kS/s = 12.288 Mbit/s ergibt.

Diese Rohdaten möchte ich mittels eines Mikrocontrolers in Echtzeit und 
via USB 2.0 an einen PC übertragen.

Aus einem früheren Projekt habe ich noch einen STM32F405RGT6 
Mikrocontroller mit einem Takt von 168 MHz. Kann jemand abschätzen, ob 
dieser Mikrocontroller diese relativ hohe Datenrate hinbekommt? (Ein 
FPGA wäre natürlich die sicherere Alternative, wäre allerdings auch 
aufwändiger in der Realisierung.)

Danke für eure Hilfe!

von Rechenkünstler (Gast)


Lesenswert?

Ist doch SPI. Für 1536000 Bytes bei 20mhz SPI, braucht dieser hierfür 
0,6144s.

von Charly (Gast)


Lesenswert?

SPI scheint laut Datenblatt nicht das Problem zu sein: "SPI1 can 
communicate at up to 42 Mbits/s, SPI2 and SPI3 can communicate at up to 
21 Mbit/s"

von jo mei (Gast)


Lesenswert?

Ich liebe es wenn man aus der Datenrate eines Bausteins die
mögliche Arbeitsgeschwindigkeit seines Gesamtdesigns ermittelt
(will heissen sich per copy&paste berechnet).

von Charly (Gast)


Lesenswert?

jo mei schrieb:
> Ich liebe es wenn man aus der Datenrate eines Bausteins die
> mögliche Arbeitsgeschwindigkeit seines Gesamtdesigns ermittelt
> (will heissen sich per copy&paste berechnet).

Gerade ja nicht, deshalb frage ich ja. Mir geht es ja genau um die 
Frage, ob der Controller die Daten verarbeitet bekommt und es dann auch 
schafft diese per USB wieder zu versenden.

von Rechenkünstler (Gast)


Lesenswert?

Charly schrieb:
> Gerade ja nicht, deshalb frage ich ja. Mir geht es ja genau um die
> Frage, ob der Controller die Daten verarbeitet bekommt und es dann auch
> schafft diese per USB wieder zu versenden.

Warum nicht? Das weiterleiten ist quasi langweilig für den Controller. 
Könnte man auch mit DMA machen deine CPU hat quasi nichts zu tun.

Also der DMA sammelt die Rohdaten von 1/10 Sekunde. In dieser Zeit hast 
du Freie Kapa. Anschließend stößt du einen weiteren DMA an, der die 
Daten zum PC sendet und deine CPU macht parallel ganz tolle Sachen mit 
deinen Rohdaten.

In diesem Szenario hast du quasi 0Sekunden mit dem weiterreichen der 
Nutzdaten verbraucht.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Der genannte ADC hat SPI nur als Control Interface.

Die Daten popelt man aus einer Mischung aus paralelem und seriellen 
Interface raus. Es braucht zwar 24 Takte, aber beide ADC Ergebnisse 
werden gleichzeitig rausgetaktet. Das ist aber kein Problem, brauchste 
eben 2 SPI Periph, die als Slave arbeiten.
Der Takt kommt ja vom ADC.

Das sollte aber kein Problem sein.
Ein STM32F205 auf 120MHz sampelt hier 2 ADC Kanäle zu 16Bit und 250kS/s.
Da es ein Wirkleistungsmessgerät ist wird auch noch auf diesen Samples 
direkt gerechnet, hier soll ja nur durchgereicht werden.
Weiterhin muss nebenbei noch eine GUI ausgegeben werden.

Was sonst noch gerne vergessen wird:
Der STM32 kann nur USB2.0 480MBit mit einem externen ULPI PHY.
Sonst geht nur USB mit 12MBit und das ist offensichtlich zu wenig.

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.