提升您的充电体验,我们的锂离子电池充电器精心设计,不仅提供电力,还优化性能并延长设备寿命。
A
A
硬件概览
它是如何工作的?
Charger 25 Click 基于德州仪器的 BQ25792,这是一款带有双输入选择器和 USB PD3.0 OTG 输出的升降压电池充电器。此外,BQ25792 支持通过 D+ 和 D- 进行输入源检测,兼容 USB 2.0 和 USB 3.0 电源传输、非标准适配器和高压适配器。通过双输入源选择、USB OTG 支持和集成的 16 位多通道模数转换器 (ADC),BQ25792 是一个完整的充电解决方案。ADC 监控充电电流和输入/电池/系统电压、温度资格电压输入引脚和芯片温度,这些数据可用于 BQ25792 的保护和中断系统。Charger 25 Click 允许您通过 4 位 CELL SEL 跳线选择要充电的电池数量及其最佳配置,默认设置为 1s (1 电池)。通过此功能,不仅可以设置电池数量,还可以设置开关频率,具体值可在 BQ25792 数据表的表格中找到,根据 Charger 25 Click 上使用的电阻器(对于 1s,开关频率为 1.5MHz)。这进一步设置了默认的充电电流和电压,可以根据所选的电池数量在 3V 到 18.8V 范围内进行调整。充电电流也取决于电池数量,可以是 1A 或 2A。
BATT JST 连接器连接一个电池(或多个电池)。Charger 25 Click 的另一个有趣功能是可以通过适当的 2 针接头使用外部负温度系数热敏电阻 (NTC)。当温度超出范围时,充电将暂停。此功能可以通过 NTC SEL 跳线启用,默认设置为 NRM(正常)。一个 STAT LED 指示灯指示充电进行中、充电完成、Hi-Z 模式、充电暂停和其他状态。VBUS LED 指示 VBUS 轨上电压的存在,包括 USB C 和附近的 VBUS 头。通过 VBUS 头,充电器可以在广泛的输入电压范围内供电(3.6V – 24V)。充电器采用同步升降压转换器,允许从传统的 5V USB 输入源、HVDCP 和 USB-PD 电源为 1s 至 4s 电池充电。它根据输入到系统输出电压差在升压、降压或升降压模式下连续不间断地运行。当输入电压接近系统输出电压时,转换器以专有的升降压模式运行。系统的充电器输出电压可通过 VSYS 端子获得。在没有输入源的情况下,Charger 25 Click 支持 USB OTG 功能,并且可以在 USB C 连接器(以及 VBUS 端子)上生成
2.8V-22V 的可调电压,符合 USB PD 3.0 规范。BQ25792 还提供 D+/D- 握手,支持快速充电,符合 USB 2.0 和 USB 3.0 PD 标准。Charger 25 Click 使用标准的 2 线 I2C 接口与主 MCU 通信,支持高达 1MHz 的时钟频率。除了 I2C 主机控制的充电模式外,Charger 25 Click 还支持自动充电模式。这样,在上电后,充电会在所有默认设置下启用,并且可以在没有软件参与的情况下完成充电。QON 引脚可用作唤醒引脚(船 FET 启用)或系统电源重置控制。充电器通过 INT 引脚中断主 MCU,这可能是多达 18 个事件的状态。充电启用 CE 引脚可用于关闭充电器。如果连接到低电平逻辑,充电器可以自动完成充电。此 Click board™ 只能在 3.3V 逻辑电压水平下运行。使用具有不同逻辑电平的 MCU 之前,板必须进行适当的逻辑电压水平转换。此外,它配备了包含功能和示例代码的库,可作为进一步开发的参考。
功能概述
开发板
Curiosity PIC32 MZ EF 开发板是一个完全集成的 32 位开发平台,特点是高性能的 PIC32MZ EF 系列(PIC32MZ2048EFM),该系列具有 2MB Flash、512KB RAM、集成的浮点单元(FPU)、加密加速器和出色的连接选项。它包括一个集成的程序员和调试器,无需额外硬件。用户可以通过 MIKROE
mikroBUS™ Click™ 适配器板扩展功能,通过 Microchip PHY 女儿板添加以太网连接功能,使用 Microchip 扩展板添加 WiFi 连接能力,并通过 Microchip 音频女儿板添加音频输入和输出功能。这些板完全集成到 PIC32 强大的软件框架 MPLAB Harmony 中,该框架提供了一个灵活且模块化的接口
来应用开发、一套丰富的互操作软件堆栈(TCP-IP、USB)和易于使用的功能。Curiosity PIC32 MZ EF 开发板提供了扩展能力,使其成为连接性、物联网和通用应用中快速原型设计的绝佳选择。
微控制器概述
MCU卡片 / MCU

建筑
PIC32
MCU 内存 (KB)
2048
硅供应商
Microchip
引脚数
100
RAM (字节)
524288
你完善了我!
配件
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
实时跟踪您的结果
应用程序输出
1. 应用程序输出 - 在调试模式下,“应用程序输出”窗口支持实时数据监控,直接提供执行结果的可视化。请按照提供的教程正确配置环境,以确保数据正确显示。

2. UART 终端 - 使用UART Terminal通过USB to UART converter监视数据传输,实现Click board™与开发系统之间的直接通信。请根据项目需求配置波特率和其他串行设置,以确保正常运行。有关分步设置说明,请参考提供的教程。

3. Plot 输出 - Plot功能提供了一种强大的方式来可视化实时传感器数据,使趋势分析、调试和多个数据点的对比变得更加直观。要正确设置,请按照提供的教程,其中包含使用Plot功能显示Click board™读数的分步示例。在代码中使用Plot功能时,请使用以下函数:plot(insert_graph_name, variable_name);。这是一个通用格式,用户需要将“insert_graph_name”替换为实际图表名称,并将“variable_name”替换为要显示的参数。

软件支持
库描述
该库包含 Charger 25 Click 驱动程序的 API。
关键功能:
charger25_get_vbat
- Charger 25 获取电池电压功能。charger25_get_status
- Charger 25 获取充电状态功能。charger25_get_vbat_lim
- Charger 25 获取电池电压限制功能。
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* @file main.c
* @brief Charger 25 Click example
*
* # Description
* This example demonstrates the use of Charger 25 click board™
* by enabling battery charging and displaying battery voltage and charging status.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initialization of I2C module and log UART.
* After driver initialization, the app executes a default configuration.
*
* ## Application Task
* The demo application reads and displays the results of the battery voltage,
* minimal system voltage, battery voltage limit and charging status.
* Results are being sent to the UART Terminal, where you can track their changes.
*
* ## Additional Function
* - static void charger25_display_status ( void )
*
* @author Nenad Filipovic
*
*/
#include "board.h"
#include "log.h"
#include "charger25.h"
static charger25_t charger25;
static log_t logger;
static charger25_status_t status;
/**
* @brief Charger 25 displays the status.
* @details This function displays the charging status.
* @note None.
*/
static void charger25_display_status ( void );
void application_init ( void )
{
log_cfg_t log_cfg; /**< Logger config object. */
charger25_cfg_t charger25_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.
charger25_cfg_setup( &charger25_cfg );
CHARGER25_MAP_MIKROBUS( charger25_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == charger25_init( &charger25, &charger25_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( CHARGER25_ERROR == charger25_default_cfg ( &charger25 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
log_printf( &logger, " ----------------\r\n" );
Delay_ms( 100 );
}
void application_task ( void )
{
static uint16_t vtg_data = 0;
if ( CHARGER25_OK == charger25_get_status ( &charger25, &status ) )
{
charger25_display_status( );
}
Delay_ms( 100 );
if ( CHARGER25_OK == charger25_get_vbat( &charger25, &vtg_data ) )
{
log_printf( &logger, " VBAT: %u [mV]\r\n", vtg_data );
}
Delay_ms( 100 );
if ( CHARGER25_OK == charger25_get_vsys_min( &charger25, &vtg_data ) )
{
log_printf( &logger, " VMIN: %u [mV]\r\n", vtg_data );
}
Delay_ms( 100 );
if ( CHARGER25_OK == charger25_get_vbat_lim( &charger25, &vtg_data ) )
{
log_printf( &logger, " VLIM: %u [mV]\r\n", vtg_data );
}
log_printf( &logger, " ----------------\r\n" );
Delay_ms( 1000 );
}
void main ( void )
{
application_init( );
for ( ; ; )
{
application_task( );
}
}
static void charger25_display_status ( void )
{
log_printf( &logger, " Charge Status: " );
switch ( status.chg_stat )
{
case CHARGER25_CH_STAT_NOT_CHARGING:
{
log_printf( &logger, " Not Charging\r\n" );
break;
}
case CHARGER25_CH_STAT_TRICKLE_CHARGE:
{
log_printf( &logger, " Trickle Charge\r\n" );
break;
}
case CHARGER25_CH_STAT_PRE_CHARGE:
{
log_printf( &logger, " Pre-charge\r\n" );
break;
}
case CHARGER25_CH_STAT_FAST_CHARGE:
{
log_printf( &logger, " Fast charge \r\n" );
break;
}
case CHARGER25_CH_STAT_TAPER_CHARGE:
{
log_printf( &logger, " Taper Charge\r\n" );
break;
}
case CHARGER25_CH_STAT_TIMER_ACT_CHARGING:
{
log_printf( &logger, " Top-off Timer Active Charging\r\n" );
break;
}
case CHARGER25_CH_STAT_CHARGE_TERMIN_DONE:
{
log_printf( &logger, " Charge Termination Done\r\n" );
break;
}
default:
{
log_printf( &logger, " Unknown\r\n" );
break;
}
}
log_printf( &logger, " Battery Status: " );
if ( status.vbat_present_stat )
{
log_printf( &logger, " Battery present\r\n" );
}
else
{
log_printf( &logger, " No battery\r\n" );
}
log_printf( &logger, " - - - - - - - - \r\n" );
}
// ------------------------------------------------------------------------ END