PCM1725 Audio DAC per I²S an dsPIC30F4013: jemand Erfahrung

Gast #390085
Lesenswert?

Hallo!

ich möchte ein bischen mit audio signalverarbeitung und filterung herum
experimentieren. ich hab ein dsPIC30F4013 mit einer I²S (DCI)
schnittstelle und einen PCM1725 16bit setero audio DAC bei mir
rummliegen und möchte was damit machen. z.b. ganz einfach einen 1khz
sinus erzeugen oder so ähnliches.

ich hab schon ein bisschen rumprogrammiert. und am ausgang des DACs hat
sich sogar schon was verändert, jedoch ein ton kam noch nicht raus. mein
erstes problem liegt darin, den systemtakt für den PCM1725 zu
generieren, der sollte 256*fs sein (wird für das digitale filter
benötigt). ich hab einfach mal versucht das mit einem output compare zu
machen, jedoch weis ich nicht genau, wie genau dieser takt stimmen
muss?. eine andere frage noch: benötige ich am ausgang des DACs für
einfache tests unbedinngt ein Ausgangsfilter (TP)?

hat jemand schon was mit diesen oder ähnlichen DACs oder auch ADCs
(z.b. PCM1801) gemacht? wäre für hinweise, tips, links, oder
beispiel-codes sehr dankbar!

s.g.
MAX
Gast #390089
Lesenswert?

@ ,,,,

Und wie kriegt er den Quarzoszi-Takt synchron mit DCI des DSPic?
Meiner Meinung nach schlechter Ansatz.
Ich würde es mit einem Audiocodec versuchen der einen internen
Masterclock hat. -->ADAV801 von Analog Device.
Gast #390091
Lesenswert?

am liebsten wäre es mir, wenn der 256*fs extern aus dem fs generiert
werden würde, mittels PLL oder so, ist das irgendwie einfach möglich
(geringer schaltungsaufwand). kennt ihr einen frequenzverielfacher
baustein, der z.b. 256-fach kann?

gruß,
MAX
Gast #390092
Lesenswert?

hab grad gesehen, dass man es vielleicht mit einem CD4046 digitalen PLL
baustein realisieren könnte. ich weiß jedoch leider nicht, wie ich den
baustein dimensionieren soll, dass er bei einer eingangsfrequenz fs
eine ausgangsfrequenz 256*fs generiert? - datenblatt hab ich zwar schon
etwas durchgesehen, aber so ganz schlau werd ich auch nicht daraus.

ist es überhaupt eine gute idee, das mit diesem baustein zu realiseren
und wenn ja, wie kann ich diesen baustein relativ schnell und einfach
dimensionieren?

danke für antworten und tips,
MAX
Gast #390093
Lesenswert?

Ich denke nicht das es so hinhauen wird, wahrscheindlich wirst du mit
einem PLL enorm Jitter produzieren. Ich kenn mich auch nicht wirklich
aus mit dem Thema, leider gibt es wenige Leute die hier helfen können.
Warum benützt du nicht einen Codec der den Systemtakt intern
generiert?
Ich denke die ganzen seriellen Codecs sind für Audio DSP's gemacht,
die unterstützen nämlich den so hohen geforderten Masterclock.
Gast #686961
Lesenswert?

"Laut Datenblatt kann der PCM1725 die Sync. automatisch durchführen. 
Aber
stimmt schon, ist kein guter Ansatz. An dieses Problem hatte ich nicht
gedacht."

Hmm, wenn der Baustein diese Funktion schon implementiert hat, warum 
sollte man sie nicht verwenden? Welche Nachteile würde man sich damit 
einhandeln?

Anscheinend ist es mittlerweile sehr schwierig geworden einen 
vernünftigen Audio-DAC für "normale" Controller zu finden. Der ADAV801 
scheint mir auf den ersten Blick auch reichlich überdimensioniert zu 
sein. Gibt es denn keinen "einfachen" DAC, ähnlich dem TDA1543, mehr?

Gruß
Mathias
#721819
Lesenswert?

Ich habe den PCM1725 jetzt mit einem dsPIC2010 zum Laufen gebracht.
Ich versorge sowohl den dsPIC, als auch den 1725 mit einem 8 MHz 
Quarzoszillator, daraus ergibt sich mit 8MHz/256 eine Samplingrate von 
31250 Hz. Da der dsPIC2010 leider kein DCI hat, verwende ich das SPI und 
erzeuge mir das Frame-Sync-Signal aus dem SPI-Sync-Impuls (High-Impuls 
bevor die Übertragung beginnt, Länge eines Bittakts) mithilfe eines 
Inverters und eines Toggle-Flipflops. Zum Testen durchlaufe ich ein 
Sinus-Array und schau mir das Ganze auf dem Oszi an. Auf den ersten 
Blick sieht das Signal sehr gut auch (siehe Anhang bild_1.jpg), aber 
wenn man die Bilder 2 und 3 betrachtet sieht man, dass sich ziemlich 
heftige "Glitches" im Signal befinden, die man natürlich auch deutlich 
als hochfrequentes Störsignal hört. Versuchsweise habe ich mal einen 
steilflankigen Tiefpass drangehängt, was das Phänomen jedoch nur 
abschwächt - aber nicht beseitigt.

Ich habe auch mal einen TDA1543 ausprobiert, da sehe ich dann keine 
Glitches, das Signal ist aber auch nicht schön und hat deutlich hörbare 
hochfrequente Anteile (auch mit Rekonstruktions-TP)...

Hattet ihr vielleicht schon ähnliche Probleme? Könnte das an einem 
fehlerhaften I2S-Timing liegen?

Viele Grüße
Mathias
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren