<?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: Issue with I2C on MPC5606B in MPC5xxx</title>
    <link>https://community.nxp.com/t5/MPC5xxx/Issue-with-I2C-on-MPC5606B/m-p/337855#M404</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Could it be that you run into a silicon errata problem with repeated start condition on I2C?&lt;/P&gt;&lt;P&gt;&lt;A href="http://mcuoneclipse.com/2012/12/05/kl25z-and-i2c-missing-repeated-start-condition/" title="http://mcuoneclipse.com/2012/12/05/kl25z-and-i2c-missing-repeated-start-condition/"&gt;KL25Z and I2C: Missing Repeated Start Condition | MCU on Eclipse&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Erich&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Nov 2014 08:53:28 GMT</pubDate>
    <dc:creator>BlackNight</dc:creator>
    <dc:date>2014-11-24T08:53:28Z</dc:date>
    <item>
      <title>Issue with I2C on MPC5606B</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Issue-with-I2C-on-MPC5606B/m-p/337854#M403</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;Hi all,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;I am encountering an issue with my I2C communication : &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;I am trying to TRANSMIT data in MASTER mode but my program stuck while waiting for IBSR[IBIF] to get set.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;This is the code that I am using :&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008000;"&gt;//Clear Interrupt Flag&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;pstIBSRReg = (TstDI2c_iIBSRBits *)(Ctu32DI2c_iBaseAdress[Fu16I2cLink] + Du32DI2c_iIBSROffset);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;(* pstIBSRReg).u1IBIF = 1U;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008000;"&gt;//Make sure bus is idle -&amp;gt; IBB must be cleared&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;while (1U == (* pstIBSRReg).u1IBB) {}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008000;"&gt;//Generate start condition&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;pstIBCRReg = (TstDI2c_iIBCRBits *)(Ctu32DI2c_iBaseAdress[Fu16I2cLink] + Du32DI2c_iIBCROffset);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;(* pstIBCRReg).u1TXRX = 1U;&lt;SPAN style="color: #008000;"&gt; // Transmit&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;(* pstIBCRReg).u1MSSL = 1U; &lt;SPAN style="color: #008000;"&gt;// Master Mode&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008000;"&gt;//Wait for IBSR.IBB (bus busy) to be set&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;while (0U == (* pstIBSRReg).u1IBB) {}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008000;"&gt;//Put target address into IBDR&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;pstIBDRReg = (TstDI2c_iIBDRBits *)(Ctu32DI2c_iBaseAdress[Fu16I2cLink] + Du32DI2c_iIBDROffset);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;(* pstIBDRReg).u8DATA = ((Fu8SlaveID&amp;lt;&amp;lt;1) | Du8DI2c_iWriteSlave);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008000;"&gt;// Wait for address transfer to be done&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;while (0U == (* pstIBSRReg).u1IBIF) {}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008000;"&gt;// Clear Interrupt Flag&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;(* pstIBSRReg).u1IBIF = 1U;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;My program stuck at "while (0U == (* pstIBSRReg).u1IBIF) {}".&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;It is normal because the transfer was not initiated at all since that IBDR register value remains equal to 0x00.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;Knowing that :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;- START signal was correctly generated (verified with a scope).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;- After generating the start signal and before writing into IBDR, I2C rgisters value are as below :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;* IBCR = 0x30 // MDIS = 0 / &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;MSSL = 1 &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;/ TXRX = 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;* IBSR = 0xA0 // TCF = 1 / IBB = 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;- I tried to&amp;nbsp; write directly on the memory address 0xFFE30004 (IBDR address) but it still always equal to 0x00.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;My question is what would forbid writing the IBDR register ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;Best regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;Malek BEN.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2014 19:55:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Issue-with-I2C-on-MPC5606B/m-p/337854#M403</guid>
      <dc:creator>malekben</dc:creator>
      <dc:date>2014-11-13T19:55:00Z</dc:date>
    </item>
    <item>
      <title>Re: Issue with I2C on MPC5606B</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Issue-with-I2C-on-MPC5606B/m-p/337855#M404</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Could it be that you run into a silicon errata problem with repeated start condition on I2C?&lt;/P&gt;&lt;P&gt;&lt;A href="http://mcuoneclipse.com/2012/12/05/kl25z-and-i2c-missing-repeated-start-condition/" title="http://mcuoneclipse.com/2012/12/05/kl25z-and-i2c-missing-repeated-start-condition/"&gt;KL25Z and I2C: Missing Repeated Start Condition | MCU on Eclipse&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Erich&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Nov 2014 08:53:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Issue-with-I2C-on-MPC5606B/m-p/337855#M404</guid>
      <dc:creator>BlackNight</dc:creator>
      <dc:date>2014-11-24T08:53:28Z</dc:date>
    </item>
  </channel>
</rss>

