<?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: S32K148 - DMA for ENET 1588 Timers in S32K</title>
    <link>https://community.nxp.com/t5/S32K/S32K148-DMA-for-ENET-1588-Timers/m-p/897193#M4418</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp; Veronica,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"There is only one DMA request for all the timer channels" - so does it mean that if I have two timers in capture mode, each with different signal, then DMA request for both DMA channels will be triggered whenever any of the two captures takes place? I suppose I can configure the 2 DMA channels to use different timer registers for reading the captured timestamp. But how does triggering the right DMA channel work in this case?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Jakub&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 May 2019 09:42:46 GMT</pubDate>
    <dc:creator>jakub_mielczare</dc:creator>
    <dc:date>2019-05-07T09:42:46Z</dc:date>
    <item>
      <title>S32K148 - DMA for ENET 1588 Timers</title>
      <link>https://community.nxp.com/t5/S32K/S32K148-DMA-for-ENET-1588-Timers/m-p/897191#M4416</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;The s32k chip has 4x 1588 timer which can capture 1588 time when an external event (edge of an external signal) occurs.&lt;/P&gt;&lt;P&gt;As I understand, the captured timestamps can be read either via SW or by DMA.&lt;/P&gt;&lt;P&gt;Suppose I want to use DMA to read the timestamps and place them in a buffer. Suppose I want to use 2 timers, each of them for different event, and each serviced by different DMA channel. How do I configure each DMA channel to use the particular timer as a trigger source?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Jakub&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Apr 2019 11:41:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K148-DMA-for-ENET-1588-Timers/m-p/897191#M4416</guid>
      <dc:creator>jakub_mielczare</dc:creator>
      <dc:date>2019-04-16T11:41:09Z</dc:date>
    </item>
    <item>
      <title>Re: S32K148 - DMA for ENET 1588 Timers</title>
      <link>https://community.nxp.com/t5/S32K/S32K148-DMA-for-ENET-1588-Timers/m-p/897192#M4417</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Hello Jakub,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I recommend using S32&amp;nbsp;Design Studio for ARM together with the S32 SDK. You can start from the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: bold;"&gt;enet_loopback&lt;/STRONG&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;example and you will be able to configure the pins and the ENET timer through the graphical interface.&amp;nbsp;In order to&amp;nbsp;enable the DMA request for your timer channel, you will need to configure ENET and DMA as follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/80891i5616AC5EF5AE9411/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/80894i513C35721598E805/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;The code initialization sequence should look like this:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;&lt;STRONG style="font-family: 'courier new', courier, monospace; "&gt;uint32_t buffer[100];&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;&lt;STRONG style="font-family: 'courier new', courier, monospace; "&gt;ENET_DRV_Init(INST_ETHERNET1, &amp;amp;ethernet1_State, &amp;amp;ethernet1_InitConfig0, ethernet1_buffConfigArr0, ethernet1_MacAddr);&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;&lt;STRONG style="font-family: 'courier new', courier, monospace; "&gt;ENET_DRV_TimerInit(INST_ETHERNET1, &amp;amp;ethernet1_TimerInitConfig);&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;&lt;STRONG style="font-family: 'courier new', courier, monospace; "&gt;ENET_DRV_TimerEnableChannel(INST_ETHERNET1, 0U, &amp;amp;ethernet1_ChannelInitConfig0);&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;&lt;STRONG style="font-family: 'courier new', courier, monospace; "&gt;EDMA_DRV_Init(&amp;amp;dmaController1_State, &amp;amp;dmaController1_InitConfig0, edmaChnStateArray, edmaChnConfigArray, EDMA_CONFIGURED_CHANNELS_COUNT);&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;&lt;STRONG style="font-family: 'courier new', courier, monospace; "&gt;EDMA_DRV_ConfigMultiBlockTransfer(0U, EDMA_TRANSFER_PERIPH2MEM, (uint32_t)(&amp;amp;(ENET-&amp;gt;CHANNEL[0].TCCR)), (uint32_t)(buffer),&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;&lt;STRONG style="font-family: 'courier new', courier, monospace; "&gt;EDMA_TRANSFER_SIZE_4B, 4U, 100U, true);&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;&lt;STRONG style="font-family: 'courier new', courier, monospace; "&gt;EDMA_DRV_StartChannel(0U);&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;&lt;STRONG style="font-family: 'courier new', courier, monospace; "&gt;ENET_DRV_TimerStart(INST_ETHERNET1);&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is only one DMA request for all the timer channels.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Veronica&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Apr 2019 07:38:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K148-DMA-for-ENET-1588-Timers/m-p/897192#M4417</guid>
      <dc:creator>veronicavelciu</dc:creator>
      <dc:date>2019-04-25T07:38:01Z</dc:date>
    </item>
    <item>
      <title>Re: S32K148 - DMA for ENET 1588 Timers</title>
      <link>https://community.nxp.com/t5/S32K/S32K148-DMA-for-ENET-1588-Timers/m-p/897193#M4418</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp; Veronica,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"There is only one DMA request for all the timer channels" - so does it mean that if I have two timers in capture mode, each with different signal, then DMA request for both DMA channels will be triggered whenever any of the two captures takes place? I suppose I can configure the 2 DMA channels to use different timer registers for reading the captured timestamp. But how does triggering the right DMA channel work in this case?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Jakub&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 May 2019 09:42:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K148-DMA-for-ENET-1588-Timers/m-p/897193#M4418</guid>
      <dc:creator>jakub_mielczare</dc:creator>
      <dc:date>2019-05-07T09:42:46Z</dc:date>
    </item>
    <item>
      <title>Re: S32K148 - DMA for ENET 1588 Timers</title>
      <link>https://community.nxp.com/t5/S32K/S32K148-DMA-for-ENET-1588-Timers/m-p/897194#M4419</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Hello Jakub,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;The four timer channels are wired to a single DMA request, thus the DMA channel isn't able to distinguish which timer channel triggers the request.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Option 1: Use software interrupts to have the desired event identification.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Option 2: Use DMA if you wish to copy (any number of) timer channel registers to the desired buffer without direct event identification.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Best regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Alexandru&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 May 2019 15:04:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K148-DMA-for-ENET-1588-Timers/m-p/897194#M4419</guid>
      <dc:creator>alexb</dc:creator>
      <dc:date>2019-05-16T15:04:36Z</dc:date>
    </item>
  </channel>
</rss>

