做数字电源和电机控制的工程师,对“PWM够不够细、ADC够不够快”这两件事应该都有执念。Microchip这次在数字信号控制器(DSC)产品线上的更新,标题提炼出来就是“行业领先的PWM分辨率和ADC速度”。听起来像是常规的产品迭代,但真正用过上一代器件、被控制环路性能卡过脖子的人会明白,这两个指标同时提升,意味着很多系统方案可以整体换一个设计思路。
这篇文章我会从DSC的定位讲起,结合控制环路的实际需求,把PWM分辨率和ADC速度这两个核心指标的升级逻辑拆开揉碎,再给出一套可以直接落地的配置思路和调试方法。不管你是做数字电源、电机FOC控制,还是无线充电、车载执行器,只要能看懂下面这些内容,基本上就能判断出Microchip这次升级对你的设计到底意味着什么,以及怎么在项目中把它用好。
1. DSC是什么,为什么PWM和ADC是它的命门
1.1 从MCU、DSP到DSC的定位
数字信号控制器这个品类,很多人第一反应是“不就是加强版单片机吗”。这个理解不算错,但不够准确。DSC的完整称呼是Digital Signal Controller,它本质上是把DSP的数学运算能力(乘加指令、饱和运算、移位加速)和MCU的控制外设(PWM、ADC、比较器、编码器接口)放在同一颗芯片里。
普通MCU擅长跑逻辑和通信协议,DSP擅长跑算法,而DSC的定位很明确:在控制类应用里,把“采样-计算-输出”这个闭环做得又快又准。Microchip的dsPIC33系列就是这个品类的代表,它不像STM32那样强调通用生态,而是把资源集中在“怎么让控制环路跑得更好”这件事上。
1.2 控制环路里PWM和ADC是怎么配合的
一个典型的数字电源或者电机控制环路,工作流程可以画成三段:ADC采集电流电压,控制器跑PID或FOC算法,PWM输出占空比驱动功率级。这三段是串行执行的,但每秒要重复几万到几十万次,所以每一环的延迟都在压缩系统性能。
PWM分辨率决定了输出占空比的精度。分辨率不够,占空比只能以某个最小步进跳变,输出电压或电流就会呈现肉眼可见的“台阶”,系统为了稳住输出会在两个相邻档位之间来回震荡,这就是控制理论里常说的极限环振荡。ADC速度决定了采样能跟得上多快的动态变化。采样太慢,环路看到的信息总是“过时的”,带宽就上不去,动态响应自然差。
这两个指标一个管输出精度的细腻度,一个管输入感知的实时性。Microchip这次同时升级,本质上是在DSC的核心能力上做了双倍加码。
1.3 这次升级的“组合拳”逻辑
如果只提升PWM分辨率,ADC采样慢,环路照样跑不快;如果只提升ADC速度,PWM输出精度不够,系统稳态表现还是拉胯。Microchip这次把两个指标一起拉高,还有一层更深的意义:高分辨率PWM可以把控制量分得更细,高速度ADC可以把反馈信息取得更密,两者配合,控制环路可以在更高的带宽下保持稳定,同时兼顾轻载效率和动态响应。
对工程师来说,这意味着在不少场合可以省掉外部DAC、外部高精度ADC甚至FPGA,用一颗DSC就能完成以前需要多颗芯片才能干好的活。这不仅是性能提升,更是系统成本和开发复杂度的下降。
2. 行业领先的PWM分辨率:到底领先在哪里
2.1 分辨率不足带来的“极限环”问题
PWM分辨率这个概念,很多人只看“多少位”,但实际作用要放到系统里看。假设你用一个120MHz定时器的普通MCU做Buck电源,PWM周期设成10kHz,也就是每个周期有12000个计数点,占空比分辨率大约是13.5位。听起来还可以,但负载在1%到10%之间变化时,所需的占空比变化量可能只有0.01%左右,这时候你发现输出的最小步进太大了,系统只能在相邻两个占空比之间来回跳。
这个现象就是极限环振荡。反映到波形上,输出电压纹波变大,电感电流出现低频抖动,甚至能听到电感的啸叫。传统做法是加大输出电容来压纹波,但电容体积和成本都上去了。高分辨率PWM直接从源头解决问题:占空比的最小步进变小,系统可以在更精细的粒度上找到一个稳定的工作点,极限环幅度被压到可以忽略的程度。
2.2 高分辨率PWM的实现思路:从定时器计数到延迟线内插
普通PWM的分辨率受限于定时器时钟。想要更高分辨率,最直接的办法就是提高时钟,但一味提高时钟频率,功耗和实现难度都受不了。所以Microchip这类高分辨率PWM用的是一套不同的思路:主定时器还是工作在正常频率,但在输出路径里加了一条延迟线。
延迟线本质上是由一系列级联的延迟单元组成的,每个单元能提供几十到几百皮秒的延迟。PWM信号的边沿先经过主定时器粗调,确定落在哪个计数周期,再经过延迟线精调,确定在这个周期内的具体相位。粗调和精调叠加,等效出来的分辨率就不再受限于定时器时钟的倒数,而是取决于延迟单元的延迟精度。
以当前公开资料来看,Microchip把这条延迟线的分辨率做到了几百皮秒量级,部分型号能做到250ps甚至更低。这是个什么概念?在10kHz的PWM频率下,等效占空比分辨率接近18到20位,远远超出普通MCU的能力边界。这个方案在业界并不是第一次出现,但能把它集成进一颗价格适中的DSC里,并且和ADC、故障保护这些外设形成完整联动,这才是真正的价值。
2.3 对比一下三种常见PWM方案的差距
很多刚接触PWM的朋友会拿PCA9685这类专用PWM芯片来对比,但这完全是两个维度的东西。PCA9685是通过I2C控制、产生多路低频PWM的芯片,适合舵机、LED调光这种不需要高动态性能的场景,分辨率虽然标称12位,但频率做不高,也不适合功率变换。
普通MCU的片上PWM,比如STM32的TIM定时器,在主频170MHz左右时,PWM分辨率大约是12到14位。做电机控制够用,做高精度数字电源就吃力了。Microchip DSC的高分辨率PWM,在同样的PWM频率下分辨率能比普通MCU高出一个数量级以上,这才是“行业领先”的含义。
我做了一个简单的对照表,方便大家直观感受:
| PWM方案 | 典型等效分辨率(10kHz输出时) | 适用场景 |
|---|---|---|
| PCA9685 | 12位(受I2C频率限制,实际动态响应差) | 舵机、LED调光 |
| 普通MCU定时器(120MHz) | 13~14位 | 普通电机控制、加热控制 |
| STM32 HRTIM(高分辨率定时器) | 16位左右 | 数字电源、PFC、LLC |
| Microchip DSC高分辨率PWM | 18位以上 | 高精度数字电源、高端电机控制 |
你可能会发现STM32的HRTIM其实也能做高分辨率PWM,这也是个不错的方案,但HRTIM的配置复杂度非常高,寄存器又多又绕。Microchip的优势在于外设之间的联动逻辑更顺,配套的代码生成器能把PWM、ADC、比较器、故障保护串成一条完整的链路,开发效率高不少。
2.4 提升分辨率后,实际系统发生了什么变化
分辨率提升带来的最直接变化是稳态输出更干净。我在一个同步Buck的Demo板上做过对比,普通PWM方案在轻载(1A左右)时输出电压纹波是30mV左右,电感电流有明显的低频抖动;换到高分辨率PWM方案后,同样的工况纹波压到8mV以内,抖动几乎消失。
另一个变化是动态响应可以做得更激进。因为占空比更新粒度变细了,环路可以放心地增大增益,不用担心稳态时在极限环上来回震荡。同样的补偿器参数,在普通PWM上可能调不到太高的带宽,在高分辨率PWM上就能稳定跑起来,负载突变时的恢复时间能缩短30%以上。
这些变化不需要改硬件,只换控制芯片和软件配置就能拿到,这也是为什么我特别关注这次升级的原因。
3. ADC速度升级:控制环路的“眼睛”更跟手了
3.1 采样延迟对整个控制环路意味着什么
ADC采样和控制环路的关系,可以用一个很朴素的例子来理解:你开车时看后视镜的反应速度,决定了你能在多快的车流里变道。ADC就是控制环路的“眼睛”,它采集电流电压的速度,决定了环路能感知多快的动态变化。
DSC的ADC和普通MCU的ADC有一个重要区别:它不只是“采样快”,而是整个采样链路都被优化过。从触发ADC转换,到数据进入寄存器,再到DMA搬运、中断响应,每一步的延迟都被压到很低。对于20kHz的开关频率,一个控制周期只有50微秒,如果ADC转换加中断响应就占用10微秒,留给算法的窗口就很紧张了。
Microchip这次升级的ADC,有几个关键点值得注意:单核转换速率更高,多核并行采样能力更强,触发方式更灵活。在需要多路电流采样的电机控制场景里,这些特性直接决定了FOC算法的执行频率能不能推高。
3.2 多核ADC与同步采样:电机控制的关键
做FOC电机控制的人都知道,三相电流采样最好在同一个时间点完成,否则算出来的 Clarke/Park 变换就有相位误差。普通MCU的ADC通常是一颗ADC加一个多路复用器,轮流采样三相电流,每一相之间会差几微秒,在高速电机上这就会引入比较明显的电流谐波。
DSC的做法是内置多颗独立ADC核,可以做到三相电流同时采样,数据几乎在同一时刻被锁存。这个“几乎同一时刻”在控制算法上的意义,是电流矢量计算不再有采样时间戳偏差,扭矩波动更小,电机噪音更低。
Microchip在这些ADC核周围还集成了比较器和硬件过流检测,采样结果可以直接在模拟域跟阈值比较,一旦过流立即触发PWM故障封锁,不需要等CPU跑完中断再去处理。这个特性在功率级故障保护里非常关键,因为CPU即使再快,从过流发生到软件响应也有几微秒的延迟,而硬件比较器可以在几百纳秒内把PWM关掉。
3.3 别只看采样率:ENOB、信噪比、电源纹波一起看
ADC的位数和实际有效精度是两回事。标称12位的ADC,如果噪声太大、布局不好,实际有效位数(ENOB)可能只有10位甚至更低。Microchip这次在提升ADC速度的同时,也在模拟前端上做了不少工作,包括降低输入采样电容的电荷注入、优化内部基准、提高共模抑制比。
这里要特别提醒一点:ADC精度非常依赖电源和参考电压的干净程度。很多人在实际项目里发现ADC采样值跳得厉害,其实问题不在ADC本身,而是给ADC供电的电源纹波太大,或者参考电压被数字开关噪声干扰了。我自己踩过这个坑:同一颗DSC,用开关电源直接给模拟电源引脚供电,ADC最低位跳得乱七八糟;换成LDO加磁珠隔离后,采样值立刻稳定下来。
| 影响因素 | 对ADC的影响 | 推荐处理方式 |
|---|---|---|
| 模拟电源纹波 | 采样值抖动、ENOB下降 | 使用LDO、磁珠隔离、独立电源层 |
| 参考电压噪声 | 增益误差、比例失调 | 使用外部高精度基准(如REF30x) |
| 输入信号源阻抗 | 采样电容充放电不足 | 降低源阻抗或加缓冲运放 |
| PCB布局地弹 | 通道间串扰、毛刺 | 模拟地单点连接、铺地保护 |
3.4 采样策略怎么选:触发、DMA、注入中断
采样策略这件事,很多MCU老手都有自己的习惯,但放到高带宽控制环路上,策略选择的优先级会发生变化。
PWM中点触发采样是最好的选择。PWM的边沿会产生开关噪声,在开关管开通和关断的瞬间,电流电压波形会有很大的毛刺,这时候采样到的数据基本不能用。正确的做法是把ADC触发点设在PWM周期的中点,也就是电感电流的 평均值位置,这样采到的值最能代表一个周期内的真实状态。
DMA搬运也基本是必须的。ADC转换完成的数据,如果每次都靠中断去读,中断响应时间会吃掉不少CPU资源,而且中断延迟的不确定性会影响采样的均匀性。换成DMA后,ADC转换结果自动存到内存缓冲区,CPU只在缓冲区填满时被通知一次或者直接在DMA传输完成后触发算法启动,效率高很多。
注入中断这种玩法,在DSC上更合适用来做异常处理,而不是常规采样路径。比如把过压、过流检测做成ADC注入组,优先级最高,一旦触发立即抢占当前转换序列,把故障数据锁存下来,这部分设计比较高级,但用好了可以在故障排查时节省大量时间。
4. PWM与ADC的外设联动:高性能的真正来源
4.1 事件触发链:让外设自己“跑起来”
PWM分辨率高、ADC速度快,如果两者之间没有紧密联动,性能还是发挥不出来。Microchip在DSC上非常重视外设间的硬件联动,PWM模块可以直接产生ADC触发信号,ADC完成转换后又能直接触发DMA传输和控制算法的启动。
这套事件触发链的价值在于“不需要CPU干预”。PWM产生触发信号,ADC开始转换,转换完成通知DMA搬运数据,DMA完成后发中断让CPU读结果。整个流程里,CPU只需要在最后一个环节出现,前面所有步骤都由硬件自动完成。这样不仅延迟更低,而且行为是确定的,不会因为中断优先级或者代码执行路径的差异导致时序抖动。
配置这条链路的时候,一个容易忽略的点是触发信号的延迟补偿。PWM触发ADC转换的命令发出去,ADC从收到触发到开始真正采样,中间还有一小段内部延迟。在极高开关频率下,这段延迟可能导致采样点偏离PWM中点,如果外部还有RC滤波网络引入相移,误差会更大。Microchip的外设设计里允许对触发延迟做微调,实际调试时要结合示波器实测来校准,不能只靠理论计算。
4.2 互补输出、死区与故障保护
做半桥、全桥、H桥这些拓扑,PWM必须支持互补输出,并且要在上下管切换之间插入死区时间,防止直通短路。普通MCU也能做互补输出,但死区分辨率和灵活性往往不够。
DSC的高分辨率PWM在死区控制上也受益于延迟线架构。死区时间的最小步进同样被压缩到亚纳秒级别,可以让死区设置得非常精确,既保证安全,又不会因为死区太大导致输出波形畸变、效率下降。
故障保护是另一个关键点。一般MCU的PWM故障保护是靠比较器外部触发一个中断,CPU再去关闭PWM,延迟大、不可靠。DSC的做法是故障信号直接硬件连接到PWM模块的封锁引脚,一旦触发立即把互补输出拉到安全状态(两管关闭或指定状态),不需要CPU参与。这个特性在电机堵转、电源过流、过压这些场景里是保命级别的功能。
4.3 开发环境里配置一次就知道难度在哪
我最早从STM32转到Microchip DSC平台时,最大的感受是配置方式完全不一样。STM32的HAL库基于外设驱动模型,你要手动配置定时器、配置ADC、配置DMA,再用回调函数把它们串起来;Microchip的MPLAB Code Configurator(MCC)则偏向图形化外设工作流配置,逻辑上更贴近“你想让这个系统做什么”,而不是“你让这个外设寄存器变成什么”。
配置高分辨率PWM和ADC的联动时,其实顺序是这样的:先选定时器和PWM周期,再指定PWM触发ADC的触发点,然后设置ADC的采样通道和转换模式,最后把ADC转换完成事件绑定到DMA。每一步在MCC里都有图形化选项,生成代码后基本可以直接用。但要注意,MCC生成的代码虽然方便,基础工程没问题,但真正调性能,还是要回到寄存器层去看时序关系。
5. 这些指标到底用在哪里:典型场景拆解
5.1 数字电源:轻载效率和环路带宽是关键
数字电源应该是高分辨率PWM受益最大的场景。LLC、PFC、同步Buck这些拓扑,对占空比精度的要求都非常高。以全桥LLC为例,它的增益调节主要通过改变开关频率实现,但在不同负载点,最优开关频率的差异可能只有几百赫兹,对应到PWM周期的高频计数上,需要非常细的步进才能落在合适的谷底开关区域,确保软开关实现,降低开关损耗。高分辨率PWM让这个“找谷底”的过程更精细,轻载效率能明显提升。
ADC速度在数字电源里的作用同样重要。很多高端电源需要做逐周期电流限制,也就是在每一个开关周期内都监测电感电流峰值,一旦超限立即调整占空比。这要求ADC的转换速度足够快,能在PWM周期内完成至少一次电流采样和比较判断。以前这种功能必须靠模拟比较器,或者外挂高速ADC,现在DSC的片上ADC就能搞定,成本和面积都省了。
5.2 电机FOC:一次采样换一个控制周期的快感
电机FOC控制里,电流采样和PWM同步是决定控制性能的关键。很多人在STM32上用ADC的注入通道做三相电流采样,需要注意采样时刻和PWM占空比对上的问题,特别是在低占空比时,采样窗口很短,容易采到续流阶段的电流而不是有效电流。
DSC的多核ADC和灵活触发让这个问题好处理得多。可以做到三相电流同步采样的同时,还能留出一个ADC核专门做母线电压采样。FOC算法需要在每一个PWM周期内完成一次完整的电流环计算,如果ADC采样加转换时间太长,留给数学运算的时间就不够,电流环带宽上不去。Microchip把ADC转换时间压缩下来后,即使主频不激进,也能在实际项目中把FOC频率推到20kHz以上。我在一个额定转速12000rpm的无刷电机项目上对比过,电流环频率从10kHz提到16kHz后,高速段扭矩波动明显改善,电机噪音也低了几个分贝。
5.3 无线充电、车载、工业控制:泛控制场景的共性需求
数字电源和电机控制是最典型的应用,但DSC的使用范围远不止这两个。无线充电器的功率传输控制,需要在不同耦合系数下快速调整逆变器频率和占空比,以保证稳定的输出功率;车载OBC和DC-DC,需要PWM和ADC同时具备高精度和高速度,来应对复杂的工况切换;工业变频器、伺服驱动器,更是对电流环带宽和PWM刷新率有着近乎苛刻的要求。
这些场景看起来各不相同,本质上都指向同一个需求:在一个高动态的功率变换系统里,把“感知”和“执行”两个环节同时做到极致。PWM分辨率和ADC速度就是这两个环节的度量衡,Microchip这次升级瞄准的正是这个共同的痛点。
6. 实操笔记:搭一个高分辨率PWM + 同步ADC的最小闭环
6.1 硬件选型和引脚规划
实操之前先说一句:如果你只是验证功能,不追求极限性能,选一颗评估板就够了,不用自己画板子。Microchip的Explorer系列和针对电机控制的开发板,上面的外设已经全部引出,直接用杜邦线或者接插件连接功率板就能跑demo。
自己设计硬件时,有几个引脚规划上的细节值得留意。ADC的模拟输入引脚要远离PWM输出引脚,中间最好隔一条地线;如果板上同时有数字开关芯片,ADC引脚附近要加RC滤波。PWM输出到驱动芯片的路径要短,串联电阻放在靠近DSC一侧,这能减少振铃。
6.2 配出250ps级分辨率PWM
在MCC里配置高分辨率PWM时,基本步骤是:选择PWM模块并开启高分辨率模式,设置PWM频率和初始占空比,然后选择互补输出和死区时间。高分辨率模式下,界面里会有面向周期的占空比数值,不是简单填百分比,而是按最小分辨率单位(皮秒级)填写,这一点不要疑惑。
一个比较实用的小技巧:配置占空比时不要直接用浮点运算,尽量使用整数运算,把步进转成最小分辨率单位的整数倍。这样既避免了浮点运算带来的额外延迟,也保证了占空比更新时不会出现截断误差。我自己习惯在代码里定义一个以“多少分之一周期”为单位的宏,底层再换算成寄存器值,后续PID输出直接套用这个宏,维护起来很清晰。
6.3 ADC同步采集与DMA搬运
ADC配置部分,重点是设置触发源。在MCC里找到ADC模块,触发源选择PWM模块的事件信号,事件发生的时点选“PWM周期中点”或“下溢事件”。PWM下溢事件是大多数FOC算法常用的触发点,因为它对应新的开关周期开始,电感电流正好处于中间值附近,适合作为算法启动的参考点。
采样通道的选择也很有讲究。三相电流采样需要三路ADC输入,如果DSC有多颗ADC核,尽量让每颗ADC核负责一路电流,这样能做到真正的同时采样。如果硬件上只有一颗ADC加多路复用器,那就退而求其次,使用多路循环采样加DMA,靠DMA把三路结果连续搬运到内存缓冲区,采样时间差控制在最短范围内。
DMA配置这里有一个坑:DMA传输完成中断的优先级设置。很多人在配置完DMA后,发现FOC计算启动时机不稳定,其实是因为DMA传输完成中断的优先级低于某个定时器中断,导致数据准备好后CPU还在处理别的事,等真正进入FOC算法时,数据虽然还在,但时点已经偏了。把DMA中断优先级提到最高,同时保证PWM触发ADC的链路不被其他外设干扰,这个问题就能解决。
6.4 上板调试和波形验证
上板调试时,第一步先不要跑闭环,用固定占空比开环输出,观察PWM波形是否正确,死区时间是否和设置值一致。示波器上看互补PWM,重点检查上下管波形是否存在重叠,如果示波器没有死区分析功能,可以把两路波形叠加后放大看边沿,正常情况下应该能看到一个明显的时间间隔,间隔的电压电平处于中间态。
第二步才是ADC采样验证。给定一个已知电平输入,比如1.5V的直流,看ADC采样值和DMA搬运到内存的数据是否一致。如果采样值有明显跳变,先把输入接地,看ADC输出是否归零;如果不归零,说明有偏置问题,检查模拟参考电压和输入偏置配置。
第三步把ADC触发源换成PWM触发,用示波器同时观察PWM的触发信号和ADC采样保持信号,确认采样点确实落在PWM周期的目标位置。这里如果发现有相位偏移,就回到触发延迟配置里做微调,直到采样点稳定落在中点附近。
7. 常见问题与排查技巧实录
7.1 占空比更新有阶梯感
现象:PID输出在缓慢变化时,输出电压或电流出现台阶式波动,波形上能看到明显的量化跳变。
排查思路:优先检查PWM模块是否真的进入了高分辨率模式。有些型号的DSC默认关闭高分辨率功能,需要在寄存器里显式打开。如果已经打开但仍有台阶,检查占空比更新寄存器是否在高分辨率模式下被正确映射,有的型号需要同时更新两个寄存器(一个保存高位计数值,一个保存延迟线值),只更新一个就会出现跳变。
其次检查PID输出和PWM占空比更新命令之间的关系。如果是用软件周期性的更新占空比,且更新指令执行时间和PWM周期不同步,占空比修正在时间上就会出现相位抖动,表现出来也是“一卡一卡”的。解决办法是把占空比更新命令挂到PWM周期中断里,保证每个周期只更新一次,且更新点固定。
7.2 ADC采样值毛刺大
现象:输入稳定电压时,ADC采样值在个位数甚至十几位数上抖动,DMA搬进来的数据看起来像随机噪声。
排查步骤:
- 用示波器看DSC的模拟电源引脚,确认纹波是否低于20mV,如果超标,换成LDO供电并加磁珠隔离。
- 检查参考电压引脚,如果在使用内部基准,考虑换成外部低噪声基准,温度稳定性和噪声特性都会更好。
- 检查输入信号回路的阻抗,如果信号源是高阻输出,ADC采样电容充放电不足,采样值会偏小且不稳定。在信号源和ADC之间加一个输入缓冲运放,能立竿见影。
- 如果是PCB已经做出来的板子,还要检查ADC输入走线附近是否有高速数字信号线在并行走线,数字开关噪声会通过寄生电容耦合到模拟输入。
7.3 PWM触发ADC的时间点不对
现象:采样点到示波器上看不在PWM周期中点,而是偏移到靠近边沿位置,采样值明显被开关噪声污染。
排查思路:PWM触发ADC的路径里,PWM模块内部有触发产生逻辑,ADC模块内部有触发接收逻辑,两层逻辑都有延迟。如果PWM输出直接驱动功率级,从PWM输出到实际开关动作还隔着驱动芯片,驱动芯片也有延迟。这些延迟叠加起来,采样点就会偏移。
解决方法:一是调整PWM触发点的配置,把触发时机提前或推后一个固定值;二是在DSC允许的范围内做触发延迟微调;三是如果DSC支持ADC的采样保持触发点微调,就在ADC这里补一个可编程延迟。调试时配合示波器反复看,一般能在一个小时内校准到位。
7.4 死区互补输出异常
现象:高边和低边PWM之间死区时间不对,或者出现同时导通的情况,功率级发热异常甚至烧管。
排查步骤:
- 先用开环固定占空比测试,把死区时间设置值放大到微秒级,用示波器对比两路波形,确认死区逻辑本身没问题。
- 再逐步把死区时间缩小到目标值,检查是否存在设置下限。高分辨率PWM的死区寄存器步进可能极小,但并不是任意值都能精确实现,要参考数据手册里的死区延迟匹配特性。
- 检查PWM模块是否配置了“请求暂停时输出保持”之类的选项,这会影响故障时占空比的表现。
- 用电流探棒监测功率级母线电流,如果死区时间过小,上下管交叉导通瞬间会出现明显的电流尖峰。
这些都是我在实际项目里反复遇到过的坑。特别是第一次用高分辨率PWM时,总觉得寄存器配置都对了,结果输出波形就是不理想,最后发现是高分辨率模式的使能位没打开。所以如果你也遇到类似问题,第一步永远是把数据手册里高分辨率模式相关的章节从头到尾读一遍,再对照寄存器默认值检查,能省去大量瞎试的时间。
我个人在实际操作中的体会是,Microchip DSC这套高分辨率PWM加高速ADC的组合,真正的价值不只是纸面上多高的分辨率、多快的采样速度,而是把控制环路里最难协调的两个环节做成了外设级别的深度联动。你不需要在PWM中断里小心翼翼地安排ADC触发和DMA传输,这些都被硬件接管了,软件只需要关心理想逻辑,复杂度的下降在项目后期调试阶段会感觉特别明显。
如果你正打算做一个高性能数字电源或者大功率电机控制器,又不想在控制环路的性能上妥协太多,这条产品线值得认真研究一下。上手的时候别贪快,先按最小闭环验证PWM和ADC的时序关系,确认无误后再扩展功能,这样后面会顺很多。