我们的转换器旨在在降低输入电压的同时高效地保持稳定性能,为您的设备提供最佳电源管理。
A
A
硬件概览
它是如何工作的?
Buck 5 Click 配备了 Analog Devices 的 MAX17506,这是一款高效的带有内部补偿的同步降压 DC/DC 转换器。得益于内部反馈环路补偿,该先进的降压转换器 IC 仅需要最少量的外部组件。它采用峰值电流模式控制架构。当高侧 MOSFET 打开且电感器电流上升时,过流事件将导致 MOSFET 关闭,防止电流变得过高。如果输出端发生短路情况,设备将在超时后重新尝试启动,如果输出端仍存在这种情况,它将再次关闭一个超时时间。Analog Devices 制造的 MAX5401 是一款带有 SPI 接口的 256 步数字电位器,用于反馈环路,通过 SPI 接口调整输出电压。它取代了 MAX17506 参考设计中的固定电压分压器,从而以编程方式调节输出电压。因此,通过 SPI 接口向 MAX5401 发送数字值可以控制输出电压水平,范围从 0.9V 到 5.5V。在正常操作(PWM 模式)下,高侧和低侧 MOSFET 与内部 PWM 生成器的信号同步切换,导致电感器电流上下波动,从而调
节输出电压。PWM 信号的较低脉宽(占空比)导致输出电压较低。低侧 MOSFET 放置在 IC 外部,减少了 DC/DC 转换器 IC 的功耗。除了 PWM 模式,设备还可以在 PFM 模式(脉冲频率调制)下工作。此模式允许在轻负载下获得更高的效率,因为低侧 MOSFET 完全不使用。高侧 MOSFET 为电感器充电,让负载放电。在此期间,IC 处于休眠状态。此模式导致输出端有轻微的波动,但对于轻负载具有高效率的优点,非常适合为低功耗模式(睡眠、待机等)中的设备供电。DCM 模式是 PWM 和 PFM 模式之间的折中模式。对于轻负载,低侧 MOSFET 仍未使用,但 PWM 脉冲不会被跳过,IC 会不断驱动高侧 MOSFET。此模式在输出端产生波动,但对于轻负载效率略低于 PFM 模式。MODE/SYNC 引脚选择不同的模式。IC 默认通过上拉电阻设置为 DCM 模式。IC 的 MODE/SYNC 引脚连接到 mikroBUS™ 的 PWM 引脚(标记为 SYN),允许 MCU 控
制模式。当此引脚设置为低电平时,设置为恒定频率 PWM 模式。同一引脚(MODE/SYNC)在需要时可以同步转换器 IC 的开关频率(fs)。39K 电阻将此频率确定为约 480 kHz。然而,频率可以与 1.1 x fs 到 1.4 x fs 的外部源同步。IC 的 #RESET 引脚连接到 mikroBUS™ 的 RST 引脚。当输出电压下降到标称值的 92% 以下或在热关断期间,此引脚被驱动到低电平。当未断言时,它是一个开漏输出,通常被拉到高电平。要启用降压转换器 IC,需要在 IC 的 EN 引脚(连接到 mikroBUS™ 的 AN 引脚,标记为 EN)上存在高电平。这允许 MCU 有效地控制 Click board™ 的电源开启功能。当 IC 启用时,标记为 EN 的 LED 指示灯表示 IC 已激活且降压转换正在进行。软启动电路通过将输出电压从 0V 缓慢上升到标称值来防止高涌入电流。
功能概述
开发板
EasyPIC v8 是一款专为快速开发嵌入式应用的需求而特别设计的开发板。它支持许多高引脚计数的8位PIC微控制器,来自Microchip,无论它们的引脚数量如何,并且具有一系列独特功能,例如首次集成的调试器/程序员。开发板布局合理,设计周到,使得最终用户可以在一个地方找到所有必要的元素,如开关、按钮、指示灯、连接器等。得益于创新的制造技术,EasyPIC v8 提供了流畅而沉浸式的工作体验,允许在任何情况下、任何地方、任何时候都能访问。
EasyPIC v8 开发板的每个部分都包含了使同一板块运行最高效的必要组件。除了先进的集成CODEGRIP程 序/调试模块,该模块提供许多有价值的编程/调试选项和与Mikroe软件环境的无缝集成外,该板还包括一个干净且调节过的开发板电源供应模块。它可以使用广泛的外部电源,包括电池、外部12V电源供应和通过USB Type-C(USB-C)连接器的电源。通信选项如USB-UART、USB DEVICE和CAN也包括在内,包括 广受好评的mikroBUS™标准、两种显示选项(图形和
基于字符的LCD)和几种不同的DIP插座。这些插座覆盖了从最小的只有八个至四十个引脚的8位PIC MCU的广泛范围。EasyPIC v8 是Mikroe快速开发生态系统的一个组成部分。它由Mikroe软件工具原生支持,得益于大量不同的Click板™(超过一千块板),其数量每天都在增长,它涵盖了原型制作和开发的许多方面。
微控制器概述
MCU卡片 / MCU

建筑
PIC
MCU 内存 (KB)
96
硅供应商
Microchip
引脚数
40
RAM (字节)
3328
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
软件支持
库描述
该库包含用于 Buck 5 Click 驱动程序的 API。
关键功能:
buck5_power_on- 唤醒芯片的功能buck5_reset- 重置芯片的功能buck5_set_output_voltage- 设置输出电压的功能,最大输出电压为 5.5V(设置值为 255),最小输出电压为 1V(设置值为 0)
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* \file
* \brief Buck5 Click example
*
* # Description
* Buck 5 Click is a high-efficiency buck DC/DC converter, which can provide digitally
* adjusted step-down voltage on its output while delivering a considerable amount of current.
* Buck 5 Click accepts a wide voltage range on its input - from 5V to 30V. The output voltage
* may be adjusted via the SPI interface, in the range from 0.9V to approximately 5.5V.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initializes driver init, and enables the Click board.
*
* ## Application Task
* Increases the output voltage by 500mV every 3 seconds from MIN to MAX VOUT.
*
* \author MikroE Team
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "buck5.h"
// ------------------------------------------------------------------ VARIABLES
static buck5_t buck5;
static log_t logger;
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( void )
{
log_cfg_t log_cfg;
buck5_cfg_t cfg;
/**
* 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.
buck5_cfg_setup( &cfg );
BUCK5_MAP_MIKROBUS( cfg, MIKROBUS_1 );
buck5_init( &buck5, &cfg );
buck5_power_on( &buck5 );
buck5_reset( &buck5 );
}
void application_task ( void )
{
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_MIN );
log_printf( &logger, "VOUT: MIN\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_1000mV );
log_printf( &logger, "VOUT: ~1V\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_1500mV );
log_printf( &logger, "VOUT: ~1.5V\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_2000mV );
log_printf( &logger, "VOUT: ~2V\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_2500mV );
log_printf( &logger, "VOUT: ~2.5V\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_3000mV );
log_printf( &logger, "VOUT: ~3V\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_3500mV );
log_printf( &logger, "VOUT: ~3.5V\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_4000mV );
log_printf( &logger, "VOUT: ~4V\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_4500mV );
log_printf( &logger, "VOUT: ~4.5V\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_5000mV );
log_printf( &logger, "VOUT: ~5V\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
buck5_set_output_voltage( &buck5, BUCK5_VOLTAGE_MAX );
log_printf( &logger, "VOUT: MAX\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
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

































