<?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 Problem in interfacing ADC with I2S in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Problem-in-interfacing-ADC-with-I2S/m-p/457750#M27291</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;I am new to I2S interface and I am trying to interface an ADC to K60 MCU (TWR-K60F512) using I2S interface.&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;In this case, ADC is always a MASTER, It pumps converted data continuously.&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; text-decoration: underline;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;Reading ADC:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Please see the below timing diagram of ADC, which shows how it transmits the conversion results.&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="64976_64976.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/120561i2D6380EF204D4C4C/image-size/large?v=v2&amp;amp;px=999" role="button" title="64976_64976.jpg" alt="64976_64976.jpg" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Figure-1 ADC READ.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/53739i20D08FE86107F470/image-size/large?v=v2&amp;amp;px=999" role="button" title="Figure-1 ADC READ.jpg" alt="Figure-1 ADC READ.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Following are the ADC signals related to ADC Read&amp;nbsp; :&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;a) Serial Clock Output (SCO),&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;b) Frame Synchronization Output (FSO)&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;c) Serial Data Output (SDO)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The data read from ADC is clocked out using Serial Clock Output(SCO).&lt;/LI&gt;&lt;LI&gt;The conversion result output on the SDO line is framed by the frame synchronization output FSO, which is sent logic low for 32 SCO cycles.&lt;/LI&gt;&lt;LI&gt;Each bit of the new conversion result is clocked onto SDO line on the rising SCO edge and is valid on the falling SCO edge.&lt;/LI&gt;&lt;LI&gt;The 32-bit result consists of 24 data bits followed by 8 status bits.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #51626f; font-weight: inherit; text-decoration: underline; font-family: inherit; font-style: inherit;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;Writing ADC:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Please see the below timing diagram of ADC which shows how a write operation is performed.&lt;/SPAN&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="64977_64977.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/120562i2C49FC35EDA54CFE/image-size/large?v=v2&amp;amp;px=999" role="button" title="64977_64977.jpg" alt="64977_64977.jpg" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Figure-2 ADC WRITE.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/53740i3455DC06B30B6DA0/image-size/large?v=v2&amp;amp;px=999" role="button" title="Figure-2 ADC WRITE.jpg" alt="Figure-2 ADC WRITE.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Following are the ADC signals related to ADC write:&lt;/SPAN&gt;&lt;SPAN style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;a) Serial Clock Output (SCO) same as above&lt;/SPAN&gt;&lt;SPAN style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;b) Frame Synchronization Input (FSI)&lt;/SPAN&gt;&lt;SPAN style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;c) Serial Data Input (SDI)&lt;/SPAN&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Serial writing operation is synchronous to SCO signal.&lt;/LI&gt;&lt;LI&gt;The status of the FSI is checked on the falling edge of the SCO signal. If FSI line is low, then first data bit on the SDI line is latched on the next SCO falling edge.&lt;/LI&gt;&lt;LI&gt;FSI signal is made low at a position when SCO signal is high or low to allow setup and hold times from the SCO falling edge to be met.&lt;/LI&gt;&lt;LI&gt;The width of the FSI signal can be set to between 1 and 32 SCO periods wide.&lt;/LI&gt;&lt;LI&gt;Write data is pumped onto SDI with sync to SCO.&lt;/LI&gt;&lt;LI&gt;A second or subsequent falling edge that occurs before 32 SCO periods have elapsed is ignored.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;For this requirement,&amp;nbsp; I planned to interface ADC to I2S module as follows:&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;SCO -&amp;gt; I2S0_RX_BCLK, I2S_TX_BCLK&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;FSO -&amp;gt; I2S0_RX_FS&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;SDO -&amp;gt; I2S0_RX_D0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;FSI &amp;lt;- I2S0_TX_FS&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;SDI &amp;lt;- I2S0_TX_D0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;/P&gt;&lt;P&gt;void main (void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; char ch;&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; &lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("\nHello World!!\n");&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;enable_irq(35); //I2S0 Transmit IRQ&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;enable_irq(36); //I2S0 Receiver IRQ&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; init_i2s(); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(1);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void init_i2s(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// /* Turn on all port clocks */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SIM_SCGC5 = SIM_SCGC5_PORTA_MASK | SIM_SCGC5_PORTB_MASK | SIM_SCGC5_PORTC_MASK | SIM_SCGC5_PORTD_MASK | SIM_SCGC5_PORTE_MASK;&lt;/P&gt;&lt;P&gt;//&lt;/P&gt;&lt;P&gt;// SIM_SCGC6 |= SIM_SCGC6_SAI0_MASK;&lt;/P&gt;&lt;P&gt;//&lt;/P&gt;&lt;P&gt;// PORTC_PCR(3) = PORT_PCR_MUX(6); //PTC3(ALT6), I2S0_TX_BCLK - J53 pin11&lt;/P&gt;&lt;P&gt;// PORTC_PCR(2) = PORT_PCR_MUX(6); //PTC2(ALT6), I2S0_TX_FS - J8 pin8&lt;/P&gt;&lt;P&gt;// PORTC_PCR(9) = PORT_PCR_MUX(4); //PTC9(ALT4), I2S0_RX_BCLK - J6 pin5&lt;/P&gt;&lt;P&gt;// PORTC_PCR(10) = PORT_PCR_MUX(4); //PTC10(ALT4), I2S0_RX_FS - J6 pin2&lt;/P&gt;&lt;P&gt;// PORTC_PCR(5) = PORT_PCR_MUX(4); //PTC5(ALT4), I2S0_RXD0 - J8 pin2&lt;/P&gt;&lt;P&gt;// PORTC_PCR(11) = PORT_PCR_MUX(4); //PTC11(ALT6), I2S0_RXD1 - J14 pin8&lt;/P&gt;&lt;P&gt;// PORTC_PCR(1) = PORT_PCR_MUX(6); //PTC1(ALT6), I2S0_TXD0 - J8 pin11&lt;/P&gt;&lt;P&gt;// PORTC_PCR(0) = PORT_PCR_MUX(6); //PTC0(ALT6), I2S0_TXD1 - J8 pin14&lt;/P&gt;&lt;P&gt;// PORTC_PCR(6) = PORT_PCR_MUX(6); //PTC6(ALT6), I2S0_MCLK - J6 pin14&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SIM_SCGC6|=0x00008000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR6= (0|PORT_PCR_MUX(6)); //MCLK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR3= (0|PORT_PCR_MUX(6)); //Tx_BCLK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR2= (0|PORT_PCR_MUX(6)); //Tx_FS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR1= (0|PORT_PCR_MUX(6)); //Tx_D0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR9= (0|PORT_PCR_MUX(4)); //Rx_BCLK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR10=(0|PORT_PCR_MUX(4)); //Rx_FS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR5= (0|PORT_PCR_MUX(4)); //Rx_D0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_MCR=0x00000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_MDR=0x00000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCR1=0x00000007;//FIFO watermark level&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCR2=0xC0000000;//mode, mclk, bit clock settings&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCR3=0x00010000;//channel num, word flag config.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCR4=0x00001F12;//Frame config-pol,dir,size,width..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCR5=0x1F1F1F00;//word config..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RMR =0x00000000;//Word Mask Register, all are enabled&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCSR=0x931C1F00;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void i2s_rx_isr(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// I2S0_RCSR|=(I2S_RCSR_SEF_MASK|I2S_RCSR_FRF_MASK);&lt;/P&gt;&lt;P&gt;&amp;nbsp; GPIOB_PTOR|=GPIO_PDOR_PDO(GPIO_PIN(23)); //toggle port pin to ensure the occurrence of Interrupt&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2S0_RCSR |= 0x02380000;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am not getting any interrupt. &lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Please review the configuration and the corresponding code. Please correct the configuration settings and code as required in the timing diagram.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Thanks in advance&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Gourah&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 22 Aug 2015 04:28:26 GMT</pubDate>
    <dc:creator>gourahshaik</dc:creator>
    <dc:date>2015-08-22T04:28:26Z</dc:date>
    <item>
      <title>Problem in interfacing ADC with I2S</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Problem-in-interfacing-ADC-with-I2S/m-p/457750#M27291</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;I am new to I2S interface and I am trying to interface an ADC to K60 MCU (TWR-K60F512) using I2S interface.&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;In this case, ADC is always a MASTER, It pumps converted data continuously.&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; text-decoration: underline;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;Reading ADC:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Please see the below timing diagram of ADC, which shows how it transmits the conversion results.&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="64976_64976.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/120561i2D6380EF204D4C4C/image-size/large?v=v2&amp;amp;px=999" role="button" title="64976_64976.jpg" alt="64976_64976.jpg" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Figure-1 ADC READ.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/53739i20D08FE86107F470/image-size/large?v=v2&amp;amp;px=999" role="button" title="Figure-1 ADC READ.jpg" alt="Figure-1 ADC READ.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Following are the ADC signals related to ADC Read&amp;nbsp; :&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;a) Serial Clock Output (SCO),&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;b) Frame Synchronization Output (FSO)&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;c) Serial Data Output (SDO)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The data read from ADC is clocked out using Serial Clock Output(SCO).&lt;/LI&gt;&lt;LI&gt;The conversion result output on the SDO line is framed by the frame synchronization output FSO, which is sent logic low for 32 SCO cycles.&lt;/LI&gt;&lt;LI&gt;Each bit of the new conversion result is clocked onto SDO line on the rising SCO edge and is valid on the falling SCO edge.&lt;/LI&gt;&lt;LI&gt;The 32-bit result consists of 24 data bits followed by 8 status bits.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #51626f; font-weight: inherit; text-decoration: underline; font-family: inherit; font-style: inherit;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;Writing ADC:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Please see the below timing diagram of ADC which shows how a write operation is performed.&lt;/SPAN&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="64977_64977.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/120562i2C49FC35EDA54CFE/image-size/large?v=v2&amp;amp;px=999" role="button" title="64977_64977.jpg" alt="64977_64977.jpg" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Figure-2 ADC WRITE.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/53740i3455DC06B30B6DA0/image-size/large?v=v2&amp;amp;px=999" role="button" title="Figure-2 ADC WRITE.jpg" alt="Figure-2 ADC WRITE.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Following are the ADC signals related to ADC write:&lt;/SPAN&gt;&lt;SPAN style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;a) Serial Clock Output (SCO) same as above&lt;/SPAN&gt;&lt;SPAN style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;b) Frame Synchronization Input (FSI)&lt;/SPAN&gt;&lt;SPAN style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;c) Serial Data Input (SDI)&lt;/SPAN&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Serial writing operation is synchronous to SCO signal.&lt;/LI&gt;&lt;LI&gt;The status of the FSI is checked on the falling edge of the SCO signal. If FSI line is low, then first data bit on the SDI line is latched on the next SCO falling edge.&lt;/LI&gt;&lt;LI&gt;FSI signal is made low at a position when SCO signal is high or low to allow setup and hold times from the SCO falling edge to be met.&lt;/LI&gt;&lt;LI&gt;The width of the FSI signal can be set to between 1 and 32 SCO periods wide.&lt;/LI&gt;&lt;LI&gt;Write data is pumped onto SDI with sync to SCO.&lt;/LI&gt;&lt;LI&gt;A second or subsequent falling edge that occurs before 32 SCO periods have elapsed is ignored.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;For this requirement,&amp;nbsp; I planned to interface ADC to I2S module as follows:&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;SCO -&amp;gt; I2S0_RX_BCLK, I2S_TX_BCLK&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;FSO -&amp;gt; I2S0_RX_FS&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;SDO -&amp;gt; I2S0_RX_D0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;FSI &amp;lt;- I2S0_TX_FS&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="padding-left: 30px; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;STRONG style="font-style: inherit; font-family: inherit;"&gt;SDI &amp;lt;- I2S0_TX_D0&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;/P&gt;&lt;P&gt;void main (void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; char ch;&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; &lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("\nHello World!!\n");&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;enable_irq(35); //I2S0 Transmit IRQ&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt;enable_irq(36); //I2S0 Receiver IRQ&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; init_i2s(); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(1);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void init_i2s(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// /* Turn on all port clocks */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SIM_SCGC5 = SIM_SCGC5_PORTA_MASK | SIM_SCGC5_PORTB_MASK | SIM_SCGC5_PORTC_MASK | SIM_SCGC5_PORTD_MASK | SIM_SCGC5_PORTE_MASK;&lt;/P&gt;&lt;P&gt;//&lt;/P&gt;&lt;P&gt;// SIM_SCGC6 |= SIM_SCGC6_SAI0_MASK;&lt;/P&gt;&lt;P&gt;//&lt;/P&gt;&lt;P&gt;// PORTC_PCR(3) = PORT_PCR_MUX(6); //PTC3(ALT6), I2S0_TX_BCLK - J53 pin11&lt;/P&gt;&lt;P&gt;// PORTC_PCR(2) = PORT_PCR_MUX(6); //PTC2(ALT6), I2S0_TX_FS - J8 pin8&lt;/P&gt;&lt;P&gt;// PORTC_PCR(9) = PORT_PCR_MUX(4); //PTC9(ALT4), I2S0_RX_BCLK - J6 pin5&lt;/P&gt;&lt;P&gt;// PORTC_PCR(10) = PORT_PCR_MUX(4); //PTC10(ALT4), I2S0_RX_FS - J6 pin2&lt;/P&gt;&lt;P&gt;// PORTC_PCR(5) = PORT_PCR_MUX(4); //PTC5(ALT4), I2S0_RXD0 - J8 pin2&lt;/P&gt;&lt;P&gt;// PORTC_PCR(11) = PORT_PCR_MUX(4); //PTC11(ALT6), I2S0_RXD1 - J14 pin8&lt;/P&gt;&lt;P&gt;// PORTC_PCR(1) = PORT_PCR_MUX(6); //PTC1(ALT6), I2S0_TXD0 - J8 pin11&lt;/P&gt;&lt;P&gt;// PORTC_PCR(0) = PORT_PCR_MUX(6); //PTC0(ALT6), I2S0_TXD1 - J8 pin14&lt;/P&gt;&lt;P&gt;// PORTC_PCR(6) = PORT_PCR_MUX(6); //PTC6(ALT6), I2S0_MCLK - J6 pin14&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SIM_SCGC6|=0x00008000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR6= (0|PORT_PCR_MUX(6)); //MCLK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR3= (0|PORT_PCR_MUX(6)); //Tx_BCLK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR2= (0|PORT_PCR_MUX(6)); //Tx_FS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR1= (0|PORT_PCR_MUX(6)); //Tx_D0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR9= (0|PORT_PCR_MUX(4)); //Rx_BCLK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR10=(0|PORT_PCR_MUX(4)); //Rx_FS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PORTC_PCR5= (0|PORT_PCR_MUX(4)); //Rx_D0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_MCR=0x00000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_MDR=0x00000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCR1=0x00000007;//FIFO watermark level&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCR2=0xC0000000;//mode, mclk, bit clock settings&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCR3=0x00010000;//channel num, word flag config.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCR4=0x00001F12;//Frame config-pol,dir,size,width..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCR5=0x1F1F1F00;//word config..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RMR =0x00000000;//Word Mask Register, all are enabled&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I2S0_RCSR=0x931C1F00;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void i2s_rx_isr(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// I2S0_RCSR|=(I2S_RCSR_SEF_MASK|I2S_RCSR_FRF_MASK);&lt;/P&gt;&lt;P&gt;&amp;nbsp; GPIOB_PTOR|=GPIO_PDOR_PDO(GPIO_PIN(23)); //toggle port pin to ensure the occurrence of Interrupt&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2S0_RCSR |= 0x02380000;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am not getting any interrupt. &lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Please review the configuration and the corresponding code. Please correct the configuration settings and code as required in the timing diagram.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Thanks in advance&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;Gourah&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 22 Aug 2015 04:28:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Problem-in-interfacing-ADC-with-I2S/m-p/457750#M27291</guid>
      <dc:creator>gourahshaik</dc:creator>
      <dc:date>2015-08-22T04:28:26Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in interfacing ADC with I2S</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Problem-in-interfacing-ADC-with-I2S/m-p/457751#M27292</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Gourah,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As I've already mentioned in &lt;A href="https://community.nxp.com/thread/366487"&gt;I2S interface&lt;/A&gt; , this configuration can't be set with SAI module (Receiver can be configured without problems but Transmitter can't synchronize FCLK signal if he is receiving Master clock from Slave.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you still are interested in configure SAI module you can check this example code (using I2S for audio interface with SGTL5000 codec) &lt;A href="https://community.nxp.com/message/303021"&gt;Re: is there any demo code for using I2S?&lt;/A&gt;​ or you can take a look to FlexIO module in this post: &lt;A href="https://community.nxp.com/docs/DOC-105640"&gt;Understanding FlexIO&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this can help you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Sep 2015 03:31:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Problem-in-interfacing-ADC-with-I2S/m-p/457751#M27292</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2015-09-11T03:31:38Z</dc:date>
    </item>
  </channel>
</rss>

