<?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 in M24256W EEPROM in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147247#M41</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Arial, sans-serif;"&gt;I'll try to explain the code a little bit so that way maybe we can get to the solution.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Arial, sans-serif;"&gt;I've checked the i2c signal with the scope and the datasheet specs and it seems to do it right, at least it sends right ACKs. At first it reads FFh (default power-on value), meaning that it didn’t write the byte. Now, it reads always 00h, indepenent of the value that I send.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Arial, sans-serif;"&gt;Maybe I’m forgeting some code or doing something wrong, but I don’t see it.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;void I2C1ByteWriteM24256( _SOFT_U8BITS u8deviceaddress, _SOFT_U8BITS u8highaddress, _SOFT_U8BITS u8lowaddress, _SOFT_U8BITS u8bytevalue){ &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Write function code&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8address&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8deviceaddress;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #99cc00;"&gt;//This part only configures the address for write mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8address &amp;lt;&amp;lt; 1;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8address | 0x00;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Start();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Star condition&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8address;//((u8deviceaddress &amp;lt;&amp;lt; 1) | 0x00);//Write mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #99cc00;"&gt;//Device address in write mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Wait for ack&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8highaddress;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Memory high address&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8lowaddress;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Memory low address&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8bytevalue;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Sent byte&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Stop();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;Stop condition&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Small counter to wait to the function response&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;_SOFT_U8BITS I2C1RandomAddresSReadM24256(&amp;nbsp; _SOFT_U8BITS u8deviceaddress, _SOFT_U8BITS u8highaddress, _SOFT_U8BITS u8lowaddress){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Read function code&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8address;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8addressW;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8addressR;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8return_value;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8deviceaddress;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8addressW = (u8address &amp;lt;&amp;lt; 1) | MWSR; //0x00 Para escritura&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;Address for write mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8deviceaddress;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8addressR = (u8address &amp;lt;&amp;lt; 1) | MRSW; //0x01 Para lectura&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Adress for read mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Start();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8addressW);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//This part is same as for write&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8highaddress);&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8lowaddress);&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_RepeatedStart();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Second star condition&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8addressR);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Device adress in read mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_EnterRxMode();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//We set the micro in read mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8return_value = i2c_read_byte();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;Clears micro data register and initiates read sequence&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_DisableAck();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Makes no ack&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Stop();&amp;nbsp; &lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8return_value = i2c_read_byte();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;Reads actual data&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(u8return_value);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;Returns the function value&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 24 Oct 2012 07:24:32 GMT</pubDate>
    <dc:creator>ioniriondo</dc:creator>
    <dc:date>2012-10-24T07:24:32Z</dc:date>
    <item>
      <title>I2C in M24256W EEPROM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147243#M37</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi! I'm programming an EEPROM with the i2c protocol, and i'm having problems with it. I'm trying to write one byte in the EEPROM to read it, but the problem is that I'm not able to read that byte.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Waching it with an osciloscope, seems like al the data it's sent right, but when reading it, the value that it returns is FFh even when I set 00h as the byte to write. In the Datasheet it is speficied that the power-on default value for the EEPROM is FFh. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After some modifications I achieve to return a 00h, but again, now always returns a 00h even if a write for example a 50h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've been&amp;nbsp; searching a lot about this EEPROM but there is few information about it. This is my code for wrting and reading:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;void I2C1ByteWriteM24256( _SOFT_U8BITS u8deviceaddress, _SOFT_U8BITS u8highaddress, _SOFT_U8BITS u8lowaddress, _SOFT_U8BITS u8bytevalue){&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8address&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8deviceaddress;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8address &amp;lt;&amp;lt; 1;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8address | 0x00; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Start();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8address;//((u8deviceaddress &amp;lt;&amp;lt; 1) | 0x00);//Write mode&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8highaddress; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8lowaddress;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8bytevalue;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Stop();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause(); &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;_SOFT_U8BITS I2C1RandomAddresSReadM24256(&amp;nbsp; _SOFT_U8BITS u8deviceaddress, _SOFT_U8BITS u8highaddress, _SOFT_U8BITS u8lowaddress){&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8address;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8addressW;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8addressR;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8return_value;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8deviceaddress;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8addressW = (u8address &amp;lt;&amp;lt; 1) | MWSR; //0x00 Para escritura&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8deviceaddress;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8addressR = (u8address &amp;lt;&amp;lt; 1) | MRSW; //0x01 Para lectura&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Start();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8addressW); &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8highaddress); &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8lowaddress);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_RepeatedStart(); &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8addressR); &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_EnterRxMode(); &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8return_value = i2c_read_byte(); &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_DisableAck();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Stop();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8return_value = i2c_read_byte(); &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause(); &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(u8return_value);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Oct 2012 11:42:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147243#M37</guid>
      <dc:creator>ioniriondo</dc:creator>
      <dc:date>2012-10-23T11:42:57Z</dc:date>
    </item>
    <item>
      <title>Re: I2C in M24256W EEPROM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147244#M38</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hard to say if your functions do the correct things, but I will tell you this - after writing to an EEPROM chip, the chip has to re-write the entire sector and it take quite a bit of time. While this is happening, the chip will NAK you until it is ready again, so you need to loop on getting NACKS to tell when it is done re-writing the sector.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Oct 2012 12:50:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147244#M38</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2012-10-23T12:50:47Z</dc:date>
    </item>
    <item>
      <title>Re: I2C in M24256W EEPROM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147245#M39</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I use a Pause function to wait for the response if that is what you mean. I think that the trouble may be on the read function, but i'm going crazy tho find it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Oct 2012 15:12:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147245#M39</guid>
      <dc:creator>ioniriondo</dc:creator>
      <dc:date>2012-10-23T15:12:59Z</dc:date>
    </item>
    <item>
      <title>Re: I2C in M24256W EEPROM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147246#M40</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Again, I have no idea what your code is doing, but the "pause" should be something on the order of 10ms.&lt;/P&gt;&lt;P&gt;You are not even checking the status bits (at least as far as I can tell) - you need to know if you are getting ACKs or not in the writes.&lt;/P&gt;&lt;P&gt;It is not clear that the writes are working....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Oct 2012 15:22:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147246#M40</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2012-10-23T15:22:15Z</dc:date>
    </item>
    <item>
      <title>Re: I2C in M24256W EEPROM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147247#M41</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Arial, sans-serif;"&gt;I'll try to explain the code a little bit so that way maybe we can get to the solution.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Arial, sans-serif;"&gt;I've checked the i2c signal with the scope and the datasheet specs and it seems to do it right, at least it sends right ACKs. At first it reads FFh (default power-on value), meaning that it didn’t write the byte. Now, it reads always 00h, indepenent of the value that I send.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Arial, sans-serif;"&gt;Maybe I’m forgeting some code or doing something wrong, but I don’t see it.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;void I2C1ByteWriteM24256( _SOFT_U8BITS u8deviceaddress, _SOFT_U8BITS u8highaddress, _SOFT_U8BITS u8lowaddress, _SOFT_U8BITS u8bytevalue){ &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Write function code&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8address&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8deviceaddress;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #99cc00;"&gt;//This part only configures the address for write mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8address &amp;lt;&amp;lt; 1;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8address | 0x00;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Start();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Star condition&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8address;//((u8deviceaddress &amp;lt;&amp;lt; 1) | 0x00);//Write mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #99cc00;"&gt;//Device address in write mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Wait for ack&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8highaddress;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Memory high address&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8lowaddress;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Memory low address&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_D = u8bytevalue;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Sent byte&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Stop();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;Stop condition&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Small counter to wait to the function response&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;_SOFT_U8BITS I2C1RandomAddresSReadM24256(&amp;nbsp; _SOFT_U8BITS u8deviceaddress, _SOFT_U8BITS u8highaddress, _SOFT_U8BITS u8lowaddress){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Read function code&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8address;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8addressW;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8addressR;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SOFT_U8BITS u8return_value;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8deviceaddress;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8addressW = (u8address &amp;lt;&amp;lt; 1) | MWSR; //0x00 Para escritura&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;Address for write mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8address = u8deviceaddress;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8addressR = (u8address &amp;lt;&amp;lt; 1) | MRSW; //0x01 Para lectura&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Adress for read mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Start();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8addressW);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//This part is same as for write&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8highaddress);&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8lowaddress);&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_RepeatedStart();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Second star condition&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_write_byte (u8addressR);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Device adress in read mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_EnterRxMode();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//We set the micro in read mode&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8return_value = i2c_read_byte();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;Clears micro data register and initiates read sequence&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Wait();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_DisableAck();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;//Makes no ack&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2c1_Stop();&amp;nbsp; &lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8return_value = i2c_read_byte();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;Reads actual data&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 9.5pt; font-family: inherit, serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(u8return_value);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/SPAN&gt;&lt;SPAN style="font-size: 9.5pt; font-family: 'inherit','serif'; color: #9bbb59;"&gt;Returns the function value&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Oct 2012 07:24:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/I2C-in-M24256W-EEPROM/m-p/147247#M41</guid>
      <dc:creator>ioniriondo</dc:creator>
      <dc:date>2012-10-24T07:24:32Z</dc:date>
    </item>
  </channel>
</rss>

