Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
10/09/08 15:44
Read: times


 
#158940 - I2C
Responding to: ???'s previous message
You have to understand that your microcontroller also has an I2C address. Although it is not possible in your case, in many cases another device on the bus can become the master and attempt to transmit to your device. The address passed to i2c_init is the address for the microcontroller.

Now, in your simplified situation you don't care what address the microcontroller has, because the EEPROM cannot become a master. So you can pass anything here. But I saw you were attempting to pass the EEPROM address, which is a misunderstanding.

I think when you want to read from the EEPROM you need a repeated start condition after the last byte of the address. This is explained in the data sheet for the EEPROM. Read it carefully.

My suggestion remains - try to get writes working first. Initialize the I2C module then write a collection of bytes - the I2C address followed by the memory address followed by the data (double check with the data sheet what is required). If you get no errors then the write should have been successful. Verify this with a scope on the bus.

Also you need to fix the address you are writing to. 0xA0 cannot possibly be correct because the I2C module shifts the address up one bit to make room for the R/W bit. An I2C address is only seven bits, not eight. The R/W bit is not part of the address. If the address is only seven bits you cannot have the eighth bit in the address byte set.

Andy

List of 51 messages in thread
TopicAuthorDate
Question about I2C code from Code Architect            01/01/70 00:00      
   these functions are like...            01/01/70 00:00      
      Some functions are not necessary ...            01/01/70 00:00      
         yes            01/01/70 00:00      
            Question about I2C (again)            01/01/70 00:00      
               do not fiddle with the SFRs            01/01/70 00:00      
            I2C and code architect            01/01/70 00:00      
               problens with I2C            01/01/70 00:00      
                  what tools do you have?            01/01/70 00:00      
                     Tools            01/01/70 00:00      
                        try smaller resistors            01/01/70 00:00      
                           I2C Code            01/01/70 00:00      
                              Update            01/01/70 00:00      
                              I2C Code            01/01/70 00:00      
   Problens in I2C            01/01/70 00:00      
   The code            01/01/70 00:00      
      other board, same problem            01/01/70 00:00      
         I do not recall, but have a look            01/01/70 00:00      
            Shifted            01/01/70 00:00      
               Issues            01/01/70 00:00      
                  Ok..more questions.            01/01/70 00:00      
                     I2C            01/01/70 00:00      
                        How to write ?            01/01/70 00:00      
   Always get IDLE status in I2C bus            01/01/70 00:00      
   Always get IDLE status in I2C bus            01/01/70 00:00      
      I2C Interrupt doesn't work.            01/01/70 00:00      
   HOW CAN I TEST I2C INTERRUPT?            01/01/70 00:00      
      It seems to me that ....            01/01/70 00:00      
         ok, I removed spy from I2C int            01/01/70 00:00      
            some code            01/01/70 00:00      
               I need baby steps now. I 'm staying crazy with it.            01/01/70 00:00      
                  getting less crazy            01/01/70 00:00      
   where is            01/01/70 00:00      
      I couldn't understand            01/01/70 00:00      
         things            01/01/70 00:00      
         Misunderstanding            01/01/70 00:00      
            if you have ICE or ...            01/01/70 00:00      
         Code            01/01/70 00:00      
   Your note to me            01/01/70 00:00      
   Baby steps again - I2C, the return            01/01/70 00:00      
      Understanding            01/01/70 00:00      
         Because...            01/01/70 00:00      
            Hmmm            01/01/70 00:00      
                I can see something finally !!!            01/01/70 00:00      
                  Breadboard            01/01/70 00:00      
                     solder joints            01/01/70 00:00      
                        by checking EVERY solder joint twice.            01/01/70 00:00      
   I checked all solder joint            01/01/70 00:00      
      look in the datasheet and find out how to make ...            01/01/70 00:00      
         I didn't get yet            01/01/70 00:00      
            Anyone?            01/01/70 00:00      

Back to Subject List