Hallo, Ich bräuchte eine Formel für die Berechnung eines Fractal Dividers. Im Datenblatt steht diese Formal: I2S_TX_MCLK = PCLK * (X / Y) / 2 Meine Werte: PCLK = 12 MHz (12000000) I2S_TX_MCLK = 8KHz (8000) Der X und Y Wert ist jeweils ein 8 Bit Wert. (für den LPC43xx) Weiß jemand wie ich am einfachsten auf die X/Y Zahlen komme? Vielen Dank schonmal, grüße Markus.
Markus M. schrieb: > Weiß jemand wie ich am einfachsten auf die X/Y Zahlen komme? Einfach mal diesen Faktor ausrechnen: 2* I2S_TX_MCLK/PCLK = (X / Y) = 16000/12000000 Un dnach ein wenig Kürzen hast du X/Y = 1/750 Und somit hast du die Werte für X=1 und Y=750 BTW: ist dein I2S Takt tatsächlich so niedrig?
Ist zum ersten mal dass ich mit I2S was mache ... Stimmt, es soll die SampleRate von 8KHz sein. vermutlich dann 12MHz / (8KHz x 16 Bit x 2) = 46,875 (statt 750)
Lothar M. schrieb: > Und somit hast du die Werte für X=1 und Y=750 750 ist allerdings kein 8-bit Wert mehr... Markus M. schrieb: > vermutlich dann 12MHz / (8KHz x 16 Bit x 2) Das solltest du aus dem Datenblatt mal genau herausfinden. MCLK wäre in diesem Fall also 256 KHz 6 MHz / 0.256 MHz = Y / X = 23.4375 = 375 / 16 (passt nicht, wegen 375 > 255) Näherung wäre Y=188, X=8 Ergibt MCLK = 255.3 KHz, Samplerate = 7979 Hz Oder Y=234, X=10 Ergibt MCLK = 256.4 KHz, Samplerate = 8013 Hz
Die Clock's von der NXP Doku sind etwas dürftig. Ich versuche mal die PLL0AUDIO zu aktivieren und das als Base Clock zu verwenden. Wenn ich da 12,288MHz erzeugen könnte wäre das ein exakter Teiler. NXP hat das ganze so kompliziert gemacht, da hätten die ruhig einige Seiten mit Rechenbeispielen spendieren können :-/ Beim STM32 ist das ganze viel leichter, leider war ich nicht der Entscheider für das Projekt.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.