- Sponsor
-
Notifications
You must be signed in to change notification settings - Fork 69
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
WIP: RP2040 PIO UART #248
WIP: RP2040 PIO UART #248
Conversation
@grabpot I think full-duplex could probably be pushed out to a separate PR, if that would help. It would be nice to get this one merged. |
* Added new_half_duplex() and new_full_duplex() methods, where the former accepts one pin/buffer and the latter two * In Half Duplex mode, write() disables RX SM, writes buffer to TX FIFO, waiting for TX_NFULL interrupt if necessary, then re-enables RX SM * In Full Duplex mode, write() adds buffer to internal ring buffer, enables TX_NFULL interrupt and returns. Interrupt is then responsible for pushing data into TX FIFO. * In both modes, TX SM is programmed to toggle pin direction, rather than pin level
My wired lily58 use pio and half duplex uart, looking forward a milestone for testing |
@grabpot Thanks very much! Looks good to me. Can I get this PR merged now? |
Single wire half-duplex is tested and working, both rust and config examples. |
Seems no issue for this PR, I'm merging it. Thanks very much @grabpot |
First draft of implementing a half-duplex, single wire UART serial driver,
BufferedHalfDuplexUart
, using the RP2040 PIO subsystem. Requires PR #235. Not complete, and still to do, in no particular order:rp2040_pio
feature and optional dependencieskeyboard.toml
configuration