<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: KL46 I2S MCLCK question in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306241#M13029</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;   Thank you for your help.&lt;/P&gt;&lt;P&gt;    We now are  ready to use audio chips that generates the clock signal .&lt;/P&gt;&lt;P&gt;    Hope to be able to obtain results as soon as possible&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 14 May 2014 02:04:37 GMT</pubDate>
    <dc:creator>jasonzhu</dc:creator>
    <dc:date>2014-05-14T02:04:37Z</dc:date>
    <item>
      <title>KL46 I2S MCLCK question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306236#M13024</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'lucida Grande', Verdana; font-size: 14px;"&gt;In use process, we found that the I2S' MCLCK&amp;nbsp; output frequency &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'lucida Grande', Verdana; font-size: 14px;"&gt;is the same as the system clock, no matter how to set up&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'lucida Grande', Verdana; font-size: 14px;"&gt;registers of I2S related, all can't change the I2S MCLCK output &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'lucida Grande', Verdana; font-size: 14px;"&gt;frequency.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'lucida Grande', Verdana; font-size: 14px;"&gt; Please who can provide the register operation related routines,which can&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'lucida Grande', Verdana; font-size: 14px;"&gt;change the I2S MCLCK output frequency.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: 'lucida Grande', Verdana; font-size: 14px;"&gt;thanks&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Apr 2014 06:32:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306236#M13024</guid>
      <dc:creator>jasonzhu</dc:creator>
      <dc:date>2014-04-29T06:32:28Z</dc:date>
    </item>
    <item>
      <title>Re: KL46 I2S MCLCK question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306237#M13025</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your post, however please consider moving it to the right community place (e.g. &lt;A _jive_internal="true" class="jivecontainerTT-hover-container jive-link-community-small" data-containerid="1" data-containertype="14" data-objectid="2019" data-objecttype="14" href="https://community.nxp.com/community/kinetis"&gt; Kinetis Microcontrollers&lt;/A&gt; ) to get it visible for active members.&lt;/P&gt;&lt;P&gt;For details please see general advice &lt;A _jive_internal="true" data-containerid="2001" data-containertype="14" data-objectid="99909" data-objecttype="102" href="https://community.nxp.com/docs/DOC-99909"&gt;Where to post a Discussion?&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for using Freescale Community.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Apr 2014 08:55:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306237#M13025</guid>
      <dc:creator>Wlodek_D_</dc:creator>
      <dc:date>2014-04-29T08:55:30Z</dc:date>
    </item>
    <item>
      <title>Re: KL46 I2S MCLCK question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306238#M13026</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would like to see your code, could you please share your project?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 May 2014 21:16:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306238#M13026</guid>
      <dc:creator>perlam_i_au</dc:creator>
      <dc:date>2014-05-12T21:16:37Z</dc:date>
    </item>
    <item>
      <title>Re: KL46 I2S MCLCK question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306239#M13027</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi, &lt;/P&gt;&lt;P&gt;    The attachment is the I2S initialization, code  transplanted from K60.&lt;/P&gt;&lt;P&gt;      Hope to be able to provide KL46 I2S routines &lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 May 2014 05:52:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306239#M13027</guid>
      <dc:creator>jasonzhu</dc:creator>
      <dc:date>2014-05-13T05:52:35Z</dc:date>
    </item>
    <item>
      <title>Re: KL46 I2S MCLCK question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306240#M13028</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are some considerations for the I2S module on KL46. This is a smaller version from the one found on K60.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I wasn't able to find the code you attached on the last post, but I assume you want to use the fractional divider to get a proper MCLK (256*FS) from the internal PLL? If so, that won't be possible since the I2S module on KL46 does not support fractional dividers. From chapter 3 of the RM:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"The module's MCLK Divide Register (MDR) is not used to control MCLK generation"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That being said, there are 2 alternatives for this:&lt;/P&gt;&lt;P&gt;- Use a dedicated oscillator for the MCLK you need e.g. 12.288Mhz&lt;/P&gt;&lt;P&gt;- If you're using an audio codec that implements a PLL, you could output the crystal frequency (select OSCERCLK on I2S0_MCR[MICS]) and then configure the audio codec PLL to generate BCLK and LRCLK. In this case, KL46 will be the I2S slave. I've done this using the ARD-AUDIO-DA7212 and FDRM-KL46 and works pretty good. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 May 2014 16:26:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306240#M13028</guid>
      <dc:creator>carlos_neri</dc:creator>
      <dc:date>2014-05-13T16:26:10Z</dc:date>
    </item>
    <item>
      <title>Re: KL46 I2S MCLCK question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306241#M13029</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;   Thank you for your help.&lt;/P&gt;&lt;P&gt;    We now are  ready to use audio chips that generates the clock signal .&lt;/P&gt;&lt;P&gt;    Hope to be able to obtain results as soon as possible&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 May 2014 02:04:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306241#M13029</guid>
      <dc:creator>jasonzhu</dc:creator>
      <dc:date>2014-05-14T02:04:37Z</dc:date>
    </item>
    <item>
      <title>Re: KL46 I2S MCLCK question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306242#M13030</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also want to configure the I2S for KL46Z board. I want to implement the test in which I2S is integrated with audio codec chip SGTL5000. The aim of my test is to get the audio out from the KL46 using audio sgtl. I have following HW setup :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. TWR-KL46Z board.&lt;/P&gt;&lt;P&gt;2. AUDIO-SGTL board.&lt;/P&gt;&lt;P&gt;3. TWR boards.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please see below are the my configuration for the GPIO, I2C, I2s and DMA in my test for KL46Z. I have used the reference audio out test ( loopback test ) for the k60 and I have modified the PIN setting for the KL46Z.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;GPIO :&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK|SIM_SCGC5_PORTE_MASK|SIM_SCGC5_PORTC_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* Configure SW 1 */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;PORTA_PCR19 = PORT_PCR_IRQC(10)|PORT_PCR_PE_MASK|PORT_PCR_PS_MASK|PORT_PCR_MUX(1);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;u32fnNVIC_EnableIRQ((INT_PORTA-16UL));&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;PORTA_PCR4 = PORT_PCR_MUX(1);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;PORTA_PCR5 = PORT_PCR_MUX(1);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;PORTA_PCR12 = PORT_PCR_MUX(1);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;PORTA_PCR13 = PORT_PCR_MUX(1);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;GPIOC_PDDR |= (1 &amp;lt;&amp;lt; 0);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;GPIOA_PDDR |= (1 &amp;lt;&amp;lt; 11);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;GPIOA_PTOR |= (1 &amp;lt;&amp;lt; 11);&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN style="line-height: 1.5;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I2C :&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;SIM_SCGC4 |= SIM_SCGC4_I2C0_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;SIM_SCGC5 |= SIM_SCGC5_PORTE_MASK | SIM_SCGC5_PORTB_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* configure IIC registers */&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IIC_CLOCK_RATE(IIC_CLOCK_RATE_VALUE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IIC_CLOCK_DIV(IIC_CLOCK_DIV_VALUE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IIC_CONTROL_REGISTER = I2C_C1_IICEN_MASK | I2C_C1_IICIE_MASK; //enable IIC with interrupts&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* initialize to idle all state machine variables */&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;u8IICDriverStatus |= (1&amp;lt;&amp;lt;IIC_FLAGS_IDLE);&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sIICStateMachine.ActualState = IIC_IDLE_STATE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sIICStateMachine.NextState = IIC_IDLE_STATE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sIICStateMachine.PrevState = IIC_IDLE_STATE;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/*Multiplexing of the IIC pin signals PTD8(SDL) and PTD9(SDA) with open drain enabled*/&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PCR0 = PORT_PCR_MUX(2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR25 = PORT_PCR_MUX(5);&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* enable IIC IRQ */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;u32fnNVIC_EnableIRQ((INT_I2C0-16UL));&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I2S :&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* Enable SSI CLK from SIM */&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_I2S_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK|SIM_SCGC5_PORTC_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable SAI pins */&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* TX BCLK */&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR5 |= PORT_PCR_MUX(0x6);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*TX Data line*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR12 |= PORT_PCR_MUX(0x6);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*TX Frame Sync*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR13 |= PORT_PCR_MUX(0x6);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RX BCLK */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR14 |= PORT_PCR_MUX(0x6);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RX Frame Sync */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR16 |= PORT_PCR_MUX(0x6);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RX Data line*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR15 |= PORT_PCR_MUX(0x6);&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; /*Tx*/&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* For using TX BLCK and FS CLK in synch mode, TX must be Asynch and Rx synch */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_TCR2 = I2S_TCR2_SYNC(0)|I2S_TCR2_BCP_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_MCR &amp;amp;= ~I2S_MCR_MOE_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/*transmit data channel 1 enabled */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_TCR3 = I2S_TCR3_WDFL(0)|I2S_TCR3_TCE(1);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* 2 slot on a frame, Fsynch of 32 clocks */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_TCR4 =&amp;nbsp; I2S_TCR4_FRSZ(1)|I2S_TCR4_FSE_MASK|I2S_TCR4_SYWD(31)|I2S_TCR4_MF_MASK|I2S_TCR4_FSP_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_TCR4 &amp;amp;= ~(I2S_TCR4_FSD_MASK);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/*32-bit first and following words */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_TCR5 = I2S_TCR5_WNW(31)|I2S_TCR5_W0W(31)|I2S_TCR5_FBT(31);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* enable DMA transfer on FIFO WM */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_TCSR |= I2S_TCSR_FRDE_MASK|I2S_TCSR_FR_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* RX */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_RCR1 = I2S_RCR1_RFW((u32RxFIFOWm-1));&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_RCR2 = I2S_RCR2_SYNC(1);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_RCR3 = I2S_RCR3_WDFL(0)|I2S_RCR3_RCE(1);&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_RCR4 =&amp;nbsp; I2S_RCR4_FRSZ(1)|I2S_RCR4_FSE_MASK|I2S_RCR4_SYWD(31)|I2S_RCR4_MF_MASK|I2S_RCR4_FSP_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_RCR4 &amp;amp;= ~(I2S_RCR4_FSD_MASK);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_RCR5 = I2S_RCR5_WNW(31)|I2S_RCR5_W0W(31)|I2S_RCR5_FBT(31);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;I2S_RCSR |= I2S_RCSR_FRDE_MASK|I2S_RCSR_FR_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;DMA :&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;memset(&amp;amp;state, 0, sizeof(dma_state_t));&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_DRV_Init(&amp;amp;state);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kDmaInvalidChannel == DMA_DRV_RequestChannel(channel_IN, kDmaRequestMux0AlwaysOn62, &amp;amp;chnState_IN))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\nCannot request channel No. %d", channel_IN);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_DRV_Deinit();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Configure a channel.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_DRV_ConfigTransfer(&amp;amp;chnState_IN,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;kDmaPeripheralToMemory,&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (uint32_t)&amp;amp;I2S_RDR0,&amp;nbsp;&amp;nbsp; /*source*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (uint32_t)&amp;amp;gau32Audio_InputRingBuffer[0], /*destination*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUDIO_INPUT_RING_BUFFER_SIZE);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add callback for dma handler&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_DRV_RegisterCallback(&amp;amp;chnState_IN, vfnAudioBufferHandler_DMARxCallback, NULL);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kDmaInvalidChannel == DMA_DRV_RequestChannel(channel_OUT, kDmaRequestMux0AlwaysOn63, &amp;amp;chnState_OUT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\nCannot request channel No. %d", channel_OUT);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_DRV_Deinit();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Configure a channel.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_DRV_ConfigTransfer(&amp;amp;chnState_OUT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; kDmaMemoryToPeripheral,//kDmaMemoryToMemory,&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (uint32_t)&amp;amp;gau32Audio_OutputRingBuffer[0],&amp;nbsp;&amp;nbsp; /*source*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (uint32_t)&amp;amp;I2S_TDR0, /*destination*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUDIO_OUTPUT_RING_BUFFER_SIZE);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add callback for dma handler&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA_DRV_RegisterCallback(&amp;amp;chnState_OUT, vfnAudioBufferHandler_DMATxCallback, NULL);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With all above initialization change, my test is still not working. I found that my DMA callbacks executes only once to transfer the data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please help me if I missed any configuration setting.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;Please provide me if any working test available for KL46Z board works with audio SGTL.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;Ajay-&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Jul 2015 06:52:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306242#M13030</guid>
      <dc:creator>ajaypatel</dc:creator>
      <dc:date>2015-07-03T06:52:48Z</dc:date>
    </item>
    <item>
      <title>Re: KL46 I2S MCLCK question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306243#M13031</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear &lt;A _jive_internal="true" data-userid="28410" data-username="nericciani" href="https://community.nxp.com/people/nericciani"&gt;Carlos Neri&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Seems you were able to use ARD-AUDIO-DA7212 and FDRM-KL46 for audio.&lt;/P&gt;&lt;P&gt;I'm also using same Hardware boards to see the USB Speakers demo.&lt;/P&gt;&lt;P&gt;Following the document below, but stuck at section 4.1&lt;/P&gt;&lt;P&gt;&lt;A href="http://cache.nxp.com/files/32bit/doc/user_guide/USBSPRDUG.pdf" title="http://cache.nxp.com/files/32bit/doc/user_guide/USBSPRDUG.pdf"&gt;http://cache.nxp.com/files/32bit/doc/user_guide/USBSPRDUG.pdf&lt;/A&gt; &lt;/P&gt;&lt;P&gt;I could not find the&amp;nbsp; USB Speakers demo software on Freescale.&lt;/P&gt;&lt;P&gt;Could you please share it ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reddy&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Apr 2016 09:48:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL46-I2S-MCLCK-question/m-p/306243#M13031</guid>
      <dc:creator>creddy</dc:creator>
      <dc:date>2016-04-13T09:48:55Z</dc:date>
    </item>
  </channel>
</rss>

