快速、安全、可靠的充电,永不让您失望。
A
A
硬件概览
它是如何工作的?
Charger 11 Click基于Microchip的MCP73123,这是一款高度集成的磷酸铁锂(LiFePO4)电池充电管理控制器,适用于空间有限和成本敏感的应用。由于专门为LiFePO4电池设计的充电算法,MCP73123是一款高效的磷酸铁锂电池充电器,可以在最短的充电时间内实现最佳容量和安全性。除了物理尺寸小之外,较少的外部组件使该IC非常适合各种应用。MCP73123采用恒定电流和恒定电压充电算法。3.6V的出厂预设参考电压简化了设计。数字电位器MCP4161通过外部串联的1K电阻设置快速充电恒定电流。MCP73123还基于高功率或环境条件下的温度限制充电电流。这种热调节优化了充电周期时间,同时保持设备的可靠性。MCP73123的PROG引脚也用作使能引脚,在此Click板上,它与数字电位器以变
阻器配置连接,从而可以控制充电电流。Charger 11 Click上的数字电位器是MCP4161,使用SPI接口提供广泛的产品选择。WiperLock技术允许应用特定的校准设置保存在EEPROM中。这个数字电位器通过其P0A控制引脚与充电IC相连。可以通过在MCP4161上分配0到10千欧姆的值来控制电池充电。由于串联有1K电阻,MCP73123充电器的PROG引脚上电阻永远不会是0欧姆。但是,最大电阻不能超过11千欧姆。可以通过在PROG引脚上设置10K来调节快速充电以获得130 mA。要获得1000 mA,数字电位器需要降到0.1 K,加上外部电阻,使总电阻为1.1 K。通过SPI接口与该Click上的数字电位器进行通信并控制充电器。Charger 11 Click的另一个特点是电池电压监测,它使用MCP3221模拟到数字转换
器。它是一款12位分辨率的SOT12封装设备,基于先进的CMOS技术,提供单端输入。与MCP3221的通信通过I2C接口进行,该设备可在标准模式和快速模式下使用。Charger 11 Click用于电压参考使用MCP1541,它具有高精度的4.096伏输出电压,然后与电池电压进行比较以获得精确的测量。该电压参考电路结合了先进的CMOS设计和EPROM定时,提供±1%最大初始公差。在Click板右侧是带有相应标记的输入螺钉端子,可以施加推荐的6V外部电压。左侧螺钉端子保留用于磷酸铁锂电池,标记为GND和VBAT+。连接到电源时,绿色PWR LED会指示。红色LED1和绿色LED2可用于可视充电监测。这两个LED是多用途的,可用于各种用途。
功能概述
开发板
Arduino UNO 是围绕 ATmega328P 芯片构建的多功能微控制器板。它为各种项目提供了广泛的连接选项,具有 14 个数字输入/输出引脚,其中六个支持 PWM 输出,以及六个模拟输入。其核心组件包括一个 16MHz 的陶瓷谐振器、一个 USB 连接器、一个电
源插孔、一个 ICSP 头和一个复位按钮,提供了为板 子供电和编程所需的一切。UNO 可以通过 USB 连接到计算机,也可以通过 AC-to-DC 适配器或电池供电。作为第一个 USB Arduino 板,它成为 Arduino 平台的基准,"Uno" 符号化其作为系列首款产品的地
位。这个名称选择,意为意大利语中的 "一",是为了 纪念 Arduino Software(IDE)1.0 的推出。最初与 Arduino Software(IDE)版本1.0 同时推出,Uno 自此成为后续 Arduino 发布的基础模型,体现了该平台的演进。
微控制器概述
MCU卡片 / MCU

建筑
AVR
MCU 内存 (KB)
32
硅供应商
Microchip
引脚数
28
RAM (字节)
2048
你完善了我!
配件
Click Shield for Arduino UNO 具有两个专有的 mikroBUS™ 插座,使所有 Click board™ 设备能够轻松与 Arduino UNO 板进行接口连接。Arduino UNO 是一款基于 ATmega328P 的微控制器开发板,为用户提供了一种经济实惠且灵活的方式来测试新概念并构建基于 ATmega328P 微控制器的原型系统,结合了性能、功耗和功能的多种配置选择。Arduino UNO 具有 14 个数字输入/输出引脚(其中 6 个可用作 PWM 输出)、6 个模拟输入、16 MHz 陶瓷谐振器(CSTCE16M0V53-R0)、USB 接口、电源插座、ICSP 头和复位按钮。大多数 ATmega328P 微控制器的引脚都连接到开发板左右两侧的 IO 引脚,然后再连接到两个 mikroBUS™ 插座。这款 Click Shield 还配备了多个开关,可执行各种功能,例如选择 mikroBUS™ 插座上模拟信号的逻辑电平,以及选择 mikroBUS™ 插座本身的逻辑电压电平。此外,用户还可以通过现有的双向电平转换电压转换器使用任何 Click board™,无论 Click board™ 运行在 3.3V 还是 5V 逻辑电压电平。一旦将 Arduino UNO 板与 Click Shield for Arduino UNO 连接,用户即可访问数百种 Click board™,并兼容 3.3V 或 5V 逻辑电压电平的设备。
Li-Polymer电池是强调移动性的设备中提供可靠且持久电源的理想解决方案。其与mikromedia板的兼容性确保了无需额外修改即可轻松集成。该电池具有3.7V的电压输出,满足许多电子设备的标准要求。此外,2000mAh的容量能够储存大量能量,提供持续的电。Li-Polymer电池是强调移动性的设备中提供可靠且持久电源的理想解决方案。其与mikromedia板的兼容性确保了无需额外修改即可轻松集成。该电池具有3.7V的电压输出,满足许多电子设备的标准要求。此外,2000mAh的容量能够储存大量能量,提供持续的电力,减少频繁充电或更换的需求。总体而言,Li-Polymer电池是一种可靠且自主的电源,非常适合需要稳定和持久能源解决方案的设备。您可以在我们的产品中找到更多种类的Li-Polymer电池。
使用的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 11 Click驱动程序的API。
关键功能:
charger11_spi_increment_wiper
- 增加滑动变阻器位置charger11_spi_decrement_wiper
- 减少滑动变阻器位置charger11_i2c_get_volt
- 获取输出电压
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* @file main.c
* @brief Charger11 Click example
*
* # Description
* This is an example that demonstrates the use of the Charger 11 Click board.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initalizes INT ( ST ), PWM ( LG ), AN ( LR ) pins and SPI, I2C, LOG modules.
*
* ## Application Task
* Waits for user input in order to increment, decrement wiper or log report
* (Wiper position and Output voltage)
*
* Additional Functions :
* - charger11_log_wiper_position( charger11_t *ctx ) - Logs current Wiper position.
* - charger11_case_plus( charger11_t *ctx ) - Increments Wiper position.
* - charger11_case_minus( charger11_t *ctx ) - Decrements Wiper position.
* - charger11_case_report( charger11_t *ctx ) - Logs current Wiper position and Output voltage.
*
* @author Stefan Ilic
*
*/
#include "board.h"
#include "log.h"
#include "charger11.h"
static charger11_t charger11;
static log_t logger;
/**
* @brief Charger 11 log wiper position.
* @details This function reads wiper position and logs it on UART terminal.
*/
void charger11_log_wiper_position( charger11_t *ctx );
/**
* @brief Charger 11 increase wiper position.
* @details This function increases wiper position and logs it on UART terminal.
*/
void charger11_case_plus( charger11_t *ctx );
/**
* @brief Charger 11 decrease wiper position.
* @details This function decreases wiper position and logs it on UART terminal.
*/
void charger11_case_minus( charger11_t *ctx );
/**
* @brief Charger 11 log wiper position and voltage.
* @details This function reads wiper position and voltage and logs them on UART terminal.
*/
void charger11_case_report( charger11_t *ctx );
void application_init ( void ) {
log_cfg_t log_cfg; /**< Logger config object. */
charger11_cfg_t charger11_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.
charger11_cfg_setup( &charger11_cfg );
CHARGER11_MAP_MIKROBUS( charger11_cfg, MIKROBUS_1 );
err_t init_flag = charger11_init( &charger11, &charger11_cfg );
if ( ( I2C_MASTER_ERROR == init_flag ) || ( SPI_MASTER_ERROR == init_flag ) ) {
log_error( &logger, " Application Init Error. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
log_info( &logger, " Application Task " );
charger11_case_report( &charger11 );
}
void application_task ( void ) {
char uart_char;
if ( log_read( &logger, &uart_char, 1 ) ) {
switch (uart_char) {
case '+' : {
charger11_case_plus( &charger11 );
break;
}
case '-' : {
charger11_case_minus( &charger11 );
break;
}
case 'r' : {
charger11_case_report( &charger11 );
break;
}
default : {
log_printf( &logger, "> Invalid command \r\n" );
break;
}
}
}
}
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;
}
void charger11_log_wiper_position( charger11_t *ctx ) {
float wiper_position;
uint8_t aux_wiper_position;
aux_wiper_position = charger11_spi_get_wiper_position( ctx );
wiper_position = ( float ) aux_wiper_position / 255.0;
wiper_position *= 100.0;
log_printf( &logger, "> Wiper position : %.2f %%\r\n", wiper_position );
}
void charger11_case_plus( charger11_t *ctx ) {
log_printf( &logger, "> Wiper incremented\r\n" );
charger11_spi_increment_wiper( ctx );
charger11_log_wiper_position( ctx );
}
void charger11_case_minus( charger11_t *ctx ) {
log_printf( &logger, "> Wiper decremented\r\n" );
charger11_spi_decrement_wiper( ctx );
charger11_log_wiper_position( ctx );
}
void charger11_case_report( charger11_t *ctx ) {
float volt_data;
charger11_log_wiper_position( ctx );
volt_data = charger11_i2c_get_volt( ctx, 4096.0 );
log_printf( &logger, "> Output voltage : %d mV\r\n", ( uint16_t ) volt_data );
}
// ------------------------------------------------------------------------ END
额外支持
资源
类别:电池充电器