In part one of this series I showed how to implement the “Power Key” to safely power up and shutdown the Beaglebone platform under Windows Embedded Compact 2013 or Windows Compact 7. To continue on the power management theme I will show how to implement the battery driver but first there are some hardware issues we need to take care of.

It seems the hardware designers of the Beaglebone were thinking ahead in that they brought out all the needed connections to the PMIC (Power Management Integrated Circuit) for battery backed operation. The needed connections are shown as test points in this partial schematic:

clip_image002

The full schematic is freely available from the BeagleBoard web site.

The data sheet for the Texas Instruments PMIC is also available for download.

As I have stated in my previous post, the TPS65217C PMIC has an integrated battery charger on board. In my case I am using a 1.75A/hr. Lithium-Ion (Li-ion) battery.

clip_image004

A couple of the connections are quite obvious, Battery plus needs to go to TP5, Battery ground goes to TP8. TP6 is the BAT_SENSE or battery sense which can also be connected to Battery plus. The TS input (TP7) is the Temperature Sense and is usually connected to some kind of thermistor. Li-Ion batteries require temperature monitoring during charging for safety reasons. The charger will not operate unless this pin is connected. In my case I simply added a 100k resistor (see photo above) from TP7 to ground to “fake out” the monitoring circuit. While I do not recommend this in production it is enough to get me up and running.

There is one more mod that needs to be made. The MUX _OUT (PMIC pin 16) needs to be connected to an analog input channel on the AM335X processor. It seems the designers forgot this connection for some unknown reason. This is strange in that the previous generation (Beaglebone white) had this connection wired up correctly. We need this connection as it allows us to read the battery voltage, system voltage, thermistor voltage and charge current via the A/D converter on the AM335x processor. The A/D convert on the processor has a multiplexer frontend which allows us to use it for touch screen interfacing as well as general purpose analog readings. I wired the MUX_OUT to AIN6 which is available on the P9 expansion connector pin 35. Here is close up photo of the mod:

clip_image005clip_image007

Be careful making this mod. The PMIC has a very fine pitch and you need a fine tipped soldering iron and probably the use of a microscope to do it correctly. I also added a small two pin connector so I can remove the battery when needed.

It’s worth noting that because we are running from a 3.7 volt battery not all the peripherals are available when running in backup mode. For example the USB host is not available as it requires 5V from the supply to power external devices.

After I finished the software modifications, which I will cover in the next blog entry, I was able to get full battery backup operation which allowed me to run the Beaglebone for several days before requiring a recharge.

David Vescovi