One of the cool things about working at a hardware startup is that you get exposure to every part of a device. In larger companies, there is typically a person that takes care of the power, one for analog, maybe a touch screen expert and a bunch of engineers for the digital stuff. When I was part of a startup, I was the power guy, and the analog guy, and I also had to do all the digital stuff.
Power is an interesting topic because it is one of the few areas where you get to use inductors and large diodes. Plus, when you do PCB layout, you get to use large thick traces around the power supplies, which I always think is pretty cool. The analysis of the power circuit is usually done through SPICE models rather than RTL simulations. In our case I will just do a few hand calculations to make sure that we are in the rough ballpark. An additional reason is that we don’t know what type of loads the motors will induce on the power supply, and modeling these motors would be an exercise worthy of a few weeks on their own. We’ll make a few assumptions about the motor load and go from there.
Most of the digital electronics will be running at 3.3V. This includes the PSoC 4 along with any supporting chips. Internally, the PSoC has a linear regulator that powers the core logic at 1.8V, so that simplifies the power distributions a bit. The power used by the PSoC will be very low, and we can probably find a simple LDO for the job, irrespective of the power inefficiency.
On the motor controller end, the power regulations is a bit more complicated. If we are using a single cell battery, we’ll need to boost the voltage to drive the motor controller. The chosen motor controller part, the ST L6234 allows input voltages from 7V to 42V. We can stay on the lower end of the power voltage to avoid using expensive high voltage rating capacitors. There are many choices for a boost controller, but we have a few conditions that can help us narrow down the field of candidates. We are not going for extremely small sizes like controllers for cell phones. We also don’t need anything that’ll source more than 1A. In terms of efficiency, anything above 80% will do, though I don’t have the necessary equipment to make proper efficiency measurements. Cheap is also good, so this probably rules out all of Linear Tech’s controllers (it’s the truth!). In the end I found a part from TI’s Simple Switcher catalog, the LM62014.
The datasheet is pretty straight forward, and the design is rather simple. It is a single FET controller (the top switch remains a diode, and not a FET), with a more or less average Rds (the FET’s on resistance) rating. Because the Rds value is mediocre at best, and we are using a diode for the top switch, efficiency will suffer a bit.
Ripple voltage is negligible since we are powering motors. However, we do need to worry about keeping the boost controller in continuous mode. This is because a boost controller in discontinuous mode does not respond well to transient loads. I anticipate that the motors would be jerking around during compensation, so it is an important point to keep in mind.
A switching regulator in continuous mode simply means that the inductor in the power supply never fully empties. Keeping the controller within this mode is a matter of selecting the inductor size. For a boost topology, this means that we need a certain minimum load to sink the current out of the inductor. If the load drops below a minimum amount of current, then the inductor will empty, the power supply will have to regulate in discontinuous mode.
Let’s look at how to determine this minimum current.
First, the design parameters:
Forward drop voltage across the selected diode
Vdiode = 0.4V
Resistance of the bottom FET switch when it is turned on
Rds = 500mOhm
Frequency of switching for this particular controller
Fsw = 1.6 MHz, Tsw = 0.625uS
Vin = 5V
Vout = 10V
Iout = 1A
Voltage across the bottom FET switch when it is turned on
Vsw = Rds * Iout = 500 mOhm * 1A = 0.5V
Value of the inductor selected for this power supply
Inductor = 10uH
Duty cycle that the controller needs to maintain 1A load with 10V output
Duty Cycle = Vout + Vdiode - Vin / (Vout + Vdiode - Vsw) = 55%
Time that the FET is turned on during one switching cycle
Ton = Duty Cycle * Tsw = 0.344uS
Now that we have defined our design parameters, we can start analyzing the controller when the FET is turned on. During this short period, the voltage across inductor is the input voltage minus the voltage across the FET. The circuit looks like this:
The voltage across the inductor is then:
Vind = Vin - Vsw = 4.5V
Now we can look at di/dt. Using the voltage and changes in current relationship, we get:
V = L * di/dt
4.5V = 10uF * di / 0.344uS
di = 0.155A
This means that the current through the inductor swings by 0.155A during a switching cycle when the output is 1A. The graph of the current through the inductor would look like this:
We need Imid to be high enough such that Ilow is above zero. If Imid is less than half the swing, the current through the inductor would fall below zero, resulting is discontinuous mode. The amount of current between Imid and Ilow can be estimated by dividing di in half:
Imid = di / 2 = 0.155 / 2 = 0.0775A
Imid and the load current is related to the duty cycle, from this relationship, we can determine the minimum load current:
Imid = Iload / (1 – duty cycle) = Iload / ( 1 – 0.55)
Iload = Imid * (1 - 0.55) = 35mA
This means that using a 10uF inductor, we need keep the load current above 35mA. The quiescent current of a single L6234 device is listed as 6.5mA. With three of them (one for each of the three axis), that would drain almost 20mA. I am hoping that just keeping the motors still will consume at least another 15mA in order to keep the power supply happy. If this is not the case, then we will need to size a larger inductor.
That’s all the power analysis for now.