Hallo! Ich will den Audio Codec TLV320AIC23B mit einem STM32F103RE zur Ausgabe von Musik mithilfe der I2S-Schnittstelle verbinden. Der STM32 wird mit einem 12 MHz Quarz versorgt, der das Signal über MCO an den MCLK-Eingang des Codecs weiterleitet. Der Codec wird dazu im USB Master Mode betrieben, so dass der Codec die BCLK- und LRCIN-Signale erzeugt. Laut Datenblatt soll dann im Master-Modus BCLK = MCLK entsprechen, was ich auch mit einem Oszilloskop nachvollziehen kann. Stell ich am Codec 44,1 kHz als Abtastrate ein, kann ich die Abtastrate auch am LRCIN-Signal messen. Soweit also alles in Ordnung. Jetzt habe ich aber ein großes Problem: Dadurch, dass das Clock-Signal des Codecs auch mit 12 MHz läuft, erhalte ich ja viel zu viele Taktzyklen während der Abtastperiode (Abtastfrequenz ist ja "nur" 44,1 kHz). Theoretisch bräuchte ich ja nur 16 Bit pro Kanal, also insgesamt 32 Bit pro Abtastperiode. Ich bekomme aber stattdessen 272 Taktzyklen. Das Verhalten ist laut Datenblatt des Codecs wohl richtig, aber wie bringe ich dem STM32 bei, dass er nur 16 Bit pro Kanal übertragen soll und die restlichen Taktzyklen warten soll? Das ganze sollte natürlich mit DMA funktionieren, also eine Lösung, die die CPU (stark) beansprucht, kommt nicht in Frage. Geht das überhaupt? Oder muss ich mir einen anderen Codec suchen, der mir nur die nötigen Taktzyklen generiert? Danke schon mal! Viele Grüße André
Ich habs jetzt hingekriegt. Für diejenigen, die vielleicht ähnliche Probleme haben: In der beschriebenen Konstellation muss der TLV320AIC23B als SLAVE im USB-Modus konfiguriert werden und NICHT als Master. Der STM32 wird dann der Master und die Kommunikation zwischen µC und Codec läuft problemlos im I2S-Modus. Auch DMA macht keine Probleme. Viele Grüße André
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.