Dual Brushless Motor ESC, 10-62V, up to 50A per motor. Motors ganged or independent, multiple control input methods, cycle-by-cycle current limit, speed mode and torque mode control. Motors tiny to kW. Speed limit and other parameters easily set in firmware. As used in 'The Brushless Brutalist' locomotive - www.jons-workshop.com. See also Model Engineer magazine June-October 2019.

Dependencies:   mbed BufferedSerial Servo PCT2075 FastPWM

Update 17th August 2020 Radio control inputs completed

Revision:
14:acaa1add097b
Parent:
13:ef7a06fa11de
Child:
16:d1e4b9ad3b8b
--- a/brushless_motor.cpp	Sun Sep 29 16:34:37 2019 +0000
+++ b/brushless_motor.cpp	Sat Nov 30 16:34:58 2019 +0000
@@ -1,4 +1,8 @@
-//  Cloned from 'DualBLS2018_06' on 23 November 2018
+/*
+    STM3_ESC    Electronic Speed Controller board, drives Two Brushless Motors, full Four Quadrant Control.
+    Jon Freeman  B. Eng Hons
+    2015 - 2019
+*/
 #include "mbed.h"
 //#include    "users/mbed_official/code/mbed-dev/file/707f6e361f3e/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F401xE/device/stm32f401xe.h"
 //#include    "stm32f401xe.h"
@@ -61,7 +65,7 @@
 }
 
 /**
-*   void    brushless_motor::sniff_current   ()  {          //  Initiate ADC current reading
+*   void    brushless_motor::sniff_current   ()  {          //  Initiate ADC current reading of approx motor average current
 *       This to be called in response to ticker timebase interrupt.
 *       As designed, called at 200 micro second intervals (Feb 2019)
 *       Updates double I.dbl current measured in milliamps
@@ -235,7 +239,7 @@
 */
 void    brushless_motor::speed_monitor_and_control   ()       //  call this once per 'MAIN_LOOP_REPEAT_TIME_US= 31250' main loop pass to keep count = edges per sec
 {
-#ifdef  USING_DC_MOTORS
+#ifdef  USING_DC_MOTORS     //  deprecated
     if  (dc_motor)
         return  0;
 #endif