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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
02/23/09 21:04
Read: times


 
Msg Score: +1
 +1 Good Answer/Helpful
#162722 - It took me ages !
Responding to: ???'s previous message
There are two problems with your code:

The i2c_read(char ack) function needs to force SDA high before the bits are clocked in. So that SDA is an high impedance input.

And the bit that drove me mad:
You have *buf++ = read(NACK) followed by buf[1] = read(ACK)

You meant to have:
buf[0] = read(NACK); ... buf[1] = read(ACK); ... buf[20] = read(NACK);

Also you use a uint8_t for addr instead of a uint16_t. You won't get far on a 24C512 with a uint8_t !

David.

List of 19 messages in thread
TopicAuthorDate
AT24C512 Sequential Read failed!!            01/01/70 00:00      
   the IIC engine is identical ...            01/01/70 00:00      
      Sample code            01/01/70 00:00      
   what are the symptoms?            01/01/70 00:00      
      symptoms            01/01/70 00:00      
   A common mistake...            01/01/70 00:00      
   Your code looks fine            01/01/70 00:00      
      It took me ages !            01/01/70 00:00      
         uint8_t range            01/01/70 00:00      
         confusion            01/01/70 00:00      
            you use uint8_t in your read_seq ()            01/01/70 00:00      
            Do you want the full corrected source code ?            01/01/70 00:00      
               my own code            01/01/70 00:00      
                  An explanation            01/01/70 00:00      
                     code update            01/01/70 00:00      
                        diff is your friend            01/01/70 00:00      
                           size -1            01/01/70 00:00      
                        write program, rather than code...            01/01/70 00:00      
                           It's Working            01/01/70 00:00      

Back to Subject List