Skip to content
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

Intermittent i2c slave mode errors, interrupts delayed or fired in the wrong order resulting in data corruption #7

Open
chrisckc opened this issue Dec 16, 2022 · 0 comments

Comments

@chrisckc
Copy link

Hi, I have been using your very useful library to create some test code to try and get to the bottom of an issue I originally encountered using I2C slave mode with Arduino-Pico.

I recreated a test scenario using pure SDK and your library and found similar issues, the issues are fully detailed in this post along with scope traces.
raspberrypi/pico-sdk#1102

The issues are only really noticeable at I2C bus speeds above 100KHz.
Earle Philhower added a recent commit to his Arduino-Pico Wire API implementation which provides a workaround for the bulk of the issues, getting the failure rate down to around 0.02%, from originally being up to 50% at 1Mhz bus speed. (fast mode plus)

It looks to me like the remaining issues are with the SDK or maybe the hardware.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant