I want to PWM control a 12V-10A DC motor (fuel pump). I am using mraa library, yocto linux, and the Edison Arduino "motherboard". (Moderator, please move this thread to whatever catagory it should be in)
The power output circuit is currently a 220ohm resistor between Pin3 (pwm0) and the Gate of a NTE2987 (aka Vishay IRL530) which is a Logic Level Gate Drive Power Mosfet. 12V goes to motor, then goes to Drain of the MOSFET, then Shield goes to Ground.
I got to the lab today with a 12V-6A motor for testing and the PWM worked flawlessly, however...
This lab has a very nice oscilloscope, and while I expected the trace from Drain to have some "noise", I found that there were spikes when measuring Gate (I should have measured Auduino side of 220 ohm resistor but did not). The spikes were totally vertical and only occurred on a change from 0-5V or vise-versa. The spikes were over 10V and -5V. How much noise from a large inductive load can go back to the Gate?
Is this something that needs more circuitry? How robust is the SN74LVC1T45 that drives the Arduino output pins?
Thank you in advance.
I would use a MOSFET gate driver with such a large MOSFET. place the gatedriver close to the MOSFET, use 0.1uF decoupling capacitor across the driver power pins and connect GND for the driver as near the Source pin as possible to reduce the inductance in the trace. (the MOSFET current will cause a voltage drop in the trace connected to Source. this is probably what you are seeing on the scope.) a 1 to 10ohm resistor between driver output and Gate can be used to control the switching speed of the MOSFET. the gate resistor will increase power losses in the MOSFET during switching.