<?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: FreeRTOS LCP55S69 i2c slave pull clock low in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-LCP55S69-i2c-slave-pull-clock-low/m-p/922179#M36735</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/zoltan.balogh.eth@gmail.com"&gt;zoltan.balogh.eth@gmail.com&lt;/A&gt;‌,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This delay is called clock streching and the I2C module of the LPC55S6x is capable of do it without software intervention, for example, this is a capture of the I2C signal using the freertos_i2x example from the SDK:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/81780i4BA9A2AF0988BE52/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Adding a delay between transmissions will not affect the communication and the clock will stay low until&amp;nbsp;the next transmission:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/81812i1CB541F4F78B4961/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Best Regard,&lt;/P&gt;&lt;P&gt;Alexis Andalon&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 18 Jul 2019 16:30:05 GMT</pubDate>
    <dc:creator>Alexis_A</dc:creator>
    <dc:date>2019-07-18T16:30:05Z</dc:date>
    <item>
      <title>FreeRTOS LCP55S69 i2c slave pull clock low</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-LCP55S69-i2c-slave-pull-clock-low/m-p/922178#M36734</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have FreeRTOS on LPC55S69 and use i2c in salve mode. As far as I know when master initiates a read over i2c and data on the slave is not ready, then the slave can pull low the clock until data gets ready then release it and let the master read it. &lt;BR /&gt;Is there a way to do this in FreeRTOS?&lt;/P&gt;&lt;P&gt;Is this possible when i2c slave NonBlocking mode is used?&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Zoltan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Jul 2019 09:52:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-LCP55S69-i2c-slave-pull-clock-low/m-p/922178#M36734</guid>
      <dc:creator>zoltan_balogh_e</dc:creator>
      <dc:date>2019-07-16T09:52:47Z</dc:date>
    </item>
    <item>
      <title>Re: FreeRTOS LCP55S69 i2c slave pull clock low</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-LCP55S69-i2c-slave-pull-clock-low/m-p/922179#M36735</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/zoltan.balogh.eth@gmail.com"&gt;zoltan.balogh.eth@gmail.com&lt;/A&gt;‌,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This delay is called clock streching and the I2C module of the LPC55S6x is capable of do it without software intervention, for example, this is a capture of the I2C signal using the freertos_i2x example from the SDK:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/81780i4BA9A2AF0988BE52/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Adding a delay between transmissions will not affect the communication and the clock will stay low until&amp;nbsp;the next transmission:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/81812i1CB541F4F78B4961/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Best Regard,&lt;/P&gt;&lt;P&gt;Alexis Andalon&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Jul 2019 16:30:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-LCP55S69-i2c-slave-pull-clock-low/m-p/922179#M36735</guid>
      <dc:creator>Alexis_A</dc:creator>
      <dc:date>2019-07-18T16:30:05Z</dc:date>
    </item>
    <item>
      <title>Re: FreeRTOS LCP55S69 i2c slave pull clock low</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-LCP55S69-i2c-slave-pull-clock-low/m-p/922180#M36736</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/nxf46116"&gt;nxf46116&lt;/A&gt;‌,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your reply! I still have some questions.&lt;/P&gt;&lt;P&gt;- In your capture the address + r/w bit is 252, which may mean master write to slave at address 0x7e. I don't know if it makes a big difference, but I was talking about master from slave read, when slave should keep the clock low as long as a buffer with data is not available.&lt;BR /&gt;- Where should the delay be added in the code? I guess not to he i2c slave callback, because of that's called from an ISR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Zoltan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Jul 2019 13:01:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-LCP55S69-i2c-slave-pull-clock-low/m-p/922180#M36736</guid>
      <dc:creator>zoltan_balogh_e</dc:creator>
      <dc:date>2019-07-19T13:01:29Z</dc:date>
    </item>
    <item>
      <title>Re: FreeRTOS LCP55S69 i2c slave pull clock low</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-LCP55S69-i2c-slave-pull-clock-low/m-p/922181#M36737</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/zoltan.balogh.eth@gmail.com"&gt;zoltan.balogh.eth@gmail.com&lt;/A&gt;‌,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-The 252 (0x7E) is the slave address, not&amp;nbsp;the address that will read the master.&lt;/P&gt;&lt;P&gt;-I added the delay in the FLEXCOMM4 IRQ, if you add a delay in the callback this will not affect the communication.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this helps you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Alexis Andalon&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Jul 2019 15:20:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-LCP55S69-i2c-slave-pull-clock-low/m-p/922181#M36737</guid>
      <dc:creator>Alexis_A</dc:creator>
      <dc:date>2019-07-19T15:20:48Z</dc:date>
    </item>
  </channel>
</rss>

