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
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.
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.
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
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.
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.
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.
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
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
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.
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?
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.
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