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.