<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=46&amp;t=8852&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-12-28T13:14:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=8852&amp;mode</id>
<entry>
<author><name><![CDATA[paavo91]]></name></author>
<updated>2014-12-28T13:14:12+01:00</updated>
<published>2014-12-28T13:14:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=110831#p110831</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=110831#p110831"/>
<title type="html"><![CDATA[Re: LPC4088 + UDA1380 I2S]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=110831#p110831"><![CDATA[
Udało mi się ogarnąć ten układ, niestety teraz mam problem z konfiguracją I2S. Czy ktoś obeznany może mi powiedzieć czy dobrze ustawiam konfigurację? Chcę odbierać dane z przetwornika i wyrzucić na UART.<br /><br /><br />[syntax=c]#ifdef __USE_CMSIS<br />#include &quot;LPC407x_8x.h&quot;<br />#endif<br /><br /><br /><br /><br />#include &quot;lpc_i2s.h&quot;<br />#include &quot;lpc_pinsel.h&quot;<br />#include &quot;uda1380.h&quot;<br />#include &quot;debug_frmwrk.h&quot;<br /><br /><br /><br />int main(void) {<br /><br />debug_frmwrk_init();<br />int8_t ret;<br />I2S_MODEConf_Type I2S_ClkConfig;<br />I2S_CFG_Type I2S_ConfigStruct;<br /><br />volatile uint32_t i;<br /><br />PINSEL_ConfigPin(0,7,1); //TX<br />PINSEL_ConfigPin(0,8,1);<br />PINSEL_ConfigPin(0,9,1);<br />PINSEL_ConfigPin(0,23,2); //RX<br />PINSEL_ConfigPin(0,24,2);<br />PINSEL_ConfigPin(0,25,2);<br /><br /><br />PINSEL_ConfigPin(1,16,2); //MCLK<br /><br />I2S_Init(LPC_I2S);<br /><br /><br />/* Audio Config*/<br />I2S_ConfigStruct.wordwidth = I2S_WORDWIDTH_16;<br />I2S_ConfigStruct.mono = I2S_STEREO;<br />I2S_ConfigStruct.stop = I2S_STOP_DISABLE;<br />I2S_ConfigStruct.reset = I2S_RESET_ENABLE;<br />I2S_ConfigStruct.ws_sel = I2S_MASTER_MODE;<br />I2S_ConfigStruct.mute = I2S_MUTE_DISABLE;<br />I2S_Config(LPC_I2S,I2S_TX_MODE,&amp;I2S_ConfigStruct);<br /><br />I2S_ConfigStruct.ws_sel = I2S_SLAVE_MODE;<br />I2S_Config(LPC_I2S,I2S_RX_MODE,&amp;I2S_ConfigStruct);<br /><br /><br />/* Clock Mode Config*/<br />I2S_ClkConfig.clksel = I2S_CLKSEL_MCLK;<br />I2S_ClkConfig.fpin = I2S_4PIN_DISABLE;<br />//I2S_ClkConfig.mcena = I2S_MCLK_ENABLE;<br />I2S_ClkConfig.mcena = I2S_MCLK_DISABLE;<br />I2S_ModeConfig(LPC_I2S,&amp;I2S_ClkConfig,I2S_TX_MODE);<br /><br />I2S_ClkConfig.fpin = I2S_4PIN_ENABLE;<br /><br />//I2S_ClkConfig.clksel = I2S_CLKSEL_MCLK;<br />//I2S_ClkConfig.mcena = I2S_MCLK_DISABLE;<br /><br />I2S_ModeConfig(LPC_I2S,&amp;I2S_ClkConfig,I2S_RX_MODE);<br /><br /><br />I2S_FreqConfig(LPC_I2S, 32000, I2S_TX_MODE);<br />//I2S_FreqConfig(LPC_I2S, 32000, I2S_RX_MODE);<br /><br />I2S_Stop(LPC_I2S, I2S_TX_MODE);<br />I2S_Stop(LPC_I2S, I2S_RX_MODE);<br /><br />I2S_IRQCmd(LPC_I2S,I2S_RX_MODE,ENABLE);//przerwanie przy odbiorze<br /><br />LPC_I2S-&gt;RXBITRATE = 0;<br />LPC_I2S-&gt;RXRATE = 0;<br />I2S_SetBitRate(LPC_I2S,0,I2S_RX_MODE);<br /><br /><br /><br />for(i = 0; i &lt;0x1000000; i++); // delay<br /><br /><br />ret = Uda1380_Init(200000, 32000);<br />if(ret==0){<br />DEBUGOUT(&quot;Inicjalizacja kodek OK \r\n&quot;);<br />}else{<br />_DBD(ret);<br />}<br /><br />for(i = 0; i &lt;0x3000000; i++); // delay<br /><br /><br />    I2S_Start(LPC_I2S);<br /><br />    NVIC_EnableIRQ(I2S_IRQn);<br /><br />    while(1){<br /><br />    }<br /><br /><br />    return 0;<br />}<br /><br /><br /><br /><br /><br />void I2S_IRQHandler()<br />{<br /><br />uint32_t input = LPC_I2S-&gt;RXFIFO;<br /><br />_DBD32(input);<br />DEBUGOUT(&quot;\r\n&quot;);<br /><br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=515">paavo91</a> — 28 gru 2014, o 13:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tompul]]></name></author>
<updated>2014-10-24T14:13:09+01:00</updated>
<published>2014-10-24T14:13:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=100482#p100482</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=100482#p100482"/>
<title type="html"><![CDATA[Re: LPC4088 + UDA1380 , inicjalizacja kodeka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=100482#p100482"><![CDATA[
Spróbuj sobie poszukać w bibliotekach LPCopen oraz przykładach dla płytki Embedded Artists LPC4088 board. Bo tam właśnie jest taki układ.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=262">tompul</a> — 24 paź 2014, o 14:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[paavo91]]></name></author>
<updated>2014-10-23T13:56:38+01:00</updated>
<published>2014-10-23T13:56:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=100293#p100293</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=100293#p100293"/>
<title type="html"><![CDATA[Re: LPC4088 + UDA1380 , inicjalizacja kodeka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=100293#p100293"><![CDATA[
Zbadałem sprawę głębiej i to, że funkcja zwraca po starcie -1 to chyba nic strasznego. Na chwilę obecną nie mam pojęcia jak ugryźć to wszystko, żeby mieć czarno na białym: jak wysłać dźwięk do słuchawek oraz jak odebrać z mikrofonu. Będę wdzięczny za każdą pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=515">paavo91</a> — 23 paź 2014, o 13:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[paavo91]]></name></author>
<updated>2014-10-17T15:26:32+01:00</updated>
<published>2014-10-17T15:26:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=99420#p99420</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=99420#p99420"/>
<title type="html"><![CDATA[LPC4088 + UDA1380 , inicjalizacja kodeka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8852&amp;p=99420#p99420"><![CDATA[
Cześć wszystkim!<br /><br />Posiadam płytę uruchomieniową z LPC4088 na pokładzie oraz kodekiem UDA1380. Niestety nie moge się za to zabrać, gdyż jest problem już z samą inicjalizacją po I2C.<br /><br />Kod inicjalizujący:<br />[syntax=c]int32_t Uda1380_Init(uint32_t i2cClockFreq, uint32_t i2sClockFreq)<br />{<br />    int32_t ret;<br />uint8_t clk;<br /><br />// Config Pin for I2C_SDA and I2C_SCL of I2C0<br />// It's because the Uda1380 IC is linked to LPC177x_8x by I2C0 clearly<br />PINSEL_ConfigPin (5, 2, 5);<br />PINSEL_ConfigPin (5, 3, 5);<br /><br />I2C_Init(UDA1380_I2C, i2cClockFreq);<br /><br />/* Enable I2C1 operation */<br />I2C_Cmd(UDA1380_I2C, I2C_MASTER_MODE, ENABLE);<br /><br />/* Reset */<br />ret = Uda1380_WriteData(UDA1380_REG_L3, 0 );<br />if(ret != UDA1380_FUNC_OK)<br />return ret;<br /><br />    /* Write clock settings */<br />ret = Uda1380_WriteData(UDA1380_REG_I2S,0 );<br />if(ret != UDA1380_FUNC_OK)<br />return ret;<br /><br />#if UDA1380_SYSCLK_USED //Use SYSCLK<br />ret = Uda1380_WriteData(UDA1380_REG_EVALCLK, <br />       EVALCLK_DEC_EN | EVALCLK_DAC_EN | EVALCLK_INT_EN | EVALCLK_DAC_SEL_SYSCLK );<br />if(ret != UDA1380_FUNC_OK)<br />return ret;<br /><br />ret = Uda1380_WriteData(UDA1380_REG_PWRCTRL,<br />              PWR_PON_HP_EN | PWR_PON_DAC_EN | PWR_PON_BIAS_EN);<br />if(ret != UDA1380_FUNC_OK)<br />return ret;<br /><br />#else //Use WSPLL<br />if(i2sClockFreq &gt;= 6250 &amp;&amp; i2sClockFreq &lt; 12500)<br />clk = EVALCLK_WSPLL_SEL6_12K;<br />else if(i2sClockFreq &gt;= 12501 &amp;&amp; i2sClockFreq &lt; 25000)  <br />clk = EVALCLK_WSPLL_SEL12_25K;<br />else if(i2sClockFreq &gt;= 25001 &amp;&amp; i2sClockFreq &lt; 50000)<br />clk = EVALCLK_WSPLL_SEL25_50K;<br />else if(i2sClockFreq &gt;= 50001 &amp;&amp; i2sClockFreq &lt; 100000)<br />clk = EVALCLK_WSPLL_SEL50_100K;<br />else<br />clk= 0;<br /><br />ret = Uda1380_WriteData(UDA1380_REG_EVALCLK, <br />                 EVALCLK_DEC_EN | EVALCLK_DAC_EN | EVALCLK_INT_EN | EVALCLK_DAC_SEL_WSPLL | clk);<br />if(ret != UDA1380_FUNC_OK)<br />return ret;<br /><br />ret = Uda1380_WriteData(UDA1380_REG_PWRCTRL,<br />              PWR_PON_PLL_EN | PWR_PON_HP_EN | PWR_PON_DAC_EN | PWR_PON_BIAS_EN);<br />if(ret != UDA1380_FUNC_OK)<br />return ret;<br />#endif<br /><br />ret = Uda1380_Mute(FALSE);<br />    if(ret != UDA1380_FUNC_OK)<br />return ret;<br /><br />return UDA1380_FUNC_OK;<br />}[/syntax]<br /><br />Już na samym początku sprawdzam co zwraca ta funkcja po jej wykonaniu. Okazuje się, że zwraca -1, a powinna 0. Według schematu kodek jest podpięty właśnie pod te piny czyli 5.3 i 5.2.<br />Czy ktoś miał do czynienia z tym układem i potrafi mi pomóc go odpalić?<br /><br />Dzięki z góry  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=515">paavo91</a> — 17 paź 2014, o 15:26</p><hr />
]]></content>
</entry>
</feed>