This is only a preview of the August 2021 issue of Silicon Chip. You can view 39 of the 112 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Articles in this series:
Items relevant to "Second Generation Colour Maximite 2 – Part 1":
Items relevant to "Nano Pong using an 8-pin PIC":
Items relevant to "Multi-Purpose Battery Manager":
Articles in this series:
Items relevant to "Simple Linear MIDI Keyboard":
Purchase a printed copy of this issue for $10.00. |
Multi-Purpose
Battery Manager
n
thma
y
l
B
m
i
T
By
Our recent Battery Multi Logger is a great tool for monitoring and
diagnosing battery problems. But sometimes, you need something
which will not just monitor what’s going on but also take action, such
as connecting and disconnecting loads based on battery charge state.
That’s just part of what this Battery Manager does.
O
ur Battery Multi Logger (February
& March 2021; siliconchip.com.
au/Series/355) is a Micromite-based
device that monitors the condition and
usage of a battery system. It can handle
battery systems between 6V and 100V,
and it is a convenient tool to keep track
of how batteries are being used, ensuring that they are kept healthy.
Being heavily discharged or overcharged can greatly reduce a battery’s
working life, possibly leading to the
need to buy an expensive replacement
prematurely. So you want to be sure
68
Silicon Chip
that you’re treating them well.
Both of these conditions are relatively easy to rectify, as long as you are
aware of them happening, by simply
disconnecting the load(s) or charger
causing the problem.
Our recent Battery Multi Logger
unit can monitor this but did not have
any means to take corrective action
until now. The Battery Manager adds
switching modules to the Battery Multi
Logger, which can connect or disconnect loads and chargers to keep the
batteries healthy.
Australia’s electronics magazine
Part of the design is a new I/O
Expander board that provides control
signals to allow up to four Switch Modules to independently and automatically connect and disconnect loads
as needed.
The Battery Manager can also interface with the High Current Four Battery Balancer (March & April 2021;
siliconchip.com.au/Series/358) to provide even more detailed information
about the state of a multi-cell battery
or multi-battery system. The Battery
Manager can even be used to program,
siliconchip.com.au
Features
●
●
●
●
●
Compact, flexible and modular addition to the Battery Multi Logger
Connect and disconnect up to four loads/sources to protect batteries
Low battery drain
Can interface with the High Current Four Battery Balancer
Capable of switching well over 20A (possibly over 30A) at 10V-60V
control and monitor the Battery Balancer.
While the Battery Multi Logger hardware remains mostly unchanged from
the published design, a new control
program adds the interface to configure, control and monitor the Switch
Modules and Battery Balancer.
The Switch Module and I/O
Expander hardware have uses outside the Battery Manager, too. While
designed for 3.3V operation, the I/O
Expander board will happily work
at 5V, so it could be hooked up to an
Arduino board or just about any other
microcontroller.
Similarly, the Switch Module will
work with just about anything that can
supply a control signal of 3.3-15V. So
it can also be driven directly by just
about any microcontroller.
Switch Module
One of the goals of the Battery Multi
Logger is to use as little power as possible. So we have designed the new
Switch Module to have very low quiescent and operating currents.
We are using high-current Mosfets
as switches, as these can be controlled
with minimal power. The Mosfets
are driven by a latching circuit that
‘remembers’ the state of the switch
and drives the Mosfet gates on or off
as needed.
This latch can be toggled in several
different ways. A pair of switch contacts connected to the latch circuit can
set its state, providing simple pushbutton control.
The Switch Module PCB also incorporates a pair of opto-isolators. Their
output transistors are in parallel with
the switch contacts. Thus, there is also
the option to set the latch state and
control the Mosfets via an electrically
isolated interface.
I/O Expander board
You might recall from the Battery
Multi Logger article that it doesn’t
have many free I/O pins left. The two
pins that provide the COM1: serial
port are not used, though, and are
brought out to the Battery Multi Logger PCB edge.
But we have earmarked these to
interface with other serial devices.
A better way to control Switch Module(s) is to use the I2C interface, which
is brought out to pins at CON4 of the
Battery Multi Logger PCB.
We are using a PCF8574 IC, which
we described in our article on I/O
Expander Modules (November 2019;
siliconchip.com.au/Article/12085).
This lets us easily add eight I/O ports.
In fact, with multiple ICs, we could
add up to 128 I/O ports, although that
would exceed our requirements.
So we have designed a small I/O
Expander PCB, which can be controlled using the available I2C bus. It
provides eight I/O pins connected to
transistors to drive the opto-isolated
inputs of Switch Module(s).
As noted above, a low quiescent
current is important. The PCF8574
draws around 10μA when there is no
activity on the I2C bus. Its primary
current consumption is the current it
supplies to drive the opto-isolators,
and they are only active very briefly
during switching.
Battery Balancer support
As we just noted, the COM1: serial
port on the Battery Multi Logger is
free for us to use. Since the Battery
Balancer already has a serial interface,
we can simply connect these to allow
communication and control between
the two.
We can also use the Mini Isolated
Serial Link (March 2021; siliconchip.
com.au/Article/14785) to isolate the
different parts of the system.
Fig.1 shows an overview of the
additions to the Battery Multi Logger to turn it into a Battery Manager.
Note the connection from the Battery Balancer to CON6 on the Battery
Multi Logger.
Fig.1: the Battery Manager consists of the Battery Multi Logger plus the peripherals shown here. Up to four Switch
Modules can be added with one I/O Expander; we imagine most constructors will need one or two. It can also interface
with the High Current Battery Balancer, allowing cell status and balancing activity to be monitored.
siliconchip.com.au
Australia’s electronics magazine
August 2021 69
Updated software
Naturally, these extra features need
to be controlled and configured. This
is done via extra buttons and pages on
the Battery Multi Logger’s Micromite
LCD interface, shown in screengrabs
later in this article. There is also a more
detailed description indicating how
to use these new screens along with
those images.
The first new page controls the
Switch Modules; up to eight triggers
can be set. These are voltage or current thresholds that result in an action
occurring, such as one or more of the
Switch Modules being activated. A
latch is also set to prevent repeated
activation; a trigger can also reset a
latch to provide alternate operation.
For example, Trigger 1 can be set
to activate when the battery voltage
falls below 11V. This sets Trigger 1’s
latch and, via a Switch Module, also
disconnects some non-essential load
from the battery, reducing the chance
of damage to the battery from deep
discharge.
Trigger 2 is set to activate when the
battery rises to 12.5V and also to reset
Trigger 1. Similarly, Trigger 1 can reset
Trigger 2. As you might expect, Trigger
2 would be configured to reconnect the
load that is disconnected by Trigger 1.
Thus these two triggers work to
detach a load from the battery except
when it has sufficient charge. A similar
arrangement in reverse can also work
as a crude charge regulator, preventing overcharging.
The external switches can also be
manually manipulated, either for testing or to override the programming,
and you can also manually reset the
triggers.
Another page shows the current
operating state of the Battery Balancer
(as reported by the Balancer over its
serial port), including which cells are
being balanced, in which direction and
to what extent. Buttons are also provided to issue commands to the Battery Balancer.
Two graph pages are available to
show recent data from the Battery
Balancer. One page shows the cell
and stack balancing activity, while a
second page plots the individual cell
voltages.
I/O Expander operation
The circuit diagram of the I/O
Expander module is shown in Fig.2. Its
CON1 header connects to the Battery
Multi Logger’s CON2 for 3.3V power
and ground. The I2C bus is present
at the Battery Multi Logger’s CON4,
which connects to CON2 here.
These are situated to align directly,
allowing the I/O Expander module
to stack onto the existing hardware,
using either stackable headers or being
directly soldered. Since it is only four
wires, it can be run remotely too,
although a direct connection is preferable.
The Battery Multi Logger hosts the
pull-up resistors required for the I2C
bus, so these are not present on the I/O
Expander board. It’s generally better
for pull-ups to be on the master, since
only one pair is needed per bus.
On the I/O Expander PCB, the 3.3V,
ground, SDA and SCL lines from CON1
and CON2 go to IC1’s pins 16, 8, 15
and 14, respectively. A 100nF capacitor bypasses IC1’s supply. There are
two more 100nF capacitors to help
source current into downstream connectors CON3-CON6.
IC1, the PCF8574, has three address
pins (1, 2 and 3) that need to be pulled
up or down to set its address. We
avoid the use of pull-up or pull-down
Fig.2: the I/O Expander adds to the modular nature of the Battery
Manager, providing extra I/O ports to drive devices like Switch Modules.
Each I/O Expander adds eight signals, enough to control four Switch
Modules. It uses the PCF8574 addressable I/O Expander IC, which can
be configured to respond to eight different addresses, allowing further expansion.
70
Silicon Chip
Australia’s electronics magazine
siliconchip.com.au
resistors as this could increase current consumption. So a group of three
jumper pads, JP1-JP3, is provided for
this purpose. All pins are pulled low
by default, giving a 7-bit address of
0x20 hexadecimal (32 decimal).
These jumpers are actually solder
pads on the PCB and can be changed
by cutting the thin traces and soldering between pads. Since eight I/O
pins are ample, we have written the
software to simply work with a single
I/O Expander board with the default
address.
The PCF8574 could be replaced by
the mostly identical PCF8574A. The
only difference is that the PCF8574A
uses a different range of addresses; in
this case, the default address will be
0x38 (56 decimal), and the software
would need to be modified to suit
that value.
Pin 13 of IC1 provides an active-low
input change interrupt signal which is
not used in this application. We are
using all of the pins as outputs, so we
do not need the interrupt function.
The remaining pins labelled P0-P7
(pins 4, 5, 6, 7, 9, 10, 11 and 12, respectively) are the I/O pins. They are either
weakly pulled up (the default state)
or pulled low by a sink capable of
around 10mA.
Since the opto-isolators on the Soft
Switch are active-high devices, we
use P-channel Mosfets controlled from
these I/O pins to source current from
the 3.3V rail. These Mosfets also invert
the signals.
For example, Q1’s gate is connected
to pin 4 of IC1 (P0). The gate is also
pulled high by a 10kW resistor. While
probably not strictly necessary, we
have fitted these so that false triggering does not occur while the Battery
Multi Logger is powering up.
Q1’s source is connected to the
3.3V rail and is effectively connected
to its drain when the gate goes low,
The Battery Balancer
can be connected to
the Battery Manager
to provide greater
information about the
state of the batteries. It
connects via our Mini
Isolated Serial Link.
delivering 3.3V to pin 2 of CON3.
A similar arrangement exists for
the other seven I/O pins of IC1. The
outputs are arranged in pairs, to provide the complementary on/off functions needed for the Switch Module
to operate.
Each of CON3-CON6 can connect
to the input of a Switch Module, and
so we can control up to four Switch
Modules with one I/O Expander board.
In operation, the I2C host (in this
case, the Battery Multi Logger) writes
a default value of 0xFF (all bits set
high) to IC1, which then sits in this idle
state, drawing virtually no current. Its
output transistors are off, and all pins
on CON3-CON6 are not connected to
the 3.3V rail.
When an output needs to be activated, the Battery Multi Logger sends
a data byte with at least one bit set
low. This causes the corresponding
pin from P0-P7 to go low, turning on
its Mosfet and sending its corresponding output high.
For the brief period that the I2C bus
is active, IC1 draws a modest 100μA,
while any of P0-P7 that are active
will cause less than 1mA to be sunk
through its pull-up resistor. The transistor will also source whatever current is needed to control the connected
Switch Module.
Switch Module operation
Fig.3 shows the circuit diagram of
the Switch Module. As mentioned, up
to four Switch Modules can be connected to a single I/O Expander board.
CON1 and CON2 are large, highcurrent connections to the positive
The I/O Expander (also labelled as an
I2C Interface) adds another PCB to the
Battery Manager stack. If you need
multiple I/O Expanders, you could
fit them with stackable headers (as
used on Arduino Shields). Just be sure
to set different I2C addresses on the
stacked PCBs.
siliconchip.com.au
Australia’s electronics magazine
August 2021 71
end of a battery and its load or source
(eg, a charger). Thus, we perform highside switching, leaving the ground
connections uninterrupted. The connections are not polarised, so current
can flow in either direction when the
switch is on.
Across CON1 and CON2 are connected pairs of back-to-back P-channel
Mosfets, Q4-Q11. Their sources are
connected together, with the drains
going to either CON1 or CON2.
With the gates held near the source
potential, the transistors do not conduct, and the switch is off. If the gates
are taken low relative to their sources,
then a low-resistance path exists
between CON1 and CON2.
The Mosfet body diodes pass a positive voltage from either CON1 or CON2
to the remainder of the circuit. CON3 is
used to provide a ground connection for
the circuit and is wired to the battery
system’s common negative terminal.
The 10kW resistor in series with the
GND connection and the 100nF capacitor across ZD2 provide a filtered logic
supply (between LOGIC+ and LOGIC_
GND). Typically, around 90% of the
battery voltage is present across the
100nF capacitor and ZD2.
Zener diode ZD2 does not conduct
under normal conditions; it is not
even strictly needed for 12V systems,
but will clamp any spikes that might
be present. It also allows the switch
module to be used with battery voltages over 60V.
Q1 and Q2 are configured as a
bistable latch, with the 100kW and
220kW resistors connected to their
gates providing a mutually exclusive
interlock.
The gate of Q1 is connected to the
drain of Q2 and vice versa. If Q1 is
on, then Q2’s gate is pulled to near its
source voltage, and it is off. Similarly,
if Q2 is on, then Q1 must be off. This
latch is what retains the state of the
Switch Module.
Q1’s gate is also connected to Q3’s
gate, so that Q3’s state is generally the
same as Q1’s. Q3’s drain is also connected to Q4-Q11’s gates. When Q3 is
on, its drain network (consisting of the
100kW and 220kW resistors and 15V
zener diode ZD1) drives the gates of
Q4-Q11 to 4-15V below their sources.
In this state, Q4-Q11 turn on, closing the Switch Module’s connection
between CON1 and CON2. Otherwise, their gates are pulled up to their
sources by the 220kW resistor and they
switch off, opening the Switch Module’s connection between CON1 and
CON2.
Toggling the Switch Module state
involves pulling either of Q1 or Q2’s
gates to LOGIC_GND. This can be
done by the phototransistor outputs of
OPTO1 or OPTO2, respectively.
When a voltage is applied at CON4’s
pin 2 that is positive with respect to its
pin 1, current flows through OPTO1’s
LED via the 470W resistor, turning on
its phototransistor. Similarly, a positive voltage at pin 3 of CON4 triggers
OPTO2, pulling Q2’s gate low.
A connection between the pins of
CON5 or CON6 will have the same
effect. This allows control by something like a pushbutton, in addition to
control by the Battery Manager.
If both Q1 and Q2 have their gates
pulled low, then naturally, Q3’s gate
is low too, and the Switch Module is
off. Thus the safe ‘off’ state dominates
if conflicting signals occur.
This is similar to the state that
occurs when power is first applied.
In this case, capacitor C1 (which will
have been discharged by its parallel
100kW resistor) holds Q1’s gate low
Fig.3: the Switch Module has two opto-isolated inputs which drive a pair of
complementary latching Mosfets. These, in turn, drive a bank of high-current
Mosfets for switching loads up to at least 20A. This is useful in its own right,
as it can be driven by just about any microcontroller, or even a simple set of
contacts such as a pushbutton.
Australia’s electronics magazine
siliconchip.com.au
for a brief period, allowing Q2 to turn
on before Q1, and the Switch Module
is forced into the off state.
The time constant of this RC network is less than 1ms, so as long as
external pulses are at least this long,
then incoming pulses are latched
correctly. If the reverse behaviour is
required, then the capacitor is fitted
adjacent to Q2, to the pads marked C3
instead of C1. The Switch Module will
then power up in the on state.
Current consumption
When sitting in the latched off state,
the current consumption is around
500μA at 60V and proportionally
less at lower voltages; around 100μA
at 12V. When switched on, extra current flows through Q3, adding around
200μA at 60V, down to 40μA at 12V.
The current during switching will
be higher than this, with Q1, Q2 and
Q3 sinking current, but that occurs
only very briefly, as the complementary transistors turn off almost instantaneously.
Switch ratings
P-channel Mosfets Q4-Q11 are
SUP53P06 types with a nominal maximum gate voltage of -20V (with respect
to the source) and a maximum drain
voltage of -60V. These parameters set
the practical working limits of the
Switch Module.
These Mosfets are specified at
around 9A continuous current each (at
25°C), but the PCB track width limits
this to about 20A across the four pairs;
perhaps up to 30A with ample cooling.
This can be increased by supplementing the PCB with extra wires soldered
directly to the Mosfets.
Alternatively, for very light loads,
some Mosfets could be left off.
The dividers around Q1, Q2 and
Q3 have been set to allow operation
up to 60V (respecting their 20V gate
limit with the 220kW/100kW divider).
Since they have gate thresholds down
around 3V, they require a battery voltage of at least 10V to work correctly.
ZD1 is provided to clamp the gate voltage to 15V for safety.
This is generally not a problem for
switching loads, as the maximum
voltage seen will be the battery voltage. For charging sources, though, the
voltage can be much higher. For example, a 12V solar panel can have a 22V
open-circuit voltage. Wind turbines
can be even higher; they typically
siliconchip.com.au
The Battery Soft Switch
(or Switch Module) uses highcurrent Mosfets as switches so that the total
operating power consumption is low. Four of these Switch
Modules can be independently controlled per I/O Expander board.
need a shunt regulator to prevent their
unloaded voltage from reaching dangerous levels.
So care should be taken when using
this module with a charging source
to ensure that the open-circuit voltage does not exceed the Switch Module’s limits.
The Mosfet types can be changed to
allow operation at higher voltages, but
other parts of the circuit might have
to be modified too. For example, the
SPP15P10 type Mosfet used in the
Burp Charger for NiMH and NiCad
Batteries (March 2014; siliconchip.
com.au/Article/6730) can handle up
to 100V, and is a direct substitute for
the SUP53P06.
The other change we recommend
for higher voltage builds is increasing the value of the 10kW resistor to
reduce the quiescent current through
it and possibly ZD2.
Consider the section in parallel with
ZD2 as having a resistance of around
100kW. So for 100V switching, replacing the 10kW resistor with a 220kW
resistor will put around 30V across
ZD2, allowing the circuit to operate
correctly.
We have not specified the SPP15P10
Mosfet in our parts list because it has
a much higher drain-source resistance. So it will produce more heat at
Australia’s electronics magazine
the same current level, and we expect
most readers will be using the Switch
Module below 60V.
Handling more current
If you find that your current requirements are beyond that of the Switch
Module, you can use the Switch Module to operate the coil of a heavy-duty
relay. The current when energised will
be much higher, but this option allows
the Battery Manager to work with just
about any load.
In this case, just a single pair of
Mosfets is sufficient to operate the
relay coil (eg, Q4 and Q5). A snubbing diode across the coil is highly
recommended, to protect the Mosfets
from spikes that the coil might generate when it de-energises.
Software updates
This is a good point to upgrade the
software on the Battery Multi Logger
to give it the Battery Manager features,
if for no other reason than to get it out
of the way before we connect the I/O
Expander to the ICSP header (which
would make programming trickier).
If you have blank chips, follow the
original instructions for programming
the Battery Multi Logger, including
putting the Microbridge firmware on
the PIC16F1455. But instead of the
August 2021 73
Screen 1: the Battery
Multi Logger’s Main
screen has been updated
to add two new buttons
for the Trigger and
Balancer functions. At
bottom right, the trigger
state is shown, and
the title has also been
changed to reflect the
unit’s new capabilities.
Battery Multi Logger firmware file
(1110620A.HEX), load the newer Battery Manager (1110620B.HEX) file.
Don’t forget to set JP2 to the PROG
position before using the ICSP interface, and set it back to RUN after programming.
For an already-working Battery
Multi Logger, you can simply update
the MMBasic file. The same library
file and LCD OPTIONS are used, so
no other changes are needed. The act
of loading a program will delete any
logged data, so you should export that
first, if necessary.
The newer software has less space
for logged data due to needing more
space to store configuration variables
for the Soft Switches. Thus, the longterm data is reduced to 10 days, and
this allows two Soft Switches (controlled by four triggers) to be fitted.
These limits are set by CONST values in the program. We’ve listed some
options below regarding how these
two values can be changed and still
fit within the existing flash memory.
But generally, as long as the sum of the
number of days stored and the number of triggers is no more than 14, it
should work.
These are the D_COUNT and TRIG_
COUNT values. Due to the way they
are displayed on the page, TRIG_
COUNT should be no higher than
eight, as otherwise, the control buttons
cannot be seen.
You will need to load the ‘crunched’
(with comments and whitespace
removed) program, as it does not fit in
memory otherwise. The uncrunched
version is also available so that you
can inspect the fully-commented code
and make changes if you like.
In general, you should follow the
instructions for the Battery Multi Logger but replace the respective HEX and
MMBasic files with their Battery Manager equivalents.
Run the newly installed program to
set the AUTORUN flag. Now it should
automatically start when powered up.
We’ll go into the software detail later,
but you should see the new main page
as seen in Screen 1.
Construction options
An important first step before building the board is to determine what
parts are needed. Given the low cost of
the parts for the I/O Expander board,
we recommend that you build the full
version, which can handle four Switch
Modules.
However, you could leave off some
of the parts if you are sure that you
will only be connecting one or two
Switch Modules.
The specifics of your battery installation might also affect how you build
it. We’ve designed the Switch Module
PCB with holes to suit 8mm screws and
thus eyelets suiting up to 8G (3.25mm
diameter copper) cable, which should
be sufficient for anything that the
Switch Module can handle.
You will need to consider how many
Switch Modules you need. Most people will need one or perhaps two to
disable non-critical loads when the
battery charge state gets low.
There’s always a critical load that
can’t be disconnected, and that won’t
need a Switch Module; you’d much
rather have a flat battery than a submerged boat because the bilge pump
wasn’t running!
And assuming you have a reputable
charge controller, there will be little
need to add a Switch Module inline
with any connected solar panels.
Similarly, you might or might not
need to build and connect a Battery
Balancer. If you have a 24V, 36V or
48V system composed of 12V batteries wired in series, you can make good
use of the Battery Balancer. If the Battery Balancer and Battery Multi Logger can’t share the same ground, you
will also need to build the Mini Isolated Serial Link.
Regardless, we recommend using
the Mini Isolated Serial Link to avoid
any potential problems; it’s cheap and
easy to build, and safer to isolate the
two devices.
Building the I/O Expander
Let’s start by building the I/O
Expander and connecting it to the Battery Multi Logger; you can add switch
Modules after that. If you’re just interested in the Battery Balancer related
upgrades, you can skip most of the
construction (assuming you’ve already
built the Battery Multi Logger and Battery Balancer).
The I/O Expander is built on a double-sided PCB coded 11104212 which
measures 37.5 x 35.5mm. Fig.4 is the
PCB overlay diagram; all the components are on one side, but there are
some solder pad ‘jumpers’ on the
underside, so both sides are shown.
Since the I/O Expander will essentially become part of the Battery
Multi Logger PCB, we have used
Fig.4: assembly of the I/O Expander is straightforward – it
uses mostly SMD components, but they are easy to handle.
Fit IC1 first, ensuring its pin 1 marking is orientated as
shown. All capacitors and resistors are non-polarised and
of a single value. You don’t have to use vertical headers, as
shown here; you could use right-angle headers, sockets or
just solder wires to the pads.
74
Silicon Chip
Australia’s electronics magazine
siliconchip.com.au
surface-mounted parts. We recommend having on hand a fine-tipped soldering iron, flux paste, solder wicking
braid, a set of tweezers and a magnifier.
Flux paste releases a fair bit of smoke,
so good fume extraction or ventilation
is important too.
Start by fitting IC1, noting that its
pin 1 is closest to the mounting hole.
We found the marking on this chip
difficult to discern; there should be a
small circle on the top of the part, and
a bevel along the nearest edge. On the
chips we have, pin 1 is at lower left
when the chip markings are the right
way up (with the bevel along the bottom edge).
Put some flux on the PCB pads for
IC1, rest the chip roughly in place and
apply a bit more flux to the top of the
pins. It doesn’t hurt to be generous!
Load the tip of the iron with a bit
of solder and tack one pin in place.
Adjust the chip if necessary by melting the solder and nudging the chip
with tweezers. Once all the pins are
correctly aligned, solder them to the
PCB.
If there are any bridges between
pins, remove them with the braid. Add
flux to the bridge and press the braid
against it with the iron, carefully pulling it away when the braid has drawn
up the solder.
Solder the transistors next. They are
all the same type and are polarised,
but should only fit one way due to
their shape. Put some flux on the pads
and tack one lead in place, then solder the remaining leads. Despite their
small size, the leads are well spread
around the part, so they are quite easy
to solder.
Place the three capacitors next; they
are near the top of the PCB. Use a similar technique of soldering one lead at
a time. The remaining parts are much
easier to solder and have larger pads.
Follow with the resistors, then clean
up any excess flux with the solution
recommended by the flux manufacturer (or your favourite one).
Parts List – Battery Manager
1 assembled Battery Multi Logger module
(February-March 2021; siliconchip.com.au/Series/355), with IC1 programmed
with 1110620B.hex instead of 1110620A.hex
1 assembled Battery Balancer module (optional)
(March-April 2021; siliconchip.com.au/Series/358)
1 or more assembled I/O Expander modules (see below)
1 or more assembled Switch Modules (see below)
1 assembled Mini Isolated Serial Link (optional)
(March 2021; siliconchip.com.au/Article/14785)
various lengths of heavy-duty wire, eyelet lugs etc to suit battery and application
various lengths of medium-duty hookup wire (see text)
various jumper leads (optional; to connect I/O Expander module[s] to the Battery
Manager and Switch Module[s])
I/O Expander module parts (per module)
1 double-sided PCB coded 11104212, 38 x 36mm
1 PCF8574 I2C expander IC, SOIC-16 (IC1) [Digi-Key, Mouser]
8 IRLML2244 P-channel Mosfets (Q1-Q8) [Digi-Key, Mouser]
3 100nF X7R SMD 3216/M1206-size ceramic capacitors
8 10kW 1% SMD 3216/M1206-size resistors
1 5-way header (CON1)
1 2-way header (CON2)
1-4 3-way headers or subminiature screw terminals� (CON3-CON6)
1 untapped 12mm-long spacer, ~3.125mm inner diameter
1 M3 x 20mm panhead machine screw
Switch Module (per module)
1 double-sided PCB coded 11104211, 82 x 83mm
1 3-way pin header or subminiature screw terminal� (CON4)
16 M3 x 6mm panhead machine screws
4 M3 x 12mm tapped spacers
8 M3 nuts
8 M3 washers
� eg, Digi-Key part number ED10562
Semiconductors
2 4N25 opto-isolators, DIP-6 (OPTO1,OPTO2)
3 2N7000 N-channel small-signal Mosfets, TO-92 (Q1-Q3)
2-8 SUP53P06 P-channel high-current logic-level Mosfets, TO-220 (Q4-Q11)
1 15V zener diode (ZD1)
1 39-60V zener diode (ZD2) (optional; see text)
2 1N4148 small signal diodes (D1,D2)
Capacitors
1 100nF 100V MKT
1 1nF 100V MKT
Resistors (all 1/4W 1% axial metal film)
3 220kW
3 100kW
1 10kW
2 470W
A header can be added to the top of the Logger
PCB, as shown, to allow in-circuit programming.
This header can also provide power to a Mini
Isolated Serial Link for connection to a
Battery Balancer (singular red wire).
Attaching it to the main board
Since the I/O Expander is designed
to mount directly to the Battery Multi
Logger PCB, shut down the Logger and
disassemble it. If you have a header fitted to CON2, remove it and clean up
the pads to allow the I/O Expander to
be fitted.
Take the pairs of header pins and
sockets and plug them together. Install
siliconchip.com.au
Australia’s electronics magazine
August 2021 75
them in their respective holes between
the two PCBs, with the female headers on the Logger PCB and the male
headers on the I/O Expander PCB.
This will reduce the chance of exposed
connectors if the I/O Expander PCB is
removed.
You can then clamp the two PCBs
together temporarily with a machine
screw and nut (or tapped spacer). This
will make them easier to solder. Refer
to the photos as a guide.
Solder the headers in place, remove
the temporary screw and reassemble
the stack, including the LCD. Instead
of fitting the machine screw in the
corner where the I/O Expander sits,
use the extra spacer and the longer
machine screw to secure everything
against the tapped spacer fitted to the
back of the LCD.
Switch Module assembly
The Switch Module is built on a PCB
coded 11104211 which measures 81.5
x 82.5mm and uses all through-hole
parts. Its overlay diagram is shown
in Fig.5. Start by fitting the resistors
according to the markings on the PCB.
It’s best to check their values with a
multimeter to ensure you have the correct components.
Follow with the two zener diodes.
Neither of these are necessary for
systems that operate up to around
25V, as there are unlikely to be voltages high enough to cause damage to
Mosfets, although it’s a good idea to
fit ZD1 to protect the Mosfets. ZD2
is only needed for systems that go
over 60V.
Keep in mind what we mentioned
before about solar panels and windmills producing much higher voltages
than their nominal ratings.
Next, fit the two 1N4148 diodes near
CON4, noting their polarity.
Follow with the two adjacent
opto-isolators. Take care that their
pin 1 markings align as shown in our
photos. They both face the same way.
Now install the two capacitors. As
mentioned earlier, C3 does not need to
be fitted unless the default behaviour
needs to be changed, so it is not shown
in Fig.5.
After this, mount the three smaller
transistors, Q1-Q3. Ensure that they
align to their footprints, and push them
down as close to the PCB as possible
before soldering.
Follow with the larger transistors.
If you are not fitting all of them, fit
those closest to CON1 and CON2 in
matching pairs. For example, if you
only need four Mosfets to handle your
load current, put them in the spots
marked Q4-Q7.
For each transistor, bend its leads
back 90° around 7mm from where
they meet the body. Insert the leads
through the PCB and fix the tab in
place with the machine screw, washer
and nut. Take care not to twist the
transistors, which might bend the
leads.
Once aligned with its footprint, solder and trim the leads. The large copper pour will draw heat from your iron,
so use a higher temperature if necessary. We’ve added some thermal relief
on the PCB to help with this.
Fig.5: the Switch
Module uses all
through-hole
components and is
easy to assemble.
Watch the orientation
of OPTO1 & OPTO2
and the diodes. You
can install fewer than
eight Mosfets if your
load draws less than
20A; just make sure to
fit them in pairs (Q4 &
Q5; Q6 & Q7 etc). The
load can be connected
either via the two-way
screw terminal, or eye
lugs bolted to CON1 &
CON2.
76
Silicon Chip
Australia’s electronics magazine
Basic testing
You might like to test the I/O
Expander and Switch Module at
this point. Connect CON3 on the I/O
Expander to CON4 on the Switch Module. Connect G to COM, P0 to OFF and
P1 to ON.
Now attach a 12V power source
between CON1 and CON3 on the
Switch Module, with the negative terminal to CON3. Connect a multimeter
across the empty C3 pads; it should
read about 1/3 of the supply voltage.
Shorting the CON6 pads on the
Switch Module should cause this
to drop to 0V and stay there when
released. Similarly, shorting CON5’s
pads will cause the voltage to revert
to 1/3 supply.
Using the SOFT SWITCH page on
the Battery Manager, you can press the
green button next to TR0 and TR1 to
toggle the state via the I/O Expander.
Keep in mind that the software has
been configured with some defaults
to suit a 12V battery, and these will
be active when the Battery Manager
is first powered up.
If all this is correct, then the I/O
Expander and Switch Module are
working correctly. Your wiring from
here will depend on your application,
but consider that CON1 and CON2 are
the switch terminals.
Ideally, you should have a fuse and
separate switch to the battery circuit
feeding the Switch Module to protect
it in the event of a fault.
So take care that you don’t connect
something that can cause damage or
be affected by unplanned switching.
You might like to leave this until later,
after you have configured the Battery
Manager.
Note the holes in the corner of the
PCB, which are designed to take M3
machine screws, allowing the Soft
Switch modules to be mounted in an
enclosure. For example, you could fit
them to the interior of the same panel
as the Battery Manager.
Battery Balancer interface
You need four wires to connect the
Battery Balancer to the Battery Manager if using the Mini Isolated Serial
Link, or three if you are not. The fourth
wire is to power the isolator.
Revision E and later of the Battery
Multi Logger PCB has pads breaking
out the three connections at CON6.
For power, you will need to tap into
the 3.3V supply, and the best place
siliconchip.com.au
for this will be at the Battery Manager’s CON2 (which also connects to the
I/O Expander’s CON1).
If you have an earlier PCB, then the
only way to tap into the serial data
pins (Micromite pins 21 and 22) is to
solder directly to the pins at the IC.
It’s not easy, but it is not much harder
than soldering the SOIC parts in the
first place.
Figs.6 & 7 show the wiring required.
Fig.6 depicts how a direct connection
would be made, while Fig.7 shows the
wiring via a Mini Isolated Serial Link.
Note how in both cases, the wires
appear to go to two points on the Battery Logger PCB at left. They only
need to go to one. If CON6 is present
(on Revision E boards or later), then
use those connections. Otherwise,
use the dashed alternatives. These
go to pin 22 of the IC for RX and pin
21 for TX.
If CON6 is missing, the ground connection can be taken from pin 2 of the
LCD header or the middle pin (pin 3)
of CON2, the ICSP header.
The preferred arrangement, using
the Mini Isolated Serial Link, is shown
in Fig.7. Jumpers JP1 and JP2 on the
Isolator board are set to the 5V position, which means it takes power from
the pin adjacent to ground.
Since the Battery Balancer has
been designed to have the Mini Isolated Serial Link directly attached, it
makes sense to do this, as it matches
that configuration. Then run the four
wires back to the Battery Multi Logger PCB.
If the Mini Isolated Serial Link is
fitted upside-down to the Battery
Balancer PCB (as in Fig.7), it will not
hide the LEDs, although it will slightly
overhang the PCB edge. The photo on
page 71 shows the Link fitted to the
Balancer in this fashion.
Due to space constraints, there is no
3.3V connection on CON6, so the best
option is to take this from pin 2 of the
ICSP header. If you lack CON6, then
taking the ground connection from the
adjacent pin 3 is a good choice.
Similarly, the TX and RX signals are
taken from CON6 or the microcontroller pins directly, as shown.
While setting up these connections,
you might also like to solder a five-way
header to either CON2 of the Battery
Logger or CON1 of the I/O Expander
to regain the in-circuit programming
(ICSP) capability. All the things we
have hanging from these pins only
Fig.6: only one of each colour of wire is needed, but we’ve shown two options for each, so you can choose a suitable way
to connect the two boards. The dashed wires are only needed if you have an early revision of the PCB that lacks CON6.
While the boards are notionally at the same ground potential, it wouldn’t hurt to add series resistors, but Fig.7 shows an
even better option.
Fig.7: the preferred method of joining the Battery Multi Logger to our Battery Balancer is via a Mini Isolated Serial Link
module. The module needs to be supplied with 3.3V on each side; ensure that the jumper links on the Serial Link are set
to the 5V positions, as shown (which actually corresponds to 3.3V in this case).
siliconchip.com.au
Australia’s electronics magazine
August 2021 77
Screen 2: the SOFT
SWITCH page shows
the trigger states and
thresholds. Pressing
the buttons allows the
triggers’ operation to
be tested and triggers
to be manually reset, if
this form of operation is
preferred.
take power and ground connections,
so they should not affect programming.
But you may have to power the
board from USB instead of the programmer during ICSP programming,
as the programmer might not be able
to provide sufficient current.
Reassemble anything you have
taken apart during this construction.
Then power up the Battery Logger and
its connected peripherals.
Using it
Screen 3: each trigger
is configured on its
EDIT TRIGGER page,
including its thresholds.
The page displays the
switches it drives and
the other triggers it will
reset.
Screen 4: pressing the
SWITCHES button on
the EDIT TRIGGER
page allows the
SWITCH OUTPUTs
to be set. You can get
an idea of the unit’s
operation from the
example configuration
we have provided.
Screen 5: the RESET
TRIGGERs are set
similarly. All the
changes made to these
(and other triggerrelated) settings are
saved on exit from the
SOFT SWITCH page.
78
Silicon Chip
Australia’s electronics magazine
With everything configured, we can
explore the new screens. Screen 1 is
the updated Main screen, with two
new buttons and a display for the status of the triggers.
If your battery is above 12.5V, you
should see Trigger 1 in red. Or if your
battery is below 11V, then Trigger 0
might have tripped.
Press the Trigger button to see
Screen 2. This is an overview of the
triggers, with one displayed on each
line. Each trigger has a parameter
and threshold that it monitors; these
are displayed as in Screen 2. When a
parameter reaches its threshold, the
trigger is tripped and will show a red
TRIP button instead of a green OK
button. The trigger cannot trip again
until it is reset.
On each trip event, any combination
of switches can be activated. These
switches correspond to Soft Switch
inputs, and the software delivers a
pulse via the I/O Expander to the corresponding switches.
Each trip event can also reset any
other trigger, allowing alternate action
as two triggers track a variable between
the two hysteresis points, as demonstrated by the default settings for TR0
and TR1.
This is only one way it can be used.
Each trigger could be set to require a
manual reset or could even reset multiple triggers.
The page shown in Screen 2 lets you
manually trip and reset each trigger for
testing. Each press toggles between the
tripped and reset states.
Pressing the button (such as TR0
for Trigger 0) takes you to Screen 3,
which has more settings. The TRIP
and RESET buttons work as you would
expect. The various buttons labelled
V and I allow the threshold variable
and condition to be set.
CLEAR removes any threshold,
meaning the trigger will not activate
siliconchip.com.au
Screen 6: the
BALANCER CONTROL
page is accessed from
the MAIN screen, and
shows the current cell
voltages and Balancer
operating mode. Buttons
are provided to issue
control commands to
the Balancer, assuming
it is connected and
communicating.
automatically. The THRESHOLD+
button sets a positive value, while the
THRESHOLD- button is used to set a
negative value. This is useful for current thresholds; the Battery Manager
cannot measure negative voltages.
Finally, the SWITCHES and RESETS
buttons allow setting of the actions that
result from each trigger.
Screen 4 shows the switch controls;
these correspond to the P0-P7 outputs
on the I/O Expander, while Screen 5
shows the reset controls, which correspond to the triggers.
All parameters are saved to flash
memory when you press BACK from
the Trigger overview page seen in
Screen 2. This provides a good compromise between usability and flash
wear.
Screen 7: the
BALANCER HISTORY
page shows the recent
operation of the
Balancer, including
which cells are being
balanced and in which
direction.
Balancer menu
From the Main page, pressing the
Balancer button goes to the BALANCER CONTROL page, as seen in
Screen 6. The two columns of buttons
at left will send commands to the Battery Balancer to move charge between
specific cells and the entire stack.
The rate at which this happens is set
by the third column, with options of
25%, 50%, 75% and 100%; the currently selected value is highlighted.
Similarly, the PAUSE and RESUME
buttons send commands to the Battery
Balancer to pause or resume balancing.
The data displayed at the top of the
screen is taken from the Balancer in
real time.
The GRAPH button goes to the page
shown in SCREEN7, which shows the
relative flow in and out of each cell.
Around 100 data points are stored,
and these are updated in time with
the logging software’s 10-second cycle.
Thus around 15 minutes of balancing data is available. It is only stored
in RAM, so it is erased if power loss
occurs. The screen does not automatically refresh; you need to press the
Refresh button.
Pressing the ‘Cell V’ button changes
the graph to display the individual cell
voltages measured by the Balancer.
The chart is centred on the current bottom cell voltage, as this will always be
present. The graph spans 1V from top
to bottom, allowing cell voltage variations to be easily seen.
Battery Manager
Thus we have updated the Battery
Multi Logger to the Battery Manager.
siliconchip.com.au
Screen 8: similarly,
the CELL V HISTORY
shows the relative cell
voltages (to Cell 1). The
button at bottom left
allowing easy toggling
between these last two
pages.
We expect many people will have different requirements regarding what
they will control and how they will
connect things to the Battery Manager.
Indeed we expect many people
will be adding the Battery Manager
to an existing battery installation, perhaps in a car, caravan or boat. And it
becomes a relatively simple addition
to such a system.
In fact, there are so many features
in the improved Battery Manager that
readers may not even wish to add all of
them. But this is easy, as it is entirely
Australia’s electronics magazine
modular in construction. We wouldn’t
be surprised if some people use the I/O
Expander or Switch Module in unrelated projects.
Some people may not need the Battery Balancer add-on, especially those
with 12V batteries that don't require
balancing.
Both the I/O Expander and Switch
Module will work fine with 3.3V and
5V logic levels, so could be used on
their own (or together) with other
microcontrollers such as Arduino or
Micromite.
SC
August 2021 79
|