how to protect full bridge

Go To Last Post
11 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi folks!

I've built a speed controller for DC motors (with a full bridge (2N MOSFETS and 2P MOSFETS) for 540 motor size) but I have serious troubles with that!
I have a lot of disturbances! I'm not really sure, if they are coming from the receiver (HF disturbances from the motor) or it's some kind of "back current" from the motor!
Also it's not really possible to control the motor with high resolution! I have 512 steps, but the motor doesn't behave like this! It's not really possible to control it sensibly!

So my questions:
*) any ideas?
*) how can i shrink/avoid disturbances?

best regards

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You need fast diodes put antiparallel to the bridge.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

like this one....
http://www.irf.com/product-info/datasheets/data/10etf02.pdf , this only one supplier, there are more but you get the picture. Pay attention to current.

Attachment(s): 

Regards
heguli

Last Edited: Mon. Feb 27, 2006 - 01:19 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

schematic?
picture?

Klaus
********************************
Look at: www.megausb.de (German)
********************************

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

sorry, for the delay!

Here's my schematic! I've tried several things: capacitor between VCC and GND and then a 1N4148 diode between vcc and gnd! Both trials brang modestly improvements!

May be that's important! My first problem was the supply voltage! It was breaking down at maximum acceleration and then the motor/uC stopped!
I''ve added a 100u and now it seems to work!

But my disturbances I've mentioned above are still here!

Any ideas, recommendations?

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

both fets include antiparallel diodes, so it is not necessary to add more diodes...
http://www.irf.com/product-info/...
http://www.irf.com/product-info/...
Maybe both T1 and T3 are short time on causing shortcircuit???

Regards
heguli

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Maybe both T1 and T3 are short time on causing shortcircuit???

That's a special mode of H-bridge operation, called "fuse test" :) I have heard that only switching the low side is best and only change high side state when changing direction. I believe this is to give the current a path (circle through two high side fets and motor) when low side switches off.

I have a heck of a time getting good RPM control using pwm on these "hot" wound motors. It takes so much to get them started, but once they're running they really rev up.

heguli has the answer, current is what needs to be paid attention to. Nothing can sence motor RPM under varying loads except for a tach of some type, I have tried to use back EMF to do this with no luck. I need to do more searches on that.
I have heard that using an inductor in series with the motor will help reduce noise (even though the motor is an inductor it also has brushes that make and break the circuit.) I think this would hammer the diodes harder as the fets switch on and off, but don't know for sure.
I am electronicly impaired, but caps are generally good. Use two from top to bottom of bridge of diff capacitence, I don't know good values actually varies with rest of circuit esp motor and PWM freq. If you find a little on RLC circuits (google search) using two diff capacitences will reduce the chance of resonance. I always use atleast a cap with a couple of uF across the motor, even if running direct from battery, it helps reduce noise from brushes.
I would use a current sence resistor at top or bottom and use an ADC channel to monitor that voltage drop ->[Ohm's law]-> current. This won't monitor breaking current, for that you would need to put the sence resistor in series with the motor (between the two half bridges.) but then you need two ADC channels or inst-Amp as the current goes both ways and is not reffernced to ground or VDD.

PWM frequency can play a huge roll in noise. I don't think there is any one good freq. Many things must cooperate to get a good system. Motor size and inductance, filtering caps, load and mechanical dynamics on motor, as well as PWM freq. Unless you like Dynamical Systems, RLC circuit analysis and LaPlace Transforms I would suggest varying the freq and capacitance of filters untill you find a nice combination given the motor you are using.

Don't count on those internal diodes doing all the work; if you have room, some beefy diodes would most likely help.

You said the uC shut down once from low voltage. What does the rest of circuit look like? You have resistors between port pins and inverters? caps on regulated side of regulator?

Neet project, I'm working on one to handle same type of motors and run on a I2C (TWI) bus, or PWM (like RC servos.) There have been several threads on motors and PWM here, search for them.

I always write too much in my posts. Sorry if I make anyone sleepy.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi everbody, thanks for your posts!

Quote:
I have heard that only switching the low side is best and only change high side state when changing direction. I believe this is to give the current a path (circle through two high side fets and motor) when low side switches off.

*You mean: direction1: switch high side driver one on (statically)!
and "PWM" the low side!
*motor stop
direction2: direction: switch high side driver 2 on (statically)!
and "PWM" the low side!

Is that, what you mean?

Quote:
heguli has the answer, current is what needs to be paid attention to. Nothing can sence motor RPM under varying loads except for a tach of some type, I have tried to use back EMF to do this with no luck. I need to do more searches on that.

Sorry, but what means "tach" and "sence"?

Quote:
I am electronicly impaired, but caps are generally good. Use two from top to bottom of bridge of diff capacitence, I don't know good values actually varies with rest of circuit esp motor and PWM freq. If you find a little on RLC circuits (google search) using two diff capacitences will reduce the chance of resonance. I always use atleast a cap with a couple of uF across the motor, even if running direct from battery, it helps reduce noise from brushes.

You mean several caps with different values, to get all frequency spikes?

Quote:
I would use a current sence resistor at top or bottom and use an ADC channel to monitor that voltage drop ->[Ohm's law]-> current. This won't monitor breaking current, for that you would need to put the sence resistor in series with the motor (between the two half bridges.) but then you need two ADC channels or inst-Amp as the current goes both ways and is not reffernced to ground or VDD.

I've already planned to do that, but I have somewhere a short circuit on my board and so ... yes -> f*** :?

Quote:
PWM frequency can play a huge roll in noise. I don't think there is any one good freq. Many things must cooperate to get a good system. Motor size and inductance, filtering caps, load and mechanical dynamics on motor, as well as PWM freq. Unless you like Dynamical Systems, RLC circuit analysis and LaPlace Transforms I would suggest varying the freq and capacitance of filters untill you find a nice combination given the motor you are using.

I', using 16kHz! The problem is, that I don't have one motor to drive! My controller should be able to handle a wide range of motors (same type, but many different manufacturers or different turns, ...)

Quote:
Don't count on those internal diodes doing all the work; if you have room, some beefy diodes would most likely help.

I'll try that!

Quote:
You said the uC shut down once from low voltage. What does the rest of circuit look like? You have resistors between port pins and inverters? caps on regulated side of regulator?

The rest is just a microcontroller with a step down regulator for 2A supply. Resistors? Whats that? :oops: Honestly said: no! I drive them direct! Bad solution? I drive the drivers direct and they drive the fets direct!

Quote:
Neet project, I'm working on one to handle same type of motors and run on a I2C (TWI) bus, or PWM (like RC servos.) There have been several threads on motors and PWM here, search for them.

Thanky you! Like servos? That means, that you are developing a speed controller for e.g. radio controlled cars? I've already searched, but everybody has another solution and I tried a few of them and nothing really works!

Thanky you for your really motivated post! :lol:
PS: I have the same problem: my posts are also long all the time!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi

Quote:
both fets include antiparallel diodes, so it is not necessary to add more diodes...

yes, they have diodes inside. But for fast switching you need external high speed switching (Best schottky) diodes, because the internal ones are relatively slow.
This can caus high current spikes (reverse recovery time causes short current) high power dissipation and damage.
Be careful, read datasheets and application notes according this.

Klaus
********************************
Look at: www.megausb.de (German)
********************************

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
*You mean: direction1: switch high side driver one on (statically)!
and "PWM" the low side!
*motor stop
direction2: direction: switch high side driver 2 on (statically)!
and "PWM" the low side!

Is that, what you mean?

Yes. but don't forget to turn off highside 1 when you switch direction! ;)

Quote:
Sorry, but what means "tach" and "sence"?

Tach = tachometer (RPM meter) Example an incremental encoder, or some type of pulse as motor turns.
sence = sense (sorry my spelling is poor :( ) I used to think that one could "sense" motor rpm by monitoring the voltage across the motor, this does not work very good at all. Mostly because of the noise, and the very complicated system equation of a motor. There is no easy (linear) relationship between voltage across or current thru the motor and shaft RPM, atleast that I know of. Pretty much have to count clock ticks between pulses from encoder or something on motor shaft, that is where I try to use the noise from the brushes running on the commutator (back EMF) as tach signal.

Quote:
You mean several caps with different values, to get all frequency spikes?

yeah, kindof.
A cap parallel to the rest of your circuit will suppres voltage changes across the circuit. How much they are suppressed depends on thier frequency of the change, higher freq signels are attenuated more than others (due to the charging/discharging characteristics of caps.) Caps in parallel are often called lowpass filters, as they only allow low freq signals to pass. You don't want to filter out your switching freq but just about everything else, including noise with frequencies below.

Quote:
I', using 16kHz!

That might be perfect or could be bad, I don't know.
Something you need to watch out for is resonace, example: search "The Tacoma Narrows Bridge Disaster, Galloping Girdy" the bridge oscillated out of controll when winds exciteded it at it's natural frequency. Same thing hapen in electric circuits, tank circuits, resonators, ect.
Any circuit with capacitance and inductance will have a natural freq. that is a frequency that it will oscillate at very nicely, and if excited at that freq the amplitude of the signal can get huge. This is a little different than the noise that comes from the make and break switching of the motor brushes and switching of FETs, but they work together to break stuff.
Say you put a cap across the motor (which has a large amount of inductance) you have an LC circuit that will oscillate at some freq, which depends on the inductance of the motor (which will change motor to motor and even for the same motor at diff RPM) Now if you're switching at or near that natural frequency or one of its modes you will get some awful noise from exciting the circuit at it's resonant freq. I'm probably not explaining this very good, I suggest you search for sites explaining LC circuit analysis. Check out this new open project openservo.com they are bashing a stock RC servo and puting in the m48 with PID control and TWI com. There is a thread there that I remembered and found talking about larger motors: http://www.openservo.com/forums/viewtopic.php?t=70&highlight=frequency+pwm+resonance search the forum for help. All this stuff is out there, just gotta go dig it up.

Quote:
The problem is, that I don't have one motor to drive! My controller should be able to handle a wide range of motors (same type, but many different manufacturers or different turns, ...)

I think it's possible to run many motors with the same controll, but to get any one motor to run smoothly, the circuit and PWM freq need to be tuned to that motor.
I have been planing out a routine that the intellegent motor driver could perform when a new motor is connected. It would have to monitor RPM and somehow the noise in the motor circuit as it goes through several duty cycle sweeps up and down for different switching frequencies and accelerations, then decide which frequency is the best to switch on based on the fastest motor responce, current consumed, noise created, ect. I suppose the user could even rank these most important to least, as improving one will reduce optimization of the others.

This is getting too complicated I suppose, but that's what makes it interresting, and how we learn!

Keep me posted of your work if you don't mind sharing.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Of course I don't mind sharing, but I've very little time at the moment!
But yesterday I'v tried your suggestions with "leave the highside switched on" and the motor responsed quite fast compared with the waya of doing before!
But the motor runs still not calm! It's "jumping" a bit! Especially very small revolutions are not smooth to control!
Furthermore I have still disturbations! I' have a diode and a capacitor over supply voltage!

best regards