Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Driving RC Brushless motor and LM342 problem

Status
Not open for further replies.

DLam

Newbie level 4
Joined
Jan 10, 2012
Messages
7
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,377
Hi everyone,

I hope this is the appropriate section to be posting this to 8-O

This is my first post and I'm really noob at electronics so I apologize in advance for any outstanding stupidity :-D

I've been looking everywhere to find a solution but I've always come up with nothing [thats a cue to prove me wrong ;) ]

I've been trying to drive a three-phase Brushless RC motor (a Neodym 300 1400kV to be exact) using an Arduino Mega. My first attempt at doing so, however – as shown in this youtube video Arduino-based RC motor ESC -- 2000 rpm cutoff? - YouTube where I wired the Arduino's digital pins directly to the gates of six N-Channel FETs (RFP50N06) ended in the motor stopping and screeching. I'm confused because it points to insufficient current but 5V should be plenty to turn on those FETs? I'm driving the FETs in three offset square pulses; each lasts for 1/3 of the cycle and I was wondering whether that might have been the problem...?

I then designed an LM324 circuit to try and amplify the signal provided by the Arduino to the positive rail (which is 15V) where at 33% PWM it would equate to 5V, but it's giving me a whole new set of problems. Firstly, when I tried to make a non-inverting amplifier, the output voltage always equalled the positive rail voltage (15V) unless I supplied it with ground at the non-inverting input (schematic attached). Is that normal? Because I expected the output voltage to be 0V unless I supplied it with voltage at the non-inverting input. At lower frequencies (100Hz) it worked just fine, but when I got into the 5-10kHz range the voltage just cut off. Would it be a bandwidth problem? The gain is only set to 2 and as far as I was concerned that meant the bandwidth gain would be 615kHz for the LM324. I then switched the inverting and non-inverting inputs and it seemed to work: at high frequencies it retained the output voltage and pulse signal; but I got another weird side-effect. When one amp was turned on, all the others would turn on for a split second and die down again and the motor couldn't run because of this. What am I doing wrong?

I've been at this for a month now and I'm really getting tired of it. Any help is greatly appreciated to any of the above topics. Thanks in advance :-D

Derek
 

Attachments

  • Op amp motor driver.png
    Op amp motor driver.png
    5.6 KB · Views: 120
  • op amp motor driver 2.png
    op amp motor driver 2.png
    5.5 KB · Views: 105

Hi everyone,

I hope this is the appropriate section to be posting this to 8-O

This is my first post and I'm really noob at electronics so I apologize in advance for any outstanding stupidity :-D

I've been looking everywhere to find a solution but I've always come up with nothing [thats a cue to prove me wrong ;) ]

I've been trying to drive a three-phase Brushless RC motor (a Neodym 300 1400kV to be exact) using an Arduino Mega. My first attempt at doing so, however – as shown in this youtube video Arduino-based RC motor ESC -- 2000 rpm cutoff? - YouTube where I wired the Arduino's digital pins directly to the gates of six N-Channel FETs (RFP50N06) ended in the motor stopping and screeching. I'm confused because it points to insufficient current but 5V should be plenty to turn on those FETs?
As the RFP50N06 is not a logic-level MOSFET, 5V may or may not be enough to drive it to full conduction, depending on load conditions. I had a quick look at the Neodym Motors site but there's practically no technical info about their products.

I'm driving the FETs in three offset square pulses; each lasts for 1/3 of the cycle and I was wondering whether that might have been the problem...?
If it's a 3-phase motor, driving it with 3 phases offset by 120 degrees would be the way to go.

I then designed an LM324 circuit to try and amplify the signal provided by the Arduino to the positive rail (which is 15V) where at 33% PWM it would equate to 5V, but it's giving me a whole new set of problems.
5V may be the average at 33% duty cycle, but the effective driving voltage is the full 15V during the on period for each phase.

Firstly, when I tried to make a non-inverting amplifier, the output voltage always equalled the positive rail voltage (15V) unless I supplied it with ground at the non-inverting input (schematic attached). Is that normal? Because I expected the output voltage to be 0V unless I supplied it with voltage at the non-inverting input.
Yes, it's normal because the uC output is already inverted by the transistor in common-emitter configuration.

At lower frequencies (100Hz) it worked just fine, but when I got into the 5-10kHz range the voltage just cut off. Would it be a bandwidth problem? The gain is only set to 2 and as far as I was concerned that meant the bandwidth gain would be 615kHz for the LM324.
1) The bandwidth you calculated is for small sinusoidal signals. For full voltage swings, the output response is limited by the slew rate. The slew rate is not given in my copy of NatSem's datasheet, but I'd guess it to be less than 0.5V/usec for an LM324.

2) The drive signal is a pulse and that needs much more bandwidth than a sinusoid.

3) The gate of a MOSFET may have a virtually infinite resistance at DC and low frequencies, but at high frequencies, the gate charge makes its presence felt. The driver has to have enough juice to pump in. Otherwise, the transistor will switch slowly and may even not have time to fully switch on when its time comes. Dedicated MOSFET drivers can pump in currents of the order of an amp or more into the gate whereas an LM324 can put out a measly 20mA or so.

I then switched the inverting and non-inverting inputs and it seemed to work: at high frequencies it retained the output voltage and pulse signal; but I got another weird side-effect. When one amp was turned on, all the others would turn on for a split second and die down again and the motor couldn't run because of this. What am I doing wrong?

I've been at this for a month now and I'm really getting tired of it. Any help is greatly appreciated to any of the above topics.
Chuckey has already pointed out one error in your circuit and I agree with him. Another thing is that you don't have to use the intermediate 2N2222 stage. You're using the LM324 as a level-shifting comparator, not as a linear amplifier. By applying the uC output to the non-inverting input of the LM324, you can have the same on-off switching effect at the output if the threshold voltage is set correctly by changing the values of the two 680-ohm resistors. For example, the upper resistor could be 10k and the lower one 2.2k. The values are not critical. The voltage at the junction just needs to be between 0 and 5v. The other two "680?" resistors are not needed.

Still another point, which may be crucial, is the way the load is being driven by the MOSFETs. The MOSFET needs a gate voltage higher than the source to turn on and stay on. But the way it's configured now, as soon as the MOSFET turns on, it tries to pull the source up to the positive supply voltage, reducing the gate-to-source voltage Vgs. The reduced Vgs is no longer sufficient to maintain full conduction. An equilibrium is reached where the whole 12V is shared between Vgs and source-to-ground voltage.

Ah, it's well past 2:00AM here now. I had a tiring day and am not thinking clearly. Sorry if my reply has been quite disorganised. I'll continue tomorrow unless someone else had come up with a neat diagnosis and a solution by then.
 
  • Like
Reactions: DLam

    DLam

    Points: 2
    Helpful Answer Positive Rating
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top