Charger 9 Click Board
Charger 9 Click Board
Overview
The Charger 9 Click Board™ is a Li-Ion (Li+, Li-Po) battery charger, capable of charging one, two or three battery cells. It is based on the MAX1757, an integrated Li+ battery charger with many features that allow safe and reliable charging. This IC has an internal switching-mode regulation with input current limiting, allowing it to use an external power supply from a cheap wall adapter, rated up to 14V.
An extensive state machine of the MAX1757 IC with two additional timers regulates the charging process, ensuring a safe and reliable battery charging process. In the case of an error, the charging process is stopped, and the fault is reported both over the LED and over the mikroBUS™ pin.
Charging of the Li+ battery cell is a demanding task that requires a very accurate current and voltage monitoring and limiting. In addition, it also requires specific charging conditions, depending on the battery level (constant current mode, constant voltage mode). Li+ batteries contain flammable chemical compounds and can easily be ignited. The MAX1757 IC closely monitors the battery voltage and current during the charging process, ensuring safe and reliable operation. The Charger 9 Click Board™ is a perfect solution for the development of multiple Li+ battery cell charging applications, offering a set of connectors, pins, and LED indicators, allowing fast and easy prototyping.
How Does The Charger 9 Click Board™ Work?
The Charger 9 Click Board™ is equipped with the MAX1757, a stand-alone, switch-mode Li+ battery charger, from Maxim Integrated. It can be used to charge one to three lithium-ion (Li+, Li-Po) batteries with up to 1.5A. The number of batteries can be selected by a set of onboard jumpers. The battery regulation voltage (VBATTR) is set to 4.2V per cell on this Click Board™. High accuracy of the integrated voltage limiter ensures reliable charging and prevents over-charging of the connected cell. The charging process is closely monitored and regulated by the extensive state machine with the addition of two timers, protecting the system if damaged battery cells are connected.
Tyhe Charger 9 Click Board™ requires an external power supply for its operation. To prevent an undervoltage lockout, the input voltage of the external power supply (VIN) should be at least 100mV larger than the voltage at the BT outputs (BAT pin of the MAX1757 IC). This prevents discharging of the batteries if the power source voltage drops too low. The maximum allowed voltage at the VIN terminal of the Charger 9 Click Board™ is 14V, while the input current limit is set to 2A.
As already mentioned, the MAX1757 uses an extensive state machine, which is explained in great details within the datasheet. However, the following is a brief summary of the description:
The battery voltage (VBATT) is monitored by the state machine. After the IC reset (power-up, etc.), the MAX1757 IC (charger) enters the so-called Prequalification mode. Based on the battery voltage level, as well as the voltage of the input power supply (VIN > VBATT), the state machine decides to start the charging process. If the battery cell is deeply discharged, the charger tries to restore it by using 1/10 of the full charging current.
Once the battery level is restored above the battery undervoltage level, and when all the other prerequisites are met, the charger starts the fast charging process, by switching to the Constant Current (CC) mode (limited to 1.5A on this Click Board™). This mode is indicated by a yellow LED indicator labelled as FAST, as well as the LOW logic level at the CHG pin of the Click Board™.
When the battery charge level reaches 85% approx. (when the VBATT reaches the VBATTR, set to 4.2V on this Click Board™) the charger switches to the Constant Voltage (CV) mode. This is indicated by a blue LED indicator labelled as FULL, as well as the LOW logic level at the FUL pin of the Click Board™. The charging current now starts to drop.
When the battery charge reaches 95% approx. (charging current falls below 330mA) the charger enters the Top-Off mode, turning off all the LED indicators (CHG and FUL pins are at the HIGH logic level). The charger is still operated in the CV mode.
After a timer expires, the charging process is done, and all the charging operations are stopped until the battery voltage drops under the recharge voltage threshold (VBATT = 95% of the VBATTR). When this happens, the IC gets reset and the state machine cycle is repeated.
Each charging phase has a time-out period: if the time-out period is exceeded, an error will be indicated by a red LED labelled as FAULT, as well as the LOW logic level at the FLT pin of the Click Board™. An ongoing charging operation will be terminated to prevent any damage.
HOW TO PROPERLY SET THE NUMBER OF BATTERY CELLS ?
The number of battery cells can be set by moving the SMD jumper labelled as CELL NUMBER to an appropriate position (1 or 3). To select two cells, the SMD jumper should be unpopulated. The number of physically connected cell batteries must correspond to the number of cells set by the CELL NUMBER jumper.
The CELL NUMBER jumper must be used in conjunction with two additional SMD jumpers, labelled as JP2 and JP3. These two jumpers are used to override unused connectors in the case when the number of battery cells is less than 3. If an unused connector is not overridden by a jumper, the GND path will be cut off from the connected battery (the battery cells are connected in series). By default, the number of battery cells is set to 3, so JP2 and JP3 should remain unpopulated. Charger 9 Click Board™ offers XH type connectors as well as 2-pole terminal screw connectors, allowing to connect various types of Li+ batteries.
SPECIFICATIONS
Type | Battery charger |
Applications | The Charger 9 Click Board™ is a perfect solution for the development of multiple Li+ battery cell charging applications, offering a set of connectors, pins, and LED indicators, allowing fast and easy prototyping. |
On-board modules | MAX1757, a stand-alone, switch-mode Li+ battery charger, from Maxim Integrated |
Key Features | Designed for a safe and efficient charging of up to 3 Li-Po / Li-ion battery cells (selectable), an extensive state machine for reliable charging process, two types of battery connectors, charging state indicators over LEDs and mikroBUS pins, etc. |
Interface | GPIO |
Compatibility | mikroBUS |
Click Board™ size | M (42.9 x 25.4 mm) |
Input Voltage | 3.3V |
PINOUT DIAGRAM
This table shows how the pinout on Charger 9 Click Board™ corresponds to the pinout on the mikroBUS socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
Fault Indicator | FLT | 1 | AN | PWM | 16 | CHG | Fast charge state indicator |
Charger IC Shutdown | SHD | 2 | RST | INT | 15 | FUL | Full charge state indicator |
NC | 3 | CS | RX | 14 | NC | ||
NC | 4 | SCK | TX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | NC | ||
NC | 6 | MOSI | SDA | 11 | NC | ||
Power Supply | 3.3V | 7 | 3.3V | 5V | 10 | NC | |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
ONBOARD SETTINGS AND INDICATORS
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | - | Power LED Indicator |
LD2 | FAULT | - | Charger FAULT LED indicator |
LD3 | FULL | - | Charger FULL status LED indicator |
LD4 | FAST | - | Charger FAST status LED indicator |
BT1 - BT3 | BT1 - BT3 | - | Li-Ion battery cell connection terminals |
J1 - J3 | BT1 - BT3 | - | Li-Ion battery cell XH connectors |
JP1 | CELL NUMBER | Left | Number of battery cells: left position for 3 battery cells, right position for 1 battery cell, unpopulated for 2 battery cells |
JP2 - JP3 | JP2 - JP3 | Unpopulated | Override jumpers: unpopulated for a used battery cell connector, populated for an unused battery connector |
Charger 9 Click Board™ ELECTRICAL SPECIFICATIONS
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Input Voltage (at VIN terminal) | 6 | - | 14 | V |
Battery voltage regulation (per cell) | 4.167 | 4.2 | 4.233 | V |
Full-scale charging current | 1.35 | 1.5 | 1.65 | A |
Software Support
Software Support
We provide a library for the Charger 9 Click Board™ on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
This library allows user to perform a control of the Charger 9 Click Board™. Also user can check the indication status from the charger to get charging state. Fault condition also can be checked. For more details check documentation.
Key Functions
void charger9_gpioDriverInit(T_CHARGER9_P gpioObj)
- Convert ADC value to Pressure data in mBar.T_CHARGER9_RETVAL charger9_enable( T_CHARGER9_STATE pwr_state )
- Convert ADC value to Voltage in mV.T_CHARGER9_RETVAL charger9_faultInd( void )
- Sets max output voltage on the AN pin.
Example Description
The application is composed of three sections :
- System Initialization - Initializes peripherals and pins.
- Application Initialization - Initializes GPIO driver and turns OFF the charger as initial state.
- Application Task - (code snippet) - Checks which command was sent by user and performs the selected command. Also checks the fault condition, and when fault condition is detected sends a report message to the uart terminal and turns OFF the charger. Note: When user sends a desired command to the charger, a report message will be sent to the uart terminal as indication to the user. The possible commands, for Charger 9 control, will be written to the uart terminal. The alarm sound will be generated on the determined commands: enable, disable and fault condition detecting.
void applicationTask() { rx_dat = UART_Rdy_Ptr(); if (rx_dat != 0) { rx_dat = UART_Rd_Ptr(); switch (rx_dat) { case 'e' : { if (en_flag == _CHARGER9_DISABLE) { charger9_enable( _CHARGER9_ENABLE ); en_flag = _CHARGER9_ENABLE; mikrobus_logWrite( "** Charger 9 is enabled **", _LOG_LINE ); alarmOn(); } else { mikrobus_logWrite( "** Charger 9 is already enabled **", _LOG_LINE ); } break; } case 'd' : { if (en_flag == _CHARGER9_ENABLE) { charger9_enable( _CHARGER9_DISABLE ); en_flag = _CHARGER9_DISABLE; mikrobus_logWrite( "** Charger 9 is disabled **", _LOG_LINE ); alarmOff(); } else { mikrobus_logWrite( "** Charger 9 is already disabled **", _LOG_LINE ); } break; } case 's' : { charge_state = charger9_fullChargeInd(); if (charge_state == _CHARGER9_IND_ACTIVE) { mikrobus_logWrite( "** Full-Charge state **", _LOG_LINE ); } charge_state = charger9_fastChargeInd(); if (charge_state == _CHARGER9_IND_ACTIVE) { mikrobus_logWrite( "** Fast-Charge state **", _LOG_LINE ); } break; } case 'l' : { writeLegend(); break; } default : { mikrobus_logWrite( "** Invalid command **", _LOG_LINE ); writeLegend(); break; } } } charge_state = charger9_faultInd(); if (charge_state == _CHARGER9_IND_ACTIVE) { charger9_enable( _CHARGER9_DISABLE ); en_flag = _CHARGER9_DISABLE; mikrobus_logWrite( "** Fault condition! **", _LOG_LINE ); mikrobus_logWrite( "** Charger 9 is disabled **", _LOG_LINE ); alarmFault(); } } Additional Functions :
- alarmOn - Generates an alarm sound for charger power ON.
- alarmOff - Generates an alarm sound for charger power OFF.
- alarmFault - Generates an alarm sound for fault condition.
- writeLegend - Writes possible valid commands to the uart terminal.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- Sound
- UART
Additional Notes and Information
Depending on the development board you are using, you may need a USB UART Click Board™, USB UART 2 Click Board™ or RS232 Click Board™ to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
MIKROSDK
The Charger 9 Click Board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click Board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
Software Support
Software Support
We provide a library for the Charger 9 Click Board™ on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
This library allows user to perform a control of the Charger 9 Click Board™. Also user can check the indication status from the charger to get charging state. Fault condition also can be checked. For more details check documentation.
Key Functions
void charger9_gpioDriverInit(T_CHARGER9_P gpioObj)
- Convert ADC value to Pressure data in mBar.T_CHARGER9_RETVAL charger9_enable( T_CHARGER9_STATE pwr_state )
- Convert ADC value to Voltage in mV.T_CHARGER9_RETVAL charger9_faultInd( void )
- Sets max output voltage on the AN pin.
Example Description
The application is composed of three sections :
- System Initialization - Initializes peripherals and pins.
- Application Initialization - Initializes GPIO driver and turns OFF the charger as initial state.
- Application Task - (code snippet) - Checks which command was sent by user and performs the selected command. Also checks the fault condition, and when fault condition is detected sends a report message to the uart terminal and turns OFF the charger. Note: When user sends a desired command to the charger, a report message will be sent to the uart terminal as indication to the user. The possible commands, for Charger 9 control, will be written to the uart terminal. The alarm sound will be generated on the determined commands: enable, disable and fault condition detecting.
void applicationTask() { rx_dat = UART_Rdy_Ptr(); if (rx_dat != 0) { rx_dat = UART_Rd_Ptr(); switch (rx_dat) { case 'e' : { if (en_flag == _CHARGER9_DISABLE) { charger9_enable( _CHARGER9_ENABLE ); en_flag = _CHARGER9_ENABLE; mikrobus_logWrite( "** Charger 9 is enabled **", _LOG_LINE ); alarmOn(); } else { mikrobus_logWrite( "** Charger 9 is already enabled **", _LOG_LINE ); } break; } case 'd' : { if (en_flag == _CHARGER9_ENABLE) { charger9_enable( _CHARGER9_DISABLE ); en_flag = _CHARGER9_DISABLE; mikrobus_logWrite( "** Charger 9 is disabled **", _LOG_LINE ); alarmOff(); } else { mikrobus_logWrite( "** Charger 9 is already disabled **", _LOG_LINE ); } break; } case 's' : { charge_state = charger9_fullChargeInd(); if (charge_state == _CHARGER9_IND_ACTIVE) { mikrobus_logWrite( "** Full-Charge state **", _LOG_LINE ); } charge_state = charger9_fastChargeInd(); if (charge_state == _CHARGER9_IND_ACTIVE) { mikrobus_logWrite( "** Fast-Charge state **", _LOG_LINE ); } break; } case 'l' : { writeLegend(); break; } default : { mikrobus_logWrite( "** Invalid command **", _LOG_LINE ); writeLegend(); break; } } } charge_state = charger9_faultInd(); if (charge_state == _CHARGER9_IND_ACTIVE) { charger9_enable( _CHARGER9_DISABLE ); en_flag = _CHARGER9_DISABLE; mikrobus_logWrite( "** Fault condition! **", _LOG_LINE ); mikrobus_logWrite( "** Charger 9 is disabled **", _LOG_LINE ); alarmFault(); } } Additional Functions :
- alarmOn - Generates an alarm sound for charger power ON.
- alarmOff - Generates an alarm sound for charger power OFF.
- alarmFault - Generates an alarm sound for fault condition.
- writeLegend - Writes possible valid commands to the uart terminal.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- Sound
- UART
Additional Notes and Information
Depending on the development board you are using, you may need a USB UART Click Board™, USB UART 2 Click Board™ or RS232 Click Board™ to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
MIKROSDK
The Charger 9 Click Board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click Board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.