<?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: Lpc1769 ADC+USB+SSP in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1769-ADC-USB-SSP/m-p/575280#M22232</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ranaya on Fri Jun 22 09:27:35 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you Mr.Hero :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Yes that was the silly mistake. User manual helped me to configure the IO. Btw can u tell me what would be the effect of USB, adc and ssp interrupts if executed same time ? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank You&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 02:26:44 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T02:26:44Z</dc:date>
    <item>
      <title>Lpc1769 ADC+USB+SSP</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1769-ADC-USB-SSP/m-p/575278#M22230</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ranaya on Fri Jun 22 04:37:52 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;hello every1....&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; While doing some experiments with ADC and USB, I added an ADC code to the usb cdc code. My main objective is sampling some analogs after configuring the device(a usb datalogger) via usb. I think both adc and usb use interrupt handling. But in my adc code I use polling method.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;int main (void) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; DSTATUS stat;
&amp;nbsp;&amp;nbsp;&amp;nbsp; FIL * fpp ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; BYTE&amp;nbsp; Float_STR[10] ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; char comnd[64];
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;FIODIR = 0x00400000;/* P2.xx defined as Outputs */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;FIOCLR = 0x00400000;

&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemClockUpdate();
&amp;nbsp;&amp;nbsp;&amp;nbsp; VCOM_Init();

&amp;nbsp;&amp;nbsp;&amp;nbsp; ADCInit(ADC_CLK); //problem here !!!
&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_Init();
&amp;nbsp;&amp;nbsp;&amp;nbsp; //init_ssp();
&amp;nbsp;&amp;nbsp;&amp;nbsp; delayMs(0,500) ;

&amp;nbsp;&amp;nbsp;&amp;nbsp; //stat = disk_initialize(0);
&amp;nbsp;&amp;nbsp;&amp;nbsp; //res = f_mount(0, &amp;amp;Fatfs[0]);
&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_Connect(TRUE);

&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!USB_Configuration) ;

&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB2Usb(comnd);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(comnd[1]=='k'){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;FIOSET = 0x00400000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(j = 1000000; j &amp;gt; 0; j--);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;FIOCLR = 0x00400000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comnd[2]='2';
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&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; delayMs(0,500);
&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; /*for(j=0;j&amp;lt;4;j++){
&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_WriteEP(CDC_DEP_IN, (unsigned char *)&amp;amp;comnd[0], hu);
&amp;nbsp;&amp;nbsp;&amp;nbsp; delayMs(0,1000);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

if((res = f_open(&amp;amp;File, "data.txt", FA_OPEN_EXISTING | FA_READ | FA_WRITE)) == 0){
&amp;nbsp;&amp;nbsp;&amp;nbsp; fpp = &amp;amp;File ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //res = f_read(&amp;amp;File, buffer, sizeof(buffer), &amp;amp;br);
&amp;nbsp;&amp;nbsp;&amp;nbsp; res = f_lseek(&amp;amp;File, fpp-&amp;gt;fsize);
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(j=0;j&amp;lt;2;j++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MuxOp(comnd[j]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprintf(Float_STR,"%3.2f\r\n",adc);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res = f_write(&amp;amp;File,Float_STR,(BYTE)strlen(Float_STR),&amp;amp;btw);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delayMs(0,5) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; //print new line
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; res = f_close(&amp;amp;File);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }*/


}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;after the adc initialization, device not enumerates in pc side !!! &lt;SPAN class="lia-unicode-emoji" title=":disappointed_face:"&gt;&lt;LI-EMOJI id="lia_disappointed-face" title=":disappointed_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt; I only use adc polling. What could be the mistake ? Do I need to re enable interrupts? I need to write adc readings to sd card. So can all ssp, usb and adc be executed same time ?? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank You&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:26:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1769-ADC-USB-SSP/m-p/575278#M22230</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:26:43Z</dc:date>
    </item>
    <item>
      <title>Re: Lpc1769 ADC+USB+SSP</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1769-ADC-USB-SSP/m-p/575279#M22231</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Fri Jun 22 05:26:21 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;What's your P1.30 :confused:&amp;nbsp; VBUS or AD0.4 ?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:26:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1769-ADC-USB-SSP/m-p/575279#M22231</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:26:44Z</dc:date>
    </item>
    <item>
      <title>Re: Lpc1769 ADC+USB+SSP</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1769-ADC-USB-SSP/m-p/575280#M22232</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ranaya on Fri Jun 22 09:27:35 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you Mr.Hero :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Yes that was the silly mistake. User manual helped me to configure the IO. Btw can u tell me what would be the effect of USB, adc and ssp interrupts if executed same time ? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank You&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:26:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1769-ADC-USB-SSP/m-p/575280#M22232</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:26:44Z</dc:date>
    </item>
    <item>
      <title>Re: Lpc1769 ADC+USB+SSP</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1769-ADC-USB-SSP/m-p/575281#M22233</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Fri Jun 22 11:40:45 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: ranaya&lt;/STRONG&gt;&lt;BR /&gt;... the effect of USB, adc and ssp interrupts if executed same time&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If they have the same interrupt priority: Tail chaining&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;See: &lt;/SPAN&gt;&lt;A href="http://"&gt;http://www.arm.com/files/pdf/IntroToCortex-M3.pdf&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;The NVIC supports nesting (stacking) of interrupts, allowing an interrupt to be serviced earlier by exerting higher [COLOR=Red]priority[/COLOR]. It also supports dynamic reprioritisation of interrupts. Priority levels can be changed by software during run time. Interrupts that are being serviced are blocked from further activation until the interrupt service routine is completed, so their priority can be changed without risk of accidental re-entry. In the case of back-to-back interrupts, traditional systems would repeat the complete state save and restore cycle twice, resulting in higher latency. The Cortex-M3 processor simplifies moving between active and pending interrupts by implementing[COLOR=Red] tail-chaining[/COLOR] technology in the NVIC hardware. Tailchaining achieves much lower latency by replacing serial stack pop and push actions that normally take over 30 clock cycles with a simple 6 cycle instruction fetch. The processor state is automatically saved on interrupt entry, and restored on interrupt exit, in fewer cycles than a software implementation, significantly enhancing performance in sub-100MHz systems.&lt;/SPAN&gt;&lt;HR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:26:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1769-ADC-USB-SSP/m-p/575281#M22233</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:26:45Z</dc:date>
    </item>
  </channel>
</rss>

