工具/软件:
你好。
我正在开发一个电压传感器、这个传感器使用传感器控制器来持续读取 ADC、对读数求平均值、然后将 ADC 值加一个 FIFO。 然后、主 MCU 代码会定期唤醒 TI-RTOS 消息循环以处理传感器控制器的 FIFO 数据、并使用测量的数据更新 OLED 显示。 我还通过 BLE 将采样的数据推送到我们的数据分析应用。
我的问题是当 MCU 唤醒以处理数据时、从待机模式到运行模式的转换会导致 ADC 数据偏斜一个或两个 LSB。 我假设这是由于新打开的电源域影响 ADC 的 Vref 所导致的。
我尝试了通过 Power_setConstraint (PowerCC26XX_SB_disallow)阻止电源域切换来缓解这种情况、但它只将问题减少了大约一半。
下面是我看到的数据图:
ADC 每10us 进行一次采样、但每1000次 ADC 读取一次我都会对值计算、因此每个数据点之间的间隔都是10ms。 我处理数据并每500ms 更新一次显示内容、需要~100ms 来进行处理。 可以看到、在100ms 周期内、ADC 值向上移动一位。 请注意、在除以1000之前、我将 ADC 和乘以16、结果看起来平均读数来自16位 ADC、而不是实际的12位 ADC、因此实际误差是一个或两个 ADC LSB、而不是您在图上看到的20个 LSB。
对于如何防止这种情况发生、您有什么建议吗?
谢谢你
Scott