<?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>LPC MicrocontrollersのトピックLPC4370 High Speed Data Acquisition not running at 80MSPS</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-High-Speed-Data-Acquisition-not-running-at-80MSPS/m-p/942195#M37547</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am programming using an LPC4370 to acquire data at 80msps, I am transferring data using USB communication. Although I think I have set all the required ADCHS configurations, I still only get it to run at 40msps if I do FFT of the data after acquisition. Please let me know what I might have to do.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have attached a part of my codes, and I am using the libraries of NXPOpen.&amp;nbsp;&lt;/P&gt;&lt;PRE style="color: #000000;"&gt;void initialize_hsadc(void) {     LPC_ADCHS-&amp;gt;POWER_DOWN = 0;     LPC_ADCHS-&amp;gt;FLUSH = 1;     Chip_HSADC_Init(LPC_ADCHS);     LPC_ADCHS-&amp;gt;FIFO_CFG = (15 &amp;lt;&amp;lt; 1)                /* FIFO_LEVEL*/         | (1);                      /* PACKED_READ*/     LPC_ADCHS-&amp;gt;DSCR_STS = 1;      //NOTE: CH0     LPC_ADCHS-&amp;gt;DESCRIPTOR[0][0] = (1 &amp;lt;&amp;lt; 31)              /* UPDATE TABLE*/         | (1 &amp;lt;&amp;lt; 24)                       /* RESET_TIMER*/         | (0 &amp;lt;&amp;lt; 22)                       /* THRESH*/         | (0xA00 &amp;lt;&amp;lt; 8)                    /* MATCH*/         | (0x10 &amp;lt;&amp;lt; 6);                     /* BRANCH*/      //NOTE: CH1     LPC_ADCHS-&amp;gt;DESCRIPTOR[1][0] = (1 &amp;lt;&amp;lt; 31)              /* UPDATE TABLE*/         | (1 &amp;lt;&amp;lt; 24)                         /* RESET_TIMER*/         | (0 &amp;lt;&amp;lt; 22)                         /* THRESH*/         | (0x01 &amp;lt;&amp;lt; 8)                       /* MATCH*/         | (0x01 &amp;lt;&amp;lt; 6);                       /* BRANCH*/      LPC_ADCHS-&amp;gt;CONFIG= (0x90 &amp;lt;&amp;lt; 6)                 /* RECOVERY_TIME*/         | (0 &amp;lt;&amp;lt; 5)                       /* CHANNEL_ID_EN*/         | (0x01)                       /* TRIGGER_MASK*/;      const uint8_t kDGEC = 0xE;     LPC_ADCHS-&amp;gt;ADC_SPEED = (kDGEC &amp;lt;&amp;lt; 16)         | (kDGEC &amp;lt;&amp;lt; 12)         | (kDGEC &amp;lt;&amp;lt; 8)         | (kDGEC &amp;lt;&amp;lt; 4)         | (kDGEC);      //Didn't set threshold registers as they aren't used     LPC_ADCHS-&amp;gt;POWER_CONTROL = (1 &amp;lt;&amp;lt; 18)               /* BGAP*/         | (1 &amp;lt;&amp;lt; 17)                    /* POWER*/         | (1 &amp;lt;&amp;lt; 10)                      /* DC in ADC0*/         | (1 &amp;lt;&amp;lt; 4) | (0x4);                  /* CRS*/ }  void setup_dma(void){      //DMA settings     Chip_GPDMA_Init(LPC_GPDMA);                 // Initialize the GPDMA     LPC_GPDMA-&amp;gt;CONFIG =   0x01;     while( !(LPC_GPDMA-&amp;gt;CONFIG &amp;amp; 0x01) );      /* Clear all DMA interrupt and error flag */     LPC_GPDMA-&amp;gt;INTTCCLEAR = 0xFF;                 //clears channel terminal count interrupt     LPC_GPDMA-&amp;gt;INTERRCLR = 0xFF;                 //clears channel error interrupt.      LPC_GPDMA-&amp;gt;CH[DMA_CH].SRCADDR  =  (uint32_t) &amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0];     LPC_GPDMA-&amp;gt;CH[DMA_CH].DESTADDR = ((uint32_t) &amp;amp;sample);     LPC_GPDMA-&amp;gt;CH[DMA_CH].CONTROL  =  (TRANSFER_SIZE_DMA)            // transfer size         | (0x0  &amp;lt;&amp;lt; 12)                    // src burst size         | (0x0  &amp;lt;&amp;lt; 15)                    // dst burst size         | (0x2  &amp;lt;&amp;lt; 18)                      // src transfer width         | (0x2  &amp;lt;&amp;lt; 21)                      // dst transfer width         | (0x1  &amp;lt;&amp;lt; 24)                      // src AHB master select         | (0x0  &amp;lt;&amp;lt; 25)                      // dst AHB master select         | (0x0  &amp;lt;&amp;lt; 26)                      // src increment: 0, src address not increment after each trans         | (0x1  &amp;lt;&amp;lt; 27)                      // dst increment: 1, dst address     increment after each trans         | (0x1  &amp;lt;&amp;lt; 31);                     // terminal count interrupt enable bit: 1, enabled      LPC_GPDMA-&amp;gt;CH[DMA_CH].CONFIG   =  (0x1 &amp;lt;&amp;lt; 0)               // enable bit: 1 enable, 0 disable         | (HSADC_DMA_READ     &amp;lt;&amp;lt; 1)                  // src peripheral: set to 8   - HSADC         | (0x0 &amp;lt;&amp;lt; 6)                        // dst peripheral: no setting - memory         | (0x6 &amp;lt;&amp;lt; 11)                       // flow control: peripheral to memory - DMA control         | (0x1 &amp;lt;&amp;lt; 14)                       // IE  - interrupt error mask         | (0x1 &amp;lt;&amp;lt; 15)                       // ITC - terminal count interrupt mask         | (0x0 &amp;lt;&amp;lt; 16)                       // lock: when set, this bit enables locked transfer         | (0x1 &amp;lt;&amp;lt; 18);                      // Halt: 1, enable DMA requests; 0, ignore further src DMA req     LPC_GPDMA-&amp;gt;CH[DMA_CH].LLI =  0; }
&lt;PRE&gt;/* Bit Manipulation for USB communication */ for(int i = 0; i &amp;lt; a1; i++){ &amp;nbsp;&amp;nbsp;&amp;nbsp;sample_tx[2*i+1] = (uint8_t)(sample[i]&amp;gt;&amp;gt;8);    sample_tx[2*i] = (uint8_t)sample[i];
}  /* Sending the USB Data */  while (libusbdev_Connected()) { &amp;nbsp;&amp;nbsp;&amp;nbsp;libusbdev_Send(&amp;amp;sample_tx[0], sizeof(sample_tx)/sizeof(sample_tx[0])); &amp;nbsp;&amp;nbsp;&amp;nbsp;break;                    // Break out of the loop once the data is sent }

&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Thanks in advance!&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 19 Oct 2019 02:45:55 GMT</pubDate>
    <dc:creator>vxs187</dc:creator>
    <dc:date>2019-10-19T02:45:55Z</dc:date>
    <item>
      <title>LPC4370 High Speed Data Acquisition not running at 80MSPS</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-High-Speed-Data-Acquisition-not-running-at-80MSPS/m-p/942195#M37547</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am programming using an LPC4370 to acquire data at 80msps, I am transferring data using USB communication. Although I think I have set all the required ADCHS configurations, I still only get it to run at 40msps if I do FFT of the data after acquisition. Please let me know what I might have to do.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have attached a part of my codes, and I am using the libraries of NXPOpen.&amp;nbsp;&lt;/P&gt;&lt;PRE style="color: #000000;"&gt;void initialize_hsadc(void) {     LPC_ADCHS-&amp;gt;POWER_DOWN = 0;     LPC_ADCHS-&amp;gt;FLUSH = 1;     Chip_HSADC_Init(LPC_ADCHS);     LPC_ADCHS-&amp;gt;FIFO_CFG = (15 &amp;lt;&amp;lt; 1)                /* FIFO_LEVEL*/         | (1);                      /* PACKED_READ*/     LPC_ADCHS-&amp;gt;DSCR_STS = 1;      //NOTE: CH0     LPC_ADCHS-&amp;gt;DESCRIPTOR[0][0] = (1 &amp;lt;&amp;lt; 31)              /* UPDATE TABLE*/         | (1 &amp;lt;&amp;lt; 24)                       /* RESET_TIMER*/         | (0 &amp;lt;&amp;lt; 22)                       /* THRESH*/         | (0xA00 &amp;lt;&amp;lt; 8)                    /* MATCH*/         | (0x10 &amp;lt;&amp;lt; 6);                     /* BRANCH*/      //NOTE: CH1     LPC_ADCHS-&amp;gt;DESCRIPTOR[1][0] = (1 &amp;lt;&amp;lt; 31)              /* UPDATE TABLE*/         | (1 &amp;lt;&amp;lt; 24)                         /* RESET_TIMER*/         | (0 &amp;lt;&amp;lt; 22)                         /* THRESH*/         | (0x01 &amp;lt;&amp;lt; 8)                       /* MATCH*/         | (0x01 &amp;lt;&amp;lt; 6);                       /* BRANCH*/      LPC_ADCHS-&amp;gt;CONFIG= (0x90 &amp;lt;&amp;lt; 6)                 /* RECOVERY_TIME*/         | (0 &amp;lt;&amp;lt; 5)                       /* CHANNEL_ID_EN*/         | (0x01)                       /* TRIGGER_MASK*/;      const uint8_t kDGEC = 0xE;     LPC_ADCHS-&amp;gt;ADC_SPEED = (kDGEC &amp;lt;&amp;lt; 16)         | (kDGEC &amp;lt;&amp;lt; 12)         | (kDGEC &amp;lt;&amp;lt; 8)         | (kDGEC &amp;lt;&amp;lt; 4)         | (kDGEC);      //Didn't set threshold registers as they aren't used     LPC_ADCHS-&amp;gt;POWER_CONTROL = (1 &amp;lt;&amp;lt; 18)               /* BGAP*/         | (1 &amp;lt;&amp;lt; 17)                    /* POWER*/         | (1 &amp;lt;&amp;lt; 10)                      /* DC in ADC0*/         | (1 &amp;lt;&amp;lt; 4) | (0x4);                  /* CRS*/ }  void setup_dma(void){      //DMA settings     Chip_GPDMA_Init(LPC_GPDMA);                 // Initialize the GPDMA     LPC_GPDMA-&amp;gt;CONFIG =   0x01;     while( !(LPC_GPDMA-&amp;gt;CONFIG &amp;amp; 0x01) );      /* Clear all DMA interrupt and error flag */     LPC_GPDMA-&amp;gt;INTTCCLEAR = 0xFF;                 //clears channel terminal count interrupt     LPC_GPDMA-&amp;gt;INTERRCLR = 0xFF;                 //clears channel error interrupt.      LPC_GPDMA-&amp;gt;CH[DMA_CH].SRCADDR  =  (uint32_t) &amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0];     LPC_GPDMA-&amp;gt;CH[DMA_CH].DESTADDR = ((uint32_t) &amp;amp;sample);     LPC_GPDMA-&amp;gt;CH[DMA_CH].CONTROL  =  (TRANSFER_SIZE_DMA)            // transfer size         | (0x0  &amp;lt;&amp;lt; 12)                    // src burst size         | (0x0  &amp;lt;&amp;lt; 15)                    // dst burst size         | (0x2  &amp;lt;&amp;lt; 18)                      // src transfer width         | (0x2  &amp;lt;&amp;lt; 21)                      // dst transfer width         | (0x1  &amp;lt;&amp;lt; 24)                      // src AHB master select         | (0x0  &amp;lt;&amp;lt; 25)                      // dst AHB master select         | (0x0  &amp;lt;&amp;lt; 26)                      // src increment: 0, src address not increment after each trans         | (0x1  &amp;lt;&amp;lt; 27)                      // dst increment: 1, dst address     increment after each trans         | (0x1  &amp;lt;&amp;lt; 31);                     // terminal count interrupt enable bit: 1, enabled      LPC_GPDMA-&amp;gt;CH[DMA_CH].CONFIG   =  (0x1 &amp;lt;&amp;lt; 0)               // enable bit: 1 enable, 0 disable         | (HSADC_DMA_READ     &amp;lt;&amp;lt; 1)                  // src peripheral: set to 8   - HSADC         | (0x0 &amp;lt;&amp;lt; 6)                        // dst peripheral: no setting - memory         | (0x6 &amp;lt;&amp;lt; 11)                       // flow control: peripheral to memory - DMA control         | (0x1 &amp;lt;&amp;lt; 14)                       // IE  - interrupt error mask         | (0x1 &amp;lt;&amp;lt; 15)                       // ITC - terminal count interrupt mask         | (0x0 &amp;lt;&amp;lt; 16)                       // lock: when set, this bit enables locked transfer         | (0x1 &amp;lt;&amp;lt; 18);                      // Halt: 1, enable DMA requests; 0, ignore further src DMA req     LPC_GPDMA-&amp;gt;CH[DMA_CH].LLI =  0; }
&lt;PRE&gt;/* Bit Manipulation for USB communication */ for(int i = 0; i &amp;lt; a1; i++){ &amp;nbsp;&amp;nbsp;&amp;nbsp;sample_tx[2*i+1] = (uint8_t)(sample[i]&amp;gt;&amp;gt;8);    sample_tx[2*i] = (uint8_t)sample[i];
}  /* Sending the USB Data */  while (libusbdev_Connected()) { &amp;nbsp;&amp;nbsp;&amp;nbsp;libusbdev_Send(&amp;amp;sample_tx[0], sizeof(sample_tx)/sizeof(sample_tx[0])); &amp;nbsp;&amp;nbsp;&amp;nbsp;break;                    // Break out of the loop once the data is sent }

&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Thanks in advance!&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Oct 2019 02:45:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-High-Speed-Data-Acquisition-not-running-at-80MSPS/m-p/942195#M37547</guid>
      <dc:creator>vxs187</dc:creator>
      <dc:date>2019-10-19T02:45:55Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 High Speed Data Acquisition not running at 80MSPS</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-High-Speed-Data-Acquisition-not-running-at-80MSPS/m-p/942196#M37548</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Visweshwar,&lt;/P&gt;&lt;P&gt;How do you know that the ADC sampling frequency is 40MSPS instead of 80MSPS?&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;XiangJun Rong&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Oct 2019 09:28:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-High-Speed-Data-Acquisition-not-running-at-80MSPS/m-p/942196#M37548</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2019-10-21T09:28:16Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 High Speed Data Acquisition not running at 80MSPS</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-High-Speed-Data-Acquisition-not-running-at-80MSPS/m-p/942197#M37549</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I got the data and run fft on it, with sampling frequency as 40 and 80MHz. I got the right frequency response only at 40MHz.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Oct 2019 13:57:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-High-Speed-Data-Acquisition-not-running-at-80MSPS/m-p/942197#M37549</guid>
      <dc:creator>vxs187</dc:creator>
      <dc:date>2019-10-21T13:57:40Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 High Speed Data Acquisition not running at 80MSPS</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-High-Speed-Data-Acquisition-not-running-at-80MSPS/m-p/942198#M37550</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi again,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have any updates on this?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and regards,&amp;nbsp;&lt;/P&gt;&lt;P&gt;Vish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Oct 2019 16:41:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-High-Speed-Data-Acquisition-not-running-at-80MSPS/m-p/942198#M37550</guid>
      <dc:creator>vxs187</dc:creator>
      <dc:date>2019-10-23T16:41:26Z</dc:date>
    </item>
  </channel>
</rss>

