<?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 Manually enabling a FlexIO timer, but disabling on trigger in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Manually-enabling-a-FlexIO-timer-but-disabling-on-trigger/m-p/2057787#M33681</link>
    <description>&lt;P&gt;&lt;SPAN&gt;Suppose I have an external trigger signal A, and I want to create a signal B in response to that signal as follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Busdancer.jpeg.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/327161i3A69F8DF4D4EB168/image-size/large?v=v2&amp;amp;px=999" role="button" title="Busdancer.jpeg.png" alt="Busdancer.jpeg.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;At each point:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;Signal A goes low. I want to detect this and do some setup.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;After the desired setup, I want to manually set signal B low (through some currently unknown means).&lt;/LI&gt;&lt;LI&gt;Signal A goes high, and at the same time B should go high with as little latency as possible.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The approach that I tried at the moment is as follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;Signal A is put on one of the trigger pins on the RT1010, specifically on GPIO_AD_07.&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Initial configuration:&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;GPIO_AD_07 iomux is set as an input GPIO. Interrupt for falling edge is enabled and handler is implemented.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;A FlexIO timer is set to enable with FLEXIO1_TRIGGER_IN0 (XBAR1_OUT00) as trigger. This timer is set up to control signal B, mirroring the trigger signal.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;XBAR1_IN01 (LOGIC_HIGH) is selected for XBAR1_OUT00.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;In the event that signal A goes low:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;Interrupt handler for GPIO_AD_07 triggers.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;In the interrupt handler, GPIO_AD_07 iomux is set to XBAR1_INOUT3. The GPR6 register is configured to select XBAR1_IN03.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;XBAR1_IN01 (LOGIC_HIGH) is replaced with XBAR1_IN03 for XBAR1_OUT00.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;However, this does not work. Signal B remains high even as signal A changes. I’ve verified that if the following are set from the very beginning:&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;GPIO_AD_07 iomux set to XBAR1_IN03.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;FLEXIO1_TRIGGER_IN0 (XBAR1_OUT00) set to XBAR1_IN03.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;Signal B, which is controlled with said timer, mirrors Signal A with around 0.5-1.5 cycle latency due to pin synchronization as mentioned in the reference manual’s FlexIO chapter. So at least I know my timer config is correct.&lt;BR /&gt;&lt;BR /&gt;Why is this approach not working? Are there other approaches you can recommend?&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 07 Mar 2025 11:09:21 GMT</pubDate>
    <dc:creator>powerfeatherdev</dc:creator>
    <dc:date>2025-03-07T11:09:21Z</dc:date>
    <item>
      <title>Manually enabling a FlexIO timer, but disabling on trigger</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Manually-enabling-a-FlexIO-timer-but-disabling-on-trigger/m-p/2057787#M33681</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Suppose I have an external trigger signal A, and I want to create a signal B in response to that signal as follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Busdancer.jpeg.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/327161i3A69F8DF4D4EB168/image-size/large?v=v2&amp;amp;px=999" role="button" title="Busdancer.jpeg.png" alt="Busdancer.jpeg.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;At each point:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;Signal A goes low. I want to detect this and do some setup.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;After the desired setup, I want to manually set signal B low (through some currently unknown means).&lt;/LI&gt;&lt;LI&gt;Signal A goes high, and at the same time B should go high with as little latency as possible.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The approach that I tried at the moment is as follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;Signal A is put on one of the trigger pins on the RT1010, specifically on GPIO_AD_07.&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Initial configuration:&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;GPIO_AD_07 iomux is set as an input GPIO. Interrupt for falling edge is enabled and handler is implemented.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;A FlexIO timer is set to enable with FLEXIO1_TRIGGER_IN0 (XBAR1_OUT00) as trigger. This timer is set up to control signal B, mirroring the trigger signal.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;XBAR1_IN01 (LOGIC_HIGH) is selected for XBAR1_OUT00.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;In the event that signal A goes low:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;Interrupt handler for GPIO_AD_07 triggers.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;In the interrupt handler, GPIO_AD_07 iomux is set to XBAR1_INOUT3. The GPR6 register is configured to select XBAR1_IN03.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;XBAR1_IN01 (LOGIC_HIGH) is replaced with XBAR1_IN03 for XBAR1_OUT00.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;However, this does not work. Signal B remains high even as signal A changes. I’ve verified that if the following are set from the very beginning:&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;GPIO_AD_07 iomux set to XBAR1_IN03.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;FLEXIO1_TRIGGER_IN0 (XBAR1_OUT00) set to XBAR1_IN03.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;Signal B, which is controlled with said timer, mirrors Signal A with around 0.5-1.5 cycle latency due to pin synchronization as mentioned in the reference manual’s FlexIO chapter. So at least I know my timer config is correct.&lt;BR /&gt;&lt;BR /&gt;Why is this approach not working? Are there other approaches you can recommend?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Mar 2025 11:09:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Manually-enabling-a-FlexIO-timer-but-disabling-on-trigger/m-p/2057787#M33681</guid>
      <dc:creator>powerfeatherdev</dc:creator>
      <dc:date>2025-03-07T11:09:21Z</dc:date>
    </item>
    <item>
      <title>Re: Manually enabling a FlexIO timer, but disabling on trigger</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Manually-enabling-a-FlexIO-timer-but-disabling-on-trigger/m-p/2058130#M33682</link>
      <description>&lt;P&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/243693"&gt;@powerfeatherdev&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;In order to see if the xbar is correctly configurated, could you confirm if the xbar interrupt has been trigger? You can put a flag or a breakpoint inside the IRQ.&lt;BR /&gt;Also, in the chapter 4.5 called "XBAR Resource Assignments" you can see the xbar assignment to each peripheral. Please confirm that the xbar is correctly configurated.&lt;BR /&gt;Our i.MX RT1010 SDK sadly does not contain any example for this module, but the RT1020 SDK does. I would highly recommend you to refer to this this example in order to know how configure it.&lt;BR /&gt;BR&lt;BR /&gt;Habib &lt;/P&gt;</description>
      <pubDate>Fri, 07 Mar 2025 21:45:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Manually-enabling-a-FlexIO-timer-but-disabling-on-trigger/m-p/2058130#M33682</guid>
      <dc:creator>Habib_MS</dc:creator>
      <dc:date>2025-03-07T21:45:03Z</dc:date>
    </item>
  </channel>
</rss>

