你(们)好
现在、我们可以从通道 AIN0或 AIN1:中读取原始值
值= ads7142_i2c_read (REG_ACC_CH0_MSB);
值<<= 8;
value |= ads7142_i2c_read (REG_ACC_CH0_LSB);
返回值;
如果原始值可以直接用作 ADC 结果而不对其进行任何修改?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
作为调试建议、 使用已知的直流值并将测量的 ADC 值与已知的直流输入进行比较。 这将有助于确认您正在从正确的通道读取正确的数据。
按原样使用器件的原始数据取决于您的系统以及固件的设置方式。 如果您的系统可以通过分析原始数据来支持他们所需的任务、那么您可以继续进行
但是、如果您的系统需要使用测量数据的电压值、那么您需要使用 数据表中的等式1来找到系统的 LSB 值 (LSB = FSR/(2^12)
然后 获取该值、并将其乘以 ADC 输出数据的十进制等效值。
此致
Cynthia
您好!
该器件的高精度模式仍使用12位测量、然后获取 其中的16个测量值并将其平均在一起。
这可以有效 地为 您提供使用 N=16的 LSB 大小
另 请注意、在此模式下、数据从累加器数据寄存器而非数据缓冲器中读取
由于需要收集16个样本、因此使用此模式还会降低新有效数据可用的频率。 在数据表的第39页 上可以找到高精度模式部分。 第 24页的数据表中还有关于累加器的公式、用于计算高精度数据。
如果输入源不稳定或不干净、则连续样本的平均值可能反映出与输入的瞬时测量值不同的结果。 但您似乎确实在正确计算它。 我建议使用干净、稳定的直流电源、并在转换期间对其进行监控、以查看其是否在移动。 请记住、16位器件的 LSB 为微伏、因此输入在相同范围内的移动将影响 ADC 测量。 在16位测量中、它不必是很大的变化
此致
Cynthia