[sdiy] Digital Audio CODEC config help

rburnett at richieburnett.co.uk rburnett at richieburnett.co.uk
Tue Aug 23 11:11:57 CEST 2022


Hi all,

The micro is Kinetis MKL26Z.  It's a Cortex M0+ specified to run at up 
to 48MHz.  The maximum supported external crystal frequency is 32MHz, so 
I could use a 24.576MHz external crystal.  However, if I clocked the 
micro directly off this I'd be throwing away almost half of the 
available MIPS.   The PLL input frequency range is 2 to 4MHz and the 
output frequency range is 48 to 100 MHz.  I could divide down the 
24.576MHz clock with the PLL pre-scaler to get it in the range 2-4MHz, 
then multiply back up to 49.152MHz or 98.304MHz in the PLL, (then divide 
by 2 in the post-scaler in the latter case to get back to 49.152MHz.)  
But this comes with any potential risks of over-clocking however small, 
if I was to come up with anything exciting enough with an M0+ that I 
wanted to put it into production! ;-)

Of course I could back off with the PLL multiplier though and go for 
something that comes in just under the 48MHz instruction rate, rather 
than just over it.

I just felt a bit un-easy about dividing the crystal oscillator down, 
only to PLL multiply it back up again with added jitter.  Then 
generating my digital audio clocks (MCLK, BCLK, LRCLK) off of this 
jittery PLL output.  But I guess I could drive the micro's SAI 
peripheral off the clean 24.576MHz crystal oscillator signal, so that 
all of the digital audio clocks are clean, and only use the PLL 
multiplied up clock to clock the micro?

-Richie,

PS. Thanks for the Kinetis SAI PDF document.  That is one of the better 
ones discussing the subject!


More information about the Synth-diy mailing list