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.

[参考译文] MSP430FG4617:ADC 测量

Guru**** 668880 points
Other Parts Discussed in Thread: MSP430FG4617
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/981629/msp430fg4617-adc-mesure

器件型号:MSP430FG4617

你好!

我有一个需要使用 MSP430FG4617的 ADC 的应用。

问题是、我没有所需的稳定性。 我有一个焊接了 uC 的 PCB、我将在没有其他组件或模块的情况下对其进行测试。

作为 ADC 的输入信号、我使用 A0通道(P6.0)、该通道连接到20k 电位计

调试程序并定位 ADC 的存储器寄存器时、我注意到每次迭代中的值以1、2、最大5位(十个字节跳转)的形式变化。

有趣的是、我用测试仪来确定 AO 信号的电压、它是稳定的、变化仅为0.1mV。 我尝试使用100nF 电容器对信号进行滤波、结果是相同的。

该计划如下:

void main (void)

WDTCTL = WDTPW + WDTHOLD;//停止看门狗

FLL_CTL0 |= XCAP18PF;
P6SEL |= 0x01;                 //启用 A/D 通道 A0
ADC12CTL0 = REFON + REF2_5V + ADC12ON + SHT0_2; //打开2.5V 基准、设置 SAMP 时间

ADC12CTL1 = SHP;             //使用采样计时器
ADC12MCTL0 = SREF_1;// VR+=Vref+

对于(I = 0x3600;I;I-);            //所需参考启动的延迟。

                            //有关详细信息,请参阅数据表。

ADC12CTL0 |= ENC;            //启用转换

ADC12CTL0 |= ADC12SC;       //开始转换
while (!(ADC12IFG & 0x0001));   //转换完成?

__no_operation();              //在此处设置断点

while (1);

有什么提示吗??

谢谢!

此致、
佩德罗。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pedro、

    您尝试读取的电压是多少?  传感器输出、电池电压等

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    >ADC12CTL0 = REFON + REF2_5V + ADC12ON + SHT0_2;  

    将 POT 用于 ADC 输入的一个危险是、很容易将源阻抗设置为很高的值。 20k 时、我的电子表格显示您至少需要4us 的采样/保持时间、而 SHT=2 (16个 MODCLK)您只需要3us。 如果采样/保持时间太短、这是一种症状。

    作为实验、请尝试将 SHT0=6 (128个时钟)设置为非常高的值、然后查看它是否起作用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好!

    感谢您的回答

    我尝试过这种方法、但结果仍然相同。 我得到1、2或3位变化。

    我甚至将 SHT0_15设置为具有1024个采样/保持时间时钟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    电源来自调试器(5V)、并且我在 GND 和5V 之间连接了功率计。

    这是我尝试读取的线路 A0 (模拟输入0)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下一个实验可能是循环重复运行 ADC、以查看您是否仍然看到较大的变化。

    我想知道基准是否需要很长时间才能稳定--它可能需要17ms [参考数据表(SLAS508J)秒。 5.29]。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pedro、

    您仍有问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好 Dennis。

    很抱歉耽误你的时间。 感谢您的关注。

    我没有解决这个问题、但我停止了测试。 我试过:

    *增加采样时间

    *为 Vref 建立提供更多时间

    *使用100nF 电容器过滤信号

    *循环连续读取 以查看更多数据

    但我仍然遇到2、3。 5位变化

    有趣的是、我使用一个示例代码来读取内部温度、但我仍然看到位变化(电位计断开连接)。

    现在、我想知道它是否是 DGND | AGND 问题。 模拟电路上的高速数字信号交叉。 可以吗?

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pedro、

    是的、可能存在干扰。  您表示 PCB 上没有其他任何东西、因此可以消除其他电路的噪声。  您将什么用于 VDD 和 AVCC 上的旁路/去耦电容器?  您是否在 MSP430的同一层和下面的一层上有一个较大的接地层。

    欢迎您共享原理图和光绘文件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好 Dennis。 我要附上光绘文件+原理图。 PCB 上还有许多其他组件、但这些组件均不用于此测试。 我的意思是 、电路板的所有 I/O 信号都是断开的、并且没有在 SW 中进行编程。

    没有接地平面、只有布线。

    此外、AGND 未按其应有的方式连接到靠近 UC MSP430的 DGND。 对于这一点、我尝试通过 在旁路电容器的 AGND 和 DGND 之间焊接一根小导线来手动连接它。

    这些旁路电容器为4.7uF (陶瓷电容器)。 我在数据表中看到了一个用于 VDD 和 AVCC 的可选100nF 旁路电容器、这些是否真的是必需的?

    谢谢!

    e2e.ti.com/.../FM_2D00_500V1R4R2.rare2e.ti.com/.../fm_2D00_500-V1R4R9.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pedro、

    不幸的是、我无法读取光绘文件。  您可以将光绘文件放入 PDF 格式吗?

    对于 VDD 和 AVCC 上的100nF 旁路电容器、绝对是的。 请注意数据表第5.9节中的注释

    关于将 AGND 连接到 DGND、请参阅 此 E2E 文章

    电容器和连接应如此处所示、否则无法保证您将获得数据表中指定的性能。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pedro、

    我们已经听过您的介绍、现在已经有一段时间了、因此我将假定您能够继续推进您的项目。


    我将此帖子标记为已解决,但如果不是这种情况,请单击“这不能解决我的问题”按钮,并使用更多信息回复此主题。


    如果此主题已锁定、请单击"提出相关问题"按钮、然后在新主题中描述您的问题的当前状态以及您可能需要帮助我们帮助解决您的问题的任何其他详细信息。