Forum: Mikrocontroller und Digitale Elektronik 30 Khz min 16BIT ADC und dann FFT welcher µC?


von Skywalker88 (Gast)


Lesenswert?

Hallo,

ich möchte ein Signal von 30 Khz Bandbreite in einem µC einer FFT 
unterziehen. Kann mir jemand einen Controller empfehlen, der mindestens 
einen 16 Bit ADC hat und bei dem ich die FFT ausführen kann??

Danke im voraus

von Timmo H. (masterfx)


Lesenswert?

Ich glaube µCs mit 16 Bit ADC gibts gar keine. Ich würde jetzt pauschal 
zu einem ARM mit externen 16 Bit ADC raten.

von Zwirbeljupp (Gast)


Lesenswert?

dsPIC33 - Familie von Microchip. Dort gibt es einige Vertreter mit 
16bit-A/D-Wandler (z.B. der dsPIC33FJ64GP804).
Auf Grund der DSP-Architektur sind diese µCs für Aufgaben wie FFT 
bestens gerüstet.

von Benedikt K. (benedikt)


Lesenswert?

Zwirbeljupp wrote:
> dsPIC33 - Familie von Microchip. Dort gibt es einige Vertreter mit
> 16bit-A/D-Wandler (z.B. der dsPIC33FJ64GP804).

Nein. Der hat nur einen 16bit DA Wandler.
Die xxxGPxxx dsPICs haben aber ein Codec Interface das von SPI über I2C 
bis hin zu AC3 nahezu alles kann. z.B. ein UDA1345 dran und fertig.

Ansonsten dürften die dsPICs ideal für sowas sein: Die FFT ist sehr 
schnell (dank des DSP Cores), ich wage es fast zu behaupten, dass die 
schneller sind als ein normaler ARM7). Vor allem sind DSP Routinen wie 
FFT schon beim Compiler mit dabei.

von Gast (Gast)


Lesenswert?

>der mindestens einen 16 Bit ADC hat

Sollte man dies nicht zuerst hinterfragen?

von Skywalker88 (Gast)


Lesenswert?

wenn ich nochmal nachrechne, mein Signal hat maximal eine Bandbreite von 
15 Khz, also Abtastfrequenz ca. 30 KHz, bei oversampling 60KHz. Bei 
einer 10 Bitauflösung ergäbe das 58,6 Hz Auflösung und bei 12 Bit 15 Hz, 
das müsste mir eigentlich reichen!!

Jetzt suche ich ein Entwicklungsboard, der schon einen 12 Bit ADC hat. 
Am liebsten ein AVR! Hat da jemand was im Petto ??

Danke für die vielen Antworten

von Timmo H. (masterfx)


Lesenswert?

Imoh haben alle AVRs nur einen 10 Bit DA. Also vielleicht doch eher ein 
günstiges ARM Eval board? Oder HCS12

von Morphil (Gast)


Lesenswert?

Die XMEGA haben nen 12-Bit ADC und DAC. Die Abtastrate mit maximal 2 MHZ 
sollte auch ausreichen. Soweit ich das gesehen habe bekommt man zur Zeit 
nur den XMEGA128A1.

von aha (Gast)


Lesenswert?

Eine FFT kann im Prinzip schon ein AVR. Wie lange darf's denn dauern ? 
Und bei welcher Blockgroesse.

von Benedikt K. (benedikt)


Lesenswert?

Skywalker88 wrote:
> Bei
> einer 10 Bitauflösung ergäbe das 58,6 Hz Auflösung und bei 12 Bit 15 Hz,
> das müsste mir eigentlich reichen!!
>
> Jetzt suche ich ein Entwicklungsboard, der schon einen 12 Bit ADC hat.

Verstehe ich das richtig, dass du die Frequenzauflösung in Zusammenhang 
mit der ADC Auflösung bringst?
Die haben beide nichts miteinander zu tun!

Bei 4096 Punkten muss das schon ein größerer AVR sein, mit 10kByte SRAM 
oder mehr.

von Skywalker88 (Gast)


Lesenswert?

Wenn ich doch ein Signal von 30 KHz auflösen will und einen 12Bit ADC 
habe, sprich 4096 Punkte 30KHz/4096 ergibt doch 7,3 Hz oder bin ich 
falsch ?

von Skywalker88 (Gast)


Lesenswert?

Es ist nicht so Zeitkritisch, möchte nur das ankommedne Signal einer FFT 
unterziehen und die Wert dann über eine Schnittstelle rauswerfen!!   Mir 
wäre ein AVR am liebsten, die haben aber anscheinend wirklich alle 10Bit 
ADC´s. ARM wollte ich eigentlich vermeiden, stehe ich etwas mit auf dem 
Kriegsfuss.

von DK (Gast)


Lesenswert?

Benedikt meint mit 4096 die groesse der FFT und NICHT 12Bit Aufloesung 
des ADCs!!!

Nimm den dsPIC33FJ... und du bist gluecklich!

Ich verwende den auch, da hast du fertige FIR und FFT Funktionen! und 
einen max. 12Bit ADC.

Die groesse deiner FFT bestimmt die Frequenzaufloesung und nicht die 
Bitanzahl des ADCs!!!

DK

von Siggi (Gast)


Lesenswert?

Hallo DK,

du empfiehlst den dsPIC33FJ. Der hat aber nur 1KByte. Damit ist man bei 
einer 256er FFT (256 * 2 Byte complex, 2 Byte real) schon am Ende er 
Fahnenstange. Oder übersehe ich da etwas?

Siggi

von Benedikt K. (benedikt)


Lesenswert?

Es gibt keinen dsPIC33FJ, sondern das ist eine ganze Serie von 
Controllern mit bis zu 31kbyte SRAM. Wenn nicht viele IO Pins gebraucht 
werden, dann würde ich den dsPIC33FJ64GP802/804 empfehlen. Das ist einer 
der neuesten bei dem schon die schlimmsten Bugs entfernt wurden. 
Außerdem lassen sich die meisten Peripheriefunktionen per Software auf 
beliebige Pins legen. Der GP802 ist sogar als DIP28 oder auch als SO28 
erhältlich und hat 16kByte SRAM. Das sollte ausreichen. Mehr hat nur der 
GP710.

von Josef W. (josefwa)


Lesenswert?

Oder wenn's schon ein DSP sein muss, dann wuerde ich auf die bewaehrte 
C2000 Familie von TI setzen. Gibt's schon recht lange und die Tools sind 
auch ausgereift.

http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?familyId=916&sectionId=95&tabId=1220&family=mcu

von Siggi (Gast)


Lesenswert?

Wie verhält sich die Rechenleistung des dsPIC33FJ64GP802 zum ATMega644 
(mit dem arbeite ich gerade und komme an die Leistungsgrenze) bei 
gleicher Taktfrequenz? Sind Tools (Compiler, Programmer etc.) zu einem 
erschwinglichen Preis erhältlich?

von Benedikt K. (benedikt)


Lesenswert?

Siggi wrote:
> Wie verhält sich die Rechenleistung des dsPIC33FJ64GP802 zum ATMega644

Etwa Faktor 2-3 bei einfachen Sachen wie Bittoggeln usw. (da 40MIPS beim 
dsPIC und nur 20MIPS beim AVR) und mindestens Faktor 4 bei DSP Sachen 
wie FFT (da 16bit + DSP Kern mit speziellen Features). Die restlichen 
Sachen liegen irgendwo dazwischen. Ich finde den einfacher zu 
programmieren als ARMs. Und bei einfachen IO Operationen ist der dsPIC 
um einiges schneller als ein ARM, da es  bei den Zugriffen auf die 
Peripherie dank Harvard Architektur keine Buskollisionen gibt.

>Sind Tools (Compiler, Programmer etc.) zu einem erschwinglichen Preis erhältlich?

Programmier+Debugger: ICD2 so 150€ orginal, bzw. weniger als Nachbau. 
Wenn man ihn selbst nachbaut kommt man auf rund 20€ Bauteilkosten. Der 
ist dann 100% kompatibel, da lediglich die Schaltung nachgebaut wurde.
Den Compiler gibt es als leicht eingeschränkte Version kostenlos. Was 
der als uneingeschränkte, kommerzielle Version kostet, keine Ahnung. 
Mittlerweile ist der auch ziemlich gut in der Optimierung. Für die 
ganzen DSP Sachen kommt man aber um Assembler nicht herum (was aber 
nicht wirklich schwer ist, mein erstes Assemblerprogramm auf einem dsPIC 
war ein Equalizer.) Dank der mächtigen Befehle ist auch die Codegröße 
trotz der 24bit großen Befehle in etwas vergleichbar mit der auf einem 
AVR.

von Siggi (Gast)


Lesenswert?

Hallo Benedikt,

vielen Dank für deine ausführliche Antwort. Die Preise sind ja wirklich 
erschwinglich (bezahle schon für ein PK51-Update mehr).

Siggi

von Josef W. (josefwa)


Lesenswert?

und sollte dsPIC dann nicht mehr reichen, gibt's noch den C2000 von TI 
mit 32-Bit Architektur und 150MIPS und FPU ;-)

von Gast (Gast)


Lesenswert?

Ist doch alles lahm. Wenn schon dann 64bit und Quadcore, wie z.B. einr 
Intel Core i7 mit 4x 3,2GHz.

von Reinhard G. (regue)


Lesenswert?

Hallo
Die Antworten hier sind zwar schon recht alt, aber ich hoffe doch 
jemanden zu finden der mir weiter helfen kann.
Ich möchte ein Signal von 24 khz Bandbreite mit hilfe einer 512 pkt FFT 
auf einem Display 240x128 (64) darstellen. 64 weil ev. noch oberhalb 
etwas anderes dargestellt werden soll.
Ein dsPIC33FJ128MC706 soll eingesetzt werden, weil er hier auch 
vorhanden ist.
Die Microchip routine soll verwendet werden. Diese ist aber für den 30er 
PIC gemacht wie bekomme ich die für den 33er PIC zurecht gemacht.
Danke
Reinhard

von Christoph L. (clauer)


Lesenswert?


von Martin (Gast)


Lesenswert?

Die graue Schrift auf schwarzem Hintergrund ist dir sehr gut gelungen. 
Aber wirklich Spitze ist das unscharfe Video. Gratuliere!

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.