3、数字控制器选型:DSP与MCU的对比、常用数字电源控制器与外设资源评估
选型这件事,说白了就是找一把趁手的兵器。做数字电源,控制器就是你的大脑。选错了,后面调死你。选对了,事半功倍。
我个人习惯把选型拆成三步走:先看架构(DSP还是MCU),再看具体型号(TI还是ST),最后抠外设细节。咱们一步步来。
3.1 DSP vs MCU:核心架构之争
很多人问我:“做数字电源,到底用DSP还是MCU?”
我的回答是:看你的环路有多快,算法有多复杂。
DSP(数字信号处理器)天生为数学运算而生。它的MAC(乘累加)单元可以在一个时钟周期内完成乘法+加法。这对PID、滤波器、傅里叶变换来说,简直是开挂。
MCU(微控制器)强在控制逻辑和接口。它的PWM定时器、ADC触发、GPIO中断,设计得极其灵活。但做数学运算,尤其是浮点运算,就有点吃力了。
我做过一个对比表,你可以参考一下:
| 对比维度 | DSP(如TMS320F280049) | MCU(如STM32G4) |
|---|---|---|
| 数学运算能力 | 单周期MAC、硬件除法、三角函数加速 | 依赖Cortex-M4 FPU,运算效率低30%-50% |
| PWM分辨率 | 150ps高精度PWM(HRPWM) | 典型值~1ns(取决于时钟和定时器) |
| ADC触发灵活性 | PWM事件直接触发,延迟<10ns | 通过定时器触发,延迟~50ns |
| 中断响应 | 可预测的固定延迟(~12个时钟周期) | 可变延迟(受中断优先级和总线仲裁影响) |
| 开发难度 | 中等(需要理解DSP架构) | 较低(生态成熟,资料多) |
| 成本 | 中高($3-$15) | 中低($1-$8) |
核心结论:如果你的开关频率超过200kHz,或者需要做多环路控制(电压环+电流环+前馈),老老实实选DSP。如果频率在100kHz以下,且控制逻辑简单,MCU完全够用。
3.2 常用数字电源控制器详解
市面上主流的数字电源控制器,基本被TI和ST两家包揽。我重点说说我用得最多的两个系列。
3.2.1 TMS320F280049:DSP阵营的扛把子
这个芯片我用了三年。说实话,第一次接触时被它的外设矩阵搞晕了。但用顺手之后,真香。
它的核心优势在于:
- CLA(控制律加速器):一个独立的协处理器,可以并行执行控制算法。我做过一个项目,主CPU跑通信和监控,CLA跑电流环,效率直接翻倍。
- HRPWM(高分辨率PWM):150ps的精度,意味着你可以把占空比调到小数点后四位。对于LLC谐振变换器这种对死区时间极其敏感的应用,这是刚需。
- 12位ADC + PGA:内置可编程增益放大器,可以直接采集电流采样电阻上的mV级信号,省掉外部运放。
我的经验:F280049的CLA虽然好用,但调试起来有点麻烦。我建议你先在主CPU上把算法跑通,再移植到CLA上。别一上来就搞并行,容易翻车。
3.2.2 STM32G4:MCU阵营的搅局者
ST的G4系列,说白了就是为数字电源量身定做的MCU。它把Cortex-M4的FPU和一堆模拟外设打包在一起,性价比极高。
它的亮点在于:
- CORDIC协处理器:硬件加速三角函数、双曲函数。做PLL锁相环或者坐标变换时,速度比纯软件快10倍。
- HRTIM(高分辨率定时器):217ps的PWM分辨率,虽然不如TI的150ps,但应付大多数场景绰绰有余。
- 内置运放和比较器:最多7个运放,6个比较器。你可以用它们做逐周期过流保护,响应时间<100ns。
我曾经在一个48V/10A的Buck-Boost项目里用过STM32G474。当时选它的原因很简单:便宜,而且ST的HAL库写起来比TI的库函数顺手。但后来发现,它的ADC采样抖动比TI大,需要做软件滤波。
避坑指南:STM32G4的HRTIM虽然精度高,但配置极其复杂。我建议你直接用ST的CubeMX生成初始化代码,别手写。我曾经手写HRTIM配置,结果死区时间设反了,炸了一对MOSFET。
3.3 外设资源评估:选型的关键
很多新手选芯片,只看主频和Flash大小。这是大忌。数字电源的外设资源,才是决定成败的关键。
我列了一个外设评估清单,每次选型我都会逐条核对:
- PWM通道数:你需要几路互补PWM?死区时间可调吗?支持硬件插入死区吗?
- ADC采样率:至少是开关频率的10倍。比如200kHz的开关频率,ADC采样率至少要2Msps。
- ADC触发源:能否由PWM事件直接触发?触发延迟是多少?
- 比较器数量:逐周期过流保护需要几个?每个比较器的响应时间是多少?
- DAC输出:是否需要DAC做参考电压或偏置?
- 通信接口:PMBus、I²C、SPI、CAN,你需要哪些?
- DMA通道:ADC数据能否通过DMA自动搬运到内存?
为什么会这么重视外设?我举个例子。有一次我做三相维也纳整流器,需要6路PWM、3路ADC同步采样、3个比较器做逐周期保护。当时我选了一颗便宜的芯片,结果发现它的PWM和ADC不能同步触发,导致采样点总是偏了半个周期。最后不得不换芯片,项目延期两周。
我的建议:选型时,先画一张外设资源需求表。把每个外设需要的数量、精度、响应时间列出来。然后拿着这张表去对比芯片。别只看数据手册首页的“亮点”,要翻到“外设特性”那一章,逐字逐句看。
3.4 选型决策流程图
下面这张图是我自己总结的选型流程。每次做新项目,我都会走一遍这个流程,基本不会出错。
3.5 我的选型建议
说了这么多,最后给点实在的建议。
- 如果你做的是大功率(>1kW)或高频(>200kHz)的电源:别犹豫,上TMS320F280049。它的HRPWM和CLA是刚需。
- 如果你做的是中小功率(<1kW)或消费类电源:STM32G4性价比最高。它的CORDIC和HRTIM足够应付大多数场景。
- 如果你做的是多路输出或模块化电源:注意看芯片的PWM同步能力。TI的EPWM模块可以轻松实现多芯片同步,ST的HRTIM在这方面稍弱。
最后一句:选型没有绝对的对错,只有合不合适。我见过有人用STM32F103做500kHz的LLC,也见过有人用TMS320F28379D做50kHz的Buck。关键是你对芯片的熟悉程度,以及你愿意花多少时间在调试上。