<?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: i.MXRT1170: FlexSPI, how to detect DQS timeout? in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030753#M33239</link>
    <description>&lt;P&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/127931"&gt;@martin_lapis&lt;/a&gt; ,&lt;/P&gt;&lt;P&gt;it looks like that the timeout time can be controlled too. To do this, the MCR1[SEQWAIT] register must be used. The following information can be found about the register:&lt;/P&gt;&lt;P&gt;Command Sequence Wait&lt;BR /&gt;Sets wait time for command sequence. Command sequence execution times out and aborts after (SEQWAIT × 1024) serial root clock cycles. When this timeout occurs, if the interrupt is enabled (INTEN[SEQTIMEOUTEN]&amp;nbsp; = 1), an INTR[SEQTIMEOUT] interrupt is generated. Also, the arbitrator ignores AHB commands.&lt;BR /&gt;&lt;STRONG&gt;NOTE:&lt;/STRONG&gt; You cannot write 0 to this field.&lt;/P&gt;&lt;P&gt;In our case the maximum access time is about 20us and our serial root clock is 88MHz. With a SEQWAIT of 4 the timeout is set to (1/88MHz * 1024 * 4) = 46.5us.&lt;/P&gt;&lt;P&gt;In addition the INTEN[SEQTIMEOUTEN] will be set. Here we will be informed by the interrupt if a sequence is faulty.&lt;/P&gt;&lt;P&gt;Can you confirm the functionality of the MCR1[SEQWAIT] register?&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Michael&lt;/P&gt;</description>
    <pubDate>Mon, 20 Jan 2025 15:28:26 GMT</pubDate>
    <dc:creator>michael_fischer</dc:creator>
    <dc:date>2025-01-20T15:28:26Z</dc:date>
    <item>
      <title>i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2024614#M33135</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;under normal condition DQS is used for the read strobe by the CPU. The connected device provides the read strobe.&amp;nbsp;During communication SCLK and CS will be driven by the CPU. But if DQS fails from the connected device, SCLK will continue to be controlled by the CPU for a longer period of time and only later does the CPU abort the process.&lt;/P&gt;&lt;P&gt;Is it possible to set the time in which the CPU tries to maintain communication?&lt;/P&gt;&lt;P&gt;How can I determine that these errors have occurred in communication?&lt;/P&gt;&lt;P&gt;In our case the connected device is a FPGA, and we want to detect if there is an error in the communication.&lt;/P&gt;&lt;P&gt;I can provoke the error by approaching an area where the FPGA is not responding. But if I make a valid access again after that, FlexSPI from the CPU no longer responds. In this case I must reset the FlexSPI and setup again.&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Michael&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jan 2025 08:00:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2024614#M33135</guid>
      <dc:creator>michael_fischer</dc:creator>
      <dc:date>2025-01-09T08:00:11Z</dc:date>
    </item>
    <item>
      <title>Re: i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2026003#M33154</link>
      <description>&lt;P&gt;Unfortunately, this time is not adjustable. To determine the errors you might read the status registers. If DQS fails in timing it can be noticeable when an error in read/write is set.&lt;/P&gt;
&lt;P&gt;If this happens you can reduce the communication speed so reset of the module might be avoided.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Omar&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jan 2025 18:16:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2026003#M33154</guid>
      <dc:creator>Omar_Anguiano</dc:creator>
      <dc:date>2025-01-10T18:16:52Z</dc:date>
    </item>
    <item>
      <title>Re: i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2026517#M33163</link>
      <description>&lt;P&gt;Hello Omar,&lt;/P&gt;&lt;P&gt;but unfortunately I can't see any difference between a normal and a faulty transfer in the status registers. In both cases, the registers have the following values:&lt;/P&gt;&lt;P&gt;STS0 = 0x03&lt;BR /&gt;STS1 = 0x00&lt;BR /&gt;STS2 = 0x00&lt;/P&gt;&lt;P&gt;Or are there other registers I should look at here?&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Michael&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jan 2025 07:52:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2026517#M33163</guid>
      <dc:creator>michael_fischer</dc:creator>
      <dc:date>2025-01-13T07:52:15Z</dc:date>
    </item>
    <item>
      <title>Re: i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2029928#M33225</link>
      <description>&lt;P&gt;Unfortunately, there is no direct way for the device that the cause of the error is the DQS. Two possible errors due to the DQS is an error in AHB/IP on STS1 or a mismatch on the read/write values.&lt;/P&gt;
&lt;P&gt;Best&amp;nbsp; regards,&lt;BR /&gt;Omar&lt;/P&gt;</description>
      <pubDate>Fri, 17 Jan 2025 18:35:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2029928#M33225</guid>
      <dc:creator>Omar_Anguiano</dc:creator>
      <dc:date>2025-01-17T18:35:16Z</dc:date>
    </item>
    <item>
      <title>Re: i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030569#M33231</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/214553"&gt;@michael_fischer&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you attach content of INTR register as well? I am going to focus on IPCMDGE and AHBCMDGE values.&lt;/P&gt;
&lt;P&gt;I am afraid that detection of missing DQS strobe is not possible in Flexspi. But detection of some kind of AHB/IP timeout would be possible.&lt;/P&gt;
&lt;P&gt;Would that be solution in your case?&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jan 2025 10:10:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030569#M33231</guid>
      <dc:creator>martin_lapis</dc:creator>
      <dc:date>2025-01-20T10:10:25Z</dc:date>
    </item>
    <item>
      <title>Re: i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030601#M33232</link>
      <description>&lt;P&gt;Hello Martin,&lt;/P&gt;&lt;P&gt;thanks, this was a good hint. In case of an error the following extra bits was set in the INTR register:&lt;BR /&gt;- IPCMDERR&lt;BR /&gt;- SEQTIMEOUT&lt;/P&gt;&lt;P&gt;I just have to check when exactly these interrupts would come. I guess at the end of the cycle&lt;BR /&gt;if the 1170 has detected the error. I could measure that the access, CS, from the 1170 was only aborted after 5.9ms. If the interrupt comes only then, this is too late.&lt;/P&gt;&lt;P&gt;A normal read access can take up to 20us. I would try here if I can do a supervision this read access with a QTimer.&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Michael&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jan 2025 10:56:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030601#M33232</guid>
      <dc:creator>michael_fischer</dc:creator>
      <dc:date>2025-01-20T10:56:36Z</dc:date>
    </item>
    <item>
      <title>Re: i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030667#M33235</link>
      <description>&lt;P&gt;Hello Martin,&lt;/P&gt;&lt;P&gt;if I enable the following FlexSPI interrupt bits SEQTIMEOUT and IPCMDERR with the following code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;   FLEXSPI2-&amp;gt;INTR  = 0xFFFFFFFF;
   FLEXSPI2-&amp;gt;INTEN = FLEXSPI_INTEN_SEQTIMEOUTEN_MASK | FLEXSPI_INTEN_IPCMDERREN_MASK;
   EnableIRQ(FLEXSPI2_IRQn);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It takes about 760ms from the end of the faulty access, here CS goes high, to enter the FLEXSPI2 interrupt handler.&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Michael&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jan 2025 12:42:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030667#M33235</guid>
      <dc:creator>michael_fischer</dc:creator>
      <dc:date>2025-01-20T12:42:23Z</dc:date>
    </item>
    <item>
      <title>Re: i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030715#M33237</link>
      <description>The variable MCR1[SEQWAIT]can be used to reduce the 760ms.</description>
      <pubDate>Mon, 20 Jan 2025 14:29:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030715#M33237</guid>
      <dc:creator>michael_fischer</dc:creator>
      <dc:date>2025-01-20T14:29:08Z</dc:date>
    </item>
    <item>
      <title>Re: i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030753#M33239</link>
      <description>&lt;P&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/127931"&gt;@martin_lapis&lt;/a&gt; ,&lt;/P&gt;&lt;P&gt;it looks like that the timeout time can be controlled too. To do this, the MCR1[SEQWAIT] register must be used. The following information can be found about the register:&lt;/P&gt;&lt;P&gt;Command Sequence Wait&lt;BR /&gt;Sets wait time for command sequence. Command sequence execution times out and aborts after (SEQWAIT × 1024) serial root clock cycles. When this timeout occurs, if the interrupt is enabled (INTEN[SEQTIMEOUTEN]&amp;nbsp; = 1), an INTR[SEQTIMEOUT] interrupt is generated. Also, the arbitrator ignores AHB commands.&lt;BR /&gt;&lt;STRONG&gt;NOTE:&lt;/STRONG&gt; You cannot write 0 to this field.&lt;/P&gt;&lt;P&gt;In our case the maximum access time is about 20us and our serial root clock is 88MHz. With a SEQWAIT of 4 the timeout is set to (1/88MHz * 1024 * 4) = 46.5us.&lt;/P&gt;&lt;P&gt;In addition the INTEN[SEQTIMEOUTEN] will be set. Here we will be informed by the interrupt if a sequence is faulty.&lt;/P&gt;&lt;P&gt;Can you confirm the functionality of the MCR1[SEQWAIT] register?&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Michael&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jan 2025 15:28:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030753#M33239</guid>
      <dc:creator>michael_fischer</dc:creator>
      <dc:date>2025-01-20T15:28:26Z</dc:date>
    </item>
    <item>
      <title>Re: i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030858#M33244</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/214553"&gt;@michael_fischer&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Yes you are right. That is at least my understanding.&lt;BR /&gt;In MCR1.SEQTIMEOUT you set the maximum timeout the sequence of LUT commands must be finished. Otherwise the INTR[SEQTIMEOUT] is reported.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;I see your ref_clk (root_clk) is 88MHz. Can you share your DLLxCR settings?&lt;/P&gt;
&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jan 2025 20:59:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2030858#M33244</guid>
      <dc:creator>martin_lapis</dc:creator>
      <dc:date>2025-01-20T20:59:05Z</dc:date>
    </item>
    <item>
      <title>Re: i.MXRT1170: FlexSPI, how to detect DQS timeout?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2031196#M33250</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/127931"&gt;@martin_lapis&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;the DLLACR ist set to 0x00004900 that mean:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;DLLACR[DLLEN]        = 0
DLLACR[DLLRESET]     = 0
DLLACR[SLVDLYTRAGET] = 0
DLLACR[OVRDEN]       = 1
DLLACR[OVRDVAL]      = 36&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And our root clock will be set with:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;   CLOCK_ControlGate(kCLOCK_Flexspi2, kCLOCK_Off);
   CLOCK_SetRootClockMux(kCLOCK_Root_Flexspi2, kCLOCK_FLEXSPI2_ClockRoot_MuxSysPll2Out);

   /* Set clock to 528 / 6 = 88 MHz */
   CLOCK_SetRootClockDiv(kCLOCK_Root_Flexspi2, 6);

   CLOCK_ControlGate (kCLOCK_Flexspi2, kCLOCK_On);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Michael&lt;/P&gt;</description>
      <pubDate>Tue, 21 Jan 2025 07:41:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MXRT1170-FlexSPI-how-to-detect-DQS-timeout/m-p/2031196#M33250</guid>
      <dc:creator>michael_fischer</dc:creator>
      <dc:date>2025-01-21T07:41:47Z</dc:date>
    </item>
  </channel>
</rss>

