Hallo, hat jemand eine Idee wie man einen Audio-DAC an den LPC2106 anbinden könnte? Ein I2S-Signal zu erzeugen scheint ohne zusätzliche Hardware fast unmöglich zu sein. Gruß Andreas
Ich fürchte, daß Du recht haben könntest. IIS ließe sich in Software per "bit-banging" hinbekommen, aufgrund des hohen erforderlichen Takts dürfte der LPC aber zu gar nichts anderem mehr kommen (bei 16-Bit-Stereo-Samples, die mit 44.1 kHz übertragen werden, liegt die Datenrate bei etwa 1.4 MBit/sec). Mit externer Hardware (parallel zu befüllendes Schieberegister) wird sich das sicherlich lösen lassen. Aber auch das ist mit dem 2106 fast schon grenzwertig, da der ja nur sehr wenig nutzbare I/O-Leitungen hat. Was genau hast Du vor?
Ich habe einen MP3-Decoder im LPC laufen und würde den Ton gerne irgendwie dort rausbekommen. Das Problem mit I2S ist dass Masterclock, Bitclock und Wordclock in festem Verhältnis stehen müssen, das ist mit SPI wohl kaum möglich. Der einzige SPI-DAC den ich kenne ist der VS10xx, aber den als DAC für einen Software-MP3-Decoder zu verwenden wäre ja irgendwie unsinnig.
Interessantes Projekt. Ein "bit-banging" verbietet sich hier vermutlich gänzlich, da der mp3-Decoder wohl auch ein bisschen Rechenleistung verbraucht. Ein Lösungsansatz, der allerdings nur mit einem FPGA/CPLD oder ähnlichem realisierbar sein dürfte (oder einem recht großen Gattergrab) wäre ein SPI-zu-IIS-Konverter. Der wird vom LPC via SPI befüllt und kümmert sich um den Rest. Was wäre von einem nicht-Audio DAC zu halten? Da gibt es immerhin welche mit SPI-Interface, wie beispielsweise den hier http://focus.ti.com/lit/ds/symlink/dac8532.pdf Wenn ich mich nicht total vertue, müsste es möglich sein, den mit dem SPI-Interface des LPC zu verheiraten, und die "update rate" von 93 kSample/sec sollte auch reichen. Du musst "nur noch" zu den richtigen Momenten an der Leitung /Sync zupfen - und die richtigen Inhalte senden. Der Wandler möchte zwar 24-Bit-Daten übertragen haben, aber das dürfte drei nacheinander per SPI übertragenen Daten entsprechen. In den ungenutzen Bits werden, wenn ich das Datenblatt richtig überflogen habe, Informationen wie Kanalwahl und anderer Kram übertragen (Siehe S. 11 im Datenblatt). Wär' das was für Dein Projekt?
An einen "normalen" DAC habe ich auch schon gedacht; allerdings brauche ich dann halt noch einen Tiefpassfilter und ggf. Verstärker, also habe ich wieder ein paar Teile mehr auf der Platine, und wahrscheinlich mehr Schwierigkeiten mit der Tonqualität im Vergleich zur Single-Chip-Lösung. Aber besser als gar nichts ist es. Externes CPLD ist auch eine Möglichkeit, aber aufwendig. Man bräucht ein kleines FPGA im Controller, oder sowas wie die TPU im 68332...
Hmm, vielleicht klappt das mit I2S doch. So wie ich das im Datenblatt vom tlv320dac26 verstehe muss nur der Worttakt synchron zum Mastertakt sein (das sollte mit dem Timer gehen), der Bittakt muss halt nur die Daten rechtzeitig zum Worttaktwechsel vollständig reingeschoben haben (das geht mit SPI). Beim CS4334 irritiert mich nur der Satz "Please note that there is no required phase relationship, but MCLK (Mastertakt), LRCK (Worttakt) and SCLK (Bittakt) must be synchronous.".
I2S geht definitf nicht mit SPI. Wenn sich der Codec auf MSB first umstellen lässt kannst du mit SPI arbeiten. Das funktioniert Thomas
Dann schau dir mal I2S genauer an. (Wordclock zu Daten) dann weist du was ich meine. Thomas
"The WS line changes one clock period before the MSB is transmitted." Wo ist da das Problem? Würde es dir etwas ausmachen dich klarer auszudrücken?
ohne jetzt zu sehr ins Detail zu gehen Es gibt bei Audio Codecs diverse serielle Formate. I2S MSB first LSB first und ein paar andere. Wenn du das ganze per SPI machen willst, kannst du eben kein kein I2S verwenden. Thomas
MSB first ist wie schon gesagt Standard. Aber worauf willst du hinaus? Ich kann Bits doch beliebig umsortieren, ein Bit mehr vorne dran reinschieben, usw. Das Problem scheint viel eher die Synchronisation zu sein.
Der SPI des 2106 kann sowohl LSB first als auch MSB first (siehe User Manual, Seite 128, Tabelle 100, Bit 6 im SPCR - LSBF).
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.