STM32 Electronic speed controller (ESC)

From Stm32World Wiki
Revision as of 03:44, 19 May 2022 by Lth (talk | contribs) (→‎MCU)
Jump to navigation Jump to search

Electronic speed controller (ESC) is a device which can control a Brushless DC electric motor. This page is meant as a place to write down research notes and it is most definitely a work in progress.

Control

The first ESCs were typically controlled by applying a PWM signal to a pin. Since then many other both analogue and digital approaches have been developed. This section list some of these along with benefits and drawbacks.

Pulse width modulation (PWM)

To be added

SPI

To be added

USB

To be added

MCU

The choice of the optimal MCU is somewhat complex. The following input/output is necessary:

  • USB (DP/DM)
  • SPI Slave (CLK, MOSI, MISO and CS)
  • SPI Master (CLK, MOSI, MISO and CS for flash storage)
  • SWD (CLK, DIO)
  • UART (RX, TX for debugging)
  • 3 x Analog In for current measurement
  • 3 x PWM capable high-side outputs
  • 3 x low side outputs
  • 3 x interrupt capable inputs for zero crossing detection

Experimentally trying to do this on an STM32F411 (of Black Pill fame) result in this:

ESC Pinout Test.png

In other words, the 48 pin STM32F411CE is quite sufficient for this purpose.

MOSFET Half Bridge Driver

To be added

Miscellaneous documentation