-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
K64F Fails to read I2C EEPROM #17
Comments
Where is this EEPROM chip located. I could not find it on the application shield board shown below: |
I realized I don't have a test-shield board, can you please try the attached patch. |
@mmahadevan108 , if you're a partner please reach out to your partner enablement contact and they will send you a couple boards) |
Thanks, I have contacted them. |
@mmahadevan108 I tried the patch, seems like an additional tweak is needed. With the patch the start condition isn't followed up by anything. Please give it a try on the test shield and let us know. |
@maclobdell If you can retest latest master , there's a fix , I got all OK for i2c tests, using K64F target |
I tested it with the master branch and confirm that everything passes now. @mmahadevan108 Thanks for the fix!
|
After fixing the other unrelated issue: #16
The I2C EEPROM tests fail for K64F.
After the I2CEeprom library does a write to the EEPROM, it does a sequence of 0-byte writes every 1ms until it gets a ACK indicating the write finished on the EEPROM and it is ready to read. After it gets an Ack, then the read should happen.
But on the K64F the read doesn’t happen.
It seems that, if a 0-byte write cycle results in an Ack, there is no stop condition afterwards, and the next write cycle that is requested results in Bus Busy error.
I think that, for compatibility, the K64F hal implementation/driver needs to ensure that 0-byte write sequences (or all write sequences that are finished?), are followed by stop condition to release the bus.
@mmahadevan108
The text was updated successfully, but these errors were encountered: