<?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: Periodical ADC offset jumps on Kinetis K02 in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Periodical-ADC-offset-jumps-on-Kinetis-K02/m-p/778472#M47362</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Xiangjun,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks for your support! I tried your suggestion along with a lot of other things but nothing helped. So I went back to the hardware and could finally trace it back to an issue with electromagnetic radiation. My initial instrument wasn't fast enough to show that... I fixed it in hardware now :smileyhappy:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;Adrian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 01 Dec 2017 17:11:38 GMT</pubDate>
    <dc:creator>adriankeil</dc:creator>
    <dc:date>2017-12-01T17:11:38Z</dc:date>
    <item>
      <title>Periodical ADC offset jumps on Kinetis K02</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Periodical-ADC-offset-jumps-on-Kinetis-K02/m-p/778470#M47360</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm using the MK02FN64VLH10 for a temperature regualtion and I get weird jumps in the ADC-value. The ADC-value&amp;nbsp;periodically jumps up and down about 600 lsb. It is not a peak but a permanent offset! The time in between these jumps is about 11h.&lt;/P&gt;&lt;P&gt;I also measured the voltage on the ADC externally and it's perfectly stable.&lt;/P&gt;&lt;P&gt;The ADC is configured using Processor Expert and Hardware Average is enabled. Every ms the COCO-bit is checked and if the ADC has finished the value is read (see code below).&lt;/P&gt;&lt;P&gt;Core Clock is 80MHz, Bus Clock is 40MHz.&lt;/P&gt;&lt;P&gt;It's also worth mentioning that the problem does not always appear. Sometimes it works just fine and after a reboot the problem starts to occur.&lt;/P&gt;&lt;P&gt;Does anyone has an idea by what this could be caused?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In adConv1.c:&lt;/P&gt;&lt;P&gt;const adc16_converter_config_t adConv1_InitConfig0 = {&lt;BR /&gt;&amp;nbsp; .lowPowerEnable = false,&lt;BR /&gt;&amp;nbsp; .clkDividerMode = kAdc16ClkDividerOf8,&lt;BR /&gt;&amp;nbsp; .longSampleTimeEnable = true,&lt;BR /&gt;&amp;nbsp; .resolution = kAdc16ResolutionBitOf16,&lt;BR /&gt;&amp;nbsp; .clkSrc = kAdc16ClkSrcOfBusClk,&lt;BR /&gt;&amp;nbsp; .asyncClkEnable = false,&lt;BR /&gt;&amp;nbsp; .highSpeedEnable = false,&lt;BR /&gt;&amp;nbsp; .longSampleCycleMode = kAdc16LongSampleCycleOf24,&lt;BR /&gt;&amp;nbsp; .hwTriggerEnable = false,&lt;BR /&gt;&amp;nbsp; .refVoltSrc = kAdc16RefVoltSrcOfValt,&lt;BR /&gt;&amp;nbsp; .continuousConvEnable = false,&lt;BR /&gt;&amp;nbsp; .dmaEnable = false,&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;const adc16_hw_average_config_t adcAverageConfig = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;.hwAverageEnable = true,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; .hwAverageCountMode = kAdc16HwAverageCountOf32,&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In main.c:&lt;/P&gt;&lt;P&gt;ADC16_DRV_ConfigHwAverage(FSL_ADCONV1,&amp;amp;adcAverageConfig);&lt;/P&gt;&lt;P&gt;ADC16_DRV_ConfigConvChn(FSL_ADCONV1,0,&amp;amp;TemperatureB);&lt;/P&gt;&lt;P&gt;for(;;)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(f1ms&amp;gt;=1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;f1ms = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADC_Type * base = g_adcBase[FSL_ADCONV1];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ( ADC16_HAL_GetChnConvCompletedFlag(base, 0) )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gAdcValue = ADC16_DRV_GetConvValueRAW(FSL_ADCONV1,0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADC16_DRV_ConfigConvChn(FSL_ADCONV1,0,&amp;amp;TemperatureB);&lt;BR /&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;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; //Rest of the code which has nothing to do with th ADC...&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However the periodic time seems to be dependant on the ADC-configuration. When I configured it to collect ADC-values much faster the periodic time was just 20min (no Hardware Average, rest of main as above):&lt;/P&gt;&lt;P&gt;const adc16_converter_config_t adConv1_InitConfig0 = {&lt;BR /&gt;&amp;nbsp; .lowPowerEnable = false,&lt;BR /&gt;&amp;nbsp; .clkDividerMode = kAdc16ClkDividerOf1,&lt;BR /&gt;&amp;nbsp; .longSampleTimeEnable = false,&lt;BR /&gt;&amp;nbsp; .resolution = kAdc16ResolutionBitOf16,&lt;BR /&gt;&amp;nbsp; .clkSrc = kAdc16ClkSrcOfAsynClk,&lt;BR /&gt;&amp;nbsp; .asyncClkEnable = false,&lt;BR /&gt;&amp;nbsp; .highSpeedEnable = true,&lt;BR /&gt;&amp;nbsp; .longSampleCycleMode = kAdc16LongSampleCycleOf4,&lt;BR /&gt;&amp;nbsp; .hwTriggerEnable = false,&lt;BR /&gt;&amp;nbsp; .refVoltSrc = kAdc16RefVoltSrcOfValt,&lt;BR /&gt;&amp;nbsp; .continuousConvEnable = false,&lt;BR /&gt;&amp;nbsp; .dmaEnable = false,&lt;BR /&gt;};&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Nov 2017 10:32:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Periodical-ADC-offset-jumps-on-Kinetis-K02/m-p/778470#M47360</guid>
      <dc:creator>adriankeil</dc:creator>
      <dc:date>2017-11-15T10:32:37Z</dc:date>
    </item>
    <item>
      <title>Re: Periodical ADC offset jumps on Kinetis K02</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Periodical-ADC-offset-jumps-on-Kinetis-K02/m-p/778471#M47361</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Adrian,&lt;/P&gt;&lt;P&gt;How about using the following code, in the code, the ADC is launched to convert, then wait by checking if the COCO bit is set.&lt;/P&gt;&lt;P&gt;I can not make sure if it is okay, anyway, pls have a try.&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;Xiangjun Rong&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In main.c:&lt;/P&gt;&lt;P&gt;ADC16_DRV_ConfigHwAverage(FSL_ADCONV1,&amp;amp;adcAverageConfig);&lt;/P&gt;&lt;P&gt;ADC16_DRV_ConfigConvChn(FSL_ADCONV1,0,&amp;amp;TemperatureB);&lt;/P&gt;&lt;P&gt;for(;;)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(f1ms&amp;gt;=1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;f1ms = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADC16_DRV_ConfigConvChn(FSL_ADCONV1,0,&amp;amp;TemperatureB);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADC_Type * base = g_adcBase[FSL_ADCONV1];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(! ADC16_HAL_GetChnConvCompletedFlag(base, 0) ) {}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gAdcValue = ADC16_DRV_GetConvValueRAW(FSL_ADCONV1,0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; //Rest of the code which has nothing to do with th ADC...&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Nov 2017 05:42:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Periodical-ADC-offset-jumps-on-Kinetis-K02/m-p/778471#M47361</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2017-11-17T05:42:20Z</dc:date>
    </item>
    <item>
      <title>Re: Periodical ADC offset jumps on Kinetis K02</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Periodical-ADC-offset-jumps-on-Kinetis-K02/m-p/778472#M47362</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Xiangjun,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks for your support! I tried your suggestion along with a lot of other things but nothing helped. So I went back to the hardware and could finally trace it back to an issue with electromagnetic radiation. My initial instrument wasn't fast enough to show that... I fixed it in hardware now :smileyhappy:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;Adrian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Dec 2017 17:11:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Periodical-ADC-offset-jumps-on-Kinetis-K02/m-p/778472#M47362</guid>
      <dc:creator>adriankeil</dc:creator>
      <dc:date>2017-12-01T17:11:38Z</dc:date>
    </item>
  </channel>
</rss>

