0
\$\begingroup\$

I’ve been working on implementing DShot150 on an Nucleof4 development board using HAL drivers with DMA, driven via a timer. I followed the DShot using HAL drivers implementation and even extracted the relevant code directly into main.c, removing any dependency on external libraries and blheli_s esc

However, I’m still observing an unexpected 20 microsecond delay between frames. When I connect the timer output (configured for PWM via DMA) to the ESC’s motor signal input, I can feel distinct slow pulses in the motor's three-phase wires coming from the ESC and the motor pins for a second when i remove the signal to the esc.

I’ve read that DShot requires a minimum of 2 microseconds between frames, but other sources mention that an idle period of 2 bits (which is 13.3 µs at DShot150 since 1 bit = ~6.67 µs) is sufficient by setting the timer's CCR to 0 during the idle period.

So, my questions are:

Has anyone else felt a distinct slow pulses in the motor's three-phase wires coming from the ESC what kind of conclusion i can come from this to proceed further to run the motor continuously.

What is the officially recommended or widely accepted inter-frame delay for DShot150 frames? Is it 2 µs, or is the 2-bit idle (13.3 µs) the correct approach?

Is bare-metal programming the only reliable way to implement DShot on STM32? I’m open to moving away from HAL if necessary, but looking for others' experiences or guidance.

Any help or insights would be much appreciated!

\$\endgroup\$
2
  • \$\begingroup\$ Santhosh - Hi, (a) As you seem to be new here (welcome :) ) please read the tour & help center as site rules here differ from typical forums. (b) There is only 1 clear question in your post so far ("is .. baremetal programming the only way...") but you start that with "And", as if it's a second question. I think you might be trying to ask a first question earlier in the text, but there is no clear question there. Please consider making an edit to the question, to ask a specific, clear first question, if that is what you intended, because Stack Exchange works better with clear questions. TY \$\endgroup\$ Commented Aug 12 at 14:48
  • \$\begingroup\$ Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. \$\endgroup\$ Commented Aug 12 at 22:29

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.