If you were Registered and logged in, you could reply and use other advanced thread options
|
Posted by Joe on May 25, 2007, 8:52 pm
Hi Folks,
Well, school's out for the summer, and I am ready to build my new bot.
If you recall, last winter break, I built "bang-bang", so named by the
people on this group because of my use of dpdt toggles connected to RC
servos to bang him off and on. Well, bang bang's motors died after
about 3 weeks of use.
Since then, I have read Gordon's book, along with a few others,
finished my course in electronics, and built a SONAR range finder
device for my final project, along with some optical gadgets for my
LASER course.
I have a circuit for PWM using a 555 and a potentiometer to vary the
duty cycle. Now, at first I thought of driving the potentiometer with
a small telescope motor, but then I started thinking about how to let
the micro know (I am using Atmel AVRs) when the pot was against the
stops so it wouldn't keep trying to turn the motor in that direction.
Just some background
I am building my own H-Bridges, using power mosfets, and my PWM
circuit (actually Horowitz and Hill's circuit). Also, I am using 2
windshield wiper motors that use 12V at 2.5 Amperes at 60 RPM
(unloaded), With a load, I have found the stall current to be 4.5
amperes and the stall torque is 13.5 Newton-meter each. This is to be
a 2 front wheel drive (differential system) vehicle using a sprocket
and chain system to transfer the power from the motors to the wheels.
Oh, this is an outdoor bot.
My question is, what frequency PWM?. All the above tests were
conducted with the motor connected directly to the battery. I have
heard that anywhere from 60 Hz to 100Khz is acceptable, but I tried
first (on the bench, ie no load) 1Khz and the power mosfet was
dissipating too much heat (like finger burning heat). At 10Khz it is
much better (ie, much less heat dissipation). I have also tried using
power darlingtons (TIP102's) and they reach 100C within about 5
seconds of power on. These tests are being conducted without heat
sinks as I was able to rig up a temperature alarm to sound when the
metal portion of the mosfet reaches 100 degrees C. Of course, I know I
will be using heat sinks in the real deal. And probably active cooling
(ie a fan).
I get absolutely no rotation until my duty cycle reaches about 60%.
That did not change from 1Khz to 10 Khz.
I am using separate power supplies for motors and electronics with
just the grounds commoned.
I decided that using the motor driven potentiometer was folly, and I
will probably use mosfet switches to change the resistor values (and,
hence, the duty cycle) in my PWM control module. Unless folks have a
better idea.
I guess I wanted to bounce my ideas and design thinking off the group,
as I know some of you have been building bots for years.
If anyone has ideas on any of what I have mentioned above, your
comments are welcomed. As this is only the second bot I have built, I
need all the help I can get. It will be radio controlled at first, as
I have been able to decode the pulses from my futaba using the AVR.
Ultimately, I hope to make it at least semi autonomous. I have many,
many sensor ideas for it that I would like to experiment with.
TIA,
Joe
|
|
Posted by John Nagle on May 26, 2007, 3:55 am
Joe wrote:
> My question is, what frequency PWM?. All the above tests were
> conducted with the motor connected directly to the battery. I have
> heard that anywhere from 60 Hz to 100Khz is acceptable, but I tried
> first (on the bench, ie no load) 1Khz and the power mosfet was
> dissipating too much heat (like finger burning heat). At 10Khz it is
> much better (ie, much less heat dissipation).
The frequency isn't the problem, if increasing the frequency
reduces heat dissipation. It's the waveform. You're probably driving the
MOSFETS with a waveform that has too long a rise time. If
you're getting overheating like that, you're spending too much
time in the linear range of the device. Put a scope on the inputs
and measure the risetime of the MOSFET's control signal. It should
be well below 1us. Commercial MOSFET gate drivers have rise
times like 35ns. See
http://ww1.microchip.com/downloads/en/DeviceDoc/21933a.pdf
for some commercial drivers.
A 555 ought to have an output rise time of about 125ns, so you
should be seeing rise times like that at the MOSFET gate.
Also note that the output of a 555 is not rail to rail. Are you
getting enough voltage swing at the MOSFET gate?
There are also issues with driving an inductive load like a motor,
but that's less likely to be the problem here. That's a problem
which becomes worse as the switching frequency increases.
The real issues with switching frequency is that if it's too low,
the motor vibrates, and if it's too high, the motor's inductance
limits current into the motor.
John Nagle
|
|
Posted by Joe on May 26, 2007, 9:07 am
> Joe wrote:
> > My question is, what frequency PWM?. All the above tests were
> > conducted with the motor connected directly to the battery. I have
> > heard that anywhere from 60 Hz to 100Khz is acceptable, but I tried
> > first (on the bench, ie no load) 1Khz and the power mosfet was
> > dissipating too much heat (like finger burning heat). At 10Khz it is
> > much better (ie, much less heat dissipation).
> The frequency isn't the problem, if increasing the frequency
> reduces heat dissipation. It's the waveform. You're probably driving the
> MOSFETS with a waveform that has too long a rise time. If
> you're getting overheating like that, you're spending too much
> time in the linear range of the device. Put a scope on the inputs
> and measure the risetime of the MOSFET's control signal. It should
> be well below 1us. Commercial MOSFET gate drivers have rise
> times like 35ns. See
> http://ww1.microchip.com/downloads/en/DeviceDoc/21933a.pdf
> for some commercial drivers.
> A 555 ought to have an output rise time of about 125ns, so you
> should be seeing rise times like that at the MOSFET gate.
> Also note that the output of a 555 is not rail to rail. Are you
> getting enough voltage swing at the MOSFET gate?
> There are also issues with driving an inductive load like a motor,
> but that's less likely to be the problem here. That's a problem
> which becomes worse as the switching frequency increases.
> The real issues with switching frequency is that if it's too low,
> the motor vibrates, and if it's too high, the motor's inductance
> limits current into the motor.
> John Nagle
Hello John,
Thank you for the response. I should have specified, I am using the
ts555cn, which according to STMicro has a rise time of 25 ns.
Yesterday, I did just what you suggested and measured an actual rise
time of 40 ns. I didn't think too much of the discrepancy at the time.
Is this significant? Although, now that I read the data sheet again,
it says 'trigger propagation delay is 100 ns" Is this what you meant?
It (the ts555) is connected to the 12V power supply the whole time.
Now you gave me an idea, my power mosfet (the IRF 520) has a rise time
of 23ns at 50V, but the number I quoted you above for the ts555 is
into a 30pf load, where the input capacitance of the mosfet is 330
pf.
BTW, the microchip link you gave me above just timed out. I did not
receive the pdf yet. Is there a part number you were referring me to?
I will try the link again, but just in case, if you do not mind,
perhaps I would have better results looking for the part number.
Oh, I am whacking the gate of the mosfet with 12 V from the ts555cn.
I noticed that using 5V resulted in unacceptable heating as well.
Experimenting showed that any voltage above about 7V resulted in
significant less heating of the mosfet. I only wanted to have 2
voltage sources for my electronics, 12 V for the eventual SONAR, and
5V for the micro and other electronics. But that is still flexible.
I'm still stuck on this but I will try the link you gave me once I log
off this forum to see what that's all about. Oh, and while I am at it,
since I did not specify enough info in my first post. I am using the
20L15T Schottky diode b tween the drain and source of the mosfet. Do I
really need something that hefty? They are expensive, but I didn't
want to take any chance on blowing mosfets due to the inductive
kickback.
Thank you again for the info,
Joe
|
|
Posted by Bob Smith on May 26, 2007, 3:06 pm
Joe wrote:
> I have a circuit for PWM using a 555 and a potentiometer to vary the
> duty cycle.
> I decided that using the motor driven potentiometer was folly, and I
> will probably use mosfet switches to change the resistor values (and,
> hence, the duty cycle) in my PWM control module. Unless folks have a
> better idea.
Since you have an AVR, you might want to replace the 555
with a pin(2) from the AVR. Depending on which AVR you have
you may already have a couple of PWM counters on board.
Even if you don't have the PWM counters you can build one
easily enough with a timer interrupt.
Using an AVR for the PWM output gives you a little more
flexibility in how to set the motor speed.
I'm about to do the same thing (AVR/PWM) for my bot so let
me know if you want more specific help.
Bob
|
|
Posted by Joe on May 26, 2007, 7:39 pm
> Joe wrote:
> > I have a circuit for PWM using a 555 and a potentiometer to vary the
> > duty cycle.
> > I decided that using the motor driven potentiometer was folly, and I
> > will probably use mosfet switches to change the resistor values (and,
> > hence, the duty cycle) in my PWM control module. Unless folks have a
> > better idea.
> Since you have an AVR, you might want to replace the 555
> with a pin(2) from the AVR. Depending on which AVR you have
> you may already have a couple of PWM counters on board.
> Even if you don't have the PWM counters you can build one
> easily enough with a timer interrupt.
> Using an AVR for the PWM output gives you a little more
> flexibility in how to set the motor speed.
> I'm about to do the same thing (AVR/PWM) for my bot so let
> me know if you want more specific help.
> Bob
Hello Bob,
Yes, a very kind offer. Just one pin? I would love to use the avr, but
I don't know how, even after reading the dox. I am going to have one
micro whose sole function will be to control the motors and steering
(and, at first, will have to decode the signals from my RC and timeout
when it stops receiving the once every 18ms pulse that the transmitter
generates when it is on, just a safety precaution in case the thing's
running full tilt and my RC transmitter batteries go dead, or it goes
out of range). I will add micros later for sensors, navigation, etc.
as needed.
I have in my possession the following:
ATTiny 2313 (I know that has 4 PWMs aboard), but limited memory
ATMega 8515, my favorite
ATMega8535, because of the A/D's. I haven't used this one yet.
Bascom full version programming language. 1.1.83
STK 500 programmer.
I cannot seem to wrap my head around how to use the timers for PWM and
get a timeout if needed also. Being more inclined to hardware, I
thought I would use a separate PWM (which probably sounds insane).
Anyway, suggestions on which micro would be the best to use, and, If
possible, I would like to control each motor with its own PWM so I can
slow down instead of stopping one of them to make a turn.
Now, if it so happens that you don't use Bascom, then a flow chart
(antiquated term, I know), or description of which pins I have to
use, details, details, and I can probly figure out how to code it
myself in Bascom.
Thank you for the reply, I look forward to this to enhance my
understanding of all the functions these avrs can perform.
Joe
|
Page 1 of 2 1 2 > last >>
Related Posts
Latest Posts
|
|
> conducted with the motor connected directly to the battery. I have
> heard that anywhere from 60 Hz to 100Khz is acceptable, but I tried
> first (on the bench, ie no load) 1Khz and the power mosfet was
> dissipating too much heat (like finger burning heat). At 10Khz it is
> much better (ie, much less heat dissipation).