Forum: Mikrocontroller und Digitale Elektronik Schneller ADC am STM32


von C. W. (chefkoch)


Lesenswert?

Hallo *,

ich denke gerade über ein Panorama-Display (f über x) mit einem STM32 
nach. Die Eingangsfrequenz beträgt 10,7 oder 21,4 MHz. Da das Spektrum 
in der Bandbreite begrenzt ist (+/- 1MHz um die Mittenfrequenz) wird 
eine Abtastrate von >=4 MHz benötigt um das Abtasttheorem nicht zu 
verletzen. Die Samplingrate muss natürlich so abstimmbar sein das das 
mit der Unterabtastung ordentlich hinhaut um die unterste interessante 
Frequenz (10,7-1 MHz) auch auf "0" liegt. Die Abtastung soll natürlich 
nicht ständig laufen - es genügen einzelne, in sich zeitdiskrete, 
"Schnappschüsse" um gerade die benötigte Anzahl an Samples für die 
nächste FFT zu holen.

Entsprechend schnelle ADCs intern gibt es wohl beim STM32F3xx. Mir würde 
aber eine Lösung für andere (STM32F4xx) besser gefallen.

Extern per SPI - wird eng wenn man über die Datenrate auf dem SPI 
nachdenkt, bei 12-16 Bit.

Gibt es da Möglichkeiten etwas mit parallelen ADCs am GPIO und DMA zu 
realisieren? Kann man andere Schnittstellen "mißbrauchen" DCMI oder so?

: Bearbeitet durch User
von Tecnologic (Gast)


Lesenswert?

Moin

ein f446 schaft 7,2Ms auf einem Kanal. Wie viele Kanäle brauchst du 
denn?

Gruß

Tec

von C. W. (chefkoch)


Lesenswert?

Einer würde schon langen - ein F446 ist nur auch nicht in der Sammlung. 
Meinst Du dieses "triple interleaving"? Könnte es ja mal testweise auf 
dem F746-Nucleo probieren.

von Tecnologic (Gast)


Lesenswert?

genau wenn du die ADCs parallel nach einander samplen lässt wuppt der 
das. Natürlich nur mit DMA aber das ist im RefMan erklärt. Ein STM32L4+ 
hat übrigens einen 5Ms ADC in 12Bit, vllt. ist da das Handling 
einfacher. hab ich aber nie mit gearbeitet. Beim tripple interleaved 
musst du auf den DMA auf jeden Fall aufpassen, der kann bei zuviel CPU 
Aktionen auch gern mal mit Overflow aussteigen, meist aber eher wenn du 
noch mehr DMAs aktiv hast als nur die ADCs.

Außerdem drauf achten das deine Signal Quelle niederimpedant ist, ggf. 
einen OP davor schalten. Die ADCs ziehen gern mal 10mA aus dem 
Messsignal, wenn die so schnell gesamplet werden, das verfälscht dir 
dann die Messung.

Gruß

Tec

von m.n. (Gast)


Lesenswert?

Tecnologic schrieb:
> Die ADCs ziehen gern mal 10mA aus dem
> Messsignal, wenn die so schnell gesamplet werden

Da sollte man wohl auch ein 10 A Netzteil nehmen.
Oder willst Du Deine Angabe noch einmal korrigieren?

von Beo Bachta (Gast)


Lesenswert?

m.n. schrieb:
> Oder willst Du Deine Angabe noch einmal korrigieren?

Nein, dann lieber 10 Ampere Netzteil.

von C. W. (chefkoch)


Lesenswert?

Ist doch nicht so einfach: Es gibt offenbar noch die Nebenbedingung das 
die Samplingzeit der für das ürsprüngliche Signal entsprechen muss. Das 
bedeutet das wenn ich ein 20 MHz Signal mit 5 MHz sample die 
Samplingzeit trotzdem 1/40000000s Sekunde sein muss, obwohl die 
Conversiontime 1/5000000 ist. Also als ob der ADC mit 40MHz sampled und 
ich nur jeden 8. Wert einlese.

von soundos (Gast)


Lesenswert?

20Mhz mit 5Mhz sampeln ??? abtasttheorem ?

von Beo Bachta (Gast)


Lesenswert?

soundos schrieb:
> 20Mhz mit 5Mhz sampeln ??? abtasttheorem ?

Ja geht. Du musst noch dazulernen. Vielleicht mal Wiki bemühen?

von C. W. (chefkoch)


Lesenswert?

soundos schrieb:
> 20Mhz mit 5Mhz sampeln ??? abtasttheorem ?

Stichwort "Unterabtastung" - sobald das 20 MHz Signal bandbegrenzt ist 
und die Abtastfrequenz doppelt so hoch ist wie die Bandbreite ist das 
Abtasttheorem nicht verletzt. Gundlagen digitale Signalverarbeitung ;-)

von Karl (Gast)


Lesenswert?

Man mischt quasi mit dem ADC bzw. Dem Sample and hold herunter.
Man kann hinterher aber auch nicht mehr sagen ob es 10, 20 oder 40 MHz 
waren. Nur die Informationen in der nutzbandbreite bleibt erhalten.

von C. W. (chefkoch)


Lesenswert?

Hallo *,

ich bin bei dem Thema etwas weiter:

Das Problem mit den internen DACs zu lösen ist möglich. Das Ganze läuft 
bis ca. 50 MHz ziemlich problemlos. Auch wenn das Ergebnis ab ca. 20 MHz 
in der Zeitachse nicht mehr so dolle aussieht ist das für die FFT kein 
Problem. Bei vollem Takt für den Kern ist es allerdings selten Möglich 
genau die maximale Samplingfrequenz zu treffen. Ein "Übertakten" ist 
möglich. Mit einem F407VE gehen da dann auf einmal 8,4 MSPS im triple 
interleaved mode.

Ein Problem gibt es allerdings: Ich bekomme den Transfer nur einmal per 
HAL gestartet. Da ich nur Schnappschüsse brauche steht der DMA auf 
normal und nicht circular, so das er nach dem ADCcomplete-Interrupt 
eigentlich wieder startbar sein sollte. Die Sache mit den MULTI-bits im 
ADC_CCR gemäß reference manual habe ich schon probiert. Da der erste 
Durchgang erfolgreich durchläuft (Daten und Interrupt kommen) glaube ich 
nicht an ein einfaches Konfigurationsproblem.

: Bearbeitet durch User
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.