STM32F303 welche PErformance für DSP

Gast #4449409
Hallo,

ich frage mich, welche Performance ich so von dem STM32F303 bzgl.
Signalverarbeitung erwarten kann?

Ich möchte z.B. zwei Analoge Signale erfassen und miteinander 
korrelieren!
beide im Bereich bis 20kHz!

vielleicht auch noch ein Filter drüber laufen lassen!

Generell geeignet oder schon eher einen DSP verwenden???

VG
#4449417
Hallo,

prinzipiell ist das möglich mit dem STM32F303.

Die internen ADCs samplen schnell (bis zu 12 Bit Auflösung / bis zu 
5MSPS), ob dir die Genauigkeit bei 2 Kanälen und deiner Abtastrate von 
mindestens 40kHz (muss ja nach Abtasttheorem größer 2x f_max sein) noch 
ausreicht, kannst du hier 
http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00058181.pdf 
nachlesen und ausrechnen.

Je nachdem, wie aufwändige Filter du verwenden willst, kann der 
Mikrocontroller trotz 72MHz an seine Grenzen stoßen.
Normale Filter sind (dank der FPU) problemlos realisierbar.

Ein DSP ist natürlich genau zu solchen Zwecken gedacht. Das bedeutet 
allerdings vermutlich einige Einarbeitungszeit, zumal falls du schon mit 
dem STM32 Controllern vertraut sein solltest.

Viele Grüße
Raphael
(Firma: matzetronics) #4449490
Flinker Floyd schrieb:
> Ich möchte z.B. zwei Analoge Signale erfassen und miteinander
> korrelieren!
> beide im Bereich bis 20kHz!

Denk drüber nach, nicht die internen ADC eines STM32 zu benutzen, 
wenns wirklich drauf ankommt. Die sind für Feld, Wald und 
Wiesenmessungen ok, aber für z.B. Audio oder Präzisionsmessungen zu sehr 
gestört.
Ein schöner externer ADC lässt sich aber problemlos über z.B. I2S 
anschliessen, wenn dein MC das hat.
#4449907
Matthias S. schrieb:
> Ein schöner externer ADC lässt sich aber problemlos über z.B. I2S
> anschliessen, wenn dein MC das hat.

Ein externer ADC bedeutet zusätzlichen Aufwand und zusätzliche Kosten.

Zumal in diesem Fall die Bandbreite von I2S/I2C (100KBit/s bis 1MBit/s) 
mit Overhead knapp werden könnte um 2 20kHz Signale ausreichend zu 
messen.

Ebenfalls bedeutet ein auf diese Weise angeschlossener ADC zusätzliche 
Latenz, ob das hier relevant ist, muss der TO wissen.
(Firma: matzetronics) #4450084
Raphael L. schrieb:
> Zumal in diesem Fall die Bandbreite von I2S/I2C (100KBit/s bis 1MBit/s)
> mit Overhead knapp werden könnte um 2 20kHz Signale ausreichend zu
> messen.

Nö. Genau dieses ist der Job von I2S (nicht zu verwechseln mit I²C), 
dieser Bus ist dafür gedacht, digitale Audiosignale zu übertragen. I2S 
ist etwas völlig anderes als I²C.
#4450105
Oh stimmt, du hast recht.

Ich habe I2S bisher immer mit I²C gleichgesetzt, bzw. I2S war mir nicht 
bekannt. Mit I2S hatte ich vermutlich schon mal einen externen ADC 
genutzt.

Dann nehme ich meine Bedenken natürlich zurück.
#4450145
Erstmal: Der STM32F3xx hat nicht den Aufbau eines echten DSP. Während 
ein echter DSP mehrere Adress- und Datenbusse hat, um für einen 
Multiply-and-Accumulate Befehl die Daten zu holen und zu berechnen, muß 
der STM das nacheinander machen. Das kann die Berechnung um den Faktor 3 
langsamer machen.

Aber:
Wenn 16 Bit Messwertgenauigkeit ausreicht, dann hat der STM dafür 
spezielle M&A Befehle, die 2 Berechnungen parallel machen. Wenn der 
interne ADC verwendet wird, sind diese meistens völlig ausreichend. Für 
fast alle denkbaren Algorythmen gibt es fertige DSP-Routinen, meistens 
separat für 16 Bit, 32 Bit und float. Die Geschwindigkeit fand ich 
ziemlich beeindruckend, vor allem beim 2*16Bit-Modus.

Falls die Rechenleistung nicht ausreicht, gibt es auch noch höher 
getaktete Derivate (STM32F4xx oder STM32F7xx). An Deiner Stelle würde 
ich mich deshalb erstmal mit einem Demoboard testen, ob die 
Rechenleistung ausreicht und bei Engpässen auf den STM32F4xx wechseln.

Bei de Verwendung des gcc ganz wichtig: optimierung und Floatingpoint 
einschalten.

Gruß, Stefan

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.