|
最近在评估STM32H743的ADC性能,在测试有效位(ENOB)的时候发现,开启和关闭ADC的线性校准对性能测试的结果并没有影响。有没有遇到过这个问题的大神,请求解答一下,H743的ADC的线性校准是否起作用,该怎么确认有没有起作用? 在开启和关闭ADC线性校准的时候调用了下面一句话: if (HAL_ADCEx_Calibration_Start(&AdcHandle, ADC_CALIB_OFFSET_LINEARITY, ADC_DIFFERENTIAL_ENDED) != HAL_OK) { Error_Handler(); } 可以确认的是,开启线性校准后,ADC_CALFACT2寄存器是有校准码的;如果不开校准,该寄存器值读出来是全0. |
STM32H725内部FLASH读写问题
我在使用STM32H747IGT6的时候,遇到了一个问题;上电前并未短路,上电后电流跳跃至1.6A,且不断增大至1.9A,断开电源后芯片不短路,请问是什么原因?
为什么在CubeMX中无法分析模型?而在云服务器可以?
STM32H7的LSE起振问题
stm32H7 FLASH写入后数据异常 求教
关于STM32H7的系统架构中总线主设备与总线从设备连接的疑问
STM32H7掉电存储数据
STM32H743ZIT6的4K SRAM备份域数据,当VTAB引脚的电压低于2.8V就会丢失数据,2.8V以上是正常,请问是什么问题?
STM32H747I_eval_QSPI FLM工程疑问
STM32H7 TIM3-CH3/4 能不能用于编码器输入。
微信公众号
手机版
STM32H743 的线性校准(CAL2)在绝大多数量产批次里确实“写了系数 ≠ 立刻看到 ENOB 提升”,这是目前论坛和实测里被反复验证的现象,原因可以归结为 3 点:
线性校准只能修正 INL 曲线里“可建模”的那一段 ,而 H743 的 INL 典型值已经做到 ±1 LSB 量级
,再修也只剩 0.1~0.2 LSB 的量,换算成 ENOB 不到 0.05 bit,自然被噪声淹没。
CAL2 系数只在 “差分模式” 下生效;如果你接的是单端信号,或者差分负端没有精确共模,校准路径实际被旁路。
校准完必须 重新触发一次 ADEN=1 的转换序列 ,否则系数仍躺在 CALFACT2 里而未被采样开关真正加载 。
快速验证它“到底有没有干活”的办法:
一句话:H743 的线性校准 确实写了寄存器就生效 ,只是它只能把已经很好的 INL 再修 0.1~0.2 LSB,对 ENOB 的贡献被 11~12 bit 的噪声底直接淹没,所以看不出变化属正常现象;真想“看见”它干活,只能用上述静态 INL/DC 误差法,而不是 FFT 测 ENOB。
[md]非常感谢您的回复。
有个问题想跟您请教一下,您提到在单端模式下校准电路被旁路,是不是可以说明在单端模式下无法进行线性校准?还是说在单端模式下线性校准一直被使能,无法关闭?
感谢您的解答。我在测试ENOB的过程中,信号是162Hz的正弦波,峰峰值3V,偏置1.65V。H743的VREF是3.3V,16bitADC工作频率25MHz,采样时间为1.5个ADC时钟周期,采用单次触发,触发频率是1MHz。请问我这样测试ENOB的方法是否可行?
ENOB 反映的是 ADC 在噪声和失真条件下的有效分辨率;
校准负责消除偏移和增益等系统误差,使输出更贴近真实输入;
而决定 ENOB 的关键在于参考电压品质、采样时间配置、前端驱动能力、电源/地设计等;