<?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: How does the arbitration lost process work in the K20 in polled mode? in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-does-the-arbitration-lost-process-work-in-the-K20-in-polled/m-p/328358#M15191</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gerry Kurz,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no need to enable the interrupt to use arbitration lost feature, and the hardware will automatically switch from master to slave when arbitration lost condition is detected(the arb lost flag is asserted), so it works even in polling mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope that helps,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kan&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>Mon, 23 Mar 2015 07:35:06 GMT</pubDate>
    <dc:creator>Kan_Li</dc:creator>
    <dc:date>2015-03-23T07:35:06Z</dc:date>
    <item>
      <title>How does the arbitration lost process work in the K20 in polled mode?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-does-the-arbitration-lost-process-work-in-the-K20-in-polled/m-p/328357#M15190</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The K20 reference manual in the features of the I2C module says the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;"Arbitration-lost interrupt with automatic mode switching from master to slave"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;My questions are:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;1) Does this automatic mode switching occur in any arbitration lost event, even when polling for the arbitration lost flag or only in interrupt mode?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;2) If in polling mode, do I have to manually switch to slave receive mode?&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;The reference manual does not give clear information on how this automatic switching works:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 15pt; font-family: HelveticaLTStd-Bold;"&gt;&lt;STRONG style=": ; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;44.4.1.6 Arbitration procedure&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;The I2C bus is a true multimaster bus that allows more than one master to be connected&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;on it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;If two or more masters try to control the bus at the same time, a clock synchronization&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;procedure determines the bus clock. The bus clock's low period is equal to the longest&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;clock low period, and the high period is equal to the shortest one among the masters.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;The relative priority of the contending masters is determined by a data arbitration&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;procedure. A bus master loses arbitration if it transmits logic level 1 while another master&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;transmits logic level 0. The losing masters immediately switch to slave receive mode and&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;stop driving SDA output. In this case, the transition from master to slave mode does not&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;generate a STOP condition. Meanwhile, hardware sets a status bit to indicate the loss of&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;arbitration.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 15pt; font-family: HelveticaLTStd-Bold;"&gt;&lt;STRONG style=": ; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;44.4.6.4 Arbitration lost interrupt&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;The I2C is a true multimaster bus that allows more than one master to be connected on it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;If two or more masters try to control the bus at the same time, the relative priority of the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;contending masters is determined by a data arbitration procedure. The I2C module asserts&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;the arbitration-lost interrupt when it loses the data arbitration process and the ARBL bit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;in the Status Register is set.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 14pt; font-family: TimesLTStd-Roman;"&gt;&lt;SPAN style="font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;Arbitration is lost in the following circumstances:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;1. SDA is sampled as low when the master drives high during an address or data&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;transmit cycle.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;2. SDA is sampled as low when the master drives high during the acknowledge bit of a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;data receive cycle.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;3. A START cycle is attempted when the bus is busy.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;4. A repeated START cycle is requested in slave mode.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: TimesLTStd-Roman; font-size: 14pt; color: #000000; font-style: normal;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;5. A STOP condition is detected when the master did not request it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #000000; font-style: normal; font-size: 10pt; font-family: arial,helvetica,sans-serif;"&gt;The ARBL bit must be cleared (by software) by writing 1 to it.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2015 21:08:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-does-the-arbitration-lost-process-work-in-the-K20-in-polled/m-p/328357#M15190</guid>
      <dc:creator>gerryk</dc:creator>
      <dc:date>2015-03-18T21:08:34Z</dc:date>
    </item>
    <item>
      <title>Re: How does the arbitration lost process work in the K20 in polled mode?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-does-the-arbitration-lost-process-work-in-the-K20-in-polled/m-p/328358#M15191</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gerry Kurz,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no need to enable the interrupt to use arbitration lost feature, and the hardware will automatically switch from master to slave when arbitration lost condition is detected(the arb lost flag is asserted), so it works even in polling mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope that helps,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kan&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>Mon, 23 Mar 2015 07:35:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-does-the-arbitration-lost-process-work-in-the-K20-in-polled/m-p/328358#M15191</guid>
      <dc:creator>Kan_Li</dc:creator>
      <dc:date>2015-03-23T07:35:06Z</dc:date>
    </item>
  </channel>
</rss>

