<?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: K20 ADC with DMA in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K20-ADC-with-DMA/m-p/174770#M1412</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Have you looked at DMA_ES, where EDMA reports the many ways one can get DMA setup wrong?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 18 Oct 2011 13:58:03 GMT</pubDate>
    <dc:creator>konrada</dc:creator>
    <dc:date>2011-10-18T13:58:03Z</dc:date>
    <item>
      <title>K20 ADC with DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K20-ADC-with-DMA/m-p/174769#M1411</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Folks,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;we have trouble to get the K20 configured correctly with ADC and DMA.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Our idea is quite easy explained: We want &amp;nbsp;i.e 10 consecutive samples of ADC0 (triggered by PDB) to be stored in 10 consecutive memory locations (32 bits) &amp;nbsp;by DMA. After the 10th conversion we want to get an interrupt to start some CPU action.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Our ADC is running properly and triggering by PDB also works fine.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We now have tried to get one sample to be converted and transferred by DMA for testing, but the DMA wil never be triggered...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The ADC configuration is&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; ADC0_CFG1 = ADC_CFG1_ADIV(0x3) | ADC_CFG1_MODE(0x1) | ADC_CFG1_ADICLK(0x1);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; ADC0_CFG2 = ADC_CFG2_ADLSTS(0x2);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; ADC0_SC2 = ADC_SC2_ADTRG_MASK | ADC_SC2_DMAEN_MASK ;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; ADC0_SC3 = &amp;nbsp;ADC_SC3_AVGS(0x0);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; ADC0_SC1A = /*ADC_SC1_AIEN_MASK |*/ ADC_SC1_ADCH(26);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; ADC0_SC1B = /*ADC_SC1_AIEN_MASK |*/ ADC_SC1_ADCH(26);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The DMA and DMA mux configuration is like that:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_DMAMUX_MASK;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; SIM_SCGC7 |= SIM_SCGC7_DMA_MASK;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_CR = 0;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_SERQ = 0x1;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_CERR = 0x40; //Clear all errors&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_DCHPRI0 = 0;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_SADDR = (uint32_t)&amp;amp;ADC0_RA;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_SOFF = 0;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_ATTR = 0x202; //Source and destination size 32bit, no modulo&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_NBYTES_MLNO = 0x4;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_NBYTES_MLOFFNO = 0x4;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_NBYTES_MLOFFYES = 0x4;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_SLAST = 0;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_DADDR = (uint32_t)&amp;amp;adc_dma;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_DOFF = 0x4;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_CITER_ELINKYES = 0x1;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_CITER_ELINKNO = 0x1;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_DLASTSGA = 0;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_BITER_ELINKYES = 0x1;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_BITER_ELINKNO = 0x1;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMA_TCD0_CSR = 0xA;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMAMUX_CHCFG0 = 0;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="book antiqua,palatino"&gt;&amp;nbsp; DMAMUX_CHCFG0 = 40 | 0x80; //Set DMA Channel0 to ADC0 and enable&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any idea, what we are doing wrong ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any support is welcome. Thanks in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards, Ulf&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Oct 2011 21:09:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K20-ADC-with-DMA/m-p/174769#M1411</guid>
      <dc:creator>knipsknaps</dc:creator>
      <dc:date>2011-10-17T21:09:31Z</dc:date>
    </item>
    <item>
      <title>Re: K20 ADC with DMA</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K20-ADC-with-DMA/m-p/174770#M1412</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Have you looked at DMA_ES, where EDMA reports the many ways one can get DMA setup wrong?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Oct 2011 13:58:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K20-ADC-with-DMA/m-p/174770#M1412</guid>
      <dc:creator>konrada</dc:creator>
      <dc:date>2011-10-18T13:58:03Z</dc:date>
    </item>
  </channel>
</rss>

