Review request: low-cost dual motor controller based on Pico + DRV8316

Hi,

I’m about to design a low-cost dual motor controller for teaching purposes and would appreciate some feedback before I commit to the PCB.

The target application is a 2-DOF direct-drive arm using two GM3506 motors with integrated AS5048A encoders. The goal is to keep the cost as low as possible while still supporting closed-loop FOC with current control.

Current architecture:

The target BOM cost is around €20–30 (excluding motors and encoders).

I’d be happy to get any general feedback on the schematic before I send the board for manufacturing. I’ll also post the PCB layout later for review.

If the concept works well, a future revision could use the RP2354B directly instead of a Pico module to make the board more compact and expose additional I/O.

Thanks!

4 Answers

4

A first draft of the PCB is hosted here: GitHub - thomasfla/pico_dual_PMSM_BUG79100G_DRV8316C: Low cost PMSM using RPI Pico, external ADC and integrated mos+driver+current sensing. · GitHub

I see the Pico is USB-powered. Is there a chance to feed it from the motor PSU? BTW: I had pretty clean signals using the internal ADCs with Linear Halls. Have you considered using these, before going the external ADC route? Is it because of LowSide current sensing?

I'll use this board for a robotic teaching class, Student will connect to the USB to send realtime control command, so powering the logic via USB is ok. I tried to keep the board very simple, but you can modify it and add an inductor to one of the DRV8316C Buck to genrate 3.3V. Also implementing rapsberrypi recomanded power ORing with an external MOS, see pico datasheet. See this about internal ADC, yes basically ADC speed and syncronisation makes it not suted for low side shuts: https://community.simplefoc.com/t/rp2350-support-raspberry-pico-2/5607/5?u=thomasfla

I’m to lazy to check the DRV8316 datasheet, but I find it odd you put INLA-INLC to VCC?
I’d expect GND…
Also routing both nFault outputs to one pico pin is odd IMHO. I’d decouple them with a dual Schottky.
I haven’t seen nReset anywhere. Which might be nice to have, if you want to clear a fault

Thanks,
I double checked the 3PWM mode:


Also nFault is open drain, so no problem here,
image
I will however add an external pullup since first rp2350 chips can have an errata on pin pad, and also this will prevent test mode on startup.

I’ll not wire the nSPEEP (reset) because of low GPIO budget. I should be able to recover from a fault with SPI CLR_FLT bit.