-
Notifications
You must be signed in to change notification settings - Fork 6
Gibbot Board v2 Motor Characterization Board
The v2 board was designed in eagle and was intended as a proof of concept of the BLDC Driver circuit based around the HIP4086 Gate Driver chip. The board scaled back significantly in functionality from the Gibbot v1 board.
- A dsPIC33FJ12MC202 was used as the microprocessor. We picked this chip because we tested the circuit for an HIP4086 driven MOSFET H-bridge on a breadboard using a breakout board for the dsPIC33FJ12MC201 that was stocked in the mechatronics lab. By using a similar chip we can port the code more easily and the 202 version gives us 8 more pins to use for quadrature encoding.
- The board used the HIP4086 Gate Driver chip to drive a 3 phase h-bridge of IRLR024 MOSFETs. The HIP4086 was set up with 0.02 uF boot strap capacitors (because there were no 0.02 uF capacitors stocked two 0.01 uF were stacked in parallel), [1N4148 0.3A fast switching diodes] (http://www.vishay.com/docs/81857/1n4148.pdf) and 0 ohm bootstrap resistors. Two [1N4148 0.3A fast switching diodes] (http://www.vishay.com/docs/81857/1n4148.pdf) were also used in series as a clamping diodes on each of the high side source legs. A 10k resistor was used between RDEL and VDD for 1us of deadtime.
- ACS716 Current Sensors on each of the 3 BLDC output legs
- An xbee was connected to the dsPIC for wireless UART communication.
- Zener diode circuits were used to step down from 48V to 12V and from 12V to 5V. A TLV1117 Linear Rectifier was used to step down from 5V to 3.3V. 48V, 12V and 5V power supplies were also supplied externally through screw terminal inputs.
-
3 ACS716 current sensors are unnecessary for the current data we are needing. This should be reduced to a single sensor (the X6BB version instead of X12CB as noted below) that measures the overall current draw. This also allows for a more compact H-bridge arrangement as seen in the v3 and later boards.
- Because the current sense chip is measuring a current value that spikes with the PWM the readings are inconsistent. Further work should be done to determine a method of smoothing the current reading.
-
Replace [1N4148 0.3A fast switching diodes] (http://www.vishay.com/docs/81857/1n4148.pdf) with ES1B Diode to increase the current carrying capability from .3 A to 1 A.
-
Replace 0.02 uF bootstrap capacitors with 0.033 uF bootstrap capacitors based on calculations in the Bootstrap Capacitor Value section below.
-
Zener Diode voltage stepdown - The stepdown circuits produced too much heat even with no current. As the diodes heated up the output voltage increased beyond the values required by the various components. The zener diode circuits were removed and power was instead supplied externally through the screw terminals.
-
XBee communication issues - The XBees would not communicate consistently without dropping bytes occasionally. This issue was fixed by directly wiring the FTDI cable to the RX and TX pins of the dsPIC. This issue may have been due to a baud rate mismatch, see the XBee Communication Issue section on the Gibbot v3 page.
-
ADC Signal noise - The signal on the ADC pin oscillated by about 0.2V which made the readings from the current sensing chips useless. Adding a 10uF capacitor between the 3.3V and GND pins of the dsPIC eliminated this noise.
-
Incorrect current sense chips - The version of the ACS716 Current Sensors purchased for the board was the X12CB which has a sensitivity of 37mV/A and a maximum range of +/- 37.5 A. A better version for the range we expect to be testing is the X6BB which has a sensitivity of 100mV/a and a maximum range of +/-14 amps.
-
Negative values on high side MOSFET source pin - The back EMF of the BLDC motor drove the signal on the high side MOSFET source pin in spite of the clamping diodes. This might be because of the low current handling ability of the clamping diodes.
The motor that is being used at the Gibbot's joint is the Maxon EC60 Flat BLDC motor. A BLDC motor is different from a DC motor in that the motor is not automatically commutated as it rotates. The motor must be commutated by changing the polarity of it's windings based on it's rotational location. The rotational location of the motor is detected using three Hall Effect Sensors. For more information on the commutation pattern of the Maxon EC60 Flat BLDC motor see Maxon's E-Paper Catalog, page 32. For general information on BLDC motors:
- The first 3 pages of this app note is helpful.
- More useful information can be found at the Microchip BLDC page.
- BLDC sample code is in the repo. It's called bldc.c.
- Motor modeling and control can be found on the NU Mechatronics wiki. The motor might be different, but the concepts are the same.
In the setup on the Gibbot's BLDC driver circuit a PIC microcontroller reads the Hall Effect Sensors and outputs a signal to the HIP4086, 3-Phase MOSFET Gate Driver based on the commutation pattern of the motor which drives 3 half bridges consisting of 2 N-Channel MOSFETs in each half bridge.
Before using the Gate Driver chip an attempt was made to drive the BLDC motor with a circuit that drove the MOSFETS with transistors. This circuit was implemented on the Gibbot v1 board, but was never assembled. The problem with this circuit was that the rise and fall times of the transistors were slow enough that we had issues with shoot through. To prevent shoot through we added dead time into the PWM pattern, but this reduced our maximum duty cycle by about 20% at a 5 kHz PWM frequency. If we had increased our PWM frequency to the desired 20kHz PWM frequency we would have lost 80% of our max duty cycle.
The HIP4086 is specifically targeted for PWM control of BLDC motors. It has built in charge pumps that allow for indefinitely long on times for the high-side drivers. It also has very low propagation delay. A gate driver solves two issues with driving a MOSFET Half Bridge, these are: stepping up the drive voltage from the microcontroller's logic level 3.3V to the 12V that is necessary to turn on the MOSFET's quickly as well as stepping up the high side MOSFET's gate drive voltage to the motor supply voltage plus 12V. The gate driver accomplishes this through the use of a bootstrap capacitor.
The boot capacitor value is chosen not only to supply the internal bias current of the high-side driver but also, and more significantly, to provide the gate charge of the driven FET without causing the boot voltage to sag excessively. In practice, the boot capacitor should have a total charge that is about 20 times the gate charge of the driven power FET for approximately a 5% drop in voltage after charge has been transferred from the boot capacitor to the gate capacitance.
Qtotal = Qgate + Period * (I_HB + I_GateLeak)
Where: Qgate = Gate Charge of the MOSFET Period = On time of the high side MOSFET I_HB = Worst case high side current through the xHB pin of the HIP4086 I_GateLeak = Leakage current of the MOSFET gate
Qtotal = 18nC + (1/20,000Hz)*(100uA + 100 nA) = 23nC
Cboot = Qtotal/(Ripple Voltage)
Ripple Voltage = Decrease in voltage on the bootstrap capacitor. The IP4086 datasheet recommends not more than 5% of VDD. Intersil Application note 9405, which is referenced by the datasheet uses a 1V drop in voltage. Using both of these values:
Cboot = 23nC / 1V = 23 nF Cboot = 23nC / 0.6V = 38 nF
The standardized capacitor value of .033 uF seems like a good compromise between these two values.
When the external bootstrap resistor is used, the resistance, Rboot, introduces an additional voltage drop:
VRboot = (Icharge * Rboot) / tcharge
where: Icharge = Bootstrap capacitor charging current; Rboot = Bootstrap resistance; and tcharge = Bootstrap capacitor charging time (the low-side turn-on time). Do not exceed the ohms (typically 5~10Ω) that increase the VBS time constant. This voltage drop of bootstrap diode must be taken into account when the maximum allowable voltage drop (VBOOT) is calculated. If this drop is too high or the circuit topology does not allow a sufficient charging time, a fast recovery or ultra-fast recovery diode can be used.
When the high-side bridge FET turns off, because of the inductive characteristics of a motor load, the current that was flowing in the high-side FET (blue) must rapidly commutate to flow through the low-side FET (red). The amplitude of the negative transient impressed on the xHS node is (di/dt x L) where L is the total parasitic inductance of the low-side FET drain-source path and di/ddt is the rate at which the high-side FET is turned off. With the increasing power levels of new generation motor drives, clamping this transient becomes more and more significant for the proper operation of the HIP4086.
In a simple solution for this issue two series connected, fast PN junction, 1A diodes are connected between xHS and VSS as shown. Two series connected diodes are required because they are in parallel with the body diode of the low-side FET. If only one diode is used for the clamp, it will conduct some of the negative load current that is flowing in the low-side FET. In severe cases, a small value resistor in series with the xHS pin, will further reduce the amplitude of the negative transient. In our case this resistor was not used. This information was taken from page 12 of the HIP4086 Datasheet.
In the configuration that Intersil uses in its HIP 4086 Demo Board User Guide the second diode is left out and only the resistor in series with xHS is used. In this method the resistor on the xHS pin is necessary to limit the current through the clamping diode during the dead time because without this resistor, the diode is essentially in parallel with the body diode of the low side MOSFET. During the dead-time, the commutating negative current in the body diode results with approximately a -1.5V conduction voltage (with large amplitude motor currents). Because the conduction voltage of D1 (~0.6V) is less than the body diode, R1 limits the current that would flow in the diode during the dead-time to safe levels. From page 7 of the HIP 4086 Demo Board User Guide.