<?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>Kinetis MicrocontrollersのトピックRe: I2C compentent stop bit control</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759528#M46292</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi gordon,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Please tell me what the chip you are using? Give me the part number.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Now, take KL25 as an example, the stop code in KSDK is:&lt;/P&gt;&lt;P&gt;status_t I2C_MasterStop(I2C_Type *base)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; status_t result = kStatus_Success;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t timeout = UINT16_MAX;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Issue the STOP command on the bus. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; base-&amp;gt;C1 &amp;amp;= ~(I2C_C1_MST_MASK | I2C_C1_TX_MASK | I2C_C1_TXAK_MASK);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until data transfer complete. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((base-&amp;gt;S &amp;amp; kI2C_BusBusyFlag) &amp;amp;&amp;amp; (--timeout))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (timeout == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = kStatus_I2C_Timeout;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Actually, you can check our SDK code, which can be download from this link:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://mcuxpresso.nxp.com/en/welcome" title="https://mcuxpresso.nxp.com/en/welcome"&gt;Welcome | MCUXpresso SDK Builder&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 05 Dec 2017 07:28:46 GMT</pubDate>
    <dc:creator>kerryzhou</dc:creator>
    <dc:date>2017-12-05T07:28:46Z</dc:date>
    <item>
      <title>I2C compentent stop bit control</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759527#M46291</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #222222; background-color: #ffffff;"&gt;I use i2c0 compentent,How can I control the stop bit,&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d;"&gt;I change "&lt;SPAN style="background-color: #ffffff;"&gt;LDD_I2C_SEND_STOP" to&amp;nbsp;&lt;/SPAN&gt;"LDD_I2C_NO_SEND_STOP" flag ,but only will sent out stop bit.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #3d3d3d;"&gt;Thanks!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; background-color: #ffffff;"&gt;code:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;uint8_t GI2C1_ReadAddress(uint8_t i2cAddr, uint8_t *memAddr, uint8_t memAddrSize, uint8_t *data, uint16_t dataSize)&lt;BR /&gt;{&lt;BR /&gt; uint8_t res = ERR_OK;&lt;/P&gt;&lt;P&gt;if (GI2C1_SelectSlave(i2cAddr)!=ERR_OK) {&lt;BR /&gt; return ERR_FAILED;&lt;BR /&gt; }&lt;BR /&gt; for(;;) { /* breaks */&lt;BR /&gt; if(memAddr!=NULL) { /* only if we want to send an address */&lt;BR /&gt; /* send device address and memory address */&lt;BR /&gt; GI2C1_deviceData.dataTransmittedFlg = FALSE;&lt;BR /&gt; res = CI2C1_MasterSendBlock(GI2C1_deviceData.handle, memAddr, memAddrSize, LDD_I2C_NO_SEND_STOP);&lt;BR /&gt; if (res!=ERR_OK) {&lt;BR /&gt; break; /* break for(;;) */&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; do { /* Wait until data is sent */&lt;BR /&gt; } while (!GI2C1_deviceData.dataTransmittedFlg);&lt;BR /&gt; /* receive data */&lt;BR /&gt; GI2C1_deviceData.dataReceivedFlg = FALSE;&lt;BR /&gt; res = CI2C1_MasterReceiveBlock(GI2C1_deviceData.handle, data, dataSize, &lt;STRONG&gt;LDD_I2C_NO_SEND_STOP);// LDD_I2C_SEND_STOP);&lt;/STRONG&gt;&lt;BR /&gt; if (res!=ERR_OK) {&lt;BR /&gt; break; /* break for(;;) */&lt;BR /&gt; }&lt;BR /&gt; do&lt;BR /&gt; { /* Wait until data is received */&lt;BR /&gt; } while (!GI2C1_deviceData.dataReceivedFlg);&lt;BR /&gt; break; /* break for(;;) */&lt;BR /&gt; } /* for(;;) */&lt;BR /&gt; if (GI2C1_UnselectSlave()!=ERR_OK) {&lt;BR /&gt; return ERR_FAILED;&lt;BR /&gt; }&lt;BR /&gt; return res;&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2017 10:34:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759527#M46291</guid>
      <dc:creator>gordongao</dc:creator>
      <dc:date>2017-12-04T10:34:57Z</dc:date>
    </item>
    <item>
      <title>Re: I2C compentent stop bit control</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759528#M46292</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi gordon,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Please tell me what the chip you are using? Give me the part number.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Now, take KL25 as an example, the stop code in KSDK is:&lt;/P&gt;&lt;P&gt;status_t I2C_MasterStop(I2C_Type *base)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; status_t result = kStatus_Success;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t timeout = UINT16_MAX;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Issue the STOP command on the bus. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; base-&amp;gt;C1 &amp;amp;= ~(I2C_C1_MST_MASK | I2C_C1_TX_MASK | I2C_C1_TXAK_MASK);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until data transfer complete. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((base-&amp;gt;S &amp;amp; kI2C_BusBusyFlag) &amp;amp;&amp;amp; (--timeout))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (timeout == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = kStatus_I2C_Timeout;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Actually, you can check our SDK code, which can be download from this link:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://mcuxpresso.nxp.com/en/welcome" title="https://mcuxpresso.nxp.com/en/welcome"&gt;Welcome | MCUXpresso SDK Builder&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Dec 2017 07:28:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759528#M46292</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2017-12-05T07:28:46Z</dc:date>
    </item>
    <item>
      <title>Re: I2C compentent stop bit control</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759529#M46293</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gordon,&lt;/P&gt;&lt;P&gt;you can use&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt;** ===================================================================&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Method&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp; GI2C1_ReadBlockGeneric (component GenericI2C)&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description :&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Read from the device a block with using additional control&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and flags.&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Parameters&amp;nbsp; :&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - DESCRIPTION&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Read buffer&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataSize&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Size of read buffer&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flagsSend&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - flags for the send transaction&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flagsStart&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Start flags&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flagsAck&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Acknowledge flags&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Returns&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;BR /&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Error code&lt;BR /&gt;** ===================================================================&lt;BR /&gt;*/&lt;BR /&gt;uint8_t GI2C1_ReadBlockGeneric(void* data, uint16_t dataSize, GI2C1_EnumSendFlags flags, GI2C1_EnumStartFlags flagsStart, GI2C1_EnumAckFlags flagsAck);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Which supports flags for sending. But currently this is only supported for software (bit banging I2C), not for the I2C_LDD.&lt;/P&gt;&lt;P&gt;If you would like to provide a contribution, I'm more than happy to include this into the driver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Erich&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Dec 2017 19:21:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759529#M46293</guid>
      <dc:creator>BlackNight</dc:creator>
      <dc:date>2017-12-05T19:21:59Z</dc:date>
    </item>
    <item>
      <title>Re: I2C compentent stop bit control</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759530#M46294</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much!, I am newer.&lt;/P&gt;&lt;P&gt;I use KL25demoboard.use&amp;nbsp;component "InternalI2C",It create code mask the&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;"&lt;/SPAN&gt;&lt;STRONG style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: bold; font-size: 14px;"&gt;LDD_I2C_NO_SEND_STOP" in receive function.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;My project use KL02. I could read different registers and don't send stop bit.When read over then send on stop bit?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Dec 2017 02:49:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759530#M46294</guid>
      <dc:creator>gordongao</dc:creator>
      <dc:date>2017-12-22T02:49:11Z</dc:date>
    </item>
    <item>
      <title>Re: I2C compentent stop bit control</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759531#M46295</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am use component to operate the I2C device.but is read one register all send a stop bit ,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Dec 2017 02:50:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-compentent-stop-bit-control/m-p/759531#M46295</guid>
      <dc:creator>gordongao</dc:creator>
      <dc:date>2017-12-22T02:50:51Z</dc:date>
    </item>
  </channel>
</rss>

