mirror of
https://github.com/apache/nuttx.git
synced 2026-05-19 03:03:37 +08:00
101ff2c2bb
Create a bidirectional dshot lower-half driver, using the flexio block. This driver enables use of DShot protocol for Electronic Speed Controllers (ESCs) typically used in drone motor control. Eight channels of DShot per flexio block are supported in: - Normal mode in all DShot speeds, with telemetry request (uart response needs to be handled outside of this driver) - Bidirectional mode in all DShot speeds, with telemetry request & response - Configurable to use either independent TX timers for each channel, or to use a common TX timer for all channels to synchronize the output - For bidirectional RX, each channel always uses an own timer. In normal mode, the driver operates without any interrupts. In bidirectional mode, the driver reconfigures the FlexIO timers (as needed) and shifters from TX to RX in the interrupt handler, and reads out the raw response packet. Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>