www.mikrocontroller.net

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


Autor: Skywalker88 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Zwirbeljupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>der mindestens einen 16 Bit ADC hat

Sollte man dies nicht zuerst hinterfragen?

Autor: Skywalker88 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Timmo H. (masterfx)
Datum:

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

Autor: Morphil (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: aha (Gast)
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Skywalker88 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Skywalker88 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: DK (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Josef Warta (josefwa)
Datum:

Bewertung
0 lesenswert
nicht 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/parametricsea...

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Josef Warta (josefwa)
Datum:

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

Autor: Gast (Gast)
Datum:

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

Autor: Reinhard Günzel (regue)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph Lauer (clauer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
schau mal hier --> 
http://www.christoph-lauer.de/Homepage/Blog/Eintra...

Grüße,
Christoph

Autor: Martin (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.