We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
hi i am using the controller P89c51RD2BN and eeprom AT24c04 my i2c routine read and write the data perfectly. but upto the address 116 D (0x74) if i am trying to store any variable beyound this address my display shows garbage(it hangs) but ALE signal is presents. can any one help me to solve this
"As i stated earlier the i2c RD/WR routine is perfect (sic) as i used all this in many other system"
No, it is clearly not perfect - because it doesn't work for addresses above 0x74!
It is a very common misconception that, just because you've never seen a problem, there are no problems - I call this the "Proven Product Syndrome"
In fact, what you have is almost certainly a bug that has always existed in your routines but, until now, you've just been lucky and never been affected by it.
So, go back to your original design: Was it specified to work for addresses over 0x74? Was its operation tested for addresses over 0x74? If it was tested, what were the test conditions, and how did they differ from your current usage?
Wasn't there a post a while back about I2C routines that only worked up to a certain address...?
"it is clearly not perfect - because it doesn't work for addresses above 0x74!"
There's a proviso here: maybe your software is OK, but your hardware design is wrong, and/or your hardware implementation is wrong or broken.
This is why it's totally inadequate just to say, "my display shows garbage (it hangs)". You need to do some testing and investigation to find out exactly what is happening!
Again, have you used an oscilloscope to check what's happening on the I2C lines?
thanks i will cheack all the things and be back to you