<?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 S32K344 Hanging issue in S32K</title>
    <link>https://community.nxp.com/t5/S32K/S32K344-Hanging-issue/m-p/2304668#M56529</link>
    <description>&lt;P&gt;&lt;STRONG&gt;MCU:&lt;/STRONG&gt; S32K344&lt;BR /&gt;&lt;STRONG&gt;OS:&lt;/STRONG&gt; FreeRTOS&lt;BR /&gt;&lt;STRONG&gt;S32 Design Studio:&lt;/STRONG&gt; 3.4.3&lt;/P&gt;&lt;H3&gt;Issue: MCU Hang Due to I2C Write Blocking (No Timeout)&lt;/H3&gt;&lt;P&gt;Hi Team,&lt;/P&gt;&lt;P&gt;We are using a &lt;STRONG&gt;custom board based on the S32K344 MCU&lt;/STRONG&gt;. We are facing an issue where the &lt;STRONG&gt;MCU hangs during runtime&lt;/STRONG&gt; under certain I2C error conditions.&lt;/P&gt;&lt;P&gt;We have an &lt;STRONG&gt;IMU slave device connected via the I2C interface&lt;/STRONG&gt;. Occasionally, when:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The IMU is &lt;STRONG&gt;not powered&lt;/STRONG&gt;, or&lt;/LI&gt;&lt;LI&gt;An &lt;STRONG&gt;I2C write operation fails&lt;/STRONG&gt; (e.g., no ACK / bus stuck),&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;the I2C write API &lt;STRONG&gt;does not return or enter a timeout state&lt;/STRONG&gt;. As a result, the &lt;STRONG&gt;FreeRTOS task performing the I2C transaction gets stuck indefinitely&lt;/STRONG&gt;, which eventually causes the application to hang.&lt;/P&gt;&lt;H3&gt;Observations:&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;The issue occurs when the slave does not respond or the bus is held low.&lt;/LI&gt;&lt;LI&gt;The I2C driver appears to block waiting for a transfer completion.&lt;/LI&gt;&lt;LI&gt;No timeout or recovery mechanism is triggered at the RTOS or driver level.&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;Request for Support:&lt;/H3&gt;&lt;OL&gt;&lt;LI&gt;How can we &lt;STRONG&gt;add or enforce a timeout&lt;/STRONG&gt; for I2C transactions on S32K344?&lt;/LI&gt;&lt;LI&gt;Is there a recommended way to &lt;STRONG&gt;recover a stuck I2C bus&lt;/STRONG&gt; (SDA/SCL held low)?&lt;/LI&gt;&lt;LI&gt;What is the &lt;STRONG&gt;best practice for using I2C safely under FreeRTOS&lt;/STRONG&gt; on S32K3 devices?&lt;/LI&gt;&lt;LI&gt;Are there &lt;STRONG&gt;driver configurations or examples&lt;/STRONG&gt; from NXP that handle this scenario robustly?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Any guidance or references would be greatly appreciated.&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;BR /&gt;Vinay&lt;/P&gt;</description>
    <pubDate>Mon, 02 Feb 2026 13:10:28 GMT</pubDate>
    <dc:creator>vinaykl</dc:creator>
    <dc:date>2026-02-02T13:10:28Z</dc:date>
    <item>
      <title>S32K344 Hanging issue</title>
      <link>https://community.nxp.com/t5/S32K/S32K344-Hanging-issue/m-p/2304668#M56529</link>
      <description>&lt;P&gt;&lt;STRONG&gt;MCU:&lt;/STRONG&gt; S32K344&lt;BR /&gt;&lt;STRONG&gt;OS:&lt;/STRONG&gt; FreeRTOS&lt;BR /&gt;&lt;STRONG&gt;S32 Design Studio:&lt;/STRONG&gt; 3.4.3&lt;/P&gt;&lt;H3&gt;Issue: MCU Hang Due to I2C Write Blocking (No Timeout)&lt;/H3&gt;&lt;P&gt;Hi Team,&lt;/P&gt;&lt;P&gt;We are using a &lt;STRONG&gt;custom board based on the S32K344 MCU&lt;/STRONG&gt;. We are facing an issue where the &lt;STRONG&gt;MCU hangs during runtime&lt;/STRONG&gt; under certain I2C error conditions.&lt;/P&gt;&lt;P&gt;We have an &lt;STRONG&gt;IMU slave device connected via the I2C interface&lt;/STRONG&gt;. Occasionally, when:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The IMU is &lt;STRONG&gt;not powered&lt;/STRONG&gt;, or&lt;/LI&gt;&lt;LI&gt;An &lt;STRONG&gt;I2C write operation fails&lt;/STRONG&gt; (e.g., no ACK / bus stuck),&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;the I2C write API &lt;STRONG&gt;does not return or enter a timeout state&lt;/STRONG&gt;. As a result, the &lt;STRONG&gt;FreeRTOS task performing the I2C transaction gets stuck indefinitely&lt;/STRONG&gt;, which eventually causes the application to hang.&lt;/P&gt;&lt;H3&gt;Observations:&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;The issue occurs when the slave does not respond or the bus is held low.&lt;/LI&gt;&lt;LI&gt;The I2C driver appears to block waiting for a transfer completion.&lt;/LI&gt;&lt;LI&gt;No timeout or recovery mechanism is triggered at the RTOS or driver level.&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;Request for Support:&lt;/H3&gt;&lt;OL&gt;&lt;LI&gt;How can we &lt;STRONG&gt;add or enforce a timeout&lt;/STRONG&gt; for I2C transactions on S32K344?&lt;/LI&gt;&lt;LI&gt;Is there a recommended way to &lt;STRONG&gt;recover a stuck I2C bus&lt;/STRONG&gt; (SDA/SCL held low)?&lt;/LI&gt;&lt;LI&gt;What is the &lt;STRONG&gt;best practice for using I2C safely under FreeRTOS&lt;/STRONG&gt; on S32K3 devices?&lt;/LI&gt;&lt;LI&gt;Are there &lt;STRONG&gt;driver configurations or examples&lt;/STRONG&gt; from NXP that handle this scenario robustly?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Any guidance or references would be greatly appreciated.&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;BR /&gt;Vinay&lt;/P&gt;</description>
      <pubDate>Mon, 02 Feb 2026 13:10:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K344-Hanging-issue/m-p/2304668#M56529</guid>
      <dc:creator>vinaykl</dc:creator>
      <dc:date>2026-02-02T13:10:28Z</dc:date>
    </item>
    <item>
      <title>Re: S32K344 Hanging issue</title>
      <link>https://community.nxp.com/t5/S32K/S32K344-Hanging-issue/m-p/2314475#M56670</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/201565"&gt;@vinaykl&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You have a very old RTD.&lt;/P&gt;
&lt;P&gt;Is there a reason for it?&lt;/P&gt;
&lt;P&gt;There have been many bugs fixed between RTD 2.0.0 and current RTD 7.0.0.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I assume you use the blocking APIs of the I2C driver.&lt;/P&gt;
&lt;P&gt;Use the Async transfer API along with GetStatus() and timeout instead.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="danielmartynek_0-1770627240529.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/376059i537AB99EE45C2C86/image-size/medium?v=v2&amp;amp;px=400" role="button" title="danielmartynek_0-1770627240529.png" alt="danielmartynek_0-1770627240529.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="uiOutputText"&gt;If the Slave device keeps holding SDA low, it can be recovered, refer to I2C user manual:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="uiOutputText"&gt;Section 3.1.16 Bus clear&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="cuf-url forceOutputURL" title="" href="https://www.nxp.com/docs/en/user-guide/UM10204.pdf" target="_blank" rel="noopener noreferrer" data-value="https://www.nxp.com/docs/en/user-guide/UM10204.pdf"&gt;https://www.nxp.com/docs/en/user-guide/UM10204.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="uiOutputText"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="uiOutputText"&gt;The RTD drivers do not have APIs for the recovery.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="uiOutputText"&gt;An example is in this AN4803 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="uiOutputText"&gt;I2C restore function definition&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="cuf-url forceOutputURL" title="" href="https://www.nxp.com/docs/en/application-note/AN4803.pdf" target="_blank" rel="noopener noreferrer" data-value="https://www.nxp.com/docs/en/application-note/AN4803.pdf"&gt;https://www.nxp.com/docs/en/application-note/AN4803.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Daniel&lt;/P&gt;</description>
      <pubDate>Mon, 09 Feb 2026 08:55:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K344-Hanging-issue/m-p/2314475#M56670</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2026-02-09T08:55:21Z</dc:date>
    </item>
  </channel>
</rss>

