mikrocontroller.net

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


Autor: Andre (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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é

Autor: Andre (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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é

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.