单节电池充电,具备动态电源路径管理、超低静态电流以及全面的安全保护功能
A
A
硬件概览
它是如何工作的?
Charger 29 Click 基于德州仪器(Texas Instruments)的 BQ25188,这是一款高度集成的线性电池充电器,凭借其超低静态电流(quiescent current)运行特性,可显著延长电池使用寿命。该板专为低功耗、空间受限的单节电池充电和电源路径管理应用而设计。它支持 5mA 至 1A 范围内可配置的快速充电电流,适用于多种电池化学体系,包括锂离子(Li-ion)、锂聚合物(Li-Polymer)和磷酸铁锂(LiFePO4)。借助55mΩ 导通电阻的电池 FET 和先进的电源路径控制功能,该板可承载高达 3A 的系统负载,在输入电源与电池之间实现无缝切换。Charger 29 Click 可通过 VEXT 接口支持 3V 至 18V 的宽输入电压范围,从而允许“电池对电池”的充电场景,同时也支持来自 mikroBUS™ 电源轨的 5V 输入。输入电源
源的选择可通过板载 VIN SEL 跳线轻松管理。该充电器在 SYS 接口上提供一个可调稳压输出,电压范围为4.4V 至 5.5V,并支持电池电压跟踪功能。BQ25188 还集成了通过 TS 引脚进行的智能电池温度监测,支持可配置的 NTC 阈值,并完全符合 JEITA 标准,从 而确保在穿戴式和便携设备中的充电过程安全可靠。此外,板上还配备了全面的保护机制,包括输入过压保护、电池短路和过流保护、热调节与关断保护,以及电池热故障检测。其电池调节电压支持在 3.6V 至 4.65V 范围内以 10mV 步进、0.5% 精度进行精细调整。Charger 29 Click 是一款高度可适配、可靠的电源管理解决方案,非常适用于智能穿戴设备、TWS 耳机及充电盒、AR/VR 眼镜、零售自动化系统及楼宇自动化等应用。该 Click 板™ 采用了 MIKROE 新推出
的“Click Snap”创新结构设计。与标准 Click 板不同,这一设计允许通过折断 PCB 的方式将主要传感器/IC/模块区域独立分离,带来了更加灵活的应用实现方式。Snap 部分支持直接通过 1-8 标记引脚访问信 号,可实现自主运行,同时包含专用的固定螺孔位置,便于用户在期望位置安装固定。本 Click 板™ 通过最高 400kHz 的 I2C 接口与主控 MCU 通信,确保快速数据交互。除了通信引脚外,还配备了一个中断(INT)引脚,用于信号故障中断通知,以及一个 MR 按钮,可用于用户重置系统或向 MCU 发送中断信号。此 Click 板™ 可通过 VIO SEL 跳线选择 3.3V 或 5V 逻辑电平,从而兼容不同电平的 MCU 使用。此外,还配套提供了包含易于调用函数的库和示例代码,可作为进一步开发的参考。
功能概述
开发板
Nucleo-64 搭载 STM32G071RB MCU 提供了一种经济高效且灵活的平台,供开发者探索新想法并原型设计他们的项目。该板利用 STM32 微控制器的多功能性,使用户能够为他们的项目选择最佳的性能与功耗平衡。它配备了 LQFP64 封装的 STM32 微控制器,并包含了如用户 LED(同时作为 ARDUINO® 信号)、用户和复位按钮,以及 32.768kHz 晶体振荡器用于精确的计时操作等基本组件。Nucleo-64 板设计考虑到扩展性和灵活性,它特有的 ARDUINO® Uno
V3 扩展连接器和 ST morpho 扩展引脚头,提供了对 STM32 I/O 的完全访问,以实现全面的项目整合。电源供应选项灵活,支持 ST-LINK USB VBUS 或外部电源,确保在各种开发环境中的适应性。该板还配备了一个具有 USB 重枚举功能的板载 ST-LINK 调试器/编程器,简化了编程和调试过程。此外,该板设计旨在简化高级开发,它的外部 SMPS 为 Vcore 逻辑供电提供高效支持,支持 USB 设备全速或 USB SNK/UFP 全速,并内置加密功能,提升了项目的功效
和安全性。通过外部 SMPS 实验的专用连接器、 用于 ST-LINK 的 USB 连接器以及 MIPI® 调试连接器,提供了更多的硬件接口和实验可能性。开发者将通过 STM32Cube MCU Package 提供的全面免费软件库和示例得到广泛支持。这些,加上与多种集成开发环境(IDE)的兼容性,包括 IAR Embedded Workbench®、MDK-ARM 和 STM32CubeIDE,确保了流畅且高效的开发体验,使用户能够充分利用 Nucleo-64 板在他们的项目中的能力。
微控制器概述
MCU卡片 / MCU

建筑
ARM Cortex-M0
MCU 内存 (KB)
128
硅供应商
STMicroelectronics
引脚数
64
RAM (字节)
36864
你完善了我!
配件
Click Shield for Nucleo-64 配备了两个专有的 mikroBUS™ 插座,使得所有的 Click board™ 设备都可以轻松地与 STM32 Nucleo-64 开发板连接。这样,Mikroe 允许其用户从不断增长的 Click boards™ 范围中添加任何功能,如 WiFi、GSM、GPS、蓝牙、ZigBee、环境传感器、LED、语音识别、电机控制、运动传感器等。您可以使用超过 1537 个 Click boards™,这些 Click boards™ 可以堆叠和集成。STM32 Nucleo-64 开发板基于 64 引脚封装的微控制器,采用 32 位 MCU,配备 ARM Cortex M4 处理器,运行速度为 84MHz,具有 512Kb Flash 和 96KB SRAM,分为两个区域,顶部区域代表 ST-Link/V2 调试器和编程器,而底部区域是一个实际的开发板。通过 USB 连接方便地控制和供电这些板子,以便直接对 Nucleo-64 开发板进行编程和高效调试,其中还需要额外的 USB 线连接到板子上的 USB 迷你接口。大多数 STM32 微控制器引脚都连接到了板子左右边缘的 IO 引脚上,然后连接到两个现有的 mikroBUS™ 插座上。该 Click Shield 还有几个开关,用于选择 mikroBUS™ 插座上模拟信号的逻辑电平和 mikroBUS™ 插座本身的逻辑电压电平。此外,用户还可以通过现有的双向电平转换器,使用任何 Click board™,无论 Click board™ 是否在 3.3V 或 5V 逻辑电压电平下运行。一旦将 STM32 Nucleo-64 开发板与我们的 Click Shield for Nucleo-64 连接,您就可以访问数百个工作于 3.3V 或 5V 逻辑电压电平的 Click boards™。
Li-Polymer电池是需要可靠且持久电源供应的设备的理想解决方案,同时强调了便携性。其与mikromedia板的兼容性确保了易于集成,无需额外修改。电池的电压输出为3.7V,符合许多电子设备的标准要求。此外,凭借2000mAh的容量,该电池可以储存大量能量,提供长时间的持续电力,减少了频繁充电或更换的需求。总体而言,Li-Polymer电池是一种可靠且自主的电源,非常适合需要稳定且持久能源解决方案的设备。

使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
软件支持
库描述
Charger 29 Click 演示应用程序使用 NECTO Studio开发,确保与 mikroSDK 的开源库和工具兼容。该演示设计为即插即用,可与所有具有 mikroBUS™ 插座的 开发板、入门板和 mikromedia 板完全兼容,用于快速实现和测试。
示例描述
本示例演示如何使用 Charger 29 Click 板。应用程序初始化设备并定期检查充电状态。充电状态通过 UART 终端显示,反映电池当前是否处于恒流(CC)充电模式、恒压(CV)模式、已充满电或未在充电中。
关键功能:
charger29_cfg_setup- 初始化 Click 配置结构为默认初始值。charger29_init- 初始化使用此 Click 板所需的所有引脚和外设。charger29_default_cfg- 执行 Charger 29 Click 板的默认配置。charger29_enable_charging- 通过清除禁充位以启用充电功能。charger29_set_charging_current- 根据指定毫安值设置充电电流。charger29_read_status- 读取 Charger 29 Click 板的状态寄存器和标志寄存器。
应用初始化
初始化日志器和 Charger 29 Click 驱动程序,并应用默认配置。
应用任务
每秒读取并记录一次充电状态信息。
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* @file main.c
* @brief Charger 29 Click example
*
* # Description
* This example demonstrates the use of the Charger 29 Click board.
* The application initializes the device and periodically checks the charging status.
* The status is displayed over the UART terminal and reflects whether the battery is
* charging in constant current (CC) mode, constant voltage (CV) mode, fully charged,
* or not charging.
*
* The demo application is composed of two sections:
*
* ## Application Init
* Initializes the logger and the Charger 29 Click driver and applies default configuration.
*
* ## Application Task
* Periodically reads and logs the charging status once per second.
*
* @author Stefan Filipovic
*
*/
#include "board.h"
#include "log.h"
#include "charger29.h"
static charger29_t charger29;
static log_t logger;
void application_init ( void )
{
log_cfg_t log_cfg; /**< Logger config object. */
charger29_cfg_t charger29_cfg; /**< Click config object. */
/**
* Logger initialization.
* Default baud rate: 115200
* Default log level: LOG_LEVEL_DEBUG
* @note If USB_UART_RX and USB_UART_TX
* are defined as HAL_PIN_NC, you will
* need to define them manually for log to work.
* See @b LOG_MAP_USB_UART macro definition for detailed explanation.
*/
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
charger29_cfg_setup( &charger29_cfg );
CHARGER29_MAP_MIKROBUS( charger29_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == charger29_init( &charger29, &charger29_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( CHARGER29_ERROR == charger29_default_cfg ( &charger29 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}
void application_task ( void )
{
static uint8_t chg_stat = 255;
charger29_status_t status;
if ( CHARGER29_OK == charger29_read_status ( &charger29, &status ) )
{
if ( chg_stat != ( status.stat0 & CHARGER29_STAT0_CHG_STAT_MASK ) )
{
chg_stat = ( status.stat0 & CHARGER29_STAT0_CHG_STAT_MASK );
switch ( chg_stat )
{
case CHARGER29_STAT0_CHG_STAT_NOT_CHARGING:
{
log_printf ( &logger, " Not Charging while charging is enabled\r\n\n" );
break;
}
case CHARGER29_STAT0_CHG_STAT_CC_CHARGING:
{
log_printf ( &logger, " Constant Current Charging\r\n\n" );
break;
}
case CHARGER29_STAT0_CHG_STAT_CV_CHARGING:
{
log_printf ( &logger, " Constant Voltage Charging\r\n\n" );
break;
}
case CHARGER29_STAT0_CHG_STAT_CHARGE_DONE:
{
log_printf ( &logger, " Charge Done or charging is disabled\r\n\n" );
break;
}
default:
{
log_printf ( &logger, " Unknown Charging Status\r\n\n" );
break;
}
}
}
}
Delay_ms ( 1000 );
}
int main ( void )
{
/* Do not remove this line or clock might not be set correctly. */
#ifdef PREINIT_SUPPORTED
preinit();
#endif
application_init( );
for ( ; ; )
{
application_task( );
}
return 0;
}
// ------------------------------------------------------------------------ END
额外支持
资源
类别:电池充电器

































