Suggestions on how to drive a MOSFET

Hi to all,

I'm trying to control some proportional solenoid valves with my Arduino.
In particular, I'm using a stand alone board with an atmega328p.

I'm using a FQP30N06L which is a N-Channel QFET MOSFET with a logic level gate allowing voltages in the 3-5v range.

The FET is working fine, but sometimes the atmega resets and so I'm designing again my board in order to improve the circuit (decoupling caps, mosfet IC drivers, ground plane, optoisolators, isolated power supply for the atmega).

At this step, I'm trying to control the MOSFET with a IC driver and I was thinking to use this driver MCP1407.

I never used a driver, how do I have to wire it?
At the moment, I connect the FET directly to the arduino output in this way.

As you can see by the photo, there are 5 pins and I am a little bit confused.

Pin 1: arduino pwm output
Pin 2 and 4: arduino GND
Pin 3: ?? what is VDD? Is it the main power (in my case 12VDC?)
Pin 5: does this pin go to the FQP30N06L MOSFET gate?

Can you help me, please?
Is the MCP1407 a good driver for this MOSFET?
If not, can you suggest me a good driver for my FET, please?
Do I have to use any resistors?

Thank you!

Vdd = 12V, GND = GND, INPUT is logic signal in, OUT to MOSFET gate.

A 6A driver is fine for any MOSFET you could imagine! You could probably drive
the solenoid valve direct with it if the currents not too large and its 12V, these drivers have
only a couple of ohms on resistance and a heatsink tab.

Thank you, MarkT, for your support.

I forgot to say that the PWM is at 120Hz and that the proportional solenoids draw up to 3A when they are cold and then they draw up to 2A when they reach 30°C.

Just few more questions.

  • Do I need to place any resistor between the atmega output and INPUT pin 1 and between OUTPUT pin 5 and the MOSFET gate?
  • In the datasheet, there is written that I need to place capacitors between VDD (3) and GND (4) and between pins GND 4 and OUTPUT 5. Is it correct? Do I need film capacitors?
  • I can't understand the meaning of the Vdd = 12V. The FQP30N06L MOSFET is switched ON by less than 5V, so why do I have to use 12V in Vdd? Sorry for the stupid question, but I'm a beginner :confused:

Add a 220 ohm resistor in series with the Arduino pin.
Capacitor on VDD to GND, not on the output.
VDD can be 4.5 to 18 volts.

.

Thank you, LarryD!

No other resistor between the driver output and the MOSFET gate?

Since I would like to improve my knowledge, please, can you explain me why I can use also 18Volts on Vdd without having problems? What is the function of Vdd?

Should I use a 1.0 uF film capacitor in parallel with a 0.1uF ceramic capacitor between GND and VDD?

Moreover, in the datasheet, there is written that:

why it suggests to place a capacitor between 4 and 5?

They are referring to the 8 pin DIP package not the TO220 package you imaged.
Note: On the DIP pins 1 and 8 are both VDD, pins 4 and 5 are GND.
Caps between 1 and 4 then 8 to 5.

If you are using the MCP1407 to drive the FQP. . . and the FQP. . . has a VDD of 5 volts then the MCP1407 has the same VDD supply. (up to 18v)
Edit:
VDD is the chip supply voltage.

"Should I use a 1.0 uF film capacitor in parallel with a 0.1uF ceramic capacitor between GND and VDD? "
Yes, as close to the pins as you can get.

"No other resistor between the driver output and the MOSFET gate?"
No

Are you going to use the TO220 package?
.

Yes, I'm going to use the TO220 package since it is easier to solder.

So, I need to connect the MCP1407 VDD to +5VDC. Is it correct?

Your FQP30N06L is a logic level MOS FET.
You can connect the driver VDD to a +5 volt supply and still control the FQP30N06L.

Your circuit shows the FQP30N06L is connected to a +12 supply.
Since the driver VDD has a maximum of 18 volts, make things simple and connect the driver VDD to the FQP30N06L 12V supply.

.

120Hz PWM , 2Amp solenoid, mosfet drivers.
Gross overkill.

If the Arduino resets, find the problem first.
Starting all over with different parts could take you back to square one.
Leo..

I tried to wire all the components by including the MCP1406.

Unfortunately, I wasn't able to find the T0220-5 package, so I will use the 8 pins version (which is also available at my local store).

Is it correct to wire in this way the VDD and GND pins?
How to wire the two outputs? Do I need to connect both of them to the MOSFET gate?

I left floating one output, is it correct?

The capacitors are correctly connected?

@Wawa: I'm pretty sure the resets are caused by the missing ground plane and the optoisolators.
I designing again the board in order to check this and test it again.

You need both source and sink outputs, 6 connects to 7.
I might connect a 10K resistor from 6 and 7 to ground, it would not hurt.

Edit:
Add 10K from pin 2 to ground.

The 10K resistor is needed to avoid the ringing (parasitic oscillation) and to minimise the duration of the turn on and off phases?
This will improve the PWM control?

So I need to add a resistor on pin 2 and also between pins 6,7 and GND?

The 10Ks are there for power up stability.
You may not need the one from 6/7 to ground but the one from 2 to ground is highly recommended.
These only cost 5 cents :wink:

.

I did a new wiring following your advices.

I added also the one between the driver output and the mosfet gate.
If you think it is better to use this one, too, then I will use it. :slight_smile:

1/2W are OK or I can use also 1/4W?

1/4 watt is good.

.

Remember the Arduino GND connects to the driver GND.

.

I'm not so sure.
Rebooting could be a dip in the supply.
Supply and decoupling of the MCU is very important.
Avoiding relay ground currents to enter the MCU grounds is also important.
Maybe good to post diagram and layout of the whole project, or even the Eagle files.
I still think using relay drivers is a waste of time for slow (inductors) 2Amp loads.
Leo..

Yes, I know Wawa, it is for this reason that I'm try to use a +5V isolated power supply to power on the atmega328p and optocouplers to isolate the control signals from the power lines.

I'm going to post the schematics soon so you can give me a feedback about the whole circuit.
I really hope you can help me.

For the moment, I'm posting again the schematics with the optocoupler controlled by the atmega output.

I did some researches and I think the 6N136 optocoupler should work well with the MCP1407.
Is this correct?

I used a 550R in series with the input LED, is it correct?

This optocoupler will work fine with a PWM at 120Hz?

I'm not sure if the connection between optocoupler pin(6) and driver pin(2) is OK with the 1K resistor connected to +5VDC.

You need to connect pin 8 of the 6N136 to VCC.
Similar to this:

.

Biasing (or adding a resistor to GND) on pin 7 'may' be necessary to square off rising edges of the waveform.

.