-
Notifications
You must be signed in to change notification settings - Fork 9
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
Bit-banging synchronous master doesn't reset time registers of its ports #27
Comments
On review I can see that this remains a valid issue. Library code should not rely on clean state of ports and clock blocks. |
@ed, @shuchitak – please correct me if I'm wrong that this issue does not apply to XVF3510 where both general-purpose and keyword-related SPI accesses are done through the same synchronous SPI master |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The bit-banging (zero clock-block variant) synchronous master could do with more setup to ensure ports are in a good state to be used for timed outputs.
This can happen if ports have run on different clock blocks prior and now their time registers are out of sync. This happens, for instance if you run an asynchronous master first (two clock blocks) and shut it down using API from pull request #25. As a result, I/O operations block as port timers wrap (typically 0.66ms as 65,536 ticks of 100MHz clock).
The sequence to undo the effect of an asynchronous master is to assign clock block zero to the three key ports, and to reset their time registers by restarting the clock block
This could happen in the synchronous master or, better documented and included in examples
The text was updated successfully, but these errors were encountered: