Forum: Mikrocontroller und Digitale Elektronik STM32 mit TLV320AIC23B im Master USB Mode


von Andre (Gast)


Lesenswert?

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é

von Andre (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.