<?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: Kinetis K65F DMA wakeup in WAIT mode</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-K65F-DMA-wakeup-in-WAIT-mode/m-p/490153#M30233</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have done a test with eDMA transfer example of KSDK V2.0.&lt;/P&gt;&lt;P&gt;I could found when eDMA finish the DMA transfer interrupt will wake up the core from WAIT mode.&lt;/P&gt;&lt;P&gt;Please check my attached code, I am using SW3 button of TWR-K65F180M to trigger eDMA transfer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Ma Hui&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 29 Feb 2016 07:45:23 GMT</pubDate>
    <dc:creator>Hui_Ma</dc:creator>
    <dc:date>2016-02-29T07:45:23Z</dc:date>
    <item>
      <title>Kinetis K65F DMA wakeup in WAIT mode</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-K65F-DMA-wakeup-in-WAIT-mode/m-p/490152#M30232</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using a K65M180M and have a requirement to put the device in WAIT mode and the DMA must wake-up the MCU after the transfer is complete.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The MCU uses the PDB to trigger the ADC and the DMA stores the ADC results. The DMA works fine in RUN mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My problem is that the DMA does not wake-up the MCU once the transfer has completed. I tested the PDB and ADC interrupt and they wake-up the MCU but the DMA interrupt does not wait up the MCU. I have the SW3 pin interrupt enabled, on the TWR-K65F180M board, and it wakes the MCU it as well. I have tried using the SW3 to wake the MCU and retrigger the DMA but it still does not wake-up from WAIT mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can't find any examples that use the DMA in WAIT mode and I have been through the following documents and can't see why it will not work:&lt;/P&gt;&lt;P&gt;KQRUG&lt;/P&gt;&lt;P&gt;AN4590&lt;/P&gt;&lt;P&gt;AN4822&lt;/P&gt;&lt;P&gt;AN4447&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone give me advice as to why it may not wake-up?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PS. This it the procedure I use at the moment to get the MCU into WAIT mode:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SMC_SetPowerModeProtection(SMC, kSMC_AllowPowerModeAll);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Configure the PDB and the ADC here&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure DMAMUX */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX_Init(DMAMUX0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX_SetSource(DMAMUX0, 0, kDmaRequestMux0ADC1 &amp;amp; 0xFF);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX_EnableChannel(DMAMUX0, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure EDMA one shot transfer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_GetDefaultConfig(&amp;amp;userConfig);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_Init(DMA0, &amp;amp;userConfig);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_CreateHandle(&amp;amp;g_EDMA_Handle, DMA0, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_SetCallback(&amp;amp;g_EDMA_Handle, EDMA_Callback, NULL);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_PrepareTransfer(&amp;amp;transferConfig, (void *)ADC16_GetDataRegisterAddress(DEMO_ADC16_BASE), sizeof(uint16_t), &amp;amp;AudioBuffer[ActiveBuffer], sizeof(int16_t),&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sizeof(int16_t), AUDIO_BUFFER_SIZE * 2, kEDMA_PeripheralToMemory);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_SubmitTransfer(&amp;amp;g_EDMA_Handle, &amp;amp;transferConfig);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for debug console output finished. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!(kUART_TransmissionCompleteFlag &amp;amp; UART_GetStatusFlags((UART_Type *)BOARD_DEBUG_UART_BASEADDR)))&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp; DbgConsole_Deinit();&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; * Set pin for current leakage.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Debug console RX pin: Set to pinmux to disable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Debug console TX pin: Don't need to change.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&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; PORT_SetPinMux(DEBUG_CONSOLE_RX_PORT, DEBUG_CONSOLE_RX_PIN, kPORT_PinDisabledOrAnalog);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SW3 interrupt enable&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_SetPinInterruptConfig(APP_WAKEUP_BUTTON_PORT, APP_WAKEUP_BUTTON_GPIO_PIN, APP_WAKEUP_BUTTON_IRQ_TYPE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Start the DMA&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_StartTransfer(&amp;amp;g_EDMA_Handle);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; // Switch to WAIT mode&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SMC_SetPowerModeWait(SMC);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MCU never wakes up unless I press SW3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Charles&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Feb 2016 07:54:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-K65F-DMA-wakeup-in-WAIT-mode/m-p/490152#M30232</guid>
      <dc:creator>charlesklibbe</dc:creator>
      <dc:date>2016-02-26T07:54:08Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis K65F DMA wakeup in WAIT mode</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-K65F-DMA-wakeup-in-WAIT-mode/m-p/490153#M30233</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have done a test with eDMA transfer example of KSDK V2.0.&lt;/P&gt;&lt;P&gt;I could found when eDMA finish the DMA transfer interrupt will wake up the core from WAIT mode.&lt;/P&gt;&lt;P&gt;Please check my attached code, I am using SW3 button of TWR-K65F180M to trigger eDMA transfer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Ma Hui&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Feb 2016 07:45:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-K65F-DMA-wakeup-in-WAIT-mode/m-p/490153#M30233</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2016-02-29T07:45:23Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis K65F DMA wakeup in WAIT mode</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-K65F-DMA-wakeup-in-WAIT-mode/m-p/490154#M30234</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ma Hui,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found the problem and it was that the ADC had triggered before the DMA was started. I was using the LowPowerMode() function&amp;nbsp; to do the power mode switching from another example and the PRINTF's were taking longer than the the first ADC sample as I only started the DMA just before going to sleep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Charles&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Mar 2016 13:59:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-K65F-DMA-wakeup-in-WAIT-mode/m-p/490154#M30234</guid>
      <dc:creator>charlesklibbe</dc:creator>
      <dc:date>2016-03-09T13:59:56Z</dc:date>
    </item>
  </channel>
</rss>

