Forum: Mikrocontroller und Digitale Elektronik Anbinden eines Audio Codec ICs (AK4556) an einen STM32F3xx


von Fire H. (fireheart)


Lesenswert?

Ich bin grade am Durchlesen von Datenblättern der Audio CODECs von 
AsahiKasei und frage mich, wie ich einen AK4556 oder auch einen "nur" 
ADC Wandler (AK 5720) an einen STM32F3xx oder 4xx anbinden kann.

Diese ICs brauchen einen Master-Clock, der ein Vielfaches der 
Samplefrequenz ist, also liegen wir irgendwo zwischen 10 und 30MHz. Dann 
muss man die Daten ja auch irgendwie auslesen/einspielen. Ich krieg das 
aus dem Datenblatt nicht raus, ob das serielle Interface synchron zum 
Master-Takt sein muss. Da die Idee wäre, viele AK5720 als Eingänge 
parallel einzulesen, könnte ich mir im asynchronen Fall vorstellen, alle 
ADCs parallel einzulesen und dies in einer Prozessorschleife zu tun (den 
seriellen Clock sozusagen durch die Programmschleife vorzugeben).

Wie synchronisiert man prinzipiell den Prozessor mit diesen Bauteilen?
Muss ich einen Master-Clock extern erzeugen, den in den AK UND den STM32 
füttern und dann über Interrupts alle 256 Clocks die Daten auslesen?

von Entwicklungshelfer (Gast)


Lesenswert?

Ob dein spezifischer STM32 das hat weiß ich nicht, aber es gibt etliche 
Modelle mit SAI (serial audio interface glaube ich). Hier kannst du über 
eine separate PLL den MCLK erzeugen, PCLK wird auch intern abgeleitet 
und du kannst glaube ich sogar mindestens zwei SAI synchronisieren.

Ich habe mal auf einem STM32F413VGT6 einen CS4344 verwendet. Natürlich 
musste ich da nichts extern erzeugen.

von Kevin M. (arduinolover)


Lesenswert?

Das sollte ein SAI Interface sein, haben fast alle STM der F4, F7, H7 
und G4 Familie sowie einige L4 und L5.

Der F3 kann das nicht.

von Fire Heart (Gast)


Lesenswert?

Aha, so 'billig' bekommt man das also nicht.
Zum Glück hab ich auch einen F4 herumliegen.
Sprich: ich muss mal Infos über SAI durchlesen.

von Fire Heart (Gast)


Lesenswert?

Noch eine Frage dazu: in allen Tabellen der Datasheets der ADC ICs 
finden sich meist Mehrfachangaben der Verhältnisse des Mastertaktes MCLK 
und der Samplefrequenz fs. Ermitteln diese ICs die richtige 
Samplefrequenz (und folglich das Teilerverhältnis) in der 
Initialisierungsphase aus der Frequenz von LRCK selbst?

von Entwicklungshelfer (Gast)


Lesenswert?

Beim CS4344 habe ich 44kHz oder irgend eine beliebige anere krumme Zahl 
verwendet. Das ist gar nicht so entscheident, im Dateblatt steht nälich:
1
MCLK/LRCK must be an integer ratio, as shown in Table 1. The LRCK frequency is equal to Fs, the fre-quency at which words for each channel are input to the device. The MCLK-to-LRCK frequency ratio andspeed mode is detected automatically during the initialization sequence by counting the number of MCLKtransitions during a single LRCK period and by detecting the absolute speed of MCLK. Internal dividers areset to generate the proper clocks. Table 1 illustrates several standard audio sample rates and the requiredMCLK and LRCK frequencies. Please note there is no required phase relationship, but MCLK, LRCK andSCLK must be synchronous.

Es muss also lediglich das Verhältnis der CLKs zueinander stimmen, wenn 
ich mich richtig erinner.

von Fire Heart (Gast)


Lesenswert?

Vielen Dank für den Auszug aus dem Datenblatt. In (unterschiedlichen) 
Datenblättern der AKM Wandler sucht man danach vergeblich ... wird wohl 
als selbstverständlich angenommen.

Irgendwie wird bei all diesen Signalen schnell klar, dass das per 
Software kaum zu realisieren ist. Gut nur, das ST das auch erkannt hat 
und ein SAI in den F4 verbaut hat.

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.