<?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>LPC MicrocontrollersのトピックI2C Slave transmiting not wanted value (LPC802)</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Slave-transmiting-not-wanted-value-LPC802/m-p/1430612#M48262</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have configure my I2C slave as follow:&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;bool ini_i2c(void)&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; i2c_slave_config_t slaveConfig;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; status_t reVal = kStatus_Fail;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; /* Set up i2c slave */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; I2C_SlaveGetDefaultConfig(&amp;amp;slaveConfig);&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; /* Change the slave address */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; slaveConfig.address0.address = I2C_MASTER_SLAVE_ADDR_7BIT;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; /* Initialize the I2C slave peripheral */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; I2C_SlaveInit(EXAMPLE_I2C_SLAVE, &amp;amp;slaveConfig, I2C_SLAVE_CLOCK_FREQUENCY);&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; memset(g_slave_buff, 0, sizeof(g_slave_buff));&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; /* Create the I2C handle for the non-blocking transfer */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; I2C_SlaveTransferCreateHandle(I2C0, &amp;amp;g_s_handle, i2c_slave_callback, NULL);&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; NVIC_SetPriority(I2C0_IRQn, 2);&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; /* Start accepting I2C transfers on the I2C slave peripheral */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; reVal = I2C_SlaveTransferNonBlocking(I2C0, &amp;amp;g_s_handle,&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; kI2C_SlaveAddressMatchEvent | kI2C_SlaveCompletionEvent);&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; if (reVal != kStatus_Success)&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; {&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; return -1;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; }&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; return 0;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Then, in the callback function I do following:&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;const uint8_t dat = 0;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;uint8_t g_slave_buff[8];&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;static void i2c_slave_callback(I2C_Type *base, volatile i2c_slave_transfer_t *xfer, void *userData)&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;switch (xfer-&amp;gt;event)&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;/* Address match event */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;case kI2C_SlaveAddressMatchEvent: // Received the slave address after a start or repeated start.&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;rxData = NULL;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;rxSize = 0;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;txData = NULL;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;txSize = 0;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;break;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;/* Transmit request */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;case kI2C_SlaveTransmitEvent: // Callback is requested to provide data to transmit (slave-transmitter role).&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;switch (g_slave_buff[0])&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; case 0xA0:&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; if (dat != 0) Toogle_TEST();&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; xfer-&amp;gt;txData = &amp;amp;dat;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; xfer-&amp;gt;txSize = 1;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;break;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;/* Setup the slave receive buffer */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;case kI2C_SlaveReceiveEvent: // Callback is requested to provide a buffer in which to place received data (slave-receiver role).&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;rxData = g_slave_buff;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;rxSize = I2C_DATA_LENGTH;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;break;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;It works as expected, but sometimes I can see that 0x00 data is not transmitted and instead of it I see 0x01 data is sent. The issue happens randomly. What could be the reason ?&amp;nbsp;&lt;/P&gt;&lt;P&gt;I attach a graph showing undesired 0x01 sending.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Asier.&lt;/P&gt;</description>
    <pubDate>Fri, 18 Mar 2022 09:13:12 GMT</pubDate>
    <dc:creator>asier</dc:creator>
    <dc:date>2022-03-18T09:13:12Z</dc:date>
    <item>
      <title>I2C Slave transmiting not wanted value (LPC802)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Slave-transmiting-not-wanted-value-LPC802/m-p/1430612#M48262</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have configure my I2C slave as follow:&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;bool ini_i2c(void)&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; i2c_slave_config_t slaveConfig;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; status_t reVal = kStatus_Fail;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; /* Set up i2c slave */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; I2C_SlaveGetDefaultConfig(&amp;amp;slaveConfig);&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; /* Change the slave address */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; slaveConfig.address0.address = I2C_MASTER_SLAVE_ADDR_7BIT;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; /* Initialize the I2C slave peripheral */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; I2C_SlaveInit(EXAMPLE_I2C_SLAVE, &amp;amp;slaveConfig, I2C_SLAVE_CLOCK_FREQUENCY);&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; memset(g_slave_buff, 0, sizeof(g_slave_buff));&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; /* Create the I2C handle for the non-blocking transfer */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; I2C_SlaveTransferCreateHandle(I2C0, &amp;amp;g_s_handle, i2c_slave_callback, NULL);&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; NVIC_SetPriority(I2C0_IRQn, 2);&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; /* Start accepting I2C transfers on the I2C slave peripheral */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; reVal = I2C_SlaveTransferNonBlocking(I2C0, &amp;amp;g_s_handle,&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; kI2C_SlaveAddressMatchEvent | kI2C_SlaveCompletionEvent);&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; if (reVal != kStatus_Success)&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; {&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; return -1;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; }&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; return 0;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Then, in the callback function I do following:&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;const uint8_t dat = 0;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;uint8_t g_slave_buff[8];&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;static void i2c_slave_callback(I2C_Type *base, volatile i2c_slave_transfer_t *xfer, void *userData)&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;switch (xfer-&amp;gt;event)&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;/* Address match event */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;case kI2C_SlaveAddressMatchEvent: // Received the slave address after a start or repeated start.&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;rxData = NULL;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;rxSize = 0;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;txData = NULL;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;txSize = 0;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;break;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;/* Transmit request */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;case kI2C_SlaveTransmitEvent: // Callback is requested to provide data to transmit (slave-transmitter role).&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;switch (g_slave_buff[0])&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; case 0xA0:&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; if (dat != 0) Toogle_TEST();&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; xfer-&amp;gt;txData = &amp;amp;dat;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; xfer-&amp;gt;txSize = 1;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;break;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;/* Setup the slave receive buffer */&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;case kI2C_SlaveReceiveEvent: // Callback is requested to provide a buffer in which to place received data (slave-receiver role).&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;rxData = g_slave_buff;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;&amp;nbsp; xfer-&amp;gt;rxSize = I2C_DATA_LENGTH;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;break;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2" color="#0000FF"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;It works as expected, but sometimes I can see that 0x00 data is not transmitted and instead of it I see 0x01 data is sent. The issue happens randomly. What could be the reason ?&amp;nbsp;&lt;/P&gt;&lt;P&gt;I attach a graph showing undesired 0x01 sending.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Asier.&lt;/P&gt;</description>
      <pubDate>Fri, 18 Mar 2022 09:13:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Slave-transmiting-not-wanted-value-LPC802/m-p/1430612#M48262</guid>
      <dc:creator>asier</dc:creator>
      <dc:date>2022-03-18T09:13:12Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Slave transmiting not wanted value (LPC802)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Slave-transmiting-not-wanted-value-LPC802/m-p/1430634#M48264</link>
      <description>&lt;P&gt;Sorry, but in the graph TEST signal (trace in red) is toogling because "&lt;EM&gt;const uint8_t dat = 0;"&amp;nbsp; &lt;/EM&gt;definition produces&lt;EM&gt; "if (dat != 0) Toogle_TEST();" &lt;/EM&gt;to be true.&lt;/P&gt;&lt;P&gt;I've checked that declaring "&lt;EM&gt;int8_t dat = 0;" &lt;/EM&gt;TEST signal is not toogling when 0x01 is transmitting. So "dat" variable has correct 0 value.&lt;/P&gt;</description>
      <pubDate>Fri, 18 Mar 2022 09:46:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Slave-transmiting-not-wanted-value-LPC802/m-p/1430634#M48264</guid>
      <dc:creator>asier</dc:creator>
      <dc:date>2022-03-18T09:46:02Z</dc:date>
    </item>
    <item>
      <title>Re: I2C Slave transmiting not wanted value (LPC802)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Slave-transmiting-not-wanted-value-LPC802/m-p/1430784#M48267</link>
      <description>&lt;P&gt;It seems that It was not a software problem. Changing values of resistor pull-ups from 4K7 to 1K in SCL and SDA lines issue is solved.&lt;/P&gt;&lt;P&gt;Thanks you,&lt;/P&gt;&lt;P&gt;Asier.&lt;/P&gt;</description>
      <pubDate>Fri, 18 Mar 2022 16:24:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/I2C-Slave-transmiting-not-wanted-value-LPC802/m-p/1430784#M48267</guid>
      <dc:creator>asier</dc:creator>
      <dc:date>2022-03-18T16:24:14Z</dc:date>
    </item>
  </channel>
</rss>

