<?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 Timer triggers DMA transfer in MCX Microcontrollers</title>
    <link>https://community.nxp.com/t5/MCX-Microcontrollers/Timer-triggers-DMA-transfer/m-p/2411131#M5904</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm currently working with an MCXN947 microcontroller.&lt;/P&gt;&lt;P&gt;I'm trying to trigger a DMA transfer into a sample buffer via a CTIMER match interrupt.&lt;/P&gt;&lt;P&gt;The idea is to write into the sample buffer the state of a GPIO register (specifically the input values of some pins) via DMA at every x timer intervals (specifically every 10 us).&lt;/P&gt;&lt;P&gt;I can confirm that my GPIO pin is correctly configured as an input.&lt;/P&gt;&lt;P&gt;I can confirm that my timer is working correctly and triggering a match at every 10 us.&lt;/P&gt;&lt;P&gt;I can confirm that my DMA transfers are working correctly because the buffer gets filled up with values.&lt;/P&gt;&lt;P&gt;I can confirm that the source address (GPIO PDIR reg) is correctly set in the DMA configuration.&lt;/P&gt;&lt;P&gt;I can confirm that my destination address is also correctly set in the DMA configuration as it is always in between the start and end address of my buffer (meaning it increments and wraps around correctly).&lt;/P&gt;&lt;P&gt;But for some reason, the wrong values are being copied into the buffer. I can see in my debugger that the value of the register I'm trying to transfer is &lt;STRONG&gt;0x00020000&lt;/STRONG&gt; (pin 17 is high, the rest are low). However, my buffer is only being filled with &lt;STRONG&gt;0&lt;/STRONG&gt;s. It's a uint32_t type buffer of 512 elements initialized all at &lt;STRONG&gt;0xFF&lt;/STRONG&gt;. As the DMA transfers increment, the whole buffer&amp;nbsp;&lt;SPAN&gt;progressively&lt;/SPAN&gt;&amp;nbsp;gets filled with &lt;STRONG&gt;0x0&lt;/STRONG&gt; and not the expected value of&amp;nbsp;&lt;STRONG&gt;0x00020000&lt;/STRONG&gt; (which never changes - pin 17 is always high).&lt;/P&gt;&lt;P&gt;Do you have any idea what causes this? Or if I'm possibly missing something?&lt;/P&gt;&lt;P&gt;Here are my driver configurations:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Timer:&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;CTIMER0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;kCTIMER_Match_1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;CTIMER0_IRQn (triggering callback on interrupt is optional but I use it in my code for debugging purposes)&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;DMA:&lt;/STRONG&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;DMA0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;kDma0RequestMuxCtimer0M1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;kINPUTMUX_Ctimer0M1ToDma0Ch8Ena&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;EDMA_0_CH8_IRQn (triggering callback on interrupt is optional but I use it in my code for debugging purposes)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;GPIO:&lt;/STRONG&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;GPIO3&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;PORT3&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Pin 17&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Here are the states of the registers right before I start sampling&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_gpio3.png" style="width: 561px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395891i2C6CEB8FD5E70B9A/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_gpio3.png" alt="reg_gpio3.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_gpio3.png&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_port3.png" style="width: 560px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395892i5DE8BFBDDD96DEE3/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_port3.png" alt="reg_port3.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_port3.png&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_edma0_ch8.png" style="width: 549px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395893iA10DD845D2A929BA/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_edma0_ch8.png" alt="reg_edma0_ch8.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_edma0_ch8.png&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_inputmux0_dma.png" style="width: 574px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395890i1AF2E988B2EF9565/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_inputmux0_dma.png" alt="reg_inputmux0_dma.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_inputmux0_dma.png&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_inputmux0_timer.png" style="width: 534px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395894iF509743A815C3A25/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_inputmux0_timer.png" alt="reg_inputmux0_timer.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_inputmux0_timer.png&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_ctimer0.png" style="width: 528px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395895iB5A84BCDF496BF0C/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_ctimer0.png" alt="reg_ctimer0.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_ctimer0.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 03 Sep 2026 21:46:59 GMT</pubDate>
    <dc:creator>jabitbe2_jcplc</dc:creator>
    <dc:date>2026-09-03T21:46:59Z</dc:date>
    <item>
      <title>Timer triggers DMA transfer</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/Timer-triggers-DMA-transfer/m-p/2411131#M5904</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm currently working with an MCXN947 microcontroller.&lt;/P&gt;&lt;P&gt;I'm trying to trigger a DMA transfer into a sample buffer via a CTIMER match interrupt.&lt;/P&gt;&lt;P&gt;The idea is to write into the sample buffer the state of a GPIO register (specifically the input values of some pins) via DMA at every x timer intervals (specifically every 10 us).&lt;/P&gt;&lt;P&gt;I can confirm that my GPIO pin is correctly configured as an input.&lt;/P&gt;&lt;P&gt;I can confirm that my timer is working correctly and triggering a match at every 10 us.&lt;/P&gt;&lt;P&gt;I can confirm that my DMA transfers are working correctly because the buffer gets filled up with values.&lt;/P&gt;&lt;P&gt;I can confirm that the source address (GPIO PDIR reg) is correctly set in the DMA configuration.&lt;/P&gt;&lt;P&gt;I can confirm that my destination address is also correctly set in the DMA configuration as it is always in between the start and end address of my buffer (meaning it increments and wraps around correctly).&lt;/P&gt;&lt;P&gt;But for some reason, the wrong values are being copied into the buffer. I can see in my debugger that the value of the register I'm trying to transfer is &lt;STRONG&gt;0x00020000&lt;/STRONG&gt; (pin 17 is high, the rest are low). However, my buffer is only being filled with &lt;STRONG&gt;0&lt;/STRONG&gt;s. It's a uint32_t type buffer of 512 elements initialized all at &lt;STRONG&gt;0xFF&lt;/STRONG&gt;. As the DMA transfers increment, the whole buffer&amp;nbsp;&lt;SPAN&gt;progressively&lt;/SPAN&gt;&amp;nbsp;gets filled with &lt;STRONG&gt;0x0&lt;/STRONG&gt; and not the expected value of&amp;nbsp;&lt;STRONG&gt;0x00020000&lt;/STRONG&gt; (which never changes - pin 17 is always high).&lt;/P&gt;&lt;P&gt;Do you have any idea what causes this? Or if I'm possibly missing something?&lt;/P&gt;&lt;P&gt;Here are my driver configurations:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Timer:&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;CTIMER0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;kCTIMER_Match_1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;CTIMER0_IRQn (triggering callback on interrupt is optional but I use it in my code for debugging purposes)&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;DMA:&lt;/STRONG&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;DMA0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;kDma0RequestMuxCtimer0M1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;kINPUTMUX_Ctimer0M1ToDma0Ch8Ena&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;EDMA_0_CH8_IRQn (triggering callback on interrupt is optional but I use it in my code for debugging purposes)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;GPIO:&lt;/STRONG&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;GPIO3&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;PORT3&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Pin 17&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Here are the states of the registers right before I start sampling&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_gpio3.png" style="width: 561px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395891i2C6CEB8FD5E70B9A/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_gpio3.png" alt="reg_gpio3.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_gpio3.png&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_port3.png" style="width: 560px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395892i5DE8BFBDDD96DEE3/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_port3.png" alt="reg_port3.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_port3.png&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_edma0_ch8.png" style="width: 549px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395893iA10DD845D2A929BA/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_edma0_ch8.png" alt="reg_edma0_ch8.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_edma0_ch8.png&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_inputmux0_dma.png" style="width: 574px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395890i1AF2E988B2EF9565/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_inputmux0_dma.png" alt="reg_inputmux0_dma.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_inputmux0_dma.png&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_inputmux0_timer.png" style="width: 534px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395894iF509743A815C3A25/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_inputmux0_timer.png" alt="reg_inputmux0_timer.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_inputmux0_timer.png&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reg_ctimer0.png" style="width: 528px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395895iB5A84BCDF496BF0C/image-size/large?v=v2&amp;amp;px=999" role="button" title="reg_ctimer0.png" alt="reg_ctimer0.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;reg_ctimer0.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Sep 2026 21:46:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/Timer-triggers-DMA-transfer/m-p/2411131#M5904</guid>
      <dc:creator>jabitbe2_jcplc</dc:creator>
      <dc:date>2026-09-03T21:46:59Z</dc:date>
    </item>
    <item>
      <title>Re: Timer triggers DMA transfer</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/Timer-triggers-DMA-transfer/m-p/2411303#M5906</link>
      <description>&lt;P&gt;&lt;FONT face="times new roman,times"&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/253022"&gt;@jabitbe2_jcplc&lt;/a&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;P&gt;&lt;FONT face="times new roman,times"&gt;Could you please share your project with us? I would like to try to reproduce the issue and investigate it on my side.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="times new roman,times"&gt;Thank you.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="times new roman,times"&gt;Best Regards,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="times new roman,times"&gt;Alice&lt;/FONT&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 04 Sep 2026 10:29:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/Timer-triggers-DMA-transfer/m-p/2411303#M5906</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2026-09-04T10:29:09Z</dc:date>
    </item>
    <item>
      <title>Re: Timer triggers DMA transfer</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/Timer-triggers-DMA-transfer/m-p/2411377#M5907</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Due to IP I cannot send you my whole project. However, I can give you a c file that contains my setup in a little application. The GPIO, DMA and TIMER configurations are the same I have on my side. The file is in attachment.&lt;/P&gt;</description>
      <pubDate>Fri, 04 Sep 2026 14:55:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/Timer-triggers-DMA-transfer/m-p/2411377#M5907</guid>
      <dc:creator>jabitbe2_jcplc</dc:creator>
      <dc:date>2026-09-04T14:55:31Z</dc:date>
    </item>
  </channel>
</rss>

