|
最近在评估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. |
stm32H503CBT6 ADC在某次上电后波动变大了一些。
NUCLEO-H7S3L8开发板,操作板载FLASH出错,无法进入APP
H743 ulpi phy 引脚配置
DMAMUX 使用内部外设Request Event(不使用TIM12和LPTIM)
STM32H747XG下载一次仿真器就检测不到,运行不能正常
——STM32H747XG下载一次仿真器就检测不到,运行不能正常 原理图是否有问
STM32H7开发LWIP时遇到的问题
STM32H7 UART 使用、HAL 代码分析和实际遇到的问题
STM32H750 FFT 时间太长
[ZEPHYR]SDMMC2 Clock Initialization Failure on M4 Core (PLL2R Frequency Mismatch) 問題詢問
微信公众号
手机版
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的方法是否可行?