<?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>MQX Software SolutionsのトピックRe: MQX4.2 doesn't support slave I2C.</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477938#M15731</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark, &lt;SPAN class="jive-comment-meta font-color-meta-light"&gt;&lt;SPAN class="j-username-wrap"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;I Have A solution for this behavior,at least it works for me.&lt;/P&gt;&lt;P&gt;I defined a polled mode (not interrupt)&lt;/P&gt;&lt;P&gt;then, in function&amp;nbsp; "_ki2c_polled_rx_tx" there is a Do {} while() at the very beginning.&lt;/P&gt;&lt;P&gt;i changed it to:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;do&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;i2csr = i2c_ptr-&amp;gt;S;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (0 == (i2c_ptr-&amp;gt;C1 &amp;amp; I2C_C1_MST_MASK))&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (i == length)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;return i;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if ((io_info_ptr-&amp;gt;OPERATION &amp;amp; I2C_OPERATION_STARTED) &amp;amp;&amp;amp; (0 == (i2csr &amp;amp; I2C_S_BUSY_MASK)))&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* Addressed as slave */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (I2C_MODE_SLAVE == io_info_ptr-&amp;gt;MODE)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* Transmit requested */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (i2csr &amp;amp; I2C_S_SRW_MASK)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{ &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;io_info_ptr-&amp;gt;STATE = I2C_STATE_ADDRESSED_AS_SLAVE_TX;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (0 == (io_info_ptr-&amp;gt;OPERATION &amp;amp; I2C_OPERATION_READ))&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (i &amp;lt; length)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;i2c_ptr-&amp;gt;C1 |= I2C_C1_TX_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;i2c_ptr-&amp;gt;S |= I2C_S_IICIF_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;i2c_ptr-&amp;gt;D = *buffer++;&amp;nbsp;&amp;nbsp; /* transmit data */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;io_info_ptr-&amp;gt;STATISTICS.TX_PACKETS++;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;else&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;length = i;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;else&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;io_info_ptr-&amp;gt;OPERATION = 0;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;io_info_ptr-&amp;gt;RX_REQUEST = 0;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;io_info_ptr-&amp;gt;STATE = I2C_STATE_FINISHED;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;return i;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_time_delay(5);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;} while (0 == (i2csr &amp;amp; I2C_S_IICIF_MASK));&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;and then i recompiled the BSP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope It Helps&lt;/P&gt;&lt;P&gt;Adir&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 28 Jun 2016 09:15:33 GMT</pubDate>
    <dc:creator>cadir</dc:creator>
    <dc:date>2016-06-28T09:15:33Z</dc:date>
    <item>
      <title>MQX4.2 doesn't support slave I2C.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477933#M15726</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am using K20 running MQX4.2 connected to the I2C bus in slave mode (and always in slave mode).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My application requires the I2C master to send the device address and a control byte, the K20 responds with 20 bytes.&lt;/P&gt;&lt;P&gt;If the master sends an I2C write, the K20 sees the control byte (fread(..)).&amp;nbsp;&amp;nbsp; If the master sends I2C read, the K20 never returns from the fread(...) (I'm expecting the fread to return the Control byte) and thus never sends it data (fwrite(...)).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I suspect the MQX4.2 slave I2C code does not support the I2C control byte, which is base I2C protocol. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried to send the control byte in one I2C transaction (write), then the I2C read transaction.&amp;nbsp;&amp;nbsp; The read transaction doesn't work either.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;K20:&lt;/P&gt;&lt;P&gt;....ioctl(..., IO_IOCTL_I2C_SLAVE_MODE, ...);&lt;/P&gt;&lt;P&gt;...ioctl(...,IO_IOCTL_I2C_SET_STATION_ADDRESS);&lt;/P&gt;&lt;P&gt;...ioctl(...,IO_IOCTL_SET_RX_REQUEST, 1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop:&lt;/P&gt;&lt;P&gt;...fread(...); // looking for the control byte&lt;/P&gt;&lt;P&gt;...ioctrl(...., IO_IOCTL_I2C_STOP);&amp;nbsp; // done&lt;/P&gt;&lt;P&gt;...fwrite(...); // data to send to the master.&lt;/P&gt;&lt;P&gt;...ioctrl(...., IO_IOCTL_I2C_STOP);&amp;nbsp; // done&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 Feb 2016 14:52:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477933#M15726</guid>
      <dc:creator>markkalior</dc:creator>
      <dc:date>2016-02-22T14:52:55Z</dc:date>
    </item>
    <item>
      <title>Re: MQX4.2 doesn't support slave I2C.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477934#M15727</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark:&lt;/P&gt;&lt;P&gt;Not sure understand you correctly.&lt;/P&gt;&lt;P&gt;According to K20P100M72 reference manual, when master sends I2C read, master should send the address to slave, and the slave should prepare the data and write it to master. &lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_0.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/55109i7C455F6210C51BCC/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_0.png" alt="pastedImage_0.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;There is a I2C slave demo under this folder.&lt;/P&gt;&lt;P&gt;C:\Freescale\Freescale_MQX_4_2\mqx\examples\i2c_slave&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Feb 2016 08:25:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477934#M15727</guid>
      <dc:creator>danielchen</dc:creator>
      <dc:date>2016-02-26T08:25:29Z</dc:date>
    </item>
    <item>
      <title>Re: MQX4.2 doesn't support slave I2C.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477935#M15728</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I do believe I understand.&amp;nbsp;&amp;nbsp; I have looked at the project you called out, but didn't find it very helpful.&amp;nbsp;&amp;nbsp; It worked sometimes, but not all the time. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The MQX I2C driver (slave mode) sometimes to hangs up in an infinite loop waiting for the I2C to not be busy.&amp;nbsp;&amp;nbsp; But, the I2C bus is idle.&amp;nbsp;&amp;nbsp; Further, while sometimes, I can get some I2C communications, it proves unreliable.&amp;nbsp;&amp;nbsp; I suspect that the MQX controls (e.g. fopen, fread, fwrite, IOCTL) easily gets out of sync with the I2C bus.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would appreciate some insight on how to make the MQX controls work reliability (i.e. all the time).&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Mar 2016 16:03:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477935#M15728</guid>
      <dc:creator>markkalior</dc:creator>
      <dc:date>2016-03-01T16:03:16Z</dc:date>
    </item>
    <item>
      <title>Re: MQX4.2 doesn't support slave I2C.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477936#M15729</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your feedback about i2c slave demo. could you change the baud rate to see whether it works?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;There exists an alternative MQX i2c driver, if you would like to give it a try, check the application note AN4652 and a patch for it on &lt;/SPAN&gt;&lt;A class="jive-link-thread-small" data-containerid="2023" data-containertype="14" data-objectid="303746" data-objecttype="1" href="https://community.freescale.com/thread/303746#313948"&gt;https://community.freescale.com/message/313948#313948&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Mar 2016 14:50:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477936#M15729</guid>
      <dc:creator>danielchen</dc:creator>
      <dc:date>2016-03-03T14:50:53Z</dc:date>
    </item>
    <item>
      <title>Re: MQX4.2 doesn't support slave I2C.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477937#M15730</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, im curently experiencing the same issue as mark.&lt;/P&gt;&lt;P&gt;I recieve all data Ok.&lt;/P&gt;&lt;P&gt;When i get a "read" from the master something gets stuck in transmit routine, the data line gets from 1 to 0 and thats it.&lt;/P&gt;&lt;P&gt;Im using mqx 4.2 with the i2c slave example supplied by mqx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 29 May 2016 21:15:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477937#M15730</guid>
      <dc:creator>adirc</dc:creator>
      <dc:date>2016-05-29T21:15:55Z</dc:date>
    </item>
    <item>
      <title>Re: MQX4.2 doesn't support slave I2C.</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477938#M15731</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark, &lt;SPAN class="jive-comment-meta font-color-meta-light"&gt;&lt;SPAN class="j-username-wrap"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;I Have A solution for this behavior,at least it works for me.&lt;/P&gt;&lt;P&gt;I defined a polled mode (not interrupt)&lt;/P&gt;&lt;P&gt;then, in function&amp;nbsp; "_ki2c_polled_rx_tx" there is a Do {} while() at the very beginning.&lt;/P&gt;&lt;P&gt;i changed it to:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;do&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;i2csr = i2c_ptr-&amp;gt;S;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (0 == (i2c_ptr-&amp;gt;C1 &amp;amp; I2C_C1_MST_MASK))&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (i == length)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;return i;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if ((io_info_ptr-&amp;gt;OPERATION &amp;amp; I2C_OPERATION_STARTED) &amp;amp;&amp;amp; (0 == (i2csr &amp;amp; I2C_S_BUSY_MASK)))&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* Addressed as slave */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (I2C_MODE_SLAVE == io_info_ptr-&amp;gt;MODE)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;/* Transmit requested */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (i2csr &amp;amp; I2C_S_SRW_MASK)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{ &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;io_info_ptr-&amp;gt;STATE = I2C_STATE_ADDRESSED_AS_SLAVE_TX;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (0 == (io_info_ptr-&amp;gt;OPERATION &amp;amp; I2C_OPERATION_READ))&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;if (i &amp;lt; length)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;i2c_ptr-&amp;gt;C1 |= I2C_C1_TX_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;i2c_ptr-&amp;gt;S |= I2C_S_IICIF_MASK;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;i2c_ptr-&amp;gt;D = *buffer++;&amp;nbsp;&amp;nbsp; /* transmit data */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;io_info_ptr-&amp;gt;STATISTICS.TX_PACKETS++;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;else&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;length = i;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;else&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;{&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;io_info_ptr-&amp;gt;OPERATION = 0;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;io_info_ptr-&amp;gt;RX_REQUEST = 0;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;io_info_ptr-&amp;gt;STATE = I2C_STATE_FINISHED;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;return i;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;_time_delay(5);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;} while (0 == (i2csr &amp;amp; I2C_S_IICIF_MASK));&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;and then i recompiled the BSP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope It Helps&lt;/P&gt;&lt;P&gt;Adir&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Jun 2016 09:15:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-2-doesn-t-support-slave-I2C/m-p/477938#M15731</guid>
      <dc:creator>cadir</dc:creator>
      <dc:date>2016-06-28T09:15:33Z</dc:date>
    </item>
  </channel>
</rss>

