我在单端模式下使用 ADS1256。 我仅读取转换速率为60Hz 的单个通道。 AVDD 为5.0伏、DVDD 为3.3伏、Vref 为2.5伏。 我的所有数字控制信号都是5伏。 我使用 Arduino 来推动一切。 输入电压将为0至5.0伏。 现在、我有一个电位计作为输入、以便我可以调节输入电压。 我正在控制同步 和复位、我监控 DataReady 转换状态。 我使用全部四条 SPI 线路。
我遇到的问题是、ADC 报告的值达到了其最高限值、大约为3.34伏。 任何高于此值的输入都会继续报告相同的最大 ADC 代码。 我可以下降到0伏输入。 当我按预期将 AIN0引脚短接至 AINCOM 时、该器件会报告非常接近0的 ADC 计数。 我没有尝试过负电压、因为我的应用和电路不提供负电压。 我尝试了增益1和增益2、两者似乎都有相同的问题。 根据 DataReady 下降沿之间的时序、转换速率是正确的。
我已经尝试使用内部偏移和增益校准命令、校准命令似乎需要花费数据表所述的时间、但不会扩大实际输入范围。 我尝试手动推入各种固定增益和失调电压值、但这并不有用。 我可以通过更改增益和偏移来移动和缩放 ADC 报告的值、但这确实会移动输入电压的实际顶部、保持在3.34伏。
我的目标是在0至5伏范围内接近正 ADC 计数的完整范围、因此我得到0至0x7FFFFF。 我必须使用有效的 ADC 报告覆盖0..5伏输入的整个范围、但我不需要转换为任何类型的绝对标度、软件中的多点校准方案将处理任何偏移或标度。
对高达5.0伏的输入电压进行此类检测限制的原因是什么? 如何避免这种情况? 我认为我应该能够测量+/- 2Vref 范围。 由于 Vref 为2.5伏、我应该能够看到+/- 5伏、但我无法看到。