<?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 LPC4088 receiving data from UDA1380 using I2S in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4088-receiving-data-from-UDA1380-using-I2S/m-p/548691#M13700</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by paavo91 on Mon Dec 22 08:32:02 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I try to receive data from ADC in UDA1380 audio codec using I2S. I prepared UDA to receive audio from LINE IN, but I think I did somethng wrong in I2S config because I only get zeroes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is my code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;/*
===============================================================================
 Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : kodek.c
 Author&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : $(author)
 Version&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :
 Copyright&amp;nbsp;&amp;nbsp; : $(copyright)
 Description : main definition
===============================================================================
*/

#ifdef __USE_CMSIS
#include "LPC407x_8x.h"
#endif




#include "lpc_i2s.h"
#include "lpc_pinsel.h"
#include "uda1380.h"
#include "debug_frmwrk.h"



int main(void) {

debug_frmwrk_init();
int8_t ret;
I2S_MODEConf_Type I2S_ClkConfig;
I2S_CFG_Type I2S_ConfigStruct;

volatile uint32_t i;

PINSEL_ConfigPin(0,7,1); //TX
PINSEL_ConfigPin(0,8,1);
PINSEL_ConfigPin(0,9,1);
PINSEL_ConfigPin(0,23,2); //RX
PINSEL_ConfigPin(0,24,2);
PINSEL_ConfigPin(0,25,2);


PINSEL_ConfigPin(1,16,2); //MCLK

I2S_Init(LPC_I2S);


/* Audio Config*/
I2S_ConfigStruct.wordwidth = I2S_WORDWIDTH_16;
I2S_ConfigStruct.mono = I2S_STEREO;
I2S_ConfigStruct.stop = I2S_STOP_DISABLE;
I2S_ConfigStruct.reset = I2S_RESET_ENABLE;
I2S_ConfigStruct.ws_sel = I2S_MASTER_MODE;
I2S_ConfigStruct.mute = I2S_MUTE_DISABLE;
I2S_Config(LPC_I2S,I2S_TX_MODE,&amp;amp;I2S_ConfigStruct);

I2S_ConfigStruct.ws_sel = I2S_SLAVE_MODE;
I2S_Config(LPC_I2S,I2S_RX_MODE,&amp;amp;I2S_ConfigStruct);


/* Clock Mode Config*/
I2S_ClkConfig.clksel = I2S_CLKSEL_MCLK;
I2S_ClkConfig.fpin = I2S_4PIN_DISABLE;
//I2S_ClkConfig.mcena = I2S_MCLK_ENABLE;
I2S_ClkConfig.mcena = I2S_MCLK_DISABLE;
I2S_ModeConfig(LPC_I2S,&amp;amp;I2S_ClkConfig,I2S_TX_MODE);

I2S_ClkConfig.fpin = I2S_4PIN_ENABLE;

//I2S_ClkConfig.clksel = I2S_CLKSEL_MCLK;
//I2S_ClkConfig.mcena = I2S_MCLK_DISABLE;

I2S_ModeConfig(LPC_I2S,&amp;amp;I2S_ClkConfig,I2S_RX_MODE);


I2S_FreqConfig(LPC_I2S, 32000, I2S_TX_MODE);
//I2S_FreqConfig(LPC_I2S, 32000, I2S_RX_MODE);

I2S_Stop(LPC_I2S, I2S_TX_MODE);
I2S_Stop(LPC_I2S, I2S_RX_MODE);

I2S_IRQCmd(LPC_I2S,I2S_RX_MODE,ENABLE);//przerwanie przy odbiorze

LPC_I2S-&amp;gt;RXBITRATE = 0;
LPC_I2S-&amp;gt;RXRATE = 0;
I2S_SetBitRate(LPC_I2S,0,I2S_RX_MODE);



for(i = 0; i &amp;lt;0x1000000; i++); // delay


ret = Uda1380_Init(200000, 32000);
if(ret==0){
DEBUGOUT("Inicjalizacja kodek OK \r\n");
}else{
_DBD(ret);
}

for(i = 0; i &amp;lt;0x3000000; i++); // delay


&amp;nbsp;&amp;nbsp;&amp;nbsp; I2S_Start(LPC_I2S);

&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(I2S_IRQn);

&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1){

&amp;nbsp;&amp;nbsp;&amp;nbsp; }


&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
}





void I2S_IRQHandler()
{

uint32_t input = LPC_I2S-&amp;gt;RXFIFO;

_DBD32(input);
DEBUGOUT("\r\n");


}



&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338000" rel="nofollow noopener noreferrer" target="_blank"&gt;uda1380_1.c.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338000" rel="nofollow noopener noreferrer" target="_blank"&gt;uda1380_0.h.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:30:33 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:30:33Z</dc:date>
    <item>
      <title>LPC4088 receiving data from UDA1380 using I2S</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4088-receiving-data-from-UDA1380-using-I2S/m-p/548691#M13700</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by paavo91 on Mon Dec 22 08:32:02 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I try to receive data from ADC in UDA1380 audio codec using I2S. I prepared UDA to receive audio from LINE IN, but I think I did somethng wrong in I2S config because I only get zeroes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is my code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;/*
===============================================================================
 Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : kodek.c
 Author&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : $(author)
 Version&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :
 Copyright&amp;nbsp;&amp;nbsp; : $(copyright)
 Description : main definition
===============================================================================
*/

#ifdef __USE_CMSIS
#include "LPC407x_8x.h"
#endif




#include "lpc_i2s.h"
#include "lpc_pinsel.h"
#include "uda1380.h"
#include "debug_frmwrk.h"



int main(void) {

debug_frmwrk_init();
int8_t ret;
I2S_MODEConf_Type I2S_ClkConfig;
I2S_CFG_Type I2S_ConfigStruct;

volatile uint32_t i;

PINSEL_ConfigPin(0,7,1); //TX
PINSEL_ConfigPin(0,8,1);
PINSEL_ConfigPin(0,9,1);
PINSEL_ConfigPin(0,23,2); //RX
PINSEL_ConfigPin(0,24,2);
PINSEL_ConfigPin(0,25,2);


PINSEL_ConfigPin(1,16,2); //MCLK

I2S_Init(LPC_I2S);


/* Audio Config*/
I2S_ConfigStruct.wordwidth = I2S_WORDWIDTH_16;
I2S_ConfigStruct.mono = I2S_STEREO;
I2S_ConfigStruct.stop = I2S_STOP_DISABLE;
I2S_ConfigStruct.reset = I2S_RESET_ENABLE;
I2S_ConfigStruct.ws_sel = I2S_MASTER_MODE;
I2S_ConfigStruct.mute = I2S_MUTE_DISABLE;
I2S_Config(LPC_I2S,I2S_TX_MODE,&amp;amp;I2S_ConfigStruct);

I2S_ConfigStruct.ws_sel = I2S_SLAVE_MODE;
I2S_Config(LPC_I2S,I2S_RX_MODE,&amp;amp;I2S_ConfigStruct);


/* Clock Mode Config*/
I2S_ClkConfig.clksel = I2S_CLKSEL_MCLK;
I2S_ClkConfig.fpin = I2S_4PIN_DISABLE;
//I2S_ClkConfig.mcena = I2S_MCLK_ENABLE;
I2S_ClkConfig.mcena = I2S_MCLK_DISABLE;
I2S_ModeConfig(LPC_I2S,&amp;amp;I2S_ClkConfig,I2S_TX_MODE);

I2S_ClkConfig.fpin = I2S_4PIN_ENABLE;

//I2S_ClkConfig.clksel = I2S_CLKSEL_MCLK;
//I2S_ClkConfig.mcena = I2S_MCLK_DISABLE;

I2S_ModeConfig(LPC_I2S,&amp;amp;I2S_ClkConfig,I2S_RX_MODE);


I2S_FreqConfig(LPC_I2S, 32000, I2S_TX_MODE);
//I2S_FreqConfig(LPC_I2S, 32000, I2S_RX_MODE);

I2S_Stop(LPC_I2S, I2S_TX_MODE);
I2S_Stop(LPC_I2S, I2S_RX_MODE);

I2S_IRQCmd(LPC_I2S,I2S_RX_MODE,ENABLE);//przerwanie przy odbiorze

LPC_I2S-&amp;gt;RXBITRATE = 0;
LPC_I2S-&amp;gt;RXRATE = 0;
I2S_SetBitRate(LPC_I2S,0,I2S_RX_MODE);



for(i = 0; i &amp;lt;0x1000000; i++); // delay


ret = Uda1380_Init(200000, 32000);
if(ret==0){
DEBUGOUT("Inicjalizacja kodek OK \r\n");
}else{
_DBD(ret);
}

for(i = 0; i &amp;lt;0x3000000; i++); // delay


&amp;nbsp;&amp;nbsp;&amp;nbsp; I2S_Start(LPC_I2S);

&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(I2S_IRQn);

&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1){

&amp;nbsp;&amp;nbsp;&amp;nbsp; }


&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
}





void I2S_IRQHandler()
{

uint32_t input = LPC_I2S-&amp;gt;RXFIFO;

_DBD32(input);
DEBUGOUT("\r\n");


}



&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338000" rel="nofollow noopener noreferrer" target="_blank"&gt;uda1380_1.c.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338000" rel="nofollow noopener noreferrer" target="_blank"&gt;uda1380_0.h.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:30:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4088-receiving-data-from-UDA1380-using-I2S/m-p/548691#M13700</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:30:33Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4088 receiving data from UDA1380 using I2S</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4088-receiving-data-from-UDA1380-using-I2S/m-p/548692#M13701</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by paavo91 on Thu Jan 01 09:55:20 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Nobody could help?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:30:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4088-receiving-data-from-UDA1380-using-I2S/m-p/548692#M13701</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:30:34Z</dc:date>
    </item>
  </channel>
</rss>

