<?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: I2C Monitor Mode on LPC4088 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566480#M17313</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alexander,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could this be related with the I2C errata?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://www.nxp.com/documents/errata_sheet/ES_LPC407X_8X.pdf" title="http://www.nxp.com/documents/errata_sheet/ES_LPC407X_8X.pdf"&gt;http://www.nxp.com/documents/errata_sheet/ES_LPC407X_8X.pdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards!&lt;BR /&gt;Carlos Mendoza&lt;BR /&gt;Technical Support Engineer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 10 Feb 2017 23:38:20 GMT</pubDate>
    <dc:creator>Carlos_Mendoza</dc:creator>
    <dc:date>2017-02-10T23:38:20Z</dc:date>
    <item>
      <title>I2C Monitor Mode on LPC4088</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566477#M17310</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 want to use the lpc4088 (on the quickstartboard from mbed) as an i2c sniffer. The integrated i2c monitor mode of the lpc4088 would be perfect for my application, but sadly i didn't find a sufficient example to show me how to use this mode. &lt;/P&gt;&lt;P&gt;I read the headerfile i2c_17xx_40xx.h from the lpcopen package (v2.10), but i still couldn't figure out how i can use this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are there some examples available that i missed or instructions i could follow?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance for any advice and &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;Alex&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Aug 2016 12:34:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566477#M17310</guid>
      <dc:creator>alexanderplanit</dc:creator>
      <dc:date>2016-08-03T12:34:07Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Monitor Mode on LPC4088</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566478#M17311</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alexander,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We don't have that example but you could use the attached CMSIS example that includes a I2C monitor mode driver as base to create your project.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Carlos Mendoza&lt;/P&gt;&lt;P&gt;Technical Support Engineer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Aug 2016 14:43:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566478#M17311</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2016-08-11T14:43:07Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Monitor Mode on LPC4088</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566479#M17312</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks for the help.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I got my I2C Monitor Mode now up and running, but i ran into another problem.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apparently my Interface interprets all intercepted I2C-Packets (so everything between Start and Stop Condition) as Writing-Operations (as Slave-Receiver).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Meaning the State changes look like:&lt;/P&gt;&lt;P&gt;0x60 -&amp;gt;&amp;nbsp;0x&lt;SPAN&gt;80 -&amp;gt; 0x&lt;/SPAN&gt;&lt;SPAN&gt;80 -&amp;gt; ... -&amp;gt; 0xA0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;where the states indicate the following:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;0x60: Own Slave Address + Write Bit received, ACK received&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;0x80:&amp;nbsp;Addressed with own&amp;nbsp;Slave Address, Data received, ACK returned&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;0xA0:&amp;nbsp;Stop or Repeated Start received&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;However they should also be State changes like:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;0xA8 -&amp;gt; &lt;SPAN&gt;0xB8 -&amp;gt;&amp;nbsp;&lt;/SPAN&gt;0xB8 -&amp;gt; ... -&amp;gt; 0xC8 -&amp;gt; 0xA0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;where the states indicate the following:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;0xA8:&amp;nbsp;Own Slave Address +Read Bit has been received; ACK has been returned&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;0xB8:&amp;nbsp;Data byte in I2DAT has been transmitted; ACK has been received&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;0xC8: Last data byte has been transmitted, ACK has been received&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I verified the measured protocol&amp;nbsp;with an Logic Analyzer and the Results indicate that the R/W-Bit was indeed transmitted correctly.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Here is the code i used to configure the I2C interface:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;LPC_I2Cx(id)-&amp;gt;ADR0 = (I2C_SLAVE_ADDR &amp;lt;&amp;lt; 1); //Set own device address&lt;BR /&gt; LPC_I2Cx(id)-&amp;gt;MASK[0] = (I2C_SLAVE_MSK &amp;lt;&amp;lt; 1); //Set address mask&lt;BR /&gt; LPC_I2Cx(id)-&amp;gt;MMCTRL |= I2C_I2MMCTRL_MM_ENA; //Enable I2C Monitor Mode&lt;BR /&gt; LPC_I2Cx(id)-&amp;gt;CONSET = I2C_CON_I2EN | I2C_CON_AA;&lt;BR /&gt; LPC_I2Cx(id)-&amp;gt;CONCLR = I2C_CON_STA | I2C_CON_STO | I2C_CON_SI; //Enable I2C Interface&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BOTTOM LINE:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;So that leaves the Question what causes this behavior?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Is it the I2C Interface itself that forces the R/W Bit to a '0' and interprets&amp;nbsp;therefore a Writing Operation (+ jumping to the corresponding States)?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If YES, is there a way to bypass this Issue?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If NO, did I configure something wrong?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;(Feedback/Suggestions/Experiences are much appreciated&amp;nbsp;;-) )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BR,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Alexander&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Dec 2016 10:24:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566479#M17312</guid>
      <dc:creator>alexanderplanit</dc:creator>
      <dc:date>2016-12-07T10:24:47Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Monitor Mode on LPC4088</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566480#M17313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alexander,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could this be related with the I2C errata?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://www.nxp.com/documents/errata_sheet/ES_LPC407X_8X.pdf" title="http://www.nxp.com/documents/errata_sheet/ES_LPC407X_8X.pdf"&gt;http://www.nxp.com/documents/errata_sheet/ES_LPC407X_8X.pdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards!&lt;BR /&gt;Carlos Mendoza&lt;BR /&gt;Technical Support Engineer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Feb 2017 23:38:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566480#M17313</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2017-02-10T23:38:20Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Monitor Mode on LPC4088</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566481#M17314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Carlos,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm afraid not.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The errata sheet describes an issue where the data of an i2c transmission is corrupted, but my interface doesn't enter any i2c-transmitter states in the ISR in the first place.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And i verified with a logic analyser, that there are recieve and transmit operations happening on the Bus.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;Alexander&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Feb 2017 06:58:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Monitor-Mode-on-LPC4088/m-p/566481#M17314</guid>
      <dc:creator>alexanderplanit</dc:creator>
      <dc:date>2017-02-13T06:58:25Z</dc:date>
    </item>
  </channel>
</rss>

