Hello Everyone,
I am working on a robotics project that require control of two BLDC motors with stator size about 2208. I need a solution that is as flexible as possible to experiment with different designs. I have been following great development projects based on the TI DRV8316 Three-Phase Integrated FET Motor Driver.
- Microspora integration of DRV8316 with stm32g431. I actually ordered PCB + Assembly based on this project. Many thanks to the Rambros Team. (https://community.simplefoc.com/t/drv8316-stm32g431-design-request-for-comments)
- SimpleFOCMini v2. Great starting point; but the configuration is baked into the hardware. Trying a different configuration requires ordering new boards. (https://community.simplefoc.com/t/simplefocmini-v2-1)
- Raspberry Pi Pico integration (https://community.simplefoc.com/t/review-request-low-cost-dual-motor-controller-based-on-pico-drv8316)
- Another integration with stm32g431 ( Request for Design Feedback: STM32G4 + DRV8316 BLDC Controller PCB )
I designed a driver board based on two DRV8316 drivers and an AMS1117-5V voltage regulator. I adhered strictly with the datasheets for selection of each component. This board can be paired with any MCU board through a carrier board. The MCU would be mounted on one side of the carrier; this driver board would be mounted on the other side. This solution allows me to try different MCUs without redesigning and ordering a different batch of boards. The carrier board is simple enough that I can cut as a single layer on a SainSmart desktop CNC machine.
If anyone in this community has some time, please take a look at the schematics and add some comments.
Features of this driver board:
- 6-layers: Internal1 = GND; Internal2 = PowerGND; Internal3 = VIN; Internal4 = GND
- Shared SPI port with separate Chip Select pins for configuring each DRV8316
- 5V 1A voltage regulator output for powering an external MCU
- Voltage sense output that measures Power Input Voltage (Vin = Vsens × 6.1)
- Removeable 0Ω bridge for nSLEEP wires from both drivers to share a single MCU pin
- Removeable 0Ω bridge for VREF wires from both drivers to share a single voltage input
- VREF can be externally tied to 3.3V if DRV8316 is configured for mode 1 or mode 3.
- VREF can be connected to a voltage divider or a DAC pin that provides 1.25V - 1.65V input if DRV8316 is configured for mode 2 or mode 4. This voltage input sets the internal threshold for cycle-by-cycle current limit modes.
- Power Input and Motor Outputs can be soldered directly or connected with 3.5mm Pitch Terminal Block Connectors.
- Space enough for mounting header pins on top side or bottom of driver board. This allows changing of driver board orientation relative to the MCU board. This may be necessary to align the current sense output pins SENSxx on the driver board with the ADC pins on the MCU.
Minimal requirements of the MCU or processor module:
- 1 SPI port, preferably dedicated to the drivers
- 2 PWM channels x 3 pins each channel
- 2 ADC channels x 3 pins each channel
- 1 ADC pin if Vsense (Power Input Voltage Sense) is required
- 5 - 6 digital IO pins, depending on configuration
- 1 - 2 DAC pins for VREF in mode 2 and mode 4, see VREF options above
It seems the ESP32-S3 has the required number of SPI ports, ADC channels, and PWM channels. All GPIO pins are configurable in software. This kind of flexibility makes this MCU an ideal fit for this driver board. Please let me know if there is a better MCU for me to try with SimpleFOC.


