<?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>S32KのトピックRe: S32K IIC Communication Error Recovery</title>
    <link>https://community.nxp.com/t5/S32K/S32K-IIC-Communication-Error-Recovery/m-p/1619032#M21518</link>
    <description>&lt;P&gt;&lt;A href="mailto:Hi@qiu" target="_blank"&gt;Hi@qiu&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Yes, you can take a look at UM10204&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true" target="_self"&gt;https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Chapter:&lt;/P&gt;
&lt;P&gt;3.1.16 Bus clear&lt;BR /&gt;In the unlikely event where the clock (SCL) is stuck LOW, the preferential procedure is&lt;BR /&gt;to reset the bus using the HW reset signal if your I2C devices have HW reset inputs. If&lt;BR /&gt;the I2C devices do not have HW reset inputs, cycle power to the devices to activate the&lt;BR /&gt;mandatory internal Power-On Reset (POR) circuit.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;If the data line (SDA) is stuck LOW, the controller should send nine clock pulses. The&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;device that held the bus LOW should release it sometime within those nine clocks. If not,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;then use the HW reset or cycle power to clear the bus.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;you can try to set the SDA &amp;amp; SCL as GPIO ports, then wait for nine clocks, and then restore the two ports to I2C ports&lt;/P&gt;
&lt;P&gt;detail you can refer to this :&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com.cn/docs/en/application-note/AN4803.pdf" target="_self"&gt;https://www.nxp.com.cn/docs/en/application-note/AN4803.pdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;page 18:&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;tI2C_fault I2C_Restore(void)
{
 unsigned char tmp = 0;
 I2C_STOP_SIGNAL;
 I2C_DeInit();
 I2C_MASTER_SDA_PIN_AS_GPIO;
 I2C_MASTER_SDA_PIN_GPIO_HIGH_DRIVE;
 I2C_MASTER_SCL_PIN_AS_GPIO;
 I2C_MASTER_SDA_PIN_AS_OUT;
 I2C_MASTER_SDA_PIN_0;
 I2C_MASTER_SCL_PIN_AS_OUT;
 for(tmp = 0; tmp &amp;lt;9; tmp ++) // nine clock for data
 {
 I2C_MASTER_SCL_PIN_0;
 I2C_delay();
 I2C_MASTER_SCL_PIN_1;
 I2C_delay();
 }
 I2C_MASTER_SCL_PIN_0;
 I2C_MASTER_SDA_PIN_AS_OUT; //SDA pin set to output
 I2C_MASTER_SDA_PIN_1; //negative acknowledge
 I2C_delay();
 I2C_MASTER_SCL_PIN_1;
 I2C_delay();
 I2C_MASTER_SCL_PIN_0;
 I2C_delay();
 I2C_MASTER_SDA_PIN_0; //stop
 I2C_delay();
 I2C_MASTER_SCL_PIN_1;
 I2C_delay();

 I2C_MASTER_SDA_PIN_AS_IN;&lt;/LI-CODE&gt;
&lt;P&gt;Hope this works for you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 21 Mar 2023 08:51:42 GMT</pubDate>
    <dc:creator>Senlent</dc:creator>
    <dc:date>2023-03-21T08:51:42Z</dc:date>
    <item>
      <title>S32K IIC Communication Error Recovery</title>
      <link>https://community.nxp.com/t5/S32K/S32K-IIC-Communication-Error-Recovery/m-p/1618763#M21506</link>
      <description>&lt;P&gt;I use S32k146 chip.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I make an I2C communication error (SDA ,SCL short circuit).When the circuit works normally. The iic driver can recover from the error,and it will not communicate with lcd slaver any more ,And the i2c don't work.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Mar 2023 01:21:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K-IIC-Communication-Error-Recovery/m-p/1618763#M21506</guid>
      <dc:creator>qiu</dc:creator>
      <dc:date>2023-03-21T01:21:34Z</dc:date>
    </item>
    <item>
      <title>Re: S32K IIC Communication Error Recovery</title>
      <link>https://community.nxp.com/t5/S32K/S32K-IIC-Communication-Error-Recovery/m-p/1618815#M21508</link>
      <description>&lt;P&gt;&lt;A href="mailto:Hi@QIU" target="_blank"&gt;Hi@qiu&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Have you tried using an oscilloscope or logic analyzer to measure the SDA and SCL waveforms?&lt;/P&gt;
&lt;P&gt;If there is no problem with the master's transmission, then you should check whether the slave device has special recovery steps.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Mar 2023 03:17:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K-IIC-Communication-Error-Recovery/m-p/1618815#M21508</guid>
      <dc:creator>Senlent</dc:creator>
      <dc:date>2023-03-21T03:17:17Z</dc:date>
    </item>
    <item>
      <title>Re: S32K IIC Communication Error Recovery</title>
      <link>https://community.nxp.com/t5/S32K/S32K-IIC-Communication-Error-Recovery/m-p/1618817#M21509</link>
      <description>&lt;P&gt;Yes，i used&amp;nbsp;&lt;SPAN&gt;oscilloscope to measure the SDA and SCL waveform,&amp;nbsp;&amp;nbsp;&amp;nbsp;and the master did not&amp;nbsp; transmit any thing.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Does the S32K I2C have any recovery mechanism?&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Mar 2023 03:23:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K-IIC-Communication-Error-Recovery/m-p/1618817#M21509</guid>
      <dc:creator>qiu</dc:creator>
      <dc:date>2023-03-21T03:23:27Z</dc:date>
    </item>
    <item>
      <title>Re: S32K IIC Communication Error Recovery</title>
      <link>https://community.nxp.com/t5/S32K/S32K-IIC-Communication-Error-Recovery/m-p/1619032#M21518</link>
      <description>&lt;P&gt;&lt;A href="mailto:Hi@qiu" target="_blank"&gt;Hi@qiu&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Yes, you can take a look at UM10204&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true" target="_self"&gt;https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Chapter:&lt;/P&gt;
&lt;P&gt;3.1.16 Bus clear&lt;BR /&gt;In the unlikely event where the clock (SCL) is stuck LOW, the preferential procedure is&lt;BR /&gt;to reset the bus using the HW reset signal if your I2C devices have HW reset inputs. If&lt;BR /&gt;the I2C devices do not have HW reset inputs, cycle power to the devices to activate the&lt;BR /&gt;mandatory internal Power-On Reset (POR) circuit.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;If the data line (SDA) is stuck LOW, the controller should send nine clock pulses. The&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;device that held the bus LOW should release it sometime within those nine clocks. If not,&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;then use the HW reset or cycle power to clear the bus.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;you can try to set the SDA &amp;amp; SCL as GPIO ports, then wait for nine clocks, and then restore the two ports to I2C ports&lt;/P&gt;
&lt;P&gt;detail you can refer to this :&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com.cn/docs/en/application-note/AN4803.pdf" target="_self"&gt;https://www.nxp.com.cn/docs/en/application-note/AN4803.pdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;page 18:&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;tI2C_fault I2C_Restore(void)
{
 unsigned char tmp = 0;
 I2C_STOP_SIGNAL;
 I2C_DeInit();
 I2C_MASTER_SDA_PIN_AS_GPIO;
 I2C_MASTER_SDA_PIN_GPIO_HIGH_DRIVE;
 I2C_MASTER_SCL_PIN_AS_GPIO;
 I2C_MASTER_SDA_PIN_AS_OUT;
 I2C_MASTER_SDA_PIN_0;
 I2C_MASTER_SCL_PIN_AS_OUT;
 for(tmp = 0; tmp &amp;lt;9; tmp ++) // nine clock for data
 {
 I2C_MASTER_SCL_PIN_0;
 I2C_delay();
 I2C_MASTER_SCL_PIN_1;
 I2C_delay();
 }
 I2C_MASTER_SCL_PIN_0;
 I2C_MASTER_SDA_PIN_AS_OUT; //SDA pin set to output
 I2C_MASTER_SDA_PIN_1; //negative acknowledge
 I2C_delay();
 I2C_MASTER_SCL_PIN_1;
 I2C_delay();
 I2C_MASTER_SCL_PIN_0;
 I2C_delay();
 I2C_MASTER_SDA_PIN_0; //stop
 I2C_delay();
 I2C_MASTER_SCL_PIN_1;
 I2C_delay();

 I2C_MASTER_SDA_PIN_AS_IN;&lt;/LI-CODE&gt;
&lt;P&gt;Hope this works for you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Mar 2023 08:51:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K-IIC-Communication-Error-Recovery/m-p/1619032#M21518</guid>
      <dc:creator>Senlent</dc:creator>
      <dc:date>2023-03-21T08:51:42Z</dc:date>
    </item>
  </channel>
</rss>

