[TriEmbed] Designing a brushless motor controller during the chip shortage
Rick
nm3g at triad.rr.com
Thu Oct 7 11:48:27 CDT 2021
Is there any reason you don't purchase an in-stock BLDC motor driver
such as:
https://www.mouser.com/ProductDetail/Texas-Instruments/DRV10983SQPWPRQ1?qs=%2Fha2pyFadujPwfH%2FXzivpU8AHrIO6U7ALudxKfjNJze3U2dD%2F68jly3tmYweXSYm
Mouser shows 66 in stock, and at $4.61 each.
I'm only showing the one device rated to 2 amps that I filtered from all
the parts currently available and am not endorsing.
Hope this helps.
Rick
On 10/7/2021 2:32 AM, Mike Lisanke via TriEmbed wrote:
> 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 <mailto: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
> <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
> <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
>> <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/
>> <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
>> <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
>> <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
>> <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
>> <http://mail.triembed.org/mailman/listinfo/triembed_triembed.org>
>> TriEmbed web site: http://TriEmbed.org
>> <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
>> <http://mail.triembed.org/mailman/listinfo/triembed_triembed.org>
>> TriEmbed web site: http://TriEmbed.org
>> <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 <http://mail.triembed.org/mailman/listinfo/triembed_triembed.org>
>> TriEmbed web site:http://TriEmbed.org <http://TriEmbed.org>
>> To unsubscribe, click link and send a blank message:mailto:unsubscribe-TriEmbed at bitser.net?subject=unsubscribe <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
> <http://mail.triembed.org/mailman/listinfo/triembed_triembed.org>
> TriEmbed web site: http://TriEmbed.org <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
> <http://mail.triembed.org/mailman/listinfo/triembed_triembed.org>
> TriEmbed web site: http://TriEmbed.org <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
> <http://mail.triembed.org/mailman/listinfo/triembed_triembed.org>
> TriEmbed web site: http://TriEmbed.org <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
>
>
>
> --
> Best regards, Mike
>
> _______________________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20211007/29d4d39d/attachment.htm>
More information about the TriEmbed
mailing list