3. ToF模组电源树设计

ToF模组电源树设计 学习卡片

任务说明

本案例为ToF模组设计多级电源树,核心目标是为激光驱动电路(VCSEL)和数字核心(SPAD、计时电路、接口逻辑)提供稳定、低噪声的供电轨。需要完成从输入电源到各负载端的完整电源分配与去耦设计,并给出可验证的电源树结构。

电源树架构设计

ToF模组典型供电需求分为三组:激光驱动轨(VCSEL_DRV,2.5V/1A峰值)、数字核心轨(VDD_CORE,1.2V/300mA)、IO与模拟轨(VDD_IO,1.8V/150mA)。输入采用单路5V系统电源,通过两级转换实现:第一级由5V降压至3.3V中间总线,第二级分别由3.3V产生各负载轨。激光驱动轨因峰值电流大且对纹波敏感,需独立LDO供电并靠近负载放置去耦电容;数字核心轨使用高效率DC-DC转换器以降低功耗。

VIN 5V 系统电源 DC-DC Buck 5V → 3.3V 3.3V总线 22µF + 100nF LDO1 3.3V→2.5V DC-DC2 3.3V→1.2V LDO3 3.3V→1.8V VCSEL驱动 2.5V / 1A峰值 数字核心 1.2V / 300mA IO/模拟 1.8V / 150mA 去耦: 4.7µF+100nF 去耦: 10µF+1µF 去耦: 2.2µF+100nF

关键设计参数与器件选型

电源轨电压/电流转换方案关键选型要求
VIN5V / 2A系统输入输入电容 10µF + 0.1µF,反接保护
VDD_3V33.3V / 1.5ADC-DC Buck开关频率≥2MHz,效率≥90%
VCSEL_DRV2.5V / 1A峰值LDO1低噪声LDO,PSRR≥60dB@100kHz,压差<500mV
VDD_CORE1.2V / 300mADC-DC2小尺寸电感2.2µH,纹波<10mVpp
VDD_IO1.8V / 150mALDO3低静态电流,PSRR≥50dB

PCB布局与去耦实现

电源树布局遵循“星形接地、负载端去耦”原则。激光驱动轨因瞬态电流大,其LDO输出端需放置4.7µF X7R陶瓷电容与100nF高频电容,且必须靠近VCSEL驱动芯片电源引脚(距离<3mm)。数字核心轨的DC-DC转换器电感下方禁止铺铜,反馈电阻走线采用开尔文连接至输出电容远端。各电源轨的过孔数量按电流密度计算:1A轨至少4个过孔(0.3mm孔径),300mA轨至少2个过孔。

// 电源树配置结构体
typedef struct {
    float vcsel_voltage;      // 激光器供电电压 (V)
    float vcsel_current_max;  // 激光器最大峰值电流 (A)
    float core_voltage;       // 数字核心电压 (V)
    float io_voltage;         // IO电压 (V)
    float avdd_voltage;       // 模拟供电电压 (V)
    float dvdd_voltage;       // 数字供电电压 (V)
    uint8_t enable_sequence;  // 上电时序位掩码
} tof_power_tree_t;

// 电源树初始化配置
static const tof_power_tree_t power_tree_cfg = {
    .vcsel_voltage = 2.8f,      // VCSEL激光器供电
    .vcsel_current_max = 3.0f,  // 3A峰值电流
    .core_voltage = 1.2f,       // 数字核心
    .io_voltage = 1.8f,         // IO电平
    .avdd_voltage = 3.3f,       // 模拟前端
    .dvdd_voltage = 1.8f,       // 数字逻辑
    .enable_sequence = 0x3F     // 全部使能
};

// 电源树状态监控
typedef struct {
    uint8_t vcsel_ok;
    uint8_t core_ok;
    uint8_t avdd_ok;
    uint8_t dvdd_ok;
    uint8_t overcurrent_flag;
} power_status_t;

// 电源树初始化函数
void power_tree_init(void) {
    // 1. 使能输入电源 (5V主供电)
    gpio_write(EN_5V, 1);
    delay_ms(10);
    
    // 2. 使能模拟电源 (AVDD 3.3V)
    gpio_write(EN_AVDD, 1);
    delay_ms(5);
    
    // 3. 使能数字IO电源 (DVDD 1.8V)
    gpio_write(EN_DVDD, 1);
    delay_ms(5);
    
    // 4. 使能核心电压 (VDD_CORE 1.2V)
    gpio_write(EN_CORE, 1);
    delay_ms(5);
    
    // 5. 最后使能VCSEL驱动电源 (高电流路径)
    gpio_write(EN_VCSEL, 1);
    delay_ms(2);
}

// 电源树电压监测
uint8_t check_power_rails(void) {
    power_status_t status;
    
    // ADC读取各电源轨电压
    status.vcsel_ok = (adc_read(ADC_VCSEL) > 2.7f) ? 1 : 0;
    status.core_ok = (adc_read(ADC_CORE) > 1.1f) ? 1 : 0;
    status.avdd_ok = (adc_read(ADC_AVDD) > 3.2f) ? 1 : 0;
    status.dvdd_ok = (adc_read(ADC_DVDD) > 1.7f) ? 1 : 0;
    
    // 检查过流标志 (硬件比较器输出)
    status.overcurrent_flag = gpio_read(OC_FLAG);
    
    return (status.vcsel_ok && status.core_ok && 
            status.avdd_ok && status.dvdd_ok && 
            !status.overcurrent_flag);
}

// 激光发射前电源稳定等待
void wait_power_stable(void) {
    uint32_t timeout = 1000;
    while (!check_power_rails() && timeout--) {
        delay_ms(1);
    }
    if (timeout == 0) {
        // 电源异常处理
        power_tree_shutdown();
    }
}

// 电源树关闭 (逆序)
void power_tree_shutdown(void) {
    gpio_write(EN_VCSEL, 0);
    delay_ms(2);
    gpio_write(EN_CORE, 0);
    delay_ms(2);
    gpio_write(EN_DVDD, 0);
    delay_ms(2);
    gpio_write(EN_AVDD, 0);
    delay_ms(2);
    gpio_write(EN_5V, 0);
}

验证方法与判定标准

静态验证:使用万用表测量各电源轨空载电压,误差应在标称值±3%以内。使用电子负载分别加载100%、50%负载,观察电压跌落不超过50mV。

动态验证:用示波器(带宽≥200MHz,探头使用接地弹簧)测量VCSEL驱动轨在脉冲发射时的电压跌落,要求瞬态跌落<100mV,恢复时间<10µs。数字核心轨纹波使用AC耦合测量,峰峰值应<15mV。

判定标准:所有电源轨在最大负载条件下纹波满足上述指标,且激光驱动轨在1A脉冲负载下无振荡(相位裕度>45°),即判定电源树设计通过。