How to get a clock with any frequency at FlexIO I2S module of S32K144?

Showing results for 
Search instead for 
Did you mean: 

How to get a clock with any frequency at FlexIO I2S module of S32K144?

Contributor II

I used Flexio to simulate I2S communication,use SDK example.the SDK example offered a demo for flexio i2s,include 4 pins(SCK,WS,TX,RX),it's a three wires i2s protocol,but now we need a four wires i2s protocol(MCLK,SCK,WS,TX,no need rx),so we need to patch a master clock(MCLK,PTE10) for four wires I2S .Our flexio peripheral clock is 48MHz(or can configure it to 112MHz).we all known,audio signals often require a clock that is not an integer multiple,MCLK = (128,196,256...)* Fs, Fs may equals 22.05kHz,26.8kHz,28.2kHz,44.1kHz...).If we divide from Flexio timer,MCLK will not  produce the frequency I need,because it only has integer multiples frequency.So Is there any other way to get the any frequency I need?In addition,how to ensure that the phase of MCLK we generated is the same as SCK?Looking forward to your reply。Many thanks


0 Kudos
1 Reply

NXP TechSupport
NXP TechSupport


Please take a look at this application note:

AN4955 Emulating the I2S Bus Master with the FlexIO Module

The example there uses MCLK.

But as you mentioned, it is difficult to get the standard frequency from the 48MHz clock.

The application note recommends using special crystals. 


BR, Daniel

0 Kudos