<?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 I2C Concern in MPC5xxx</title>
    <link>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425719#M993</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Guys,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am interfacing MPC5604C with some sensor using I2C.&lt;/P&gt;&lt;P&gt;when I send a slave address data.. &lt;/P&gt;&lt;P&gt;I can see the start signal going properly on the line,&lt;/P&gt;&lt;P&gt;but after that both the lines will be low and if I send a slave address I am not seeing anything on the SDA line.&lt;/P&gt;&lt;P&gt;what might be the wrong thing I'm doing?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;please share if anyone has a code for it.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Details: &lt;/P&gt;&lt;P&gt; -&amp;gt; I2C clock 400kbps&lt;/P&gt;&lt;P&gt; -&amp;gt; PB2 - SDA line&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PB3 - SCL line&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt; /************* I2C init code ****************************/ &lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PSMI[29].R = 0x01;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*Function Pad Selected I2C_SCL :- PCR19*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PSMI[30].R = 0x01;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*Function Pad Selected I2C_SDA :- PCR18*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Configure I2C PCR register to Select I2C functionality */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[18].R = 0x0B20; /* select SDA line */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[19].R = 0x0A20; /* select SCL line */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*****************************************************************************/&lt;/P&gt;&lt;P&gt;void I2CStart(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C.IBCR.B.MS = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2CDelay();&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C.IBCR.R |= 0x30;/* Master,Transmit set to 1 */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt; /*****************************************************************************/&lt;/P&gt;&lt;P&gt;Bool I2CWrtByte(uint8_t Byte)&lt;/P&gt;&lt;P&gt;{&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C.IBDR.R = (uint8_t)Byte;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!((I2C.IBSR.B.TCF) &amp;amp; (I2C.IBSR.B.IBIF)))&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for transfer to complete */&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Check ACK bit - generate stop seq in case of error */&lt;/P&gt;&lt;P&gt;&amp;nbsp; if(I2C.IBSR.B.RXAK)&lt;/P&gt;&lt;P&gt;&amp;nbsp; { &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FAILURE; /* NoAck */&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SUCCESS; /* Ack received */&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}/* End of I2CWrtByte function */&lt;/P&gt;&lt;P&gt; /*****************************************************************************/&lt;/P&gt;&lt;P&gt;Bool I2CWrite(uint8_t slaveaddrs, uint8_t wordaddrs,uint8_t *data, uint32_t data_len)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; Bool Status_u8 = SUCCESS, DataLenCount_u32,Byte_u8;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Clear IBSR[IBIF] */&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C.IBSR.B.IBIF = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if(!I2C.IBSR.B.IBB)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send a start condition */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2CStart();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send the I2C address of the slave with the R/W bit low */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Byte_u8 = (uint8_t)((slaveaddrs &amp;lt;&amp;lt; 1) &amp;amp; 0xFE);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status_u8 = I2CWrtByte(Byte_u8);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* check the Ack */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Status_u8 == FAILURE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FAILURE;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* send the word address&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status_u8 = I2CWrtByte(wordaddrs);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Status_u8 == FAILURE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FAILURE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(DataLenCount_u32 = 0; DataLenCount_u32 &amp;lt; data_len; DataLenCount_u32++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status_u8 = I2CWrtByte(data[DataLenCount_u32]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Status_u8 == FAILURE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(data_len != 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2CStop();&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status_u8 = FAILURE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; } &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Clear IBSR[IBIF] */&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C.IBSR.B.IBIF = 0;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return Status_u8;&lt;/P&gt;&lt;P&gt;} &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 12 May 2015 20:45:23 GMT</pubDate>
    <dc:creator>jagadeeshalaksh</dc:creator>
    <dc:date>2015-05-12T20:45:23Z</dc:date>
    <item>
      <title>I2C Concern</title>
      <link>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425719#M993</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Guys,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am interfacing MPC5604C with some sensor using I2C.&lt;/P&gt;&lt;P&gt;when I send a slave address data.. &lt;/P&gt;&lt;P&gt;I can see the start signal going properly on the line,&lt;/P&gt;&lt;P&gt;but after that both the lines will be low and if I send a slave address I am not seeing anything on the SDA line.&lt;/P&gt;&lt;P&gt;what might be the wrong thing I'm doing?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;please share if anyone has a code for it.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Details: &lt;/P&gt;&lt;P&gt; -&amp;gt; I2C clock 400kbps&lt;/P&gt;&lt;P&gt; -&amp;gt; PB2 - SDA line&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PB3 - SCL line&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt; /************* I2C init code ****************************/ &lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PSMI[29].R = 0x01;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*Function Pad Selected I2C_SCL :- PCR19*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PSMI[30].R = 0x01;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*Function Pad Selected I2C_SDA :- PCR18*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Configure I2C PCR register to Select I2C functionality */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[18].R = 0x0B20; /* select SDA line */&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[19].R = 0x0A20; /* select SCL line */&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*****************************************************************************/&lt;/P&gt;&lt;P&gt;void I2CStart(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C.IBCR.B.MS = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2CDelay();&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C.IBCR.R |= 0x30;/* Master,Transmit set to 1 */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt; /*****************************************************************************/&lt;/P&gt;&lt;P&gt;Bool I2CWrtByte(uint8_t Byte)&lt;/P&gt;&lt;P&gt;{&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C.IBDR.R = (uint8_t)Byte;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!((I2C.IBSR.B.TCF) &amp;amp; (I2C.IBSR.B.IBIF)))&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for transfer to complete */&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Check ACK bit - generate stop seq in case of error */&lt;/P&gt;&lt;P&gt;&amp;nbsp; if(I2C.IBSR.B.RXAK)&lt;/P&gt;&lt;P&gt;&amp;nbsp; { &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FAILURE; /* NoAck */&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SUCCESS; /* Ack received */&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}/* End of I2CWrtByte function */&lt;/P&gt;&lt;P&gt; /*****************************************************************************/&lt;/P&gt;&lt;P&gt;Bool I2CWrite(uint8_t slaveaddrs, uint8_t wordaddrs,uint8_t *data, uint32_t data_len)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; Bool Status_u8 = SUCCESS, DataLenCount_u32,Byte_u8;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Clear IBSR[IBIF] */&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C.IBSR.B.IBIF = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; if(!I2C.IBSR.B.IBB)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send a start condition */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2CStart();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send the I2C address of the slave with the R/W bit low */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Byte_u8 = (uint8_t)((slaveaddrs &amp;lt;&amp;lt; 1) &amp;amp; 0xFE);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status_u8 = I2CWrtByte(Byte_u8);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* check the Ack */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Status_u8 == FAILURE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FAILURE;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* send the word address&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status_u8 = I2CWrtByte(wordaddrs);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Status_u8 == FAILURE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FAILURE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(DataLenCount_u32 = 0; DataLenCount_u32 &amp;lt; data_len; DataLenCount_u32++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status_u8 = I2CWrtByte(data[DataLenCount_u32]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Status_u8 == FAILURE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(data_len != 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2CStop();&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status_u8 = FAILURE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; } &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Clear IBSR[IBIF] */&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2C.IBSR.B.IBIF = 0;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return Status_u8;&lt;/P&gt;&lt;P&gt;} &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 May 2015 20:45:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425719#M993</guid>
      <dc:creator>jagadeeshalaksh</dc:creator>
      <dc:date>2015-05-12T20:45:23Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Concern</title>
      <link>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425720#M994</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;do you have external pull-ups on I2C lines? If not try to set internal weak pull-up at least. Use following PCR setting:&lt;/P&gt;&lt;P&gt;SIU.PCR[18].R = 0x0927; /* select SDA line */&lt;/P&gt;&lt;P&gt;SIU.PCR[19].R = 0x0927; /* select SCL line */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attach is a simple example which shows I2C module setting and simple TX code for testing only.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The simple I2C memory driver can be tested too, if I2C memory is connected.&lt;/P&gt;&lt;P&gt;Example was tested with I2C 24LC16B on TRK-MPC5604B.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Petr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 May 2015 08:03:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425720#M994</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2015-05-14T08:03:31Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Concern</title>
      <link>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425721#M995</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Petr Stancik,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the settings.&lt;/P&gt;&lt;P&gt;still have some problem..&lt;/P&gt;&lt;P&gt;- when I send a request to read a 2 byte of register data from slave..it reads well when i do step by step execution...&lt;/P&gt;&lt;P&gt;if I give a run in loop for reading 2 bytes of data from same register 1st byte is fine and second byte will 0xFF which is invalid.. further read same register will give 0x00 and Bus will stay BUSY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what i need to take care to resolve this issue?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Smiles,&lt;/P&gt;&lt;P&gt;Jagadeesha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 May 2015 20:34:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425721#M995</guid>
      <dc:creator>jagadeeshalaksh</dc:creator>
      <dc:date>2015-05-18T20:34:56Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Concern</title>
      <link>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425722#M996</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;have you tried to use the I2C_ReadBlock() function from the example I attached?&lt;/P&gt;&lt;P&gt;Or what is your test code for 2 cases you described?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Petr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 May 2015 08:57:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425722#M996</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2015-05-20T08:57:56Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Concern</title>
      <link>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425723#M997</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Petr Stancik,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it got solved... problem was something different.&lt;/P&gt;&lt;P&gt;some setting were getting override soo..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Smiles,&lt;/P&gt;&lt;P&gt;Jagadeesha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 May 2015 19:47:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/I2C-Concern/m-p/425723#M997</guid>
      <dc:creator>jagadeeshalaksh</dc:creator>
      <dc:date>2015-05-21T19:47:38Z</dc:date>
    </item>
  </channel>
</rss>

