<?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 LPC1549 ADC Timer Sample Problems in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1549-ADC-Timer-Sample-Problems/m-p/513918#M424</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by samedtopal on Wed Mar 30 05:39:03 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi to all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;my name is Samed. A freind and me, we have a project with the lpc1549. We have to use the ADC to get the ultrasonic value from the sensor. We use the timer0 to activate the ADC0. We use only the timer interrupt to start a new conversation and the overrun bit to get feedback, that a conversation is finished. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But the problem is, that our ultrasonic signal has a frequency of 40kHz. We want to sample with 240kHz. But we can not configurate the ADC to do that. We are not sure with which frequency we sample the signal. The sampled signal (example signal = sinus 1kHz) has 19 or 20 samples per period. And now if we calculate backwards, so we can see that the sample frequency is not 240kHz. (n=fs/fc). It is only 19 or 20kHz.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What we do wrong?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here the configuration of the ADC:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Setup ADC for 12-bit mode and normal power */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_Init(LPC_ADC0, 0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Setup for maximum ADC clock rate */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_SetClockRate(LPC_ADC0, ADC_MAX_SAMPLE_RATE);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Use higher voltage trim for both ADCs */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_SetTrim(LPC_ADC0, ADC_TRIM_VRANGE_HIGHV);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// We use channel 1 becouse channel 0 ist slowlier&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_SetupSequencer(LPC_ADC0, ADC_SEQA_IDX,ADC_SEQ_CTRL_CHANSEL(1));&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Disables pullups/pulldowns and disable digital mode */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 8, (IOCON_MODE_INACT | IOCON_DIGMODE_EN));&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Assign ADC0_0 to PIO0_8 via SWM (fixed pin) */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_SWM_EnableFixedPin(SWM_FIXED_ADC0_0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Need to do a calibration after initialization and trim */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_StartCalibration(LPC_ADC0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while (!(Chip_ADC_IsCalibrationDone(LPC_ADC0))) {}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Clear all pending interrupts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_ClearFlags(LPC_ADC0, Chip_ADC_GetFlags(LPC_ADC0));&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Enable sequencers */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_EnableSequencer(LPC_ADC0, ADC_SEQA_IDX);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//---------- Timer initialisation ------------ &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// initialize pwm timer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_MRT_Init();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Timer für den ADC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_MRT_CH_T *ADCTimer;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ADCTimer= Chip_MRT_GetRegPtr(1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// enable interrupt for the ADC timer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;NVIC_EnableIRQ(MRT_IRQn);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// fire timer interrupt for ADC with 2*ultrasonic frequency&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;&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;&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; (240kHz)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_MRT_SetInterval(ADCTimer, (Chip_Clock_GetSystemClockRate() / (2*ADC_FREQUENCY)) | MRT_INTVAL_LOAD);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// single shot timer interrupt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_MRT_SetMode(ADCTimer, MRT_MODE_ONESHOT);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// clear pending interrupt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_MRT_IntClear(ADCTimer);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_MRT_SetDisabled(ADCTimer);&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:09:43 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:09:43Z</dc:date>
    <item>
      <title>LPC1549 ADC Timer Sample Problems</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1549-ADC-Timer-Sample-Problems/m-p/513918#M424</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by samedtopal on Wed Mar 30 05:39:03 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi to all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;my name is Samed. A freind and me, we have a project with the lpc1549. We have to use the ADC to get the ultrasonic value from the sensor. We use the timer0 to activate the ADC0. We use only the timer interrupt to start a new conversation and the overrun bit to get feedback, that a conversation is finished. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But the problem is, that our ultrasonic signal has a frequency of 40kHz. We want to sample with 240kHz. But we can not configurate the ADC to do that. We are not sure with which frequency we sample the signal. The sampled signal (example signal = sinus 1kHz) has 19 or 20 samples per period. And now if we calculate backwards, so we can see that the sample frequency is not 240kHz. (n=fs/fc). It is only 19 or 20kHz.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What we do wrong?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here the configuration of the ADC:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Setup ADC for 12-bit mode and normal power */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_Init(LPC_ADC0, 0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Setup for maximum ADC clock rate */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_SetClockRate(LPC_ADC0, ADC_MAX_SAMPLE_RATE);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Use higher voltage trim for both ADCs */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_SetTrim(LPC_ADC0, ADC_TRIM_VRANGE_HIGHV);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// We use channel 1 becouse channel 0 ist slowlier&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_SetupSequencer(LPC_ADC0, ADC_SEQA_IDX,ADC_SEQ_CTRL_CHANSEL(1));&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Disables pullups/pulldowns and disable digital mode */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 8, (IOCON_MODE_INACT | IOCON_DIGMODE_EN));&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Assign ADC0_0 to PIO0_8 via SWM (fixed pin) */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_SWM_EnableFixedPin(SWM_FIXED_ADC0_0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Need to do a calibration after initialization and trim */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_StartCalibration(LPC_ADC0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while (!(Chip_ADC_IsCalibrationDone(LPC_ADC0))) {}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Clear all pending interrupts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_ClearFlags(LPC_ADC0, Chip_ADC_GetFlags(LPC_ADC0));&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Enable sequencers */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_ADC_EnableSequencer(LPC_ADC0, ADC_SEQA_IDX);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//---------- Timer initialisation ------------ &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// initialize pwm timer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_MRT_Init();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Timer für den ADC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_MRT_CH_T *ADCTimer;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ADCTimer= Chip_MRT_GetRegPtr(1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// enable interrupt for the ADC timer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;NVIC_EnableIRQ(MRT_IRQn);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// fire timer interrupt for ADC with 2*ultrasonic frequency&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;&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;&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; (240kHz)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_MRT_SetInterval(ADCTimer, (Chip_Clock_GetSystemClockRate() / (2*ADC_FREQUENCY)) | MRT_INTVAL_LOAD);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// single shot timer interrupt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_MRT_SetMode(ADCTimer, MRT_MODE_ONESHOT);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// clear pending interrupt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_MRT_IntClear(ADCTimer);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chip_MRT_SetDisabled(ADCTimer);&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:09:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1549-ADC-Timer-Sample-Problems/m-p/513918#M424</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:09:43Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1549 ADC Timer Sample Problems</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1549-ADC-Timer-Sample-Problems/m-p/513919#M425</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;bump&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 19 Jun 2016 01:06:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1549-ADC-Timer-Sample-Problems/m-p/513919#M425</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-19T01:06:38Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1549 ADC Timer Sample Problems</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1549-ADC-Timer-Sample-Problems/m-p/513920#M426</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;bump!&lt;/P&gt;&lt;P&gt;I have the same use case.&lt;/P&gt;&lt;P&gt;What is the advantage of a fast 2MS/s ADC, if you can't do continuous sampling with this sample rate?&lt;/P&gt;&lt;P&gt;There should be an NXP appNote on this frequently occurring topic!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jun 2016 08:51:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1549-ADC-Timer-Sample-Problems/m-p/513920#M426</guid>
      <dc:creator>martinlorenz</dc:creator>
      <dc:date>2016-06-27T08:51:30Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1549 ADC Timer Sample Problems</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1549-ADC-Timer-Sample-Problems/m-p/513921#M427</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello.&lt;/P&gt;&lt;P&gt;Have you tried to set the ADC conversion rate again after calibration?&lt;/P&gt;&lt;P&gt;Calibration uses a very slow conversion rate and does not restore the previous value. Perhaps that was the reason...&lt;/P&gt;&lt;P&gt;Good luck, Martin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Jul 2016 06:39:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1549-ADC-Timer-Sample-Problems/m-p/513921#M427</guid>
      <dc:creator>martinlorenz</dc:creator>
      <dc:date>2016-07-18T06:39:21Z</dc:date>
    </item>
  </channel>
</rss>

