The MAXREFDES96# is an Arduino Uno R3-compatible board that provides battery charge, boost, and data-logging capabilities. The board can be operated tethered to a power supply or computer to charge a battery and operate untethered to use the battery to power the Arduino board. An SD card interface is provided to enable data logging up to 32GB of data. Status and battery state of charge (SOC) is displayed on three LEDs. An Arduino-compatible display can be added for more detailed data display.
Design files, firmware, and software can be found on the Design Resources tab tab. The board is also available for purchase.
The MAXREFDES96 includes the MAX77818 battery-management PMIC (charger only) and the MAX17201MAX17201 ModelGauge m5 fuel gauge to demonstrate Maxim’s battery-management technology. The board comes on an Arduino Uno R3 platform. The MAX77818 boost circuit can power the Arduino and MAXREFDES96# while disconnected from a power supply. Additionally, the included DS3231M RTC and a micro-SD card socket allow for data logging with timestamps. The MAX77818 automatically switches between charge mode and boost mode without host intervention to allow the board to switch from battery charging to boosted voltage; this allows the board to run in stand-alone battery-powered applications.
Figure 1. The MAXREFDES96 Block Diagram.
The MAXREFDES96# uses a variety of Maxim devices to make a charger, fuel gauge, and data-logging battery-backup system.
The MAX77818 is used for its programmable charge capability and runs up to 3A with an appropriate supply. It can be programmed to automatically switch between charge mode and boost mode based on the presence of the input power. This allows a stand-alone application that switches between charging the battery and boosting the battery voltage to power the 5V rail, allowing it to function properly without intervention from a host.
The MAX17201 is used for its ModelGauge m5 EZ fuel-gauge capability, which allows a compatible chemistry battery to be used without characterizing it, reducing development time.
The MAX7315 I2C-controlled port expander is included to reduce the number of pins used on the Arduino interface. Because the MAX7315 uses the I2C to communicate with the host, the I/O pins that the switches and LEDs would otherwise use can be used for something else. The MAX7315 controls three LEDs for display and debounces two switches for program control.
The MAX7369 I2C mux is included for two reasons. The MAX77818 is both a charger and a fuel gauge, and its fuel-gauge I2C address is identical to the MAX17201. Therefore, when the MAX17201 is being addressed, it must be isolated from the MAX77818, and the MAX7369 provides that isolation. Secondly, the DS3231M RTC is used on other shields, so the address could conflict between the MAXREFDES96# DS3231M and one used on another board. The mux allows the on-board DS3231M to be deselected if needed. The DS3231M also allows its address to be changed by pin strapping, if desired. There is one port on the mux that is uncommitted, which could be used to try out another device such as a fuel gauge that has the same address as the other fuel gauges.
Power is input through J8, a micro-USB connector that is used for power only; there is no data connection. No enumeration is done to determine the adapter capability. The MAX77818 regulates its input voltage, reducing charge current to maintain the input voltage at a programmable level. The voltage to which the software sets this is programmable. When running off the battery, the MAX77818 boosts the battery voltage to 5V to run the Arduino board.
J1 is a micro-SD card holder that can be used to store data from testing to an SD HC card having a maximum 32GB capacity. The SD HC card interfaces to the SPI port through a level shifter. The chip select is pin 10, which is common for an Arduino application. Other pins can be used, so if another card uses the SPI port, one of the chip selects may have to be moved to another pin. R56 is a 0 resistor that disconnects pin 10 from the chip select for the SD card and allows it to be wired to another pin without having to cut the board.
BT1 is a battery holder that allows a CR1225-type battery to be connected to the board to provide battery backup for the DS3231M RTC.
J7 allows a battery with a JST-PH 2 pin-mating connector to connect to the MAXREFDES96#. Next to J7 are pads (B+, B_, THM, THMGND) that can be used to connect a battery that does not have a JST-PH connector, or that has a thermistor included. If a thermistor is being added to a battery that has a JST-PH-compatible connector, the battery can plug into the JST connector and the thermistor can be connected to THM and THMGND. If using a thermistor, remove R11. If the thermistor is a value other than 10k, R34 needs to be changed to the value of the thermistor. Refer to the MAX17201 data sheet for recommended register settings for various thermistor beta values. If the JEITA battery-charging profile available in the MAX77818 is needed, this hardware setup has the temperature sensor connected to the MAX17201. The MAX77818 can be set to use an external temperature written to the temperature register, so reading from the MAX17201 and writing to the MAX77818 allow the use of the JEITA charging profile. This method is preferred because the MAX17201 has a curvature adjustment register in addition to the temperature gain and offset registers that both devices have, so the MAX17201 temperature measurement is more accurate.
SW1 and SW2 can be used for program control and are read through the MAX7315.
D1, D2, D3 LEDs can be used to display status as desired. They are written to by writing to the MAX7315, and the PWM feature allows for the LEDs to have variable intensity.
Figure 2. MAXREFDES96 Arduino GUI Download.Download the MAXREFDES96# software.
Figure 3. MAXREFDES96 Arduino Library Directory Plug the MAXREFDES96# board into the Arduino Uno R3 board as shown below:
Figure 4. MAXREFDES96 Arduino R3 041118
Figure 5. MAXREFDES96 Connected
a. Open the Arduino IDE.
b. Open the MAXREFEDS96Main program.
c. Select Tools Board Info and select the board that is plugged into the computer.
d. Select Tools Port and choose the port to which the board is connected.
e. Select Sketch Upload and the software is uploaded to the Arduino board.
a. The SOC is displayed on D2 and D3. SOC from 0% to 50% shows in D3 with five levels of intensity from dark to fully on. SOC from 60% to 100% shows with D3 lit and D2 with five levels of intensity from dim to fully on.
a. SD card absent or circuit fail: "Card failed or not installed"
b. These messages scroll away so the serial monitor must be viewed as the device starts up. The code includes a small routine that requires SW1 be pressed to continue, if it is desired, to ensure the SD card is installed.
This completes the MAXREFDES96# setup.
ModelGauge is a trademark of Maxim Integrated Products, Inc.