Forum: Mikrocontroller und Digitale Elektronik Welcher MSP 430 für FFT? Einsteigerfragen.


von Dominik (Gast)


Lesenswert?

Hallo!

Wir möchten ein niederfrequentes Signal (20-100Hz) abtasten (Messzeit 2 
Sekunden) und so auf max. Amplitude und Frequenz des Signals 
rückschließen.

Wo wir anstehen: Welchen µC sollen wir nehmen? Wir würden gern bei 
MSP430 bleiben, weil wir da schon ein paar Erfahrungen sammeln konnten. 
Ein externer ADC (AD7680) soll zum Einsatz kommen.
Gibts schon fertige Algorithmen wo man nur noch Parameter einstellen 
muss? Im Programmieren sind wir ziemliche Eier, also wollten wir uns da 
nicht unnötig plagen.

Könnt ihr uns da aus der Patsche helfen bitte?

Danke im Voraus :)

lg,
Dominik

von Phil (Gast)


Lesenswert?

Könnt ihr das mal noch ein bisschen spezifizieren? Ihr habt ein Signal, 
dass ihr über eine Zeit von 2 Sekunden abtastet. Geschieht das nur 
einmal oder zyklisch? Bei einer einmaligen Abtastung habt ihr ja 
anschließend genügend Zeit für die Berechnung. Also am besten die Werte 
während der Messung in einen Speicher schreiben und danach dann die 
Werte aus dem Speicher für die Berechnung verwenden. Da habt ihr dann 
keine Probleme mit der Taktrate.
Wollt ihr die Werte während der Messung berechnen, dann wäre eine Angabe 
der Zeit die zwischen zwei Messwerten liegt hilfreich.
Gruß Phil

von Dominik (Gast)


Lesenswert?

Ja, es ist nur eine einmalige Messung!
Wir gehen davon aus, dass wir 500 Messwerte pro Sekunde aufnehmen, ist 
das realistisch?

lg, Domi

von Northernhessian (Gast)


Lesenswert?

Schaut mal auf http://msp430.ms.funpic.de, da gibts Informationen zum 
Thema FFT und MSP430.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wozu einen externen ADC verwenden? Der in vielen MSP430-Varianten zu 
findende ADC_12 lässt mit ausreichendem Oversampling auch 16 Bit 
Auflösung erzielen.

Mit dem 'F5438 (jetzt endlich auch auf 'nem Olimex-Board: 
http://olimex.com/dev/msp-5438-stk.html) sollte eine brauchbare 
Grundlage für die Anwendung gefunden sein.

16 kiB RAM, 256 kiB Flash-ROM, bis zu 25 MHz Taktfrequenz ...

sollten für die 1000 Samples während Eurer 2-Sekunden-Messung "dicke" 
ausreichen-

von Dominik (Gast)


Lesenswert?

Danke für die Tips!

@ rufus:
Wie darf ich das mit dem Oversampling verstehen? Wie geht das? Auf 
"echte" nutzbare 16 Bit werde ich damit aber nie kommen. Kannst du mir 
das ein bisschen weiter ausführen?

Danke!
lg,
Dominik

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Es gibt eine AppNote* von TI, die Oversampling mit dem DAC_12 
beschreibt.

Um ein Bit mehr Auflösung zu erlangen, ist ein vierfaches Oversampling 
erforderlich, bei zwei Bit mehr Auflösung entsprechend ein 16-, bei drei 
Bit mehr ein 64- und bei vier Bit mehr ein 256-faches Oversampling.

Der "Trick" auf der Softwareseite ist, daß bei der Mittelwertbildung bei 
2^n-fachem Oversampling die Summe aller Samples nicht durch 2^n, sondern 
nur durch 2^(n/2) geteilt wird, bei 256-fachem Oversampling (n = 8) wird 
die Summe also nur durch 16 geteilt.

Wenn das Schaltungsdesing ausreichend sauber ist (Abblockkondensatoren 
in Doppelausführung 100n + 10n an allen Versorgungsspannungsanschlüssen 
etc., ausreichende Masseflächen etc.), dann sind mit 
256-fach-Oversampling tatsächlich reale und stabile 16 Bit Auflösung 
erzielbar.

Das habe ich mit einem 'F449 (auf dieser Testplatine 
http://olimex.com/dev/msp-449stk2.html, kein besonders gutes Layout), 
einem 'F1611 und einem 'F5438 (die letztgenannten auf einer eigens dafür 
entwickelten Platine) durchgeführt.


Für Deine gewünschten 500 Hz Samplerate ist bei 256-fach-Oversampling 
also eine reale Samplerate von 128 kHz erforderlich - das schafft der 
'F5438 locker.


*) 
http://focus.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=slaa323

von Dominik (Gast)


Lesenswert?

Vielen Dank für die Erklärung Rufus!

Ich glaube der wirds werden :D
Hat der eine parallele Schnittstelle für ein LC-Display?

lg,
Dominik

von Dennis (Gast)


Lesenswert?

Dominik schrieb:
> Hat der eine parallele Schnittstelle für ein LC-Display?

Eine "parallele Schnittstelle" hat ja quasi jeder uC.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dominik schrieb:
> Hat der eine parallele Schnittstelle für ein LC-Display?

"Der"? Von welchem MSP430-Derivat reden's denn?

Der 'F449 steuert controllerlose Displays direkt an, wie auch das auf 
dem Olimex-Board zu sehende.


Und genügend I/O-Pins, um ein 44780-Display oder ein GLCD mit Controller 
darauf anzusteuern hat er auch. Und der 'F5438 erst recht.

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.