Managing solar power systems with SunAir boards

Voltage Booster

To boost the nominal 3.7-4.2V output from the LiPo batteries up to 5V, I need to use a voltage booster. For this, I used an ISL97156 pulse width modulator (PWM) step-up regulator [12] to step up the voltage. The design uses a PWM oscillator run through an inductor with a feedback loop to increase the voltage up to a regulated 5V. In SunAir, I ended up with 4.98-5.02V, which is pretty good (about 1/2%). Note that this voltage will start to come down below 5V when you overload the board (exceed 1,000mA) or the LiPo batteries get below about 3.7V. A good system will monitor this voltage and cut the power to the computers when things get low. If you are charging your phone, it really doesn't matter.

Both the solar charge controller and the voltage booster are analog designs and do require some specialized knowledge beyond the normal digital design to get everything right. This design encountered significantly more difficulties than I first anticipated, including issues with PCB trace width and thickness, choice of capacitors (high effective series resistance (ESR) capacitors kill the circuit performance), and component placement. It took some serious tweaking of the design to meet the performance requirements. Although I regularly suggest building your own circuit boards for circuits, I would think twice about doing this design again. Oh wait, I have to do it again for SunAirPlus. Good thing I can copy most of my work.

Level Converters

Output from and input to the Raspberry Pi are 3.3V. You can't drive them with 5V lines without potentially destroying your Pi, because the Raspberry Pi has protection diodes between the pin and 3.3V (3V3) and ground. Positive voltages greater than 3V3 plus one "diode drop" (normally 0.5V) will be shorted to 5V, this means that if you put a 5V power supply on the GPIO pin you will "feed" the 3V3 supply with 4.5V (5V – 0.5V diode drop) and that may damage 3V3 logic.

Only use 3.3V outputs connected to your Raspberry Pi GPIO pins without putting a voltage level converter between the devices. Note, however, that you can drive most 5V device inputs with the Raspberry Pi 3.3V GPIO outputs. Most devices will read 3.3V inputs as a logic one. How did I solve this in SunAir? By adding bi-directional level converters. Figure 4 shows a simple bi-directional logic level FET-based converter. You can set PI3V3 to either 3.3V or 5.0V and the circuit works.

Figure 4: Bi-directional level converter.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Raspberry Pi Geek

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content