...
Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Needs Assessment
The 12S Servo Module is a PDB designed to supply power from the battery directly to the servo motors on the fixed wing plane. The board should step down the voltage from the battery to 5-6V to supply the servo motors and be able to cut one out if it fails, to prevent the dead servo from drawing too much power and depowering other components of the drone.
...
Market Research
Existing https://www.revrobotics.com/rev-11-1144/, interesting LED feature can be implemented.
see if we can get plane position from gyro?? is a gyro chip too big?
or I need to study how to read fixed wing directions from its wing tilt angle?? and we can get this data from servo?? but how to decode!???
or simply we just measure current at each servo rail input and mux the color ?? uhh so many ideas I am not even sure if they make sense lol
I (Jerry) assumed 1 servo motor draw a maximum of 1A from my previous course project. I saw 1 servo motor would draw around 700mA from power supply. Also saw a bunch of servos in the bay and they look the same size as the one I used in the course project, so I assumed 1A current limit.
Requirements
Supports 18 V to 55 V input from XT60 for 6S and 12S support
Input should have common mode choke to filter out noise from the ESC
3x4 header servo inputs and outputs to be consistent with Pixhawk Electrical Connector Standards
.100 pitch, 100mil
Input: PWM, GND from Pixhawk (No 5V power since we are making our own)
Output: buffed PWM, Power, GND
Each output power is 6 V (possibly adjustable between 5 V and 6 V with passive values) and has a current limit somewhere between 500mA and 1A (possibly adjustable with passive values within this range). If one channel is over currented the other channels remain alive.
5V/6V output can be changed by swapping out resistors
30mm x 30mm PCB size to be compliant with Mounting Hole Specifications
Block Diagram
...
Possible Implementation Methods
Single Buck Converter Option
A single buck converter with external FETs can be used and then four current limited channels
Will need to have the current limit max at 4A
Each servo line will have some form of overcurrent protection, which can shut off that line to the servo if the current exceeds a certain limit
4 Buck Converters Option
Four separate buck converters with internal FETs can be used, each with their own current limit
Adding fuses to each servo line that will trip if the current exceeds allowed parameters?
Methods Pros and Cons
Attribute | Single Buck | 4 Bucks |
---|---|---|
Component Selection |
|
|
Cost |
| |
Board Layout / form factor |
|
Decision: We selected single buck option to save board space.
Component Selection
Buck ICs
Internal FETs
LM76005 3.5-V to 60-V, 5-A Synchronous Step-Down Voltage Regulator datasheet (Rev. A) (ti.com) (Thanks Steven)
For single buck option
External FETs (Buck Controllers for single buck option)
Readily available on Digikey, lower efficiency than the Ti ones (high 80’s at nominal)
Reference Design: rd00002_48v_mpq2908_reference_design_rev1.0.pdf (monolithicpower.com)
MP9928 Buck Controller Specs
Typical Application Circuit Diagram
...
IC Pinout
This IC is available in TSSOP-20 and QFN-20 packages.
...
Important Equations
Output voltage divider equation:
...
Buck Controller Passive Components Selection
Output Feedback Voltage Divider
For 6V output, use 130k & 20k 1%, currently using this
R8 = 130k → RC0603FR-07130KL YAGEO | Resistors | DigiKey
R9 = 20k → RC0603FR-0720KL YAGEO | Resistors | DigiKey
For 5V output, use 43k & 8.2k.
R8 = 43k → RC0603JR-0743KL YAGEO | Resistors | DigiKey
R9 = 8.2k → RC0603FR-078K2L YAGEO | Resistors | DigiKey
Vout Current Limit
Since we have overcurrent protection downstream already, we don’t want to implement a limit on the buck controller itself. Unfortunately, the current sensing is used in the compensation control for the buck, so it needs to be included for the IC to function normally.
...
Rearranging the inductor equation from Inductor Selection below, Ipp-ripple = 1.149A, then Ipk = 4.5745A, therefore, a current limit of 5A should suffice.
Assuming ILIM pin is GND, V_ILIM = 25mV
Rsense = 25mV/5A = 5E-3Ohms = 5mOhms
Expected power dissipation: P=I^2R, P=5^2 * 5mOhms = 0.125W
5mOhms current sense resistor: https://www.digikey.ca/en/products/detail/rohm-semiconductor/PMR18EZPFU5L00/2094203
Vcc Circuit
The MP9926 has VCC1 and VCC2 to power internal components and the MOSFETS. VCC1 can take input from Vin into an internal LDO. To improve efficiency, can connect VCC2 to output and leave VCC1 pin floating.
Choose a 4.7 uF capacitor for VCC2
4.7uF is chosen to be compliant with datasheet’s typical application example. This cap decouples noise at VCC2 pin. Other values such as 1uF or 10uF would work as well.
Choose 1uF capacitor for VCC1 according to the datasheet
VCC1 cap can’t be drained when charging up the bootstrap capacitor, the 1uF cap is chosen since it is 10x bigger than Cboot
Power Good Pull-up Resistor
PG pin not required in implementation, DNP resistor provided as shown. 100k resistor used in earlier design shown below.
Enable/Sync Pin Pull-up Resistor
selected a resistor divider here to regulate EN pin voltage in high Vin situations
1.28V < V_EN < 50V
Vin = 18V, R1 = 100kohm, R2 = 100kohm, Vout = 9V
Vin = 55V, R1 = 100kohm, R2 = 100kohm, Vout = 27.5V
not using a zener diode because the diode footprint takes too much space
AAM/CCM Resistor
AAM mode improves the efficiency of the the Buck at light or no load, and since we are powered by a battery, it would make sense to improve the efficiency of the board where possible.
Choose 196K resistor, this keeps the V_AAM at 600mV which is above the 480mV (R_FREQ is also 200K so the resistors cancel out which leaves V_AAM at 600mV).
...
Soft-Start Capacitor
Soft-start capacitor is used to determine the soft-start time, prevents converter output voltage from overshooting rated voltages
If we want a t_ss of ~100ms, I_ss = 4 uA, V_REF = 0.8V, C_ss = 500nF
Easier to find caps with 0.68uF capacity, resulting inh t_ss=136ms, which should still be fine for our purposes
https://www.digikey.ca/en/products/detail/yageo/CC0603KRX7R8BB684/16797741
CAP CER 0.68UF 25V X7R 0603
Justification: We don’t need soft start time to be very fast, having slightly longer gets us less inrush current.
Switching Frequency
There is a trade-off when selecting the switching frequency of the buck controller.
...
Limits: 100kHz - 1000kHz
Try to use lowest available frequency (100kHz)
Justification (Old):
Even with the lowest available frequency available to us, the corresponding recommended inductor size that this corresponds to is just 47uH which isn’t too physically large anyway, and we aren’t very space constrained so larger a couple larger components is okay, thus to maximize efficiency, we can go for the lowest possible switching frequency.Justification: 100kHz switching frequency provides the highest efficiency. It leads to a 47uH inductor which is fitting our 30mm x 30mm board so this switching frequency is acceptable.
199kOhms → selected R_freq = 196kOhm → Fsw = 101.5 kHz
Comment:
If we ever go for a 2nd revision, start with calculating total losses on the FET and go for the highest Fsw. We want the board size to be small so a smaller inductor and less caps can help with layout. But still watch out for efficiency drops
Inductor
SRP1265A-470M Bourns Inc. | Inductors, Coils, Chokes | DigiKey → 47uH, 6.5A, 90mOhms
Rated DC current is recommended to be 25% higher than typical for safety.
Inductor size equation from datasheet:
...
At 4A, the inductance drops a little from rated 47uH but is still close to 45uH, also the expected temperature remains low, thus this inductor should be sufficient
Input Capacitor
When the switching FETs turn on and off, current suddenly start and stop flowing and this causes ripple on the input side. Due to the parasitic inductance, we see the ripple voltage on Vin and we need to filter that out.
...
Output Capacitor Selection
Cap impedance should be low at switching frequency (101.5kHz) as the inductor current oscillates at this frequency.
Datasheet uses 22uF and 220uF capacitors for 5V application
22uF: GRM21BR61E226ME44K
...
Vout = 6V
Vin = 55V
f_s = 101.5kHz
L = 47uH
R_ESR = 0.004R / 3
Co = 8.192uF * 3
Delta V_out = 0.0562V if put three 22uF capacitors, very quiet Vout, very nice
Compensation Components
Assuming we did have a R_sense resistor of 5 mOhms:
Gm = 500uA/V
Gcs = 1/(12*Rsense) = 16.67
Co = 8uF * 3
fc = 0.1 * fsw = 10.15kHz
Vfb = 0.8V
R5 = 1357 Ohms → 1300 Ohms
C6 > 49nF → C6 = 100nF
C7 = DNP for tuning.
RC Snubber
Purpose: reduces the voltage ringing spike at SW node
...
Power FET Selection
Requirements
Vds > 55V max?
Ids > 5A (Id_min = 4.5745A)
lower Rds the better
Small size → son-8 package
Decision Matrix
MOSFET — Power, Single, N-Channel 60 V, 6.1 mΩ, 71 A (onsemi.com)Overkill, too big
DMN10H170SK3-13 Diodes Incorporated | Discrete Semiconductor Products | DigiKeyVds = 100VIds = 12ARds = ~150mOhms
...
Decision: Selected Texas Instrument CSD18534Q5A as the switching FET for low cost, small package and small losses.
Bootstrap Circuit
Purpose: generate bias to drive the gate of the High Side FET
...
selected https://www.digikey.ca/en/products/detail/diodes-incorporated/DFLS160-7/765614
Common Mode Choke
Needs Assessment
Why do Do we need this filter?
The common mode choke serves as a protective measure against potential ESC and environmental EMI common mode noises. Typically, it functions as a short, connecting the battery and the buck converter input. The power FETs of the ESC constantly alternate between the battery's power and ground, causing ringing at both VBAT and ground, known as common mode noise. Since the servo module draws power from the same battery, the noise has the potential to be transferred to the buck converter's input. Ideally, the ESC addresses its FET ringing issue on the PCB. We added common mode choke for an extra layer of noise mitigation.Motor magnetic field can get coupled to the buck Vin. If there is noise on the buck Vin when the drone is flying in the sky, it is almost impossible to RCA. The common mode filter keeps us away from that situation. So, we should keep the common mode filter if there is space on the PCB
How does the common mode choke work?
...
Requirements
Current rating > 4.7A
Voltage rating > 55V
Filter capabilities has little impact because we need fit this big chip on our tiny board
Options
...
Efuse Component Selection
Efuse IC Selection
The table below shows some overcurrent IC options I have found:
...
The auto-retry version was chosen so that each servo will continue to attempt working while we are in the air and so that we don’t lock out a servo mid-flight.
Input and Output Capacitor
...
https://www.digikey.ca/en/products/detail/samsung-electro-mechanics/CL10B104KA8NNNC/3886664
Also, assuming a 2.6ms rise time, and a very low resistance on the line, two 1uF for the input capacitor should be enough to allow the voltage output to rise in 2.6ms from 0V to 6V.
Current Limit Resistor
...
RILIM = 117kΩ if IILIM is set to 1A
https://www.digikey.ca/en/products/detail/yageo/RT0603DRE07117KL/7708397
Slew Rate Control Capacitor
...
Use 1nF capacitor from altium library.
This results in a t = 2.6ms rise time for 6V output.
Input Zener Diode
The zener diode protects the chip from inductive voltage spikes from sudden current increases. Think of V = L * di/dt but di/dt is infinity.
...
Conclusion: we don’t need a zener diode at input.
Output Schottky Barrier Diode
This optional SBD on the output of the Overcurrent IC may be needed such that no instant changes of the voltage to the motor/servo or when the current suddenly shuts off to 0A creates a negative voltage spike (although ideally servo has flyback internally to deal with this)
The SBD will clamp the output voltage at -0.28V for chip protection since the datasheet specified the absolute minimum Vout is -0.3V. It will be placed for the 1st revision just in case if things go wrong.
PWM Buffer Component Selection
Servo Motor Market Research
Most servos can handle 3.3V & 5V logic levels but some high torque servos only take 5V logic level and doesn’t respond to 3.3V PWM signals. Therefore we want to buff the 3.3V PWM signal coming from the flight controller (Pixhawk 6) to 5V.
Google search “step down servo motor PWM signal from 5V to 3.3V” gives guides on the opposite… so we don’t need to worry about 5V PWM not compatible. Plus we have jumpers to get around the buffer if we really want a 3.3V PWM signal.
Requirement
4-channel
5V Vcc
Level shift PWM signal voltage from 3.3V to 5V https://docs.holybro.com/autopilot/pixhawk-baseboards/pixhawk-baseboard-ports
...
3.3V buffer backup: SN74HC125PWR
5V LDO
Current consumption of the buffer is 25mA max, Vdrop = 6V- 5V = 1V, Ploss = 25mW worst case. No need for a big package to dissipate heat. Selected AP7375-50SA-7 for cheap price, small package and VDROP = 350mV @ IOUT = 100mA (Typ.).
3.3V LDO backup: AP7375-33SA-7
Input Pulldown/Pullup Resistors
I couldn’t find Pixhawk PWM rail leakage current. Assuming 100uA leakage current from Pixhawk and open drain configuration, 4.7k pulldown will create a 0.47V input, which is below the 0.8V logic low threshold. 4.7k pullup will create a 0.47V drop, which would still above the 0.7 * Vcc threshold at 3.3V Vcc.
Selected 4.7k as pulldown/pullup resistor value.
PCB Layout Notes
Layout Topology
XT60 connector comes in at the middle-left of the PCB, following by the common mode choke
HS FET on the right then LS FET next to it, inductor is placed under the FETs
All buck controller components stay on top layer, except for jumpers, they can be anywhere
4-channel buffer on the top of the bottom layer, then the Efuse ICs
Mounting holes at 4 corners, no extra space beyond them
Layout Justifications
Trace Width Calculations
I assumed the board can handle 20C temperature rise just from air cooling. Source: Saturn PCB
...
For 4.57A traces in and out of the buck, I’m using trace width >50mil
...
Via Current Calculation
...
Via Size
...
Via hole: 0.15mm
Minimum Annular ring: 0.13mm
...
This setting is chosen so that the board uses the smallest via size possible while not paying JLCPCB extra. 0.15/0.41 size vias also makes it easier to terminate ground copper dead ends. Though some cases we can use a larger via (e.g. 0.3/0.6), it increases drill sizes and increase manufacturing cost.
Layer Stackup
Copied JLCPCB 4-layer stackup since I want internal ground layers to be as close to the top and bottom layers as possible. Reason being I want the ground plane to absorb as much noise as possible on the top and bottom layers, especially the magnetic field from the inductor.
...
Efuse IC Pad
Removed vias on the ground pad of efuse IC, so everything can fit on a 30x30 mounting hole pattern. Justification:
Maximum power dissipation would be 1A*1A*38mohm = 38mW.
...
Assuming a 50 C/W thermal resistance, temperature rise is only 1.9 C.
Input & Output Connectors
Input connector and output connector both follow the pixhawk flight controller PWM connector 3x4 pattern. Top row is ground, mid row is power and bottom row is signal.
...
Alternative is to use two 6-position-3-row sockets together if the above remains out of stock
BOM notes
Add 2.2 ohm resistor for bootstrap tuning
Order 4.7k resistor for buffer input pullup/pulldown