中级
30 分钟

使用TPS65263和PIC32MZ2048EFM100升级您的电力需求,实现三重降压转换

正确降压,节省电力

3xBuck click with Curiosity PIC32 MZ EF

已发布 7月 22, 2025

点击板

3xBuck click

开发板

Curiosity PIC32 MZ EF

编译器

NECTO Studio

微控制器单元

PIC32MZ2048EFM100

提供电压控制在您的指尖,这一前沿解决方案让您的小工具发挥最佳性能。

A

A

硬件概览

它是如何工作的?

3xBuck Click基于德州仪器的TPS65263,这是一款具有可编程动态电压缩放功能的三路同步降压转换器。该IC包含三个独立的开关部分,它们以固定频率600kHz工作。一个buck部分使用与其他两个部分180˚相位差的开关时钟,这确保了低输入电流纹波,以及电源本身的较低EMI。TPS65263 IC具有I2C总线逻辑部分,允许对每个转换器的输出电压进行编程。初始时,每个部分的反馈电压分压电阻器设置输出电压。各个部分的输出电压设置为5V、3.3V和1.8V,因为这些值在嵌入式应用中最常用。一旦通过I2C接口发送了命令,TPS65263 IC的逻辑部分接管了控制,允许在每个输出中的三个之间以10mV步长编程电压,范围从0.68V到1.95V。这允许根据应用的具体需求微调所需的输出,该输出由3xBuck click供电。I2C接口还用于独立检索每个buck部分的功率好

状态、过电流和芯片温度警报。TPS65263 IC中有三个完全独立的开关部分,意味着每个部分都有专用的使能引脚、软启动引脚和环路补偿引脚。每个部分的使能引脚都连接到mikroBUS™。EN1、EN2和EN3分别连接到mikroBUS™的AN、PWM和INT引脚。这允许主机MCU控制3xBuck Click的操作。并非所有三个部分都具有相同的特性。3xBuck click标记为1V8(VOUT1)的输出在输入端口上提供12V时,可以承受高达3A的电流。其他两个输出可以提供高达2A的电流,保持输出处于1%的规定范围内。但是,应注意这是综合电流额定值,因此,如果使用多个输出,总电流消耗不应超过这些值。输入电压应在4.5V到18V之间,需要注意的是,它必须足够高以达到指定的电压和电流额定值。软启动功能使用专用SS引脚上的10nF电容器。每个通道都有专用的SS引脚,因此需要

使用三个引脚来设置每个通道的软启动。软启动功能防止开机时的高涌流,在软启动期间通过电容器逐渐增加输出电流。如前所述,该设备具有保护功能,可在诸如短路保护、过电流、过压和过热保护等事件中可靠运行。如果连接的负载吸收了过多的电流,将在高侧和低侧输出MOSFET上激活逐周期电流限制。如果高电流条件持续0.5ms后,设备将进入啜泡模式,完全关闭,然后在14ms后重新启动。整个启动序列将重复进行;如果输出上的故障条件持续存在,将重复此循环。这可以防止连接到输出的大负载引起损坏。3xBuck click的逻辑电压电平可以通过将标记为VCC SEL的SMD跳线切换到适当位置来选择。这允许与3.3V和5V MCU进行接口,扩展了该板的接口选项。

3xBuck click hardware overview image

功能概述

开发板

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 开发板提供了扩展能力,使其成为连接性、物联网和通用应用中快速原型设计的绝佳选择。

Curiosity PIC32MZ EF double side image

微控制器概述 

MCU卡片 / MCU

default

建筑

PIC32

MCU 内存 (KB)

2048

硅供应商

Microchip

引脚数

100

RAM (字节)

524288

使用的MCU引脚

mikroBUS™映射器

Channel 1 Enable
RPB4
AN
NC
NC
RST
NC
NC
CS
NC
NC
SCK
NC
NC
MISO
NC
NC
MOSI
Power Supply
3.3V
3.3V
Ground
GND
GND
Channel 2 Enable
RPE8
PWM
Channel 3 Enable
RF13
INT
NC
NC
TX
NC
NC
RX
I2C Clock
RPA14
SCL
I2C Data
RPA15
SDA
Power Supply
5V
5V
Ground
GND
GND
1

“仔细看看!”

Click board™ 原理图

3xBuck click Schematic schematic

一步一步来

项目组装

Curiosity PIC32MZ EF front image hardware assembly

从选择您的开发板和Click板™开始。以Curiosity PIC32 MZ EF作为您的开发板开始。

Curiosity PIC32MZ EF front image hardware assembly
GNSS2 Click front image hardware assembly
Prog-cut hardware assembly
GNSS2 Click complete accessories setup image hardware assembly
Board mapper by product7 hardware assembly
Necto image step 2 hardware assembly
Necto image step 3 hardware assembly
Necto image step 4 hardware assembly
Necto image step 5 hardware assembly
Necto image step 6 hardware assembly
Curiosity PIC32 MZ EF MCU Step hardware assembly
Necto No Display image step 8 hardware assembly
Necto image step 9 hardware assembly
Necto image step 10 hardware assembly
Debug Image Necto Step hardware assembly

软件支持

库描述

这个库包含了3xBuck Click驱动程序的API。

关键功能:

  • c3xbuck_enable_buck - 此函数在板上启用所需的Buck

  • c3xbuck_disable_buck - 此函数在板上禁用所需的Buck

  • c3xbuck_set_voltage - 此函数在板上设置所需的Buck的电压

开源

代码示例

完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio 应用程序代码也可以在MIKROE的GitHub账户中找到。

/*!
 * \file 
 * \brief 3xBuck Click example
 * 
 * # Description
 * This example demonstrates the use of the 3 x Buck Click Board.
 *
 * The demo application is composed of two sections :
 * 
 * ## Application Init 
 * Initializes the driver and performs the Click default configuration.
 * 
 * ## Application Task  
 * Alternates between predefined and default values for the Bucks output and 
 * logs the current set values on the USB UART.
 * 
 * @note
 * The default output voltage on Buck 1 is 1800mV, Buck 2 is 3300mV, and Buck 3 is 5000mV.
 * Configurable output voltage on all Bucks ranges from 680mV to 1950mV.
 * 
 * \author Petar Suknjaja
 *
 */
// ------------------------------------------------------------------- INCLUDES

#include "board.h"
#include "log.h"
#include "c3xbuck.h"

// ------------------------------------------------------------------ VARIABLES

static c3xbuck_t c3xbuck;
static log_t logger;

// ------------------------------------------------------ APPLICATION FUNCTIONS

void application_init ( void )
{
    log_cfg_t log_cfg;
    c3xbuck_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.

    c3xbuck_cfg_setup( &cfg );
    C3XBUCK_MAP_MIKROBUS( cfg, MIKROBUS_1 );
    c3xbuck_init( &c3xbuck, &cfg );
    Delay_ms ( 100 );
    
    c3xbuck_default_cfg ( &c3xbuck );
    log_info( &logger, "---- Application Task ----" );
}

void application_task ( void )
{
    //  Task implementation.
    log_printf( &logger, "Setting predefined values : \r\n" );
    log_printf( &logger, "Buck 1 : 1000 mV\r\n");
    log_printf( &logger, "Buck 2 : 1250 mV\r\n");
    log_printf( &logger, "Buck 3 : 1500 mV\r\n");
    
    c3xbuck_set_voltage( &c3xbuck, C3XBUCK_SELECT_BUCK_1, C3XBUCK_OUTPUT_VOLTAGE_1000mV );
    c3xbuck_set_voltage( &c3xbuck, C3XBUCK_SELECT_BUCK_2, C3XBUCK_OUTPUT_VOLTAGE_1250mV );
    c3xbuck_set_voltage( &c3xbuck, C3XBUCK_SELECT_BUCK_3, C3XBUCK_OUTPUT_VOLTAGE_1500mV );
    
    // 10 seconds delay
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
    
    log_printf( &logger, "Setting default values: \r\n");
    log_printf( &logger, "Buck 1 : 1800 mV\r\n");
    log_printf( &logger, "Buck 2 : 3300 mV\r\n");
    log_printf( &logger, "Buck 3 : 5000 mV\r\n");
    
    c3xbuck_set_voltage( &c3xbuck, C3XBUCK_SELECT_BUCK_1, C3XBUCK_BUCK_DEFAULT_OUTPUT_VOLTAGE );
    c3xbuck_set_voltage( &c3xbuck, C3XBUCK_SELECT_BUCK_2, C3XBUCK_BUCK_DEFAULT_OUTPUT_VOLTAGE );
    c3xbuck_set_voltage( &c3xbuck, C3XBUCK_SELECT_BUCK_3, C3XBUCK_BUCK_DEFAULT_OUTPUT_VOLTAGE );
    
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
    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

额外支持

资源

喜欢这个项目吗?

'购买此套件' 按钮会直接带您进入购物车,您可以在购物车中轻松添加或移除产品。