<div dir="ltr">Charlie,<div><br></div><div>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. </div><div>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). </div><div><br></div><div>BTW, linear motes and steppers with microstepping can all be encoder-commutated and driven off 1 sinusoid table at 3 offsets. </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Oct 6, 2021 at 9:44 PM Charles West via TriEmbed <<a href="mailto:triembed@triembed.org">triembed@triembed.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>@Pete:</div><div>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.</div><div><br></div><div>@Carl&Rodney:</div><div>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 (<a href="https://www.mouser.com/ProductDetail/STMicroelectronics/STDRIVE101?qs=xZ%2FP%252Ba9zWqYdY88AYx%252Blxg%3D%3D" target="_blank">https://www.mouser.com/ProductDetail/STMicroelectronics/STDRIVE101?qs=xZ%2FP%252Ba9zWqYdY88AYx%252Blxg%3D%3D</a>). 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.</div><div><br></div><div>Thanks,</div><div>Charlie<br> </div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 5, 2021 at 3:35 PM Carl Nobile via TriEmbed <<a href="mailto:triembed@triembed.org" target="_blank">triembed@triembed.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">So my bad, I read Charlie's email and missed the brushless part. I must have brushes in my mind.<div><br></div><div>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.</div><div><a href="http://ww1.microchip.com/downloads/en/devicedoc/atmel-7710-8-bit-microcontroller-at90pwm216-316_datasheet-summary.pdf" target="_blank">http://ww1.microchip.com/downloads/en/devicedoc/atmel-7710-8-bit-microcontroller-at90pwm216-316_datasheet-summary.pdf</a><br></div><div><br></div><div>~Carl</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 5, 2021 at 12:55 PM Pete Soper via TriEmbed <<a href="mailto:triembed@triembed.org" target="_blank">triembed@triembed.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>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.</p>
<p>-Pete<br>
</p>
<div>On 10/5/21 12:45, R Radford via
TriEmbed wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">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.
<div><br>
</div>
<div>They are great as they have less mechanical issues over
time (no brushes to replace) and also produce less
electrical noise. </div>
<div><br>
</div>
<div>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.</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Oct 5, 2021 at 12:02
PM Carl Nobile via TriEmbed <<a href="mailto:triembed@triembed.org" target="_blank">triembed@triembed.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Charly,
<div><br>
</div>
<div>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.</div>
<div>My design is at: <a href="https://github.com/cnobile2012/VoltageControlledPWM" target="_blank">https://github.com/cnobile2012/VoltageControlledPWM</a></div>
<div>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.</div>
<div><a href="https://www.mpja.com/Dual-H-Bridge-DC-Motor-Driver/productinfo/35567+MP/" target="_blank">https://www.mpja.com/Dual-H-Bridge-DC-Motor-Driver/productinfo/35567+MP/</a><br>
</div>
<div>It will handle two motors and is only $22.95 ea. They
give full docs on their site.</div>
<div>My PWM board shou interface with it fine.</div>
<div><br>
</div>
<div>~Carl</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sun, Oct 3, 2021 at
11:16 PM Charles West via TriEmbed <<a href="mailto:triembed@triembed.org" target="_blank">triembed@triembed.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>Hello all!</div>
<div><br>
</div>
<div>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: <a href="http://goodbot.ai/lib/exe/fetch.php?media=mk3draft1.jpg" target="_blank">http://goodbot.ai/lib/exe/fetch.php?media=mk3draft1.jpg</a>)
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).<br>
</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>I'm currently using off-brand VESC motor
controllers (schematic for normal ones here: <a href="https://vesc-project.com/sites/default/files/Benjamin%20Posts/VESC_6.pdf" target="_blank">https://vesc-project.com/sites/default/files/Benjamin%20Posts/VESC_6.pdf</a>).
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.</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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: <a href="https://www.mouser.com/ProductDetail/STMicroelectronics/SRK2000A?qs=WHlX%252B%252B9%2FRwCG%2FkukabfLqA%3D%3D" target="_blank">https://www.mouser.com/ProductDetail/STMicroelectronics/SRK2000A?qs=WHlX%252B%252B9%2FRwCG%2FkukabfLqA%3D%3D</a>)
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.</div>
<div><br>
</div>
<div>If I may ask, does this sound reasonable or am I
totally off base?</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Charlie<br>
</div>
</div>
_______________________________________________<br>
Triangle, NC Embedded Computing mailing list<br>
<br>
To post message: <a href="mailto:TriEmbed@triembed.org" target="_blank">TriEmbed@triembed.org</a><br>
List info: <a href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org" rel="noreferrer" target="_blank">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a><br>
TriEmbed web site: <a href="http://TriEmbed.org" rel="noreferrer" target="_blank">http://TriEmbed.org</a><br>
To unsubscribe, click link and send a blank message:
mailto:<a href="mailto:unsubscribe-TriEmbed@bitser.net" target="_blank">unsubscribe-TriEmbed@bitser.net</a>?subject=unsubscribe<br>
<br>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr">
<div dir="ltr">--------------------------------------------------------------<br>
Carl J. Nobile (Software Engineer/API Design)<br>
<a href="mailto:carl.nobile@gmail.com" target="_blank">carl.nobile@gmail.com</a><br>
--------------------------------------------------------------</div>
</div>
_______________________________________________<br>
Triangle, NC Embedded Computing mailing list<br>
<br>
To post message: <a href="mailto:TriEmbed@triembed.org" target="_blank">TriEmbed@triembed.org</a><br>
List info: <a href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org" rel="noreferrer" target="_blank">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a><br>
TriEmbed web site: <a href="http://TriEmbed.org" rel="noreferrer" target="_blank">http://TriEmbed.org</a><br>
To unsubscribe, click link and send a blank message: mailto:<a href="mailto:unsubscribe-TriEmbed@bitser.net" target="_blank">unsubscribe-TriEmbed@bitser.net</a>?subject=unsubscribe<br>
<br>
</blockquote>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
Triangle, NC Embedded Computing mailing list
To post message: <a href="mailto:TriEmbed@triembed.org" target="_blank">TriEmbed@triembed.org</a>
List info: <a href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org" target="_blank">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a>
TriEmbed web site: <a href="http://TriEmbed.org" target="_blank">http://TriEmbed.org</a>
To unsubscribe, click link and send a blank message: <a href="mailto:unsubscribe-TriEmbed@bitser.net?subject=unsubscribe" target="_blank">mailto:unsubscribe-TriEmbed@bitser.net?subject=unsubscribe</a>
</pre>
</blockquote>
</div>
_______________________________________________<br>
Triangle, NC Embedded Computing mailing list<br>
<br>
To post message: <a href="mailto:TriEmbed@triembed.org" target="_blank">TriEmbed@triembed.org</a><br>
List info: <a href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org" rel="noreferrer" target="_blank">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a><br>
TriEmbed web site: <a href="http://TriEmbed.org" rel="noreferrer" target="_blank">http://TriEmbed.org</a><br>
To unsubscribe, click link and send a blank message: mailto:<a href="mailto:unsubscribe-TriEmbed@bitser.net" target="_blank">unsubscribe-TriEmbed@bitser.net</a>?subject=unsubscribe<br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr">--------------------------------------------------------------<br>Carl J. Nobile (Software Engineer/API Design)<br><a href="mailto:carl.nobile@gmail.com" target="_blank">carl.nobile@gmail.com</a><br>--------------------------------------------------------------</div></div>
_______________________________________________<br>
Triangle, NC Embedded Computing mailing list<br>
<br>
To post message: <a href="mailto:TriEmbed@triembed.org" target="_blank">TriEmbed@triembed.org</a><br>
List info: <a href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org" rel="noreferrer" target="_blank">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a><br>
TriEmbed web site: <a href="http://TriEmbed.org" rel="noreferrer" target="_blank">http://TriEmbed.org</a><br>
To unsubscribe, click link and send a blank message: mailto:<a href="mailto:unsubscribe-TriEmbed@bitser.net" target="_blank">unsubscribe-TriEmbed@bitser.net</a>?subject=unsubscribe<br>
<br>
</blockquote></div>
_______________________________________________<br>
Triangle, NC Embedded Computing mailing list<br>
<br>
To post message: <a href="mailto:TriEmbed@triembed.org" target="_blank">TriEmbed@triembed.org</a><br>
List info: <a href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org" rel="noreferrer" target="_blank">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a><br>
TriEmbed web site: <a href="http://TriEmbed.org" rel="noreferrer" target="_blank">http://TriEmbed.org</a><br>
To unsubscribe, click link and send a blank message: mailto:<a href="mailto:unsubscribe-TriEmbed@bitser.net" target="_blank">unsubscribe-TriEmbed@bitser.net</a>?subject=unsubscribe<br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Best regards, Mike</div>