Maximale Datenrate für einen Mikrocontroller

Gast #3378262
Lesenswert?

Vorneweg: Es handelt sich um ein Hobbyprojekt und ich habe keine 
Erfahrung mit FPGAs.
Wie groß ist die Datenrate die ein handelsüblicher, leistungsstarker 
Mikrocontroller wie z.B. der STM32F4 kontinuerlich verarbeiten kann?
Ich möchte ein Signal mit einem 18Bit ADC mit parallelem Interface 
abtasten. Die Ergebnisse sollen eingelesen werden und dann Minimum, 
Maximum und ein kontinuierlicher Mittelwert berechnet werden. Eventuell 
wäre noch interessant, die Anzahl der Messwerte in einem bestimmten 
Wertebereich abzuspeichern. Die Rohdaten vom ADC müssen aber nicht 
abgespeichert werden.
Der Mikrocontroller muss wärend der Messung keine weiteren Aufgaben 
übernehmen. Wie schnell könnte ich den ADC also takten?
Gast #3378289
Lesenswert?

Ist wie gesagt ein Bastelprojekt zum experimentieren und neue 
Erkentnisse gewinnen, also ist "so schnell wie möglich" eine erlaubte 
Spezifikation. Der ADC schafft 1MSPS, wenn eine höhere Verarbeitungsrate 
möglich ist, wechsle ich auf einen 10MSPS 16Bit ADC.
Gast #3378296
Lesenswert?

Martin schrieb:
> Wie groß ist die Datenrate die ein handelsüblicher, leistungsstarker
> Mikrocontroller wie z.B. der STM32F4 kontinuerlich verarbeiten kann?
> Ich möchte ein Signal mit einem 18Bit ADC mit parallelem Interface
> abtasten. Die Ergebnisse sollen eingelesen werden und dann Minimum,
> Maximum und ein kontinuierlicher Mittelwert berechnet werden.

Martin schrieb:
> Der ADC schafft 1MSPS, wenn eine höhere Verarbeitungsrate
> möglich ist, wechsle ich auf einen 10MSPS 16Bit ADC.

1MHz problemlos und auch per Interrupt auswertbar; bei 10MHz ist die 
Frage, was mit den Daten passieren soll und wieviel Zeit dafür benötigt 
wird.
(Firma: Raich Gerätebau & Entwicklung) #3378673
Lesenswert?

>Gibt es einen schnelleren Controller der aber noch per Hand
>lötbar ist?
Alles außer BGA ist von Hand lötbar!
Zu deinem eigentlichen Problem:
18Bit ist in dem Fall suboptimal, es braucht 2 Lesezyklen um einen 
Abtastwert einzulesen.16 Bit wären da vorzuziehen. Wenn du da noch 
großartig was verarbeiten willst, sieht's mit "normalen" MC's duster 
aus. Das geht dann wohl Richtung DSP (Blackfin,...)

Grüsse
Gast #3378998
Lesenswert?

Der Flexible memory controller (FMC) beim STM32 hat 8-,16-, 32-bit data 
bus width. Bis auf die "Speicherverschwendung" dürfte es also keinen 
Unterschied machen ob 16 oder 18Bit parallel eingelesen werden. Die 
Verarbeitung ist eh 32Bit.
Gast #3379048
Lesenswert?

Einen Mittelwert rechnet man eh nicht ueber N-Werte, sondern 
exponentiell. Dann eght er naemlich viel schneller. Einen Min-Max macht 
man auch nicht ueber N Werte, sondern auch exponentiell. Dann geht der 
auch schneller.
Mir scheint das Ganze auch ein ueberzogener Furz zu sein.
Gast #3379115
Lesenswert?

> Was meinst Du mit 'exponentiell'

Stell Dir einen Integrierer mit R/C Tiefpass vor:
1
Eingang o---[===]----+----o Ausgang
2
                     |
3
                    ===
4
                     |
5
                    GND

Der Kondensator wird auf den Mittelwert (genauer gesagt: Effektiv-Wert) 
der Eingangsspannung geladen. Wenn die Eingangsspannung z.B. zwischen 1V 
und 3V hin und her springt, dann glättet der Kondensator diese 
Schwankungen auf 2 Volt.

Das kann man mathematisch umsetzen und dazu braucht man nicht die n 
Samples zu speichern, sondern erhöht oder verringert den gespeicherten 
Wert beim Einlesen jedes Samples. Im einfachsten Fall so:

uint_32_t mittelwert=0;
while (1) {
  uint32_t diff=ADC-mittelwert;
  mittelwert+=diff/10;
}

Angenommen, du misst ganz hintereinander oft den Wert 100, dann hat die 
Variable "mittelwert" auch den Wert 100. Jetzt kommt einmal ein 
Ausrutscher mit dem Wert 200. Dann ist mittelwert=120. Wenn danach 
wieder immer nur 100 gemessen wird, geht "mittelwert" schrittweise 
wieder runter auf 100 (120, 118, 117, 116, 115, 114 ... 101, 100).

Anstatt die Differenz durch 10 zu dividieren, kann man auch andere 
Teiler verwenden oder das Ganze logarithmisch machen, falls das für den 
Anwendungsfall von Vorteil ist. Dann würden sich starke Abweichungen 
überproportional auf das Messergebnis auswirken.

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