Audio-DAC an Mikrocontroller (LPC2106)?

Hallo,

ich dekodiere MP3 in einem LPC2106, stehe nun aber vor dem Problem den Ton nach draußen zu bekommen.

Audio-DACs scheint es nur mit I2S und ähnlichen Schnittstellen zu geben, aber ich bin mir nicht sicher ob sich das ohne CPLD realisieren lässt. Fast alle DACs fordern, dass LRCK (Worttakt) synchron zu MCK (Mastertakt) ist, aber phasenverschoben sein darf. Was genau habe ich mir darunter vorzustellen? Ich habe mir z.B. überlegt den Timer auf

2*Samplerate zu setzen, LRCK vom Timer toggeln zu lassen, und im Timerint. eine SPI-Übertragung für die 16 Datenbits pro Kanal anzustoßen (die natürlich nicht länger als bis zum nächsten Tick dauern darf). Der Controller muss seinen Takt dabei per PLL aus MCK erzeugen, ein kleiner Fehler wäre also vermutlich vorhanden. Falls das etwas ausmacht könnte man LRCK notfalls auch direkt aus MCK runterteilen und die SPI-Übertragung vom externen Interrupt anstoßen lassen.

Würde das so funktionieren?

Der VS1011 hat ein zahmes SPI-Interface und interen Buffer, ist zum DA-Wandeln von schon dekodierten Daten aber irgendwie witzlos.

Und schließlich könnte ich noch einen gewöhnlichen Nicht-Audio-DAC mit SPI nehmen, das hätte aber den Nachteil dass ich noch Filter und Verstärker brauche und es vermutlich schwieriger ist zu All-in-one-DACs vergleichbare Qualität zu erzielen.

Habt ihr irgendwelche Ideen/Vorschläge?

Gruß Andreas

Reply to
Andreas Schwarz
Loading thread data ...

Hi Andreas,

Nö, ich weiss, dass TI wunderbare Codecs hat, die mit SPI laufen. Schau mal unter TLV320AIC23.

Wozu das? I²S ist doch zur kommunikation unter µCs gedacht.

Sollte mit SPI nicht wesentlich anderst sein, oder? Nein, ich hab nur das analoge drumherum gemacht, aber prinzipiell meine ich sollte doch ein SPI genau das tun.

Marte

Reply to
Marte Schwarz

Jep. Wer will schon 24 Leitungen ziehen? Ein wirklich für Audiosignalverarbeitung gedachter uC/DSP hat fast immer auch ein Codec-Interface. Bei kleinen Microcontrollern ist mir da eigentlich nur der dsPIC bekannt. Die Idee mit MP3 kam mir auch schonmal als ich die neuen ARM7 vom Phillips sah. Mangels Codec-Schnittstelle habe ich die Idee aber ganz schnell wieder verworfen. Ist eigentlich ein dsPIC schnell genug für mp3? Die sind nämlich auch im hobbyfreundlichen DIP Gehäuse erhältlich. Zudem mit CAN und Codec-Schnittstelle. Da könnte man seine MP3's auch über CAN durch's Haus schicken ;-)

Reply to
Erik Hermann

Erik Hermann schrieb:

Meine Notizen sagen: Gerard Samblancat fragen.

Gruß Dieter

Reply to
Dieter Wiedmann

Da ist nur das Control-Interface SPI.

Das verwechselst du vermutlich mit I2C.

Ein Codec wie der VS1011 puffert ein paar Bytes intern und fordert nur bei Bedarf neue Daten an, die man dann über SPI reinschieben kann; I2S-DACs dagegen erwarten einen kontinuierlichen Datenstrom.

Reply to
Andreas Schwarz

Muss ja nicht sein, ein DAC mit kleinem Puffer der bei Bedarf neue Daten anfordert wäre auch schonmal was.

Reply to
Andreas Schwarz

Hallo Andreas,

Die DACs sind 1 Bit D/A-Konverter, die intern mit Oversampling arbeiten. Daher brauchen diese Wandler einen höherfrequenten Takt (für den Delta-Sigma-Modulator). Dieser Takt muß phasenstarr mit dem Sampletakt LRCK gekoppelt sein, sonst funktioniert das Prinzip nicht (irgendjemand hat hier mal einen Link von Maxim mit einer super Beschreibung zum Thema Delta-Sigma-Konverter gepostet, aber den hab ich grad nicht mehr da).

Du kannst sehr wohl einen Timer auf 2x Samplerate setzen und LRCK damit per SW erzeugen. Dann brauchst Du nur noch den Takt Deines Controllers mit dem MCK des DAC synchronisieren. Am einfachsten ist das ganze Spiel mit einer gemeinsamen Taktquelle für DAC und uC (wenn es nicht die gleiche Frequenz sein darf, dann eben über Teiler), dann ists auch phasenstarr. Wichtig ist, daß das Verhältnis MCK zu LRCK _genau_ eingehalten wird, also keine krummen gerundeten Teilerverhältnisse, oder Verwendung von Nicht-Hardware-Reload-Timern.

Tom

--

------------------------------------------------------
Bitte beachten - AntiSpam-Filter: *.com, *.cn, *.br, *.kr, *.net, *.pl, 
*.ro, *.ru
Reply to
Thomas Langhammer

Thomas Langhammer schrieb:

formatting link

Gruß Dieter

Reply to
Dieter Wiedmann

Danke, das bestätigt so in etwa meine Vermutungen. Dann werd ich also mal versuchen dem LPC etwas I2S-ähnliches zu entlocken. Als DAC versuche ich den AK4386 zu bekommen, der bietet eine etwas bequemere I2S-Variante (kein "Startbit") und hat eine hohe Jittertoleranz (so ganz perfekt wird das Timing von LRCK wohl nicht, wegen ungleichmäßiger Interrupt-Eintrittszeit).

Gruß Andreas

Reply to
Andreas Schwarz

Eigentlich war nach einem DAC und nicht nach einem ADC gefragt. BTW, ganz nett der Text, für einen "in depth article" hätte ich allerdings erwartet, dass er nicht nur an der Oberfläche kratzt ;-). Die angegebene Schaltung stellt IMHO einen dysfunktionalen PWM und nicht einen Delta-Sigma-ADC dar, welcher verwirrlicherweise von Maxim Sigma-Delta-ADC genannt wird. Die Nachteile des verwendeten Modulators zweiter Ordnung werden naheliegenderweise etwas unter den Teppich gekehrt, aber man kann sich ja bei Linear mit der AppNote AN80 eine Zweitmeinung einholen. Irgendwie ist meine Meinung von Maxim etwas inhomogen, manchmal drängt sich mir der Eindruck auf, als wären das sozusagen die elektors unter den IC-designern.

--
mfg Rolf Bombach
Reply to
Rolf Bombach

Und ich frag mich immer wieviel von ihren tollen neuen und durchaus interessanten ICs kann ich auch noch nach einem Jahr noch kaufen. Bei denen ist die Entwicklungsabteilung so produktiv das ich im zweifel lieber etwas anderes nehme.

Olaf

Reply to
olaf

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.