8000 PDMIn: turn serializer on when starting DMA by dhalbert · Pull Request #927 · adafruit/circuitpython · GitHub
[go: up one dir, main page]

Skip to content

PDMIn: turn serializer on when starting DMA #927

New issue

Have a question about this project? Sign up f 8000 or 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 12, 2018

Conversation

dhalbert
Copy link
Collaborator

Thought about this some more, and realized that synchronizing the turning on of the serializer with turning on DMA might solve the problem of lost triggers. The PDMIn clock to the microphone still runs all the time, to avoid microphone startup time (verified with Saleae), but the serializer is turned on and off as needed.

Tested on Metro M0 and M4, and works. I left in the hang prevention added in #916, because it's cheap, but tested with that temporarily turned off to make sure this new fix really does something. Rewrote #916 slightly to make it more compact.

So I think this really fixes #879.

@dhalbert dhalbert requested a review from tannewt June 12, 2018 16:40
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.

Awesome! Great job on this!

@tannewt tannewt merged commit ab0bc1c into adafruit:master Jun 12, 2018
@ladyada
Copy link
Member
ladyada commented Jun 12, 2018

Detective Dan unravels the mystery once again!

@dhalbert dhalbert deleted the pdmin_serializer_on_off 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
3 participants
0