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

Carl Nobile carl.nobile at gmail.com
Tue Oct 5 14:34:49 CDT 2021


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> 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> 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> 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
>>> 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
>>>
>>>
>>
>> --
>> --------------------------------------------------------------
>> Carl J. Nobile (Software Engineer/API Design)
>> carl.nobile at gmail.com
>> --------------------------------------------------------------
>> _______________________________________________
>> Triangle, NC Embedded Computing mailing list
>>
>> To post message: 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
> 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 <unsubscribe-TriEmbed at bitser.net?subject=unsubscribe>
>
> _______________________________________________
> Triangle, NC Embedded Computing mailing list
>
> To post message: 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
>
>

-- 
--------------------------------------------------------------
Carl J. Nobile (Software Engineer/API Design)
carl.nobile at gmail.com
--------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20211005/8cdd2b99/attachment.htm>


More information about the TriEmbed mailing list