PCB Design Review G431 + INA241 + MT6816 + DRIVER

Hi, I’m designing 2 boards for SimpleFOC implementation and I’m here for feedback, to see if i’m doing things right ahaha.

The main goal is to have the best motor control as possible, so a minimal dead time (dead time introduce significant distorsion, this traducing in reduction of drive preceision, loop stability and transient control), and very good current feedback with low offset and noise, so I choosed INA241 for inline current sensing (the STM32G431 internal op amp seems ok, but they are far from the measured line, so there is significant introduced noise to the measure, and INA241 seems better for this application).

So i did a lot of components research to find what seemed the best to me.

There is 2 boards designs: one for a powerfull motor, to be mounted underside a 2212 motor, with an MT6816 encoder and discrete gate driver + mosfet implementation (MAX 13A of current, that is sufficient for my application).

The layout is not very pretty as the integration was very tight (30X30), and that the performance and compacity are the main goals, so I had to make compromises…

The gate driver wich I used (BDR2L00) seems very promising, as there is no fixed dead time inside, instead there is internal cross conduction detection circuit, so it is supposed to have the minimal « dead time » as possible (as fixed deadtime in classic gate driver circuits apply a margin to accomodate for thermal and aging conditions).

As per design reviews that I saw here, the encoder interface is in ABZ mode, for minimal latency.

The ntc thermal sensor is mounted close to one of the mosfet bridges and its signal is compared to STM32’s internal voltage reference (VREFBUFF) thanks to one of the internal comparator of stm32G431.

Concerning the second board, it’s using STM32G431 and INA241 as well, but with an ic for gate drive + mosfets. It’s for a smaller motor, so the max current is 2A.

The used motor ic is SS6343M, and I think it’s very interesting as it’s a modern ic, with the lowest dead time that I’ve find : 40ns, wich is considerably lower than similar motor driver ic like DRV8311 (90) or DRV8313 (200)…

It’s also very cheap (0.51 euro), so it’s really an interesting choice for small motor solution.

All of the implementations allow for PWM or analog in or UART or SPI control for the motor commands and all parts are pretty cheap compared to ic from TI (like DRV8316), with theorically more performance…

The only thing that is driving the cost very high is the INA241 current amp (+5.6 euros per board !).

It can be replaced by the new INA187, wich seems OK for most applications, but for now I will stick to the best ( ; .

Also, I will order multiple sensing resistors values, to tailor the pcb to my motor current, by having the best signal scaling for the 2212 motor (mounted with a custom gearbox, because my goal is to make small robot arm with cheap gearboxes and bldc motors from aliexpress).

Any reply would be greatly appreciated and I’m here if there is any question.

Thanks

2 Likes

Very nice design :slight_smile: Thanks for sharing !!