• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【DigiKey评估板专场】过程贴!TPS65273V 输出电压动态程控调节

本次测试使用工业级明纬 RS-15-12 提供稳定的 12V 前级直流输入,最大限度排除劣质电源适配器带来的底噪干扰。

1. 测试目的

通过 MCU (ADuCM3029) I2C 总线向 PMIC (TPS65273V) 写入寄存器配置,实现 VOUT1 与 VOUT2 输出电压的动态程控调节(预期值分别为 1.20V 与 1.80V)。体验现代高级电子设备(比如智能手机)是如何根据工作量大小,随时调整供电来省电的。

2. 软硬件运行环境

主控 MCU: ADuCM3029 评估板 (ARM Cortex-M3)

执行端 PMIC: TPS65273V 评估板 (输入 12V,双路同步 Buck)

工具链: macOS / VS Code / PlatformIO (CMake) / PyOCD 0.44.0

物理拓扑: 杜邦线飞线连接,系统共地 (GND),I2C 总线上拉电阻 10kΩ(PMIC 侧自带)。

3. 硬件连接

4. 环境搭建

确保已安装 Homebrew,同时确保网络畅通,打开终端,输入以下命令:

brew install cmake 
brew install openocd 
brew install --cask gcc-arm-embedded

注意!这里需要用

brew install --cask gcc-arm-embedded

命令安装 ARM 官方亲自打包并发布的完整工具链。不要使用 Homebrew 官方仓库里的 

arm-none-eabi-gcc 

官方仓库里不包含 newlib(嵌入式 C 标准库)具体搭建过程可参考:

5. 关键代码

int main(void) { 
    // 1. 初始化系统时钟与 I2C 外设供电 
    SystemInit(); 
    adi_pwr_Init(); 
    adi_pwr_EnableClock(ADI_CLOCK_GATE_I2C_CLK, true); 
    
    // 2. 配置 P0.4(SCL) 和 P0.5(SDA) 为 I2C 复用功能 
    pADI_GPIO0->CFG = (pADI_GPIO0->CFG & ~(0x0F00)) | (0x0500); 
    
    // 3. 启动 I2C 驱动 
    if (adi_i2c_Open(0, i2c_dev_mem, ADI_I2C_MEMORY_SIZE, &hI2C) != ADI_I2C_SUCCESS) 
    { 
     while(1); // 失败死锁 
    } 

    // 4. 配置 I2C 通信参数 (100kHz, 从机地址 0x60) 
    adi_i2c_SetBitRate(hI2C, 100000); 
    adi_i2c_SetSlaveAddress(hI2C, TPS65273V_I2C_ADDR); 
    // ========================================== 
    // 💥 电源控制逻辑执行区 
    // ========================================== 
    
    // 示例:将 VOUT1 的电压精确设置为 1.20V 
    bool vout1_ok = TPS_SetVoltage(TPS_REG_VOUT1_SEL, 1.20f); 
    
    // 示例:将 VOUT2 的电压精确设置为 1.80V 
    bool vout2_ok = TPS_SetVoltage(TPS_REG_VOUT2_SEL, 1.80f); 
    
    // 主循环 
    while(1) { 
    // 如果需要动态调压,可以在这里加入延时或按键触发逻辑 
    } 
    return 0; 
}

6. 测试结果

输出

I2C(默认输出)

符合用户手册预设值

使用 I2C(调节输出)

符合实验预期值

安全上电与验证时序

线接好后,按照这个顺序上电,能最大程度保护你的板子:

先给单片机上电:插上 Mac 的 USB,让 ADuCM3029 先运行起来(此时 I2C 会在空载状态下试图发送一次电压配置)。

再给 PMIC 上电:打开 12V 稳压电源,给 TPS65273V 供电。

触发指令:按下 ADuCM3029 板子上的 Reset(复位)按键。此时,单片机会重启,执行 main.c 里的代码,重新初始化 I2C,并向 TPS65273V 发送调压指令。

拿起万用表(黑笔接地),去测两路电感后方的电压。显示 1.20V 和 1.80V!本来还想写动态调节的,但是后面自己热插拔输入电源把 PMIC 烧了🤡,可能是因为杜邦线和滤波电容引起 LC 谐振导致的,只能等后期更换芯片后再写了!

全部回复(0)
正序查看
倒序查看
现在还没有回复呢,说说你的想法