Ich suche eine einfache Lösung um ein Mehrspur Audioloopgerät zu realisieren. Das Gerät soll in der Lage sein gleichzeitig einen Audiokanal aufzunehmen und 8 wiederzugeben. Als Speichermedium möchte ich eine SK-Karte verwenden. Weil sonst keine weitere Verarbeitung der Audiodaten anfällt möchte ich dies mit einem möglichst günstigen und einfach zu programmierenden Prozessor machen, möglichst ohne ein teures IDE anzuschaffen. Ideal wäre eine Lösung mit einem AD1937 Codec, da dieser bereits über 8 DA und 4 AD Wandler verfügt, welche über eine I2s Schnittstelle mit TDM (Time Division Muliplexing, für mehr als 2 Kanäle) kommunizieren. Prozessorseitig wäre abgesehen von der fehlenden I2S Schnittstelle mit TDM unterstützung der STM32 von ST ideal. Ich frage mich ob ich einer teuren DSP Lösung ausweichen kann und vielleicht mit Wandlern ohne I2s eine einfache Lösung erhalte oder ob es einen Controller gibt (vorzugsweise ARM) der das kann? Eine Möglichkeit wäre vielleicht auch einen AC97 Codec zu nehmen? Vielleicht hat jemand eine gute Idee?
12 Kanäle mal 32 bit pro Kanal * 192 kSamples pro Sekunde = 73 Mbit/s. Falls du den AD1937 voll ausnutzen willst und eine SD-Karte meintest, ist das Projekt gerade gestorben. Etwas weniger ehrgeizig: 12 Kanäle mal 16 bit pro Kanal * 48 kSamples pro Sekunde = 9 MBit/s. Das wäre auf einem ARM9-System vermutlich leicht umsetzbar. Ein Problem sehe ich beim gleichzeitigen Lesen und Schreiben von der SD-Karte. Ich denke, um ein Betriebssystem (Linux Embedded) mit einem vernünftigen I/O-Scheduler und ordentlich Pufferspeicher wirst du nicht herumkommen. Was spricht gegen eine IDE-Festplatte am ARM9?
Danke für deine Antwort. 48kHz und 16 Bit Auflösung reichen. Die Linux Lösung tönt ziemlich aufwendig. Da käme eher in Frage die Anzahl Ausgangskanäle auf 4 zu begrenzen.
Gleichzeitiges Lesen und Schreiben von und auf SD-Karte kannst Du eigentlich vergessen. Der Datenoverhead und die Busyzeiten beim Umschalten sind enorm, da die Effizienz der Multiblock-I/O-Modi dann nicht mehr ausreichend greift. Da helfen auch fette Puffer nur bedingt, denn irgendwann kommt die Karte einfach nicht nach. Probiere das mal in Deinem PC, indem Du 2 Wave-Dateien 16/48 von einer SD-Karte wiedergibst und noch einen weiteren Schreibzugriff darauf machst.
Es gibt bereits einige billige Multitrackrecorder wie z.B. der ZOOM MRS 8SD die Simultan 8 Spuren wiedergeben und 2 Spuren auf SD-Karte aufzeichnen könnnen. Leider kenne ich niemanden der so einen besitzt, wäre interessant da mal reinzuschauen.
Und wieso kaufste Dir den dann nicht? Billiger wird der Selbstbau garantiert nicht. Abgesehen davon wird das Teil so viel Cache-RAM verbaut haben, daß genug Puffer für einige Sekunden ununterbrochene Musike vorhanden ist und sequenziell auf die Karte zugegriffen wird. Ein schneller DSP oder ARM unterstützt dann sicher auch den 4-Bit SD-Modus, der um einiges schneller als SPI sein kann, besonders im Burst-Modus. Trotzdem bleibt die Karte der Flaschenhals der ganzen Geschichte.
Danke für deine Antwort. Ich möchte ein Loopgerät mit Einzelausgängen konstruieren, das gibts noch nicht zum kaufen. Das Olimex CS-E9302 mit Linux sieht interessant aus. Das hat auch AC97. Leider hab ich nicht rausgefunden ob der 4-Bit Mode unterstützt wird. Was meint ihr dazu?
Du solltest auf keinen Fall vergessen, die Register zu sichern.. das kann fatale Folgen haben... Gruss Hudi
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.