My electric bike is my primary mode of transportation so I need to be able to ride it under all conditions and at night that means I need light, lots of light. It seems silly to me to have a separate battery to power the lights when I have this nice big battery for the motor and it would be one more thing to remember to charge. The hiccup comes from the fact that the bike battery is at 48V (with a soon to come upgrade to 80V) so a switching power supply is needed.
I selected a part from Linear Technology because Linear’s documentation is always very clear and accurate. Their parts also tend to incorporate a lot of functionality and require very few support components making them easy to design with. While Linear’s parts tend to be slightly higher cost per unit, for hobby volumes, the difference is much less important than quality.
The LT3756, is very well suited to my application. It allows up to 100V in and 100V out in a buck, boost or buck boost mode. Because this is a high frequency (>100kHz) switching power supply, a carefully laid out circuit board was required (bread boarding won’t work), and because I want 4 of these on my bike and expect to find further uses for this driver, I decided to create a general purpose LED buck driver around the LT3756.
What I arrived at is essentially a breakout board implementation of the buck reference design for the LT3756. It accepts up to 100V input and can drive a string of LEDs with a forward voltage up to the input voltage (minus a little bit for good regulation). I chose to size the inductor and transistors to drive up to 500mA of current which is plenty for applications where the extra brightness is coming from many LEDs in series rather than a few ultra high intensity modules. For my particular application, I am planning to use strings of 12 80mA LEDs.
With just the board, a current sense resistor, a power supply, and a couple of jumpers, you can make a string of LEDs light up. The extra features of the driver chip such as under voltage shutdown, open LED detection, dimming etc. are broken out for wiring on a bread board or other mother board. The circuit is also general purpose enough to be used as a 500mA CC/CV power supply.
All of the design files are open source and available on Github.
- LTSpice simulation file
- Schematic: PDF, EAGLE
- Board layout: PDF, EAGLE
- EAGLE Library (additional components used in the design and the module itself as a part for inclusion in other designs.)
I simulated and fine tuned the circuit in LTspice tool freely available from Linear Technology and designed the schematic and did the placement and route and generated the manufacturing files using EAGLE CAD.
For manufacturing, I went to DorboxPDX PCB manufacturing. Given that I knew I wanted at least 5 copies of the board from the start DorkbotPDX had a great price and good enough quality for the density of the board I was making.
Buck mode regulation
For a good intruction to Buck convertsers, take a look at the Wikipedia article. In very brief summary, the key components are a switch (MOSFET), an inductor a capacitor and a diode. Current flows from the input power supply, through the switch, through the inductor and then through the load. When the regulation point (either voltage or current) is reached, the switch opens but the inductor forces current to continue to flow so the diode starts conducting and the current flows in a loop through the inductor, load and diode. In even grosser simplification, you can also think of the switching regulator as just doing very fast PWM on the load to control the current.
This LED driver has two points of particular interest: first it normally regulates current rather than voltage as most switching power supplies; and second it, it adjusts the low side of the load rather than the high side. So if the input is 100V and 30V is required to drive the desired current, the high side of the load will be at 100V and the low side will be at 70V relative to ground. I.e. the output is level shifted.
A secondary feedback mechanism is provided for voltage control so the output current will be regulated up to the point that sourcing the desired current would require a voltage beyond the set limit, at which point, the circuit will regulate the output to that voltage instead. See the figure on the right for the region of regulation. The driver also sets the OPEN_LED fault pin when it switches to voltage regulation as this usually means the LED string has failed open.
For switching regulators, the main concern is to keep the switching loop as small as possible. Take a look at the layout (and the layout guidance in LT3756 datasheet) and you’ll see that the loop from V+ through the switch inductor and diode is kept small to minimize it’s effect as an antenna to radiate EMI. All of the analog reference pins should have decoupling capacitors with their traces as short as possible. Finally, the entire module has a ground plain with as little cutting as possible given that this is a two layer board.
For including the LED module in other projects I created a component of the module in an EAGLE library. Organized by pin, here is how to use the module.
- V+ — the supply voltage for the module. Between 6V to 100V and must be higher (10% recommended) than the required output voltage for stable regulation.
- GND — Module ground. Remember that the output voltage is regulated relative to V+ not to ground.
- SHDN — Run / stop control for the whole module. May be driven as high as V+. The SHDN pin may be used as an under-voltage protection as well. See the LT3756 datasheet for details.
- OPEN_LED — An open collector output to indicate that the LED string has faulted open / that the regulator is regulating voltage instead of current. Use an external pullup resistor to your system logic level and this pin will pull low when active. Multiple driver modules may have their OPEN_LED signals together and the signal will go low if any of them have a fault.
- PWM — Dimming input for the module. Drive with a logic level (3.3V or 5V compatible) PWM signal of less than 50kHz or connect to VREF if unused.
- FB_TOP — Top of the voltage feedback network see FB below.
- FB — Because the output voltage is level shifted away from ground, the module has an internal network to adjust the feedback reference. To set the voltage limit and OPEN_LED trip point. Use a resistor divider as shown, the voltage limit will be 2.5V * R3/R4 where R3 and R4 are as pictured and Vin is FB_TOP.
- CTRL — Optional current setting adjustment which may be used as an analog dimming mechanism. The module already has a circuit for over temperature protection built in and connected to CTRL so no external connections are required but by externally pulling CTRL lower, the target current may be lowered see the datasheet for details.
- VREF — 2V reference. Use for driving CTRL normally and PWM if unused. Can source up to 100µA.
- ISP, ISN — Current sense resistor high side and low side respectively. An external current sense resistor may be used by connecting it between ISP and ISN or an SMD1206 resistor or through hole resistor may be populated directly on the module in which case these pins should be left unconnected.
- LED_A — LED string Anode
- LED_C — LED string Cathode
I now have the schematic for my bike electronics motherboard which incorporates 4 of these modules posted over here.