<?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>Kinetis MicrocontrollersのトピックRe: When I use internal voltage reference my ADC bounces.</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426486#M24599</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Joseph,&lt;/P&gt;&lt;P&gt;Frankly speaking, I do not think your following code is correct:&lt;/P&gt;&lt;P&gt;&amp;nbsp; for(int i =0; i &amp;lt; ADC_TABLE_COUNT; i++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; U16 id = read_ADC_raw_value(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //id = (id * 1700 / 4096);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("ADC Table %d -&amp;gt;%d \n",i , id);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;As you know, before you call read_ADC_raw_value(i);, you have to know the ADC conversion is over. It is okay to call the read_ADC_raw_value(i); in ISR of ADC conversion completion. But if you call the read_ADC_raw_value(i); in main(), you have to start ADC conversion, then check the ADC status register to guarantee the conversion is over, and read ADC result.&lt;/P&gt;&lt;P&gt;Hope it can help you&lt;/P&gt;&lt;P&gt;Pls check the body of the read_ADC_raw_value(i); function to check if it polls the ADC status register.&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>Wed, 01 Jul 2015 06:54:14 GMT</pubDate>
    <dc:creator>xiangjun_rong</dc:creator>
    <dc:date>2015-07-01T06:54:14Z</dc:date>
    <item>
      <title>When I use internal voltage reference my ADC bounces.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426478#M24591</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;When I configure my K02 to use internal voltage reference I have a really noisy ADC. It can vary 100 on each reading. I have it configured for 12 bit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is my Internal reference configuration.&lt;/P&gt;&lt;P&gt;BW_VREF_SC_VREFEN(VREF_BASE, 1U)&lt;/P&gt;&lt;P&gt;BW_VREF_SC_MODE_LV(VREF_BASE, 1U)&lt;/P&gt;&lt;P&gt;BW_VREF_SC_ICOMPEN(VREF_BASE, 1U)&lt;/P&gt;&lt;P&gt;BW_VREF_SC_REGEN(VREF_BASE,1U)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is my ADC configuration.&lt;/P&gt;&lt;P&gt;//ADC Config for all channels&lt;/P&gt;&lt;P&gt;adc16_user_config_t adcUserConfig = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .intEnable = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .lowPowerEnable = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .clkDividerMode = kAdcClkDividerInputOf8,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .resolutionMode = kAdcResolutionBitOfSingleEndAs12,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .clkSrcMode = kAdcClkSrcOfBusClk,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .asyncClkEnable = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .highSpeedEnable = true,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .hwTriggerEnable = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .dmaEnable = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .refVoltSrcMode=&amp;nbsp;&amp;nbsp; //kAdcRefVoltSrcOfVref,&lt;/P&gt;&lt;P&gt;&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; kAdcRefVoltSrcOfValt,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .continuousConvEnable =false&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please Help!&lt;/P&gt;&lt;P&gt;I need to use the internal reference voltage&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Jun 2015 15:41:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426478#M24591</guid>
      <dc:creator>josephgundel</dc:creator>
      <dc:date>2015-06-24T15:41:10Z</dc:date>
    </item>
    <item>
      <title>Re: When I use internal voltage reference my ADC bounces.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426479#M24592</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Joseph,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you test the voltage of VREF_OUT pin? I suspect that the VREF module setting is incorrect.&lt;/P&gt;&lt;P&gt;Can you use the following code to set the Vref module?&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;VREF_SC=0xc0;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(VREF_SC&amp;amp;VREF_SC_VREFST_MASK)) {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VREF_SC=0xc2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm("nop"); //set a break point here and test the VREF_OUT pin, on the TWR_K60D100M, T1 pad&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it can help you.&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>Thu, 25 Jun 2015 04:20:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426479#M24592</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2015-06-25T04:20:04Z</dc:date>
    </item>
    <item>
      <title>Re: When I use internal voltage reference my ADC bounces.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426480#M24593</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This did not work. I cannot test the VREF_OUT pin because I am using the k2 32 pin package that does not have this pin broken out. I am trying to use this internal reference for the ADC. This did not help it is still very noisy.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Jun 2015 10:51:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426480#M24593</guid>
      <dc:creator>josephgundel</dc:creator>
      <dc:date>2015-06-25T10:51:52Z</dc:date>
    </item>
    <item>
      <title>Re: When I use internal voltage reference my ADC bounces.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426481#M24594</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Joseph,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you connect the ADC analog pin to&amp;nbsp; analog GND, is there much noise(I means that the ADC samples vary as you said)? The analog pin must be driven by a low impedance analog source. You can not float the analog pin to have a test.&lt;/P&gt;&lt;P&gt;If you still have noise, pls share your code so that I can test on my board, pls tell us the software tools and the part number of the processor.&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>Fri, 26 Jun 2015 06:59:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426481#M24594</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2015-06-26T06:59:59Z</dc:date>
    </item>
    <item>
      <title>Re: When I use internal voltage reference my ADC bounces.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426482#M24595</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I do have the analog pin connected to ground.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the MK02FN64VFM10 32pin package&lt;/P&gt;&lt;P&gt;I am doing the following to configure the internal VREF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp; VREF_SC = 0xc0;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(VREF_SC&amp;amp;VREF_SC_VREFST_MASK))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VREF_SC=0xc2;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I configure the adc by:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;adc16_user_config_t adcUserConfig = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .intEnable = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .lowPowerEnable = true,//false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .clkDividerMode = kAdcClkDividerInputOf8,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .resolutionMode = kAdcResolutionBitOfSingleEndAs12,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .clkSrcMode =&amp;nbsp; kAdcClkSrcOfBusClk,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .asyncClkEnable = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .highSpeedEnable = true,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .hwTriggerEnable = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .dmaEnable = false,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .refVoltSrcMode=&amp;nbsp; kAdcRefVoltSrcOfValt,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .continuousConvEnable =false&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;adc16_status_t status = ADC16_DRV_Init(ADC_INST, &amp;amp;adcUserConfig);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I read the adc by:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; for(int i =0; i &amp;lt; ADC_TABLE_COUNT; i++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; U16 id = read_ADC_raw_value(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //id = (id * 1700 / 4096);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("ADC Table %d -&amp;gt;%d \n",i , id);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Jun 2015 11:43:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426482#M24595</guid>
      <dc:creator>josephgundel</dc:creator>
      <dc:date>2015-06-26T11:43:23Z</dc:date>
    </item>
    <item>
      <title>Re: When I use internal voltage reference my ADC bounces.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426483#M24596</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joseph&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you solve the issue? I'm also using the same chip as you. MK02FN64VFM10. I using ext Vref by connecting Vdd to pin 7 in which connected to gnd via a 100nF cap. The ADC result that I got are not usable as the noise is too high, in range of hundreds. Tried ways n mean and different ADC configurations but to no avail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;P&gt;Soon Huat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Jun 2015 09:22:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426483#M24596</guid>
      <dc:creator>superhuat</dc:creator>
      <dc:date>2015-06-29T09:22:33Z</dc:date>
    </item>
    <item>
      <title>Re: When I use internal voltage reference my ADC bounces.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426484#M24597</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Turns out this package does not have an internal Voltage reference!.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have to use the external.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Jun 2015 17:16:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426484#M24597</guid>
      <dc:creator>josephgundel</dc:creator>
      <dc:date>2015-06-29T17:16:24Z</dc:date>
    </item>
    <item>
      <title>Re: When I use internal voltage reference my ADC bounces.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426485#M24598</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;yup, I'm using ext vref, but my adc result are very noisy. How about yours? Have you gotten some good adc results?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Jun 2015 01:04:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426485#M24598</guid>
      <dc:creator>superhuat</dc:creator>
      <dc:date>2015-06-30T01:04:40Z</dc:date>
    </item>
    <item>
      <title>Re: When I use internal voltage reference my ADC bounces.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426486#M24599</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Joseph,&lt;/P&gt;&lt;P&gt;Frankly speaking, I do not think your following code is correct:&lt;/P&gt;&lt;P&gt;&amp;nbsp; for(int i =0; i &amp;lt; ADC_TABLE_COUNT; i++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; U16 id = read_ADC_raw_value(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //id = (id * 1700 / 4096);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("ADC Table %d -&amp;gt;%d \n",i , id);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;As you know, before you call read_ADC_raw_value(i);, you have to know the ADC conversion is over. It is okay to call the read_ADC_raw_value(i); in ISR of ADC conversion completion. But if you call the read_ADC_raw_value(i); in main(), you have to start ADC conversion, then check the ADC status register to guarantee the conversion is over, and read ADC result.&lt;/P&gt;&lt;P&gt;Hope it can help you&lt;/P&gt;&lt;P&gt;Pls check the body of the read_ADC_raw_value(i); function to check if it polls the ADC status register.&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>Wed, 01 Jul 2015 06:54:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426486#M24599</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2015-07-01T06:54:14Z</dc:date>
    </item>
    <item>
      <title>Re: When I use internal voltage reference my ADC bounces.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426487#M24600</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That read_ADC_raw_value is a function I wrote. It handles averaging 16 samples and it does wait until conversion is done. Here it is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U16 read_ADC_raw_value(adc_channel_t channel)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; U16 val = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch(channel)&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case red_return:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case green_return:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case blue_return:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case white_return:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case light_id:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case flyback_temp:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case vbus:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case led_temp:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 16; i++)&amp;nbsp;&amp;nbsp;&amp;nbsp; //Average of 16 samples&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADC16_DRV_ConfigConvChn(ADC_INST, 0U, &amp;amp;adcChnConfig[channel]);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADC16_DRV_WaitConvDone(ADC_INST, 0U);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; val += ADC16_DRV_GetConvValueRAW(ADC_INST, 0U);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; val &amp;gt;&amp;gt;= 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return val;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Jul 2015 12:01:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/When-I-use-internal-voltage-reference-my-ADC-bounces/m-p/426487#M24600</guid>
      <dc:creator>josephgundel</dc:creator>
      <dc:date>2015-07-01T12:01:36Z</dc:date>
    </item>
  </channel>
</rss>

