我正在使用24位ADC并尝试计算可读的最小电压。
ADC标记为24b位,因此只有23个有效位。 ADC满量程读数为5v,因此我按如下方式计算LSB:
双LSBval24 = 5.0 /(pow(2,23)-1);
现在有趣的部分。与Windows 10 64bit上的计算器相比,运行Debian 32位操作系统的Raspberry pi计算结果略有不同。
通过以下代码获得Pi输出
char LSB [150];
snprintf(LSB,150," LSB =%。38f",LSBval24);
这意味着LSBval24计算本身可能导致差异,或者 snprintf 转换可能导致问题或Win 10计算器错误。
显示38位小数...
Pi = 0.00000059604651880818829633949113011582
Win = 0.00000059604651880818829634050087219487
所以我想我的问题是,考虑到ADC的23位精度限制
(1)哪个答案更正确?
(2)精度的多少位(不是位)是该ADC的精度极限。
答案 0 :(得分:0)
经过更多研究后,我发现问题2的答案是基于ln(2)/ ln(10)* 23位的6.9位数。
答案 1 :(得分:0)
您正在讨论以19位(十进制)开头的差异。 如果精心调整,大多数参考电压的容差范围为+ -0.1%。这样参考容差将在0.59nV左右可见。
看nV:一个1K电阻在室温下的噪声为4nV / SQRT(Hz)。在某个nV以下发生的事情还是是噪声(除非您可以在运行期间将设计冷却到接近0K)
23位只是意味着如果信号超过大约0.59uV,您可以检测到信号的变化。但这并不意味着完全正确。这受参考电压的限制,而不是受ADC的限制。