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

Fix handling of I2C Errata E302 #11

Open
wants to merge 1 commit into
base: gsdk_4.0
Choose a base branch
from

Conversation

PascalGuenther
Copy link

In the original E303 workaround, the application reads i2c->status, but compares the result to the interrupt flags.
Instead, the bits must be compares against I2C_STATUS_RXDATAV and I2C_STATUS_RXFULL, respectively

@ghost
Copy link

ghost commented Sep 23, 2022

Puzzled why this clear case of register confusion has not been merged or otherwise fixed, even in recent 2022-08 v4.1.1?

I'm looking into whether some I2C hiccups experienced on an EFR32BG12 based platform could be attributed to known erratas fixed in more recent gecko_sdk releases than in use on the platform (currently on v3.2.3).

Looking at this PR I find that the errata referred to here generically as E303 (ignoring the typo in the issue summary), in the em_i2c.c code referred to as I2C_E303 and in v4.1.1 applied specifically when defines _SILICON_LABS_32B_SERIES_2_CONFIG_1-3 are set, seems to be known as I2C_E207 for the for the EFR32BG12.
For EFR32BG21 the issue is listed as I2C_E303 in the errata.

The attempt at mitigating I2C_E303 seems to address exactly what EFR32BG12 I2C_E207 describes apart from an additional clear of I2C_IF_RXUF. But this known fix for I2C_E303/E207 seems to not be applied for 32B_SERIES_1 devices.

Anybody able to explain why?

@PascalGuenther
Copy link
Author

PascalGuenther commented Oct 2, 2022

E207 (BG12) and E303 (BG21) seem to address the same issue. You're right, I mistakenly typed the wrong error in the title of this PR.
Will this issue be fixed in an upcoming release?

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