Forum: Mikrocontroller und Digitale Elektronik STM32F4 ADC auslesen mit SPI+DMA


von Dirk S. (duerk)


Lesenswert?

Hallo,

ich würde gerne wissen wollen, ob man mit dem STM32F4 über SPI und DMA 
einen externen angeschlossenen ADC schnell genug auslesen kann.

Der ADC AD7902 hat folgende Daten:
2 Kanäle
16Bit
1MSPS
10MHz

Wenn ich das STM32F4 mit 168 MHz betreibe, dann ist doch der APB2 Clock 
= 84MHz. Der kleinste Prescaler Wert bei DMA ist 2. Damit hätte ich eine 
Frequenz von 42MHz. Bei 16 Bit Werten sind das 42MHz/16 = 2,625MHz.
Die maximale Datenrate des ADCs ist 1MSPS -> 1MHz.
Jeder Kanal hängt an einem DMA Controller: DMA1/DMA2.
=> sollte funktionieren

Ist meine Überlegung so richtig?

Wenn die Daten mit 1MSPS übertragen werden, wäre das doch wie, als wenn 
ich eine Abtastfrequenz von 1MHz hätte.
Aber für den Anti-Aliasing Filter kann man doch trotzdem mit 10MHz 
rechnen, oder?

Vielen Dank für eure Hilfe

Gruß Dirk

von Detlef K. (adenin)


Lesenswert?

1MSPS sind 1.000.000.000 Sampels in der Sekunde.
Also kannst laut Herrn N. höhstens Frequenzen bis 500kHz abtasten.
Wo kommen die 10MHz her?

von Dirk S. (duerk)


Lesenswert?

Hallo,

danke für die Antwort.

Aber das mit 1MSPS ist mir noch schleierhaft. Im Datenblatt

http://www.analog.com/static/imported-files/data_sheets/AD7902.pdf

auf Seite 6 ist die Zeit t_cyc mit 1000ns angegeben. Diese Zeit 
beinhaltet, laut der Skizze auf Seite 19 die Abtastung + 
Datenübertragung.

1000ns = 1us -> 1Sample/1us = 1e6 Samples / s oder?

Die 10MHz ist als Bandbreite angegeben, mit welcher das S&H in dem ADC 
noch kla kommt.

Aber stimmt, wenn ich auf 1MSPS komme, dann entspricht das auch meiner 
Abtastfrequenz. Hm aber warum dann die 10MHz?


Gruß Dirk

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

Dirk S. schrieb:
> Wenn die Daten mit 1MSPS übertragen werden, wäre das doch wie, als wenn
> ich eine Abtastfrequenz von 1MHz hätte.

SPI überträgt die Daten seriell, d.h. Du musst noch durch die 16 Bit 
Wortbreite teilen. Du bräuchtest also mindestens 16 MHz SPI Takt für die 
Daten.

> Der kleinste Prescaler Wert bei DMA

Schau Dir lieber an, was das SPI Peripherial so hergibt. Das bestimmt 
den SPI Takt.

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.