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

Mike Lisanke mikelisanke at gmail.com
Thu Oct 7 01:32:34 CDT 2021


Charlie,

You can commutate the motor phase from a rotary encoder. No need for Hall
effect sensors. Just phase lock to a zero point and know (measure) the 120
degree phase angles.
I did much open loop motor control at IBM. It wasn't difficult and we did
it with very simple controllers. It does pay to have a watchdog timer
power-off all op amps in-case your SW debug locks up or runs away. I had
our HW tech eventually create a socketed linear amp. Our HW engineer was an
audiophile and said my SW brought tears to his eyes (not in a good way).

BTW, linear motes and steppers with microstepping can all be
encoder-commutated and driven off 1 sinusoid table at 3 offsets.

On Wed, Oct 6, 2021 at 9:44 PM Charles West via TriEmbed <
triembed at triembed.org> wrote:

> @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> 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> 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
>> --------------------------------------------------------------
>> _______________________________________________
>> 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
>
>

-- 
Best regards,  Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20211007/f88b7136/attachment.htm>


More information about the TriEmbed mailing list