Hallo, ich baue mir grade einen Vorverstärker. SPDIFF & Analog rein und SPDIFF & Analog raus. Dazu kommt noch ein Prozessor (AVR) für LEDs, Tasten, RC5 Encoder. Das ganze ist nichts wildes und damit habe ich auch keine Probleme. Jetzt hatte ich aber die Idee das interne digitale Signal durch meinen Prozessor zu leiten, um das Signal auf einer SD-Karte zuspeichern und auch abspielen zu können. RAW, FLAC, oder MP3 --> kommt auf die benötigte Rechenleistung an. Einen Filter würde ich auch gerne gleich mit umsetzten. Mit DSPs habe ich noch nie was gemacht, habe aber gerade Erfahrung mit einem ARM7S256 vom Atmel gesammelt. Jetzt stellt sich nur die Frage würde der für so eine Aufgabe reichen? Wenn Nein: Für welchen Teil meiner Wünsche wäre der ARM7 noch einsetzbar? Dirk
Der AT91SAM7S256 reicht um WAV auf eine SD-Karte zu schreiben. Hab das hier mal ausprobiert: http://www.google.com/codesearch/p?hl=de#pzkOO5QRsoc/main.c&l=99 Für MP3 reicht es aber definitiv nicht, FLAC höchstwahrscheinlich auch nicht.
Hi, wenn WAV geht ist das doch schon mal eine Aussage. Der Prozessor soll übrigens nicht alles gleichzeitig machen. Nur eine der Funktionen und die System Steuerung (LEDs ...). Das Aufnehmen ist nett wenn es geht, WAV würde mir reichen. Ich will ja nicht 14 Tage lang am Stück aufnehmen, 1GB reicht auch schon für einige Minuten im WAV Format. Könnte OGG funktionieren? Abspielen soll ja gehen, wie ich hier und da lesen kann. Was mich wirklich interessiert ist ob der ARM7 reicht um das Signal zu Filtern. Vielleicht sogar eine Frequenzweiche? Dirk
Dirk wrote: > Könnte OGG funktionieren? Ich würde schätzen, dass man hierzu schon einen Prozessor mit DSP Funktionalität braucht. Samtliche Codierverfahren sind ziemlich rechenintensiv. Einige sind optimiert auf möglichst einfaches Dekodieren (wenn ich mich recht erinnere ist FLAC hier zu nennen). OGG liegt m.W. bereits als Fixkommaimplementierung vor, kannst es ja mal probieren und berichten. Was ich definitiv sagen kann ist, dass MP3 dekodieren und codieren gleichzeitig (Back-to-Back) auf einem Single-Core Blackfin geht (Fixkomma).
Für die Filter kannst du die benötigte Rechenleistung relativ einfach vorherbestimmen. Schau dir mal die für FIR- und IIR-Filter benötigten Rechenoperation und Speicherbedarf für die Ringpuffer an. Mit Assembler, Festkommaarithmetik und 32 bit "Auflösung" (ist erforderlich) kriegst du bei Stereo und vorgegebener Samplingfrequenz ein Filter welcher Ordnung hin? Kannst du also vergessen.
Würde ich so pauschal nicht sagen. Der Prozessor hat nicht viel zu tun wenn der Transfer ADC -> RAM -> DAC über DMA läuft, man hat also ein paar hundert Takte pro Sample zur Verfügung. Und der ARM7TDMI hat z.B. Befehle für signed 32x32 MAC. Damit sollte sich also schon was anfangen lassen. OGG funktioniert genausowenig wie MP3, ist von der Komplexität her ähnlich (eher aufwändiger).
Das war bezogen auf die Frequenzweiche, also 2 Eingänge und 4 oder 6 Ausgänge. Das ist m.E. ein bisschen zu viel des guten für den armen ARM.
Den ADC will ich nicht benutzen, ich habe die Signale doch schon Digital im System. Der ARM7 hat eine I²S Schnittstelle. Den DMA muss ich benutzen sonst macht der ARM7 nur noch an der Ausgabe der Daten rum und hat nicht mal mehr Zeit für mein kleines Steuerprogramm. Zum Rechen würde der dann erstrecht nicht mehr kommen. OK MP3 und Konsorten kann ich zum Aufnehmen also vergessen. Abspielen geht, haben einige Projekte bewiesen. Aber was ist mit den Filtern? Vergessen oder habe ich gute Karten das zum laufen zu bringen? Gerhard hast Du ein Paar Quellen über die Rechenoperationen und dem Speicherbedarf von Filtern? Ich bin glaube ich zu Blind, ich finde nichts.
Mit ADC/DAC meinte ich die SSC-Ports. Zur Machbarkeit der Filter, das kommt darauf an wie viele Ein- und Ausgangskanäle du verarbeiten willst und wie steil der Frequenzgang werden soll. "Vergessen" musst du es nicht.
Ah ein Lichtblick! Nun ich denke ich komme in Stereo rein (also 2 Signale rein) und gehe mit 1-2 * Stereo raus (also 2-4 Signale raus). Was auch gut wäre ist noch ein Subwoffer Ausgang (+1 Out Signal mehr). Das ich mehr brauche kann ich mir nicht vorstellen, soll ja kein Dolby 7.1 System werden. Das soll nur eine Frequenzweiche werden mit der Möglichkeit das Signal zu verbiegen oder wenn das nicht machbar ist dann wenigstens ein Filter ( nur ab X Hz das Signal Ausgeben). Die Filter???? Nun ich denke das da Filter in der Qualität einer Analog Weiche reichen würden. Klar wäre es gut wenn mann die wildesten Filter machen könnte, aber das tut nicht not.
Für MP3 würde ich Dir den AVR32 empfehlen. Hat sogar einen DSP drauf. Zusätzlich bei Bedarf: kostenlosen TCP/IP/ USB / Stack und eine kostenlose DSP Library, DMA, und wenn willst auch nen RTOS. USB Host dann klemmst einfach ne SD Karte dran und gut ist. Und die Eclipse IDE nicht vergessen mit kostenlosem GCC. Ich denke 20MHz würden für MP3 ausreichen...
Der AVR32 hat keinen USB-Host. SD-Karten kann man aber anschließen. Er hat auch keinen DSP on chip, sondern vielmehr einige DPS-ähnliche Befehle in seinem Befehlssatz. Für einfache Audio-Anwendungen könnte er vermutlich ausreichend schnell rechnen. Um so gut wie gute Analog-Filter zu werden, braucht man einiges an Rechenleistung. Wenn das Signal nicht ohnehin schon digital vorliegt, macht es meistens keinen Sinn, digital zu filtern. Bedenke auch die Lautstärkestellung. Bei einer Drei-Kanal-Stereo-Frequenzweiche bräuchtest du ein sechsfach-Poti. Digitale Lautstärkestellung ist so eine Sache, da verlustbehaftet.
es gibt integer mp3 implemenationen für dieses problem, fräg aber nicht ob da ~60mhz ausreichen, könnte ich mir aber sehr gut vorstellen ...
> Aber was ist mit den Filtern? Vergessen oder habe ich gute Karten > das zum laufen zu bringen? Ich wuerde lieber einen FPGA nehmen. Filtern an sich ist nicht so aufwendig, weder fuer einen DSP noch fuer einen FPGA. Aber du willst ja eine ganze Menge Filter mit moeglichst hoher Ordnung gleichzeitig laufen lassen. Da scheint mir ein FPGA die sauberste Loesung zu sein weil da die Gleichzeitigkeit systemimanent ist. Olaf
Erst mal gilt es herauszufinden, welche Filter (Biquad, FIR, ...) mit welcher Ordnung und Genauigkeit für die gewünschte Frequenzweiche nötig sind. Danach kann man sich Gedanken um die Implementierung machen. Ein FPGA ist für ein paar Audio-Filter jedenfalls Overkill, das macht jeder kleinere DSP nebenbei.
Hi, danke für die Antworten. Ich werde entweder einen Arm7 nehmen, weil ich den halt gerade erst kennengelernt hatte und für das was ich machen will reichen wird. Oder nur einen AVR und die SD card vergessen. Für die Filter habe ich eine Super Alternative gefunden, es gibt doch die TAS3103A und die kosten nicht viel. DSPs wären zwar auch gut aber da habe ich einfach null Erfahrung.
Hat da TI beim TAS3103A von Alesis übernommen? Die kommen mir so extrem ähnlich vor. Sogar die Nummer in der Bauelementbezeichnung ist gleich. Gruß - Abdul
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.