<?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 LPC1768 I2C Bus in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1768-I2C-Bus/m-p/1649713#M52486</link>
    <description>&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I'm programming data communication over an I2C bus on the LPC1768. To test the communication, I've looped back the I2C0 bus of the board with I2C1. The I2C0 is supposed to act as the master, and the I2C1 as the slave. However, when sending the data telegram, I always receive a "0x38 Arbitration lost in SLA+R/W or Data bytes" message in the status register, and the process terminates.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;void I2C1_config(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;LPC_SC-&amp;gt;PCONP |=&amp;nbsp; (1 &amp;lt;&amp;lt; 19);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;= ~0x000003C0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 |= 0x000003C0;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONCLR = I2C_CON_FLAGS ; //Clear all flags&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;NVIC_EnableIRQ(I2C1_IRQn);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2ADR0= 0b10100000;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2MASK0=0xA0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONSET |= I2C_CON_I2EN | I2C_CON_AA;&amp;nbsp; //I2C0 enable&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONSET |= I2C_CON_STA;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void I2C0_config(void)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PCONP |= (1 &amp;lt;&amp;lt; 7);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;= ~0x03C00000;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 |= 0x01400000;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // SDA und SCL&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONCLR = I2C_CON_FLAGS ; //Clear I2C0CON Registers&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2SCLL&amp;nbsp; &amp;nbsp;= I2SCLL_SCLL; //DutyCicle&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; LPC_I2C0-&amp;gt;I2SCLH&amp;nbsp; &amp;nbsp;= I2SCLH_SCLH;&lt;/DIV&gt;&lt;DIV&gt;//PCLK_I2C0=25MHz ,SCLH+SCLL=250, I2Cbitrate=PCLK_I2C0/(SCLH+SCLL)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;NVIC_EnableIRQ(I2C0_IRQn); //Interrupt enable&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONSET |= I2C_CON_I2EN; //I2C0 enable&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;I2C1_config();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;this is my configuration yet&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;in my interrupthandler for I2C0 I only address the slave&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;void I2C0_IRQHandler(void){&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint8_t StatValue;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; StatValue = LPC_I2C0-&amp;gt;I2STAT;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;switch (StatValue){&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x08:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2DAT=state_vec[0];&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONCLR=0x08;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x38:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONSET=0x20;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONCLR=0x08;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x68:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONSET=0x20;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONCLR=0x08;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;And this is my interrupthandler for I2C1&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;void I2C1_IRQHandler(void){&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;switch(LPC_I2C1-&amp;gt;I2STAT)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x60:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONSET=0x04;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONCLR=0x08;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x70:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONSET=I2C_CON_AA;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONSET=I2C_CON_SI;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x80:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0xA0:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONSET=0x04;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONCLR=0x08;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;After I address the slave and clear the I2C0 Interruptflag the I2C0 status is:&amp;nbsp;&lt;SPAN&gt;0x38 Arbitration lost in SLA+R/W or Data bytes&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;And the status of the I2C1 is: 0x60&amp;nbsp;Own SLA+W received; ACK returned&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;From there i have to restart the process cause of the 0x38 status. Can someone look into it and can tell me what i did wrong. I need to send a data byte after the addressing.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
    <pubDate>Sat, 13 May 2023 10:22:20 GMT</pubDate>
    <dc:creator>Nikolai110</dc:creator>
    <dc:date>2023-05-13T10:22:20Z</dc:date>
    <item>
      <title>LPC1768 I2C Bus</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1768-I2C-Bus/m-p/1649713#M52486</link>
      <description>&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I'm programming data communication over an I2C bus on the LPC1768. To test the communication, I've looped back the I2C0 bus of the board with I2C1. The I2C0 is supposed to act as the master, and the I2C1 as the slave. However, when sending the data telegram, I always receive a "0x38 Arbitration lost in SLA+R/W or Data bytes" message in the status register, and the process terminates.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;void I2C1_config(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;LPC_SC-&amp;gt;PCONP |=&amp;nbsp; (1 &amp;lt;&amp;lt; 19);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;= ~0x000003C0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 |= 0x000003C0;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONCLR = I2C_CON_FLAGS ; //Clear all flags&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;NVIC_EnableIRQ(I2C1_IRQn);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2ADR0= 0b10100000;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2MASK0=0xA0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONSET |= I2C_CON_I2EN | I2C_CON_AA;&amp;nbsp; //I2C0 enable&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONSET |= I2C_CON_STA;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void I2C0_config(void)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PCONP |= (1 &amp;lt;&amp;lt; 7);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;= ~0x03C00000;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 |= 0x01400000;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // SDA und SCL&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONCLR = I2C_CON_FLAGS ; //Clear I2C0CON Registers&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2SCLL&amp;nbsp; &amp;nbsp;= I2SCLL_SCLL; //DutyCicle&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; LPC_I2C0-&amp;gt;I2SCLH&amp;nbsp; &amp;nbsp;= I2SCLH_SCLH;&lt;/DIV&gt;&lt;DIV&gt;//PCLK_I2C0=25MHz ,SCLH+SCLL=250, I2Cbitrate=PCLK_I2C0/(SCLH+SCLL)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;NVIC_EnableIRQ(I2C0_IRQn); //Interrupt enable&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONSET |= I2C_CON_I2EN; //I2C0 enable&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;I2C1_config();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;this is my configuration yet&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;in my interrupthandler for I2C0 I only address the slave&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;void I2C0_IRQHandler(void){&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint8_t StatValue;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; StatValue = LPC_I2C0-&amp;gt;I2STAT;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;switch (StatValue){&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x08:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2DAT=state_vec[0];&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONCLR=0x08;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x38:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONSET=0x20;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONCLR=0x08;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x68:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONSET=0x20;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C0-&amp;gt;I2CONCLR=0x08;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;And this is my interrupthandler for I2C1&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;void I2C1_IRQHandler(void){&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;switch(LPC_I2C1-&amp;gt;I2STAT)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x60:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONSET=0x04;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONCLR=0x08;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x70:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONSET=I2C_CON_AA;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONSET=I2C_CON_SI;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0x80:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;break;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;case 0xA0:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONSET=0x04;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LPC_I2C1-&amp;gt;I2CONCLR=0x08;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;After I address the slave and clear the I2C0 Interruptflag the I2C0 status is:&amp;nbsp;&lt;SPAN&gt;0x38 Arbitration lost in SLA+R/W or Data bytes&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;And the status of the I2C1 is: 0x60&amp;nbsp;Own SLA+W received; ACK returned&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;From there i have to restart the process cause of the 0x38 status. Can someone look into it and can tell me what i did wrong. I need to send a data byte after the addressing.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Sat, 13 May 2023 10:22:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1768-I2C-Bus/m-p/1649713#M52486</guid>
      <dc:creator>Nikolai110</dc:creator>
      <dc:date>2023-05-13T10:22:20Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1768 I2C Bus</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1768-I2C-Bus/m-p/1654650#M52637</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/217230"&gt;@Nikolai110&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There is I2C demo under LPCopen, how about refer to the code.&lt;/P&gt;
&lt;P&gt;Download from:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/lpcopen-libraries-and-examples/lpcopen-software-development-platform-lpc17xx:LPCOPEN-SOFTWARE-FOR-LPC17XX" target="_blank"&gt;https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/lpcopen-libraries-and-examples/lpcopen-software-development-platform-lpc17xx:LPCOPEN-SOFTWARE-FOR-LPC17XX&lt;/A&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;"&lt;/P&gt;
&lt;P&gt;I2C example&lt;/P&gt;
&lt;P&gt;Example description&lt;BR /&gt;The I2C example shows how to use I2C interface in master and slave mode using&lt;BR /&gt;POLLING/INTERRUPT method.&lt;/P&gt;
&lt;P&gt;"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;Alice&lt;/P&gt;</description>
      <pubDate>Mon, 22 May 2023 09:18:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1768-I2C-Bus/m-p/1654650#M52637</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2023-05-22T09:18:11Z</dc:date>
    </item>
  </channel>
</rss>

