Skip to content

Fix IOMCU transmission errors resulting from DMA timer interference #27201

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

Merged
merged 3 commits into from
Jun 2, 2024

Conversation

andyp1per
Copy link
Contributor

This fixes #27171

We basically needed to reset the PWM peripheral when releasing the IC DMA lock in the same way we do for the main DMA channel.

@andyp1per andyp1per requested a review from tridge May 30, 2024 15:49
@andyp1per andyp1per added the BUG label May 30, 2024
@andyp1per andyp1per changed the title Fix IOMCU transmission errors resulting from DMA timer interferemce Fix IOMCU transmission errors resulting from DMA timer interference May 30, 2024
@tridge
Copy link
Contributor

tridge commented May 30, 2024

@andyp1per what is the consequences of this bug? I assume it affects 4.5 as well?

@andyp1per
Copy link
Contributor Author

@andyp1per what is the consequences of this bug? I assume it affects 4.5 as well?

It affects 4.5 as well. Only happens with bdshot on channels 3/4. Consequences are dropped packets on the IOMCU uart because you get missing bytes at the beginning of frames. Its also somewhat timing dependent, if you build with assertions the problem goes away, if you put in a little sleep the problem goes away, it doesn't happen every frame - only now and then - hence why you were able to fly without issue.

@tridge
Copy link
Contributor

tridge commented Jun 2, 2024

I've confirmed this bug impacts 4.5.x as well

@tridge tridge merged commit eb8eeba into ArduPilot:master Jun 2, 2024
@andyp1per andyp1per deleted the pr-iomcu-bdshot-err branch June 2, 2024 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: 4.5.5-beta1
Development

Successfully merging this pull request may close these issues.

iomcu reset with bdshot on 6X
2 participants