4. C2000模拟外设精度验证
数字电源的环路稳定性、保护动作一致性和输出纹波,最终都落在模拟外设的精度上。C2000(如F28004x、F28002x、F2837x)内部集成了ADC、PWM、比较器(CMPSS)和缓冲DAC,这些模块的误差来源不同,验证方法也完全不同。本节按“误差来源—实测方法—校准手段”三条线,分别讨论四类外设,并给出可直接套用的测试参数与判断依据。
ADC采样精度:先分清偏移、增益与非线性
ADC的静态误差由偏移误差、增益误差、INL和DNL构成。C2000的12位ADC在参考电压3.3V时,1LSB≈0.806mV。若只测一个点,无法区分偏移和增益。正确做法是取多点:用高精度直流源在0V、0.5V、1.0V、1.65V、2.5V、3.0V附近各给一个稳定电压,记录ADC原始码值,再对“输入电压—码值”做最小二乘拟合。拟合直线的截距对应偏移,斜率对应增益,残差反映INL。
实测时要注意两点:一是输入必须经过RC滤波,截止频率低于采样率的一半,避免开关噪声混叠;二是采样窗口要足够长,C2000的ADC采样保持电容约10pF级,源阻抗高时必须延长ACQ时间。例如源阻抗1kΩ、采样电容10pF,时间常数约10ns,取10倍时间常数即100ns以上才稳定。若用内部参考,还需先测参考本身的偏差,否则会把参考误差算到ADC头上。
校准通常采用两点法:在已知低点V1和高点V2处读取码值C1、C2,计算实际增益G=(V2−V1)/(C2−C1),偏移O=V1−G·C1。之后每次采样用V=G·C+O还原。若INL较大,可改用分段线性或查表校准。判断是否合格,应看校准后全量程最大误差是否小于系统允许的1/2 LSB或按环路要求折算的电压误差。
PWM死区与分辨率:用示波器看边沿,用寄存器算时间
PWM精度包含两个独立问题:分辨率决定占空比最小可调步进,死区决定互补管不会直通。C2000的HRPWM在150MHz EPWMCLK下,普通PWM分辨率约6.67ns,启用HRPWM后可达150ps级。验证分辨率时,固定周期,逐次改变CMPA值,用高带宽示波器测占空比变化,确认最小步进与理论值一致。
死区验证更关键。以F28004x为例,DBRED和DBFED以EPWMCLK计数,若EPWMCLK=100MHz,则1计数=10ns。假设需要上升沿死区80ns、下降沿死区80ns,则DBRED=DBFED=8。实测时用双通道探头同时看上下管栅极,测量两者都关断的区间。注意死区会随温度、驱动芯片传输延迟变化,因此要在冷机和热机两种状态下各测一次。若发现死区不足,优先增大DBRED/DBFED,而不是依赖驱动电阻。
比较器响应:关注延迟、迟滞与跳变点
CMPSS用于过流、过压保护,其响应时间由比较器传播延迟、数字滤波和跳变点设置共同决定。验证时,用信号发生器给一个快速阶跃(上升时间小于10ns),同时用示波器看比较器输入和CMPSS输出(或X-BAR触发PWM Trip的引脚)。从输入越过阈值到输出翻转的时间即为总响应延迟。C2000的CMPSS典型延迟在30–50ns量级,若启用数字滤波,每级滤波会增加一个采样周期。
迟滞设置不当会导致输出在阈值附近抖动。建议先测无迟滞时的跳变点,再逐步增加COMPHYS,直到输出在噪声环境下稳定。跳变点校准可用DAC内部参考:让CMPSS的负端接内部DAC,正端接外部可调电压,扫描外部电压找到翻转点,与DAC设定值比较,偏差应小于DAC的1LSB。
DAC输出误差:测零点、满度和线性度
C2000的缓冲DAC通常为10位或12位,输出范围0–VDDA。误差包括偏移、增益和输出阻抗引起的负载误差。测量时先空载测0码和满码输出,再带实际负载(如比较器输入或外部电阻)重测。若带载后满度下降超过1%,说明输出驱动能力不足,需要加缓冲。线性度则在中点附近取5–7个码值,用高精度万用表测量,计算与理想直线的偏差。
校准DAC时,可先测两个码值D1、D2对应的电压V1、V2,计算实际LSB=(V2−V1)/(D2−D1),再反推目标电压对应的码值。若DAC用于比较器阈值,建议把校准后的码值写入Flash,上电时加载,避免每次运行重新校准。
可执行的验证记录表
下表给出一个可直接填写的验证记录模板,字段按四类外设组织,实测值留空由测试者填写。示例中的“合格范围”仅为演示,实际应替换为项目规格。
| 外设 | 测试项 | 测试条件 | 示例合格范围 | 实测值 | 结论 |
|---|---|---|---|---|---|
| ADC | 偏移误差 | VIN=0.1V,ACQ=200ns | ≤ ±2 LSB | ||
| ADC | 增益误差 | VIN=2.9V,ACQ=200ns | ≤ ±4 LSB | ||
| ADC | INL | 6点拟合残差 | ≤ ±3 LSB | ||
| PWM | 死区 | EPWMCLK=100MHz,DBRED=8 | 80ns ±10ns | ||
| PWM | 分辨率 | HRPWM使能,CMPA步进1 | ≤ 150ps | ||
| CMPSS | 响应延迟 | 阶跃10ns,无滤波 | ≤ 50ns | ||
| CMPSS | 跳变点偏差 | 内部DAC设定1.5V | ≤ ±10mV | ||
| DAC | 零点误差 | 码值0,空载 | ≤ ±5mV | ||
| DAC | 满度误差 | 码值满,带载1kΩ | ≤ ±1% FS |
完成上述测试后,把校准系数写入C2000的OTP或Flash模拟EEPROM区,并在启动代码中加载。若发现某项误差随温度漂移明显,应在热机状态下复测并取最差情况作为校准依据。模拟外设的精度验证不是一次性的,量产阶段还需按批次抽检,确认校准系数在器件间的一致性。