您好!
在工作中、我们正在开发一款使用 MSP430FR5994 MCU 收集有关电源总线的一些遥测数据(电压测量、电流测量等)的器件。 我们的硬件工程师决定利用微控制器中内置的 ADC12外设来执行 ADC 转换。
在原型板测试期间、我遇到了 ADC 的奇怪行为。 几乎所有 ADC 通道的读数都显示了不正确的值。 当我用示波器研究问题时、可以看到 ADC 转换以一种奇怪的方式影响电压总线-测得的电压增加、波形看起来像电容器充电/放电:
蓝色通道显示 ADC 转换(标志在 ADC 开始转换之前置位、而在 ADC 繁忙标志清零后清零)。
黄色通道显示了测量的电压。
ADC 数字值与电压尖峰的峰值一致、因此 ADC 本身工作正常。
ADC 配置如下:
* GPIO 引脚设置为模拟输入
* ADC 设为12位分辨率
* ADC 频率(4.8-5MHz、使用内部 ADC 时钟)
* SHT-512周期
*使用单频转换
在深入探究之后、对于小的 SHT值、问题似乎不会重现(下图显示了相同的 ADC 通道、相同的软件、仅 SHT=16周期):
在这两种情况下、ADC 转换期间的 AVCC 电压都完全保持不变。
测量原理图如下(示波器图片可能显示不同的 ADC 通道、但可以在所有 ADC 通道上重现):
稍后、我们考虑执行另一项测试并按如下方式修改测量电路(使用更大的电容器和更小的电阻器):
测试结果未显示 SHT=16或 SHT=512/1024周期时的尖峰。 此外、我还在 launchpad 电路板上执行了测试、测试时将相同的模拟通道连接到大电位计(0.86MOhm)和电容器(100nF)。 结果也正确、对于16/512/1024的 SHTs 值、未检测到电压尖峰。
我已经反复阅读了 ADC 文档(数据表、参考手册、应用手册、勘误表)、但我仍然无法确定它的运行方式是这样的。 根据我的理解、SHT"值越大、结果越好。 唯一的缺点是浪费了更多的功率。
您是否知道问题的根源是什么? 我是否在文档中遗漏了一些内容?
此致、
科纳拉德