在单片机应用中,使用 PWM 信号来触发 ADC 采样是一种非常重要的同步技术,主要用于以下场合:
核心目的:实现 ADC 采样时刻与 PWM 控制周期(或负载变化周期)的精确同步。
这种同步至关重要,因为它能确保在每个 PWM 周期内最合适、最稳定、最具代表性的时刻采集关键的模拟信号(如电流、电压),从而获得准确的数据用于闭环控制或状态监测。常见应用场景包括:
电机控制 (Motor Control):
FOC (Field-Oriented Control) / 矢量控制: 这是最主要的应用场景。在驱动三相无刷直流电机或永磁同步电机时:
PWM 驱动功率开关管,控制施加在电机绕组上的电压。
需要精确测量电机相电流 (Iu, Iv, Iw) 或总线电流 (Idc) 来进行磁场和转矩的闭环控制。
为何同步? 功率开关管在开关瞬间会产生巨大的噪声和电压尖峰。如果在这些时刻采样电流,结果会严重失真(毛刺)。通过 PWM 触发 ADC,可以精确地将采样点设置在 PWM 周期的中间(例如,当上管导通下管关断或反之,且开关状态稳定时),避开开关噪声,获取真实的绕组电流值。这对于 FOC 算法的准确性至关重要。
有刷直流电机/步进电机: 同样需要精确测量电流以进行力矩控制或过流保护,同步采样能避免 PWM 开关噪声干扰。
电力电子/功率变换 (Power Electronics / Power Conversion):
DC-DC 变换器 (Buck, Boost, Buck-Boost): 需要测量输出电压 (Vout) 和电感电流 (I_L) 或输入电流 (Iin)。
为何同步?
测量 Vout:在 PWM 周期的末尾(通常在下一个周期开始前)采样,此时电感电流连续,电压相对稳定,更能反映实际输出电压。
测量 I_L:在 PWM 周期的中间点采样(类似电机控制),避开开关噪声,获取更平滑、更真实的电流波形,用于电压环或电流环控制。
逆变器 (Inverter): 将直流电转换为交流电。需要精确测量输出交流电压 (Vac) 和电流 (Iac) 进行波形控制。
为何同步? 采样点需要与 PWM 载波周期同步,确保在每个载波周期内都能在固定的相位点(通常是中间点)采样电压和电流,从而准确计算输出功率、实现并网同步、进行过流保护或精确的波形控制 (如 SPWM, SVPWM)。
整流器 (Rectifier): 类似逆变器,需要同步采样输入交流电压电流。
开关电源 (SMPS): 本质上也是一种 DC-DC 或 AC-DC 变换器。其核心控制环路(电压环、电流环)需要精确测量输出电压和电流(特别是峰值电流模式控制)。PWM 触发 ADC 确保在开关周期内最稳定的时刻采样反馈信号,提高控制精度和稳定性,降低输出电压纹波。
需要精确时间相关或相位相关采样的应用:
当需要同时采集多个与 PWM 事件相关的信号(如三相电流)时,使用同一个 PWM 事件触发多个 ADC 通道(或使用 ADC 的同步注入模式),可以保证这些信号是在完全相同的时刻被采样的,这对于需要相位信息的计算(如 FOC 中的 Clarke/Park 变换)极其重要。
在需要周期性采样但采样率严格受控于 PWM 频率的场景。
减轻 CPU 负担:
虽然这不是主要目的,但利用 PWM 硬件自动触发 ADC,结合 DMA 传输采样结果,可以构建一个几乎不需要 CPU 干预的数据采集流程。CPU 只需要在需要时(如 PWM 周期结束时)处理一组完整的新数据即可,大大提高了系统效率。
总结关键优势:
避开开关噪声: 在功率开关器件导通/关断瞬间,电压电流存在剧烈变化和噪声。同步采样可精确选择开关状态稳定后的“安静窗口”进行测量。
捕捉稳定值: 在 PWM 周期内的特定点(如中点),被控对象(如电机绕组电流、电感电流、输出电压)的状态更稳定、更具代表性。
保证采样时刻一致性: 每个 PWM 周期都在相同相对位置采样,数据具有可比性。
实现多通道同步采样: 对于需要同时刻数据的应用(如三相电流)至关重要。
简化软件控制流程: 硬件自动触发,降低软件复杂度。
提高控制环路的精度和稳定性: 更准确、更及时的反馈数据是高性能闭环控制的基础。
实现方式 :
配置一个定时器 (如 TIM1, TIM8) 产生 PWM 信号。
配置 ADC,选择外部触发源为特定的定时器事件(如 TIMx_TRGO,通常可设置为 PWM 周期开始、周期中间、周期结束、比较匹配等)。
设置 ADC 采样通道。
(可选) 启用 ADC 的 DMA 功能,自动将采样结果传输到内存。
启动定时器 (PWM) 和 ADC。
通过这种方式,每当 PWM 信号达到预设的触发事件(如每个 PWM 周期的中心点),硬件就会自动启动一次 ADC 转换,实现精确的同步采样。
|
|