Hallo, ich möchte schon seit langer Zeit ein Gerät zur digtalen Audiowiedergabe bauen. Ich möchte dabei keine MP3s o.ä. decodieren, sondern einfache RAW-Audiodateien (Stereo, 16Bit, 44,1kHz) von einer Speicherkarte (MMC/SD) einlesen und an einen D/A Wandler schicken. Als Microcontroller würde ich gerne einen ATMega 162/32 verwenden, da ich mich mit diesen Controllern auskenne. Als D/A Wandler schwebt mir ein PCM1725 (http://focus.ti.com/docs/prod/folders/print/pcm1725.html) vor. Fragen habe ich folgende: - Wie sieht es mit der Datenübertragungsrate von der SD-Karte aus? Bei 2x2Bx44100 wären das ja 172,26 KB/s. Langt da der 1Bit Modus oder muss ich die Speicherkarte im 4Bit Modus betreiben? - Sollte ich die Daten in einem RAM (z.B. 512KByte) zwischenpuffern? - 16Mhz sollten eigentlich reichen? Da habe ich für jedes Sample ca. 362 CPU Takte Zeit. Das sollte doch eigentlich langen um das Ganze aus dem RAM auszulesen und seriell zu verschicken - Und das Wichtigste: Der D/A Wandler muss mit einer Frequenz von ca. 11,2Mhz getaktet werden. Leider kann ich diese Frequenz bei 16Mhz nicht so einfach über PWM erzeugen. Gibt es da noch einen anderen Weg? Für Tipps bin ich dankbar, vielleicht hat auch noch jemand ein paar nützliche Links für mich oder hat schon mit dem PCM1725 gearbeitet und kann mir ein paar Erfahrungsberichte geben. Danke im Vorraus, Andreas Stöckel
Das Problem bei der Ansteuerung von Audio-DACs ist, dass man mit dem AVR kein vernünftiges I2S-Signal hinbekommt. ΔΣ-DACs wie der PCM1725 stellen hohe Anforderungen an Synchronität von Bit-, Wort- und DAC-Takt, die sich mit einem AVR kaum erfüllen lassen. Mehr Glück könntest du mit dem TDA1543 haben, aber der ist auch nicht wirklich HiFi-tauglich. Wenn es dir nur darum geht Sprachmeldungen, Warteschleifenmusik o.ä. auszugeben, häng ein R2R-Netzwerk an einen Port und beschränke dich auf 8 Bit. Wenn du wirklich qualitativ hochwertige Audiosignale erzeugen möchtest, dann ist der AVR nicht der richtige Controller; nimm lieber einen AT91SAM7, da lassen sich auch hochwertige DACs ohne Gebastel anschließen.
Jo, SYSTEM CLOCK: 256fS/384fS bringst du mit einem AVR nicht hin. Ich habe das ganze schon mal gemacht. Aufnahme und Wiedergabe ab Compact Flash Karte (sind einiges schneller als SD). Als Codec habe ich einen AD1845 verwendet. Der hat ein paralles Inerface, das geht mit einem Mega32. Ausserdem brauchst du noch mindestens 8kB Puffer (externese RAM) für die Audiodaten (Meine Erfahrung mit CF, 44.1 kHz, Mono, 16 Bit).
Ach jo, den Puffer brauchst du nur bei der Aufnahme, ich hab es damals hingebracht, dass die Wiedergabe ohne externen Puffer (nur intern 1kB des Mega32 als FIFO) funktioniert. Bei der Aufnahme brauchst du den Puffer unbedingt! Die Karten sind beim schreiben langsamer und vorallem kommt es manchmal vor, dass die Karte ein defekter Sektor beim schreiben erkennt und automatisch ein Reservesektor sucht. Dadurch werden die Latenzzeiten ziemlich lange, ohne Puffer keine Chance...
Danke für die Antworten, als DAC wollte ich eigentlich zunächst den TDA1543 nehmen, leider gibt es den bei Reichelt und auch bei Farnell nicht mehr. Und ich möchte schon recht gute Audioqualität. Diese AT91SAM Reihe yC hört sich von den Daten her nicht schlecht an, ich bin aber leider nicht der große SMD-Löter, und das Board das es hier gibt, ist mir für meine "Experimente" ein bisschen zu teuer. Bei Reichelt gibt es in Richtung DA-Wandler ja noch diesen IC "VS 1001K" der MP3s dekodieren kann und anscheinend auch PCM-WAVE Files wiedergeben kann. Und dieser bezieht seinen Takt ja aus einem extra Quarz. In SCLK brauche ich einen Takt von 512 oder 1024 khz. Das sollte ja kein Problem sein. Allerdings gibt es bei diesem IC anscheinend recht viel zu beachten und auch die Beschaltung ist im Vergleich recht kompliziert. Hat schonmal jemand das "Teil" verwendet? @Fly Sind die SD-Karten so langsam? Ich meine wenn ich diesen MP3 Decoder IC nehmen sollte, habe ich ja vermutlich kein Problem mehr haben... Aufnhemen möchte ich nicht ;-) Nochmal Danke, Andreas Stöckel
Meiner Erfahrung nach können es SD Karten nicht mit CF aufnehmen. Bei den SD Karten gibt es enorme Unterschiede, schon möglich das es eine geeignete gibt. Mit mp3 wird es ganz sicher klappen, da die Kompression ca. 1:10 ist. Schau mal in die Codesammlung, es hat einige mp3 Player Projekte mit SD Karten und TDA1543.
Hallo zusammen, ich hätte noch eine kleine Zwischenfrage zum PCM1725: Kann man den hohen Systemtakt von 256fs oder 384fs nicht einfach mit einem externen Oszillator erzeugen? Laut Datenblatt kann der PCM1725 sich bei zu großer Phasendifferenz auch automatisch synchronisieren. Auszug aus dem Datenblatt: "The system clock should be synchronized with LRCIN (pin 1), but PCM1725 can compensate for phase differences. If the phase difference between LRCIN and system clock is greater than ±6 bit clocks (BCKIN), the synchronization is performed automatically." In dem Fall wäre der Betrieb am AVR, oder wie es vorhabe, am dsPIC, ja eigentlich kein Problem, oder? Viele Grüße Mathias
Das heißt aber nicht, dass er den Systemtakt von 256fs oder 384fs automatisch erzeugen kann, oder? Gruß Mathias
Man kann auch mit esternen Teiler-ICs (74hc4040) das Verhältnis von Master-Takt und Bittakt herstellen. In weiteren Teilerstufen bekommt man dann auch noch die Wordclock hin. Hat man ein Parallel-auf Seriell-Register ausreichender Breite und genug PortPins am AVR, um dieses parallel zu laden, kann man auch mit einem AVR und diesen neumodischen Konvertern ;-) zu brauchbaren Ergebnissen kommen. Dann braucht der AVR nur noch Fs x 2 Ausgaben zu machen und kann dazwischen auch noch rechnen.
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.