[TriEmbed] Designing a brushless motor controller during the chip shortage

John Wettroth jwet at mindspring.com
Thu Oct 7 11:58:58 CDT 2021


Charles,
I’d be happy to help with the analog aspects a bit- you can PM me.  The big thing with FET drivers is to keep inductance (loop areas in your layout) small and use the fattest tracks you can or a ground plane.  The peak currents going into a gate or on the order of amps and fast, any inductance wreaks havoc.  Watch ground paths and supply paths and how these currents will flow- you want it to flow back to to a low impedance point with nothing sensitive up stream- usually a star ground/star supply with bulk capacitance.  If you’re going small, there are drivers with integrated FET’s from Toshiba, Freescale, Infineon, On.  Generally go up to about 1 amp/phase or so- pretty available.  Make life easy if you follow their layout rules.
 
Regards,
John M. Wettroth
(984) 329-5420 (home)
(919) 349-9875 (cell) 
 
From: TriEmbed <triembed-bounces at triembed.org> On Behalf Of Charles West via TriEmbed
Sent: Wednesday, October 6, 2021 9:43 PM
To: Carl Nobile <carl.nobile at gmail.com>
Cc: TriEmbed <triembed at triembed.org>
Subject: Re: [TriEmbed] Designing a brushless motor controller during the chip shortage
 
@Pete:
When you were working on it, did the motor you were using have hall effect sensors in it?  That's about all that makes me willing to try this.  In the worse case, I should be able to fall back to trapezoidal control based off of the hall effect sensors without any sort of fancy estimation.  I hope I can do better than that though.
 
@Carl&Rodney:
I've been actively looking through motor control gate drivers trying to find something that is simple enough I can work with it, available and capable enough.  So far, the best I've found is the STDRIVE101 (https://www.mouser.com/ProductDetail/STMicroelectronics/STDRIVE101?qs=xZ%2FP%252Ba9zWqYdY88AYx%252Blxg%3D%3D).  I'm bumbling my way through designing a test circuit for it now, but I would be the first to admit that I am rather terrible at analog electronics.
 
Thanks,
Charlie
 
 
On Tue, Oct 5, 2021 at 3:35 PM Carl Nobile via TriEmbed <triembed at triembed.org <mailto:triembed at triembed.org> > wrote:
So my bad, I read Charlie's email and missed the brushless part. I must have brushes in my mind.
 
So brushless DC motors are actually 3 phase synchronous AC motors, So three different PWM modulators are needed for each motor. Each PWM is 120 degrees out of sync with the others. and there can be absolutely no overlay on the others. There are special MCUs that are made for these motors. See the link below, it's for an older 8 bit MCU, but will give you an idea as to what needs to be done.
http://ww1.microchip.com/downloads/en/devicedoc/atmel-7710-8-bit-microcontroller-at90pwm216-316_datasheet-summary.pdf
 
~Carl
 
On Tue, Oct 5, 2021 at 12:55 PM Pete Soper via TriEmbed <triembed at triembed.org <mailto:triembed at triembed.org> > wrote:
I once got the idea I could control a brushless motor by being "clever" controlling set of drivers. I was mistaken. Without some means of sensing the behavior of the motor, whether it be back EMF or some other feedback it's about 99% of hopeless. Which is to say I was too stubborn to give up and managed to see the motor (from a server disk drive) spin, but if I squinted at it there was misbehavior.  A truly silly waste of time.
-Pete
On 10/5/21 12:45, R Radford via TriEmbed wrote:
Carl, Charles is looking for a brushless controller, not just a DC motor driver. Brushless motors are closer to a stepper motor than a regular DC motor, but the 'steps' are controlled by sensing hall effect sensors to know when to step to keep the motor running smoothly. 
 
They are great as they have less mechanical issues over time (no brushes to replace) and also produce less electrical noise. 
 
The circuit you show is a nice DC to PWM circuit that is similar to one I did many years ago, but now most (all?) microprocessors have built in hardware assist PWM so that part is already handled. The first time I used a similar circuit was controlling a robot from a 286 PC based robot where I used the parallel port to drive an R2R D/A circuit comparing against a triangle wave similar to your circuit. It worked great at the time, but now would not be needed. I still have that old hardware somewhere - perhaps I should pull it out and upgrade it.
 
On Tue, Oct 5, 2021 at 12:02 PM Carl Nobile via TriEmbed <triembed at triembed.org <mailto:triembed at triembed.org> > wrote:
Charly, 
 
There are a few solutions to the controller problem. I designed an analog PWM circuit using op-amps and comparators that works great. You would also need an H-Bridge you would then need just one MCU board to control the PWM circuits then then control the H-Bridge circuits.
My design is at: https://github.com/cnobile2012/VoltageControlledPWM
My motors are fairly low current and voltage so the H-Bridges I'm using won't work for you, however MPJA.com has one in the link below, that will handle higher currents.
https://www.mpja.com/Dual-H-Bridge-DC-Motor-Driver/productinfo/35567+MP/
It will handle two motors and is only $22.95 ea. They give full docs on their site.
My PWM board shou interface with it fine.
 
~Carl
 
On Sun, Oct 3, 2021 at 11:16 PM Charles West via TriEmbed <triembed at triembed.org <mailto:triembed at triembed.org> > wrote:
Hello all!
 
For the past 5 years or so, I've been working on a open source low cost sidewalk delivery robot.  The current draft (prototype picture: http://goodbot.ai/lib/exe/fetch.php?media=mk3draft1.jpg) has 4 hoverboard style motors in a skid steer arrangement.  Each robot will need 4 motor controllers, which is one the big cost drivers right now (even prior to the covid shortage, the controller cost more than the motors).
 
My last stab at designing a brushless motor controller failed spectacularly and the covid parts shortage has also made the central parts of that design completely unavailable.  In addition, the bulk price for the motor controllers I've been using jumped from $56 per to ~$100 per.
 
Given that, I thought it might be time to get back to the drawing board.  However, I am not an expert at this sort of thing, so I thought it might be good to post what I am thinking and see if I am completely off the reservation.
 
I'm currently using off-brand VESC motor controllers (schematic for normal ones here: https://vesc-project.com/sites/default/files/Benjamin%20Posts/VESC_6.pdf).  They are great but do way more than I need.  They can handle sensored and sensorless motors and be reconfigured with MANY different options using a desktop application.  I don't need to make something that is easy to make work for lots of different motors and I don't need to support sensorless operation.  I just need to make something that works for my motors.
 
The approach that the VESC takes is a central microcontroller which talks with a (not currently available) DRV8301 chip.  This chip in turn senses voltage/current across each motor coil and drives 6 N-channel mosfets to control the motor (3 high side, 3 low side).  It does FOC control, which I believe is state of the art in terms of smooth motor control. It also integrates the 3 halls sensors that sensored motors have if they are available.
 
I'm having trouble finding any of these 6 mosfet motor controller optimized gate drivers, so I am thinking that I will just get some high side/low side mosfet drivers (like maybe these: https://www.mouser.com/ProductDetail/STMicroelectronics/SRK2000A?qs=WHlX%252B%252B9%2FRwCG%2FkukabfLqA%3D%3D) and some nice mosfets.  Particularly without dedicated chips being available, I'm not going to try to do current or voltage sensing.  I am thinking that I would just PWM the 3 half bridges and try to do sinusoidal motor control using a STM32 microcontroller to drive it and the hall sensors in the motors to estimate position relative to the coils.
 
If I may ask, does this sound reasonable or am I totally off base?
 
Thanks,
Charlie
_______________________________________________
Triangle, NC Embedded Computing mailing list

To post message: TriEmbed at triembed.org <mailto:TriEmbed at triembed.org> 
List info: http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
TriEmbed web site: http://TriEmbed.org
To unsubscribe, click link and send a blank message: mailto:unsubscribe-TriEmbed at bitser.net <mailto:unsubscribe-TriEmbed at bitser.net> ?subject=unsubscribe


 
-- 
--------------------------------------------------------------
Carl J. Nobile (Software Engineer/API Design)
carl.nobile at gmail.com <mailto:carl.nobile at gmail.com> 
--------------------------------------------------------------
_______________________________________________
Triangle, NC Embedded Computing mailing list

To post message: TriEmbed at triembed.org <mailto:TriEmbed at triembed.org> 
List info: http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
TriEmbed web site: http://TriEmbed.org
To unsubscribe, click link and send a blank message: mailto:unsubscribe-TriEmbed at bitser.net <mailto:unsubscribe-TriEmbed at bitser.net> ?subject=unsubscribe
 
_______________________________________________
Triangle, NC Embedded Computing mailing list
 
To post message: TriEmbed at triembed.org <mailto:TriEmbed at triembed.org> 
List info: http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
TriEmbed web site: http://TriEmbed.org
To unsubscribe, click link and send a blank message: mailto:unsubscribe-TriEmbed at bitser.net?subject=unsubscribe
 
_______________________________________________
Triangle, NC Embedded Computing mailing list

To post message: TriEmbed at triembed.org <mailto:TriEmbed at triembed.org> 
List info: http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
TriEmbed web site: http://TriEmbed.org
To unsubscribe, click link and send a blank message: mailto:unsubscribe-TriEmbed at bitser.net <mailto:unsubscribe-TriEmbed at bitser.net> ?subject=unsubscribe


 
-- 
--------------------------------------------------------------
Carl J. Nobile (Software Engineer/API Design)
carl.nobile at gmail.com <mailto:carl.nobile at gmail.com> 
--------------------------------------------------------------
_______________________________________________
Triangle, NC Embedded Computing mailing list

To post message: TriEmbed at triembed.org <mailto:TriEmbed at triembed.org> 
List info: http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
TriEmbed web site: http://TriEmbed.org
To unsubscribe, click link and send a blank message: mailto:unsubscribe-TriEmbed at bitser.net <mailto:unsubscribe-TriEmbed at bitser.net> ?subject=unsubscribe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20211007/a4088083/attachment.htm>


More information about the TriEmbed mailing list