Repository navigation
fix(magnetic sensor pwm): scale the pulseIn() timeout with the PWM frequency - #582
Open
stijncarelsbergh wants to merge 1 commit into
Open
stijncarelsbergh wants to merge 1 commit into
stijncarelsbergh wants to merge 1 commit into
Conversation
…equency The frequency-aware constructor documents the AS5600 PWM modes (115/230/460/920 Hz) and computes the raw counts from them, but left the read timeout at the default 1200 us. One period at 115 Hz is ~8.7 ms and the high pulse can be ~8.4 ms, so pulseIn() times out, returns 0 and the reported angle sticks at min_raw_count: a silently dead sensor for an officially supported configuration. Only 920 Hz (max pulse ~1.05 ms) fitted into the old timeout. The timeout is now 1.2 periods, i.e. ~1.2 ms at 920 Hz (compatible with the behaviour before) and ~10 ms at 115 Hz.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix(magnetic sensor pwm): scale the pulseIn() timeout with the PWM frequency
The frequency-aware constructor documents the AS5600 PWM modes (115/230/460/920 Hz)
and computes the raw counts from them, but left the read timeout at the default
1200 us. One period at 115 Hz is ~8.7 ms and the high pulse can be ~8.4 ms, so
pulseIn() times out, returns 0 and the reported angle sticks at min_raw_count:
a silently dead sensor for an officially supported configuration. Only 920 Hz
(max pulse ~1.05 ms) fitted into the old timeout.
The timeout is now 1.2 periods, i.e. ~1.2 ms at 920 Hz (compatible with the
behaviour before) and ~10 ms at 115 Hz.
Split out of #571 at your request: one fix per PR, against
dev. The branch containsnothing else, so it can be reviewed, amended or dropped on its own.
The CI board matrix runs automatically; I did not run any hardware test, so the behavioural
claims are from reading the code plus the compiler. Happy to adjust the wording, split it
differently or drop it - no attachment to this one.