8000 Check for PDMIn DMA getting stuck. by dhalbert · Pull Request #916 · adafruit/circuitpython · GitHub
[go: up one dir, main page]

Skip to content

Check for PDMIn DMA getting stuck. #916

New issue

Have a question about th 8000 is 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 1 commit into from
Jun 8, 2018

Conversation

dhalbert
Copy link
Collaborator
@dhalbert dhalbert commented Jun 8, 2018

The DMA transfer in PDMIn occasionally seems to lose a trigger from the I2S peripheral, and stops transferring. PDMIn record would hang waiting for DMA to finish. This puts a counter "timeout" on the number of times we check for DMA not being done. If the counter is exceeded, we give up and try again.

It would be nice to know why the trigger is being lost, but this prevents a hang, which is a lot better than nothing.

Sorta fixes #879.

@dhalbert dhalbert requested a review from tannewt June 8, 2018 01:41
@dhalbert
Copy link
Collaborator Author
dhalbert commented Jun 8, 2018

Tested on M4, which needs a larger counter limit because it's faster. But same hang happens on M4 as well.

Copy link
Member
@tannewt tannewt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the hang fix!

@tannewt tannewt merged commit 4e4d795 into adafruit:master Jun 8, 2018
@dhalbert dhalbert deleted the pdmin_hack_fix branch June 15, 2018 18:04
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

Successfully merging this pull request may close these issues.

PDMin's DMA misses triggers on M0 and M4 occasionally
2 participants
0