我正在使用MOD54415 NetBurner模块驱动一个SPI控制的16输入12位ADC(AD7490B),但我注意到回读中有一个> 0.3%的误差 - 我的样本是10.000伏,我得到一个读数的电压为9.9645伏。我正在尝试为它编写一个校准程序,将该错误关闭到0.1%或更高,但我真的不确定如何继续。我在Excel中进行了二次曲线匹配,数据输入和从ADC读取的数据图,但我不确定这是否是实现它的最佳方式,浮点数学将消耗多少个周期,以及是否有更好的方法。总的来说,我以前从未做过任何校准,所以我不确定从哪里开始。有人能指出我正确的方向吗?如果它有帮助,处理器是250MHz,我每0.1秒轮询所有16个通道(SPI速度为20MHz)。谢谢大家!
编辑:输入实际上只能承受5V电压。我有一个跟随缓冲区和一个2:1分频器滤波器。我从参考源提供了5.000和10.000,并使用读取4位小数的DMM进行测量。 ADC的输入引脚,我读取5.0009V和2.5005,ADC应读取0xFFF(+/- 2LSB),但它读取0xFEC至0xFF3(近似值)。我只是计算了数字。