PWM Circuitry Debugging
The PWM circuitry used were mainly High Power Fast switching N channel and P channel MOSFETs.
The first issue was that the output signal from the Arduino into the Gates of the MOSFETs were not at the threshhold turn on voltage of the MOSFETs. As a result the MOSFETs were not switching on and off. The first solution we applied was to use a MOSFET driver set at 12V to the gate of the MOSFET. With this, our problems would be solved. However, the MOSFET driver minimum voltage required was 3.33V and the top amplitude of the PWM signal from the Arduino was 2.5V. To circumvent this issue, a BJT Transistor was used with 5V at the Emitter and the PWM signal to the Base. Considering that the Transistor's turn on voltage was 0.7V the otuput of the Transistor became a PWM signal with a Peak to Peak Voltage of 5V with a DC offset of 2.5V.
The second issue was that the P Channel MOSFET did not have an ideal turn on turn off voltage that was expressed within our lectures. The Turn-On Voltage of the P Channel MOSFET was dependent on the voltage at the source. The Tuen-On Voltage of the P Channel was determined by the following:
Therefore we required a circuit to apply this threshhold voltage to the Gate of the MOSFET. Our solution was to use a Pull-Up Resistor with the following configuration:
The Pull-Up Resistor takes the 20V input minus a voltage drop accross the 4.7K resistor and copies that voltage level to the gate. As for the switching levels of the PWM signal, that is controlled by a BJT connected to ground. Therefor, as the BJT switched, the Gate of the MOSFET either sees a Zero or the Copied Voltage.
PIC33F to Arduino Uno Transition
The PIC33F microcontroller was our initial microcontroller of choice due its capabilities with high power and fast clock times. However, considering the unfamiliarity the group had with the coding required for the PIC33F we decided to switch to the Arduino UNO.
The choice was due to Arduino's ease of use as well as its vast support group within the Arduino Forums and Development. However, the downside to our choice was a slower PWM speed as well as its incapability to handle High Power applications.
To circumvent these problems a few tricks were used to increase the PWM speed to an acceptable frequency. In addition, we implented a Voltage Divider scheme at the output to compensate for the Arduino's 5V maximum read voltage.
DC-DC Buck Design:
The Synchronous DC-DC Buck Design required capacitor and inductor values according to the following equations:
Considering how a Power Inductor was donated to us by Fresno State ECE Alumni Michael Alvorado we chose is as our inductor and back tracked to calculate the Capacitor value. However, to decrease any ripple at the output, we required a capacitor with a high ESR value.
In addition, to decrease the ripple and ringing at the output, we designed the circuit with as little wire as required as well as placeing a Low Pass Filter at the output of the circuit to diminish the unnecessary frequencies.