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
Ich glaube µCs mit 16 Bit ADC gibts gar keine. Ich würde jetzt pauschal zu einem ARM mit externen 16 Bit ADC raten.
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.
>der mindestens einen 16 Bit ADC hat
Sollte man dies nicht zuerst hinterfragen?
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
Imoh haben alle AVRs nur einen 10 Bit DA. Also vielleicht doch eher ein günstiges ARM Eval board? Oder HCS12
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.
Eine FFT kann im Prinzip schon ein AVR. Wie lange darf's denn dauern ? Und bei welcher Blockgroesse.
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.
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 ?
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.
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§ionId=95&tabId=1220&family=mcu
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 Benedikt, vielen Dank für deine ausführliche Antwort. Die Preise sind ja wirklich erschwinglich (bezahle schon für ein PK51-Update mehr). Siggi
und sollte dsPIC dann nicht mehr reichen, gibt's noch den C2000 von TI mit 32-Bit Architektur und 150MIPS und FPU ;-)
Ist doch alles lahm. Wenn schon dann 64bit und Quadcore, wie z.B. einr Intel Core i7 mit 4x 3,2GHz.
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
Hallo, schau mal hier --> http://www.christoph-lauer.de/Homepage/Blog/Eintrage/2010/8/25_Microcontroller_based_Spectrumanalyzer.html Grüße, Christoph
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.