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.

[参考译文] MSP430F5529:MSP430F5529一个 ADC 通道干扰另一个通道问题

Guru**** 2589300 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/934247/msp430f5529-msp430f5529-one-adc-channel-interfere-with-another-channel-issue

器件型号:MSP430F5529

尊敬的 TI 团队/论坛专家:

在以下情况下、您能为我提供帮助吗?

在我的设计中,我使用 MSP430 ADC 通道 A0、A1、A2、A3和 A13。 A0至 A3用于交流电流测量,A13测量直流信号(最大2.5V 直流)。

以下是 ADC 应用程序代码的一些简要设置信息:

  1. ADC12_A 转换序列模式为通道序列。
  2. 软件控制的采样和转换启动。
  3. 基准为内部2.5V
  4. ADC12_A 采样保持时间= 4个 ADC12CLK 周期

默认情况下、A13通道的电压为2.5。

我们发现、即使没有注入电流、A0通道(ADC12MEM0)读取的 ADC 计数值也足以干扰我们的应用。 为了进行故障排除,如果我们将信号降低到 A13为零(将 A13引脚 P7.1强制连接到 GND 信号),则 A0通道的 ADC 计数读数将消失或读数为1/2。 但我们不能将通道 A13设为零,因为该信号取决于传感器(0至2.5V 直流)。

 

  1. 您能否为上述 情况提供固件解决方案? 即如何最大程度地减小 A13对通道 A0的影响。
  2.  我的应用程序使用 A0、A1、A2、A3和 A13。  这是否意味着仅针对这些选定通道的采样和转换时间计数、或将根据 A0至 A13计算时间、即总共14个通道。

    ADC12MCTL0 = ADC12SREF_1+ADC12INCH_0;         

    ADC12MCTL1 = ADC12SREF_1+ADC12INCH_1;

    ADC12MCTL2 = ADC12SREF_1+ADC12INCH_2;         

    ADC12MCTL3 = ADC12SREF_1+ADC12INCH_3;

    ADC12MCTL13 = ADC12SREF_1+ADC12INCH_13+ADC12EOS;

 

Rgds/

ARS

 

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

    用于采样/保持的4个时钟非常短。 过短的采样/保持(无法使采样电容器稳定)可能伪装成通道串扰。  

    您是否使用用户指南(SLAU208Q)第28.2.5.3节中的公式对照传感器的输入阻抗检查了 S/H 时间?

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

    感谢您的宝贵意见。

    [引用用户="Bruce McKenney47378"]

    用于采样/保持的4个时钟非常短。 过短的采样/保持(无法使采样电容器稳定)可能伪装成通道串扰。  

    [/报价]

    好的。 我将检查增大它。 但在没有相同 ADC 时钟周期的情况下、其他通道 A1至 A3也可以。结果很好。

    我认为在 A13 ADC 采样/转换后,通道 A0再次启动。可能是在切换 A0时,内部采样保持电容器无法从 A13状态正确放电。

    [引述 USER="Bruce McKenney47378"]您是否使用用户指南(SLAU208Q)第28.2.5.3节中的公式根据传感器的输入阻抗检查了 S/H 时间?[/QUERPLET]

    所有 ADC 通道都连接到运算放大器 output.sensors、并通过运算放大器连接到 ADC。因此、我想传感器的输入阻抗对于 MSP430 ADC 来说不应成为问题、请参阅 第28.2.5.3节。

    Rgds/

    ARS

     

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

    [引用 user="ARS"] 我的应用程序使用 A0、A1、A2、A3和 A13。  这是否意味着仅针对这些选定通道的采样和转换时间计数、或将根据 A0至 A13计算时间、即总共14个通道。

    ADC12MCTL0 = ADC12SREF_1+ADC12INCH_0;         

    ADC12MCTL1 = ADC12SREF_1+ADC12INCH_1;

    ADC12MCTL2 = ADC12SREF_1+ADC12INCH_2;         

    ADC12MCTL3 = ADC12SREF_1+ADC12INCH_3;

    ADC12MCTL13 = ADC12SREF_1+ADC12INCH_13+ADC12EOS;

    [/报价]

    TI 团队或论坛可以帮助您了解信息吗? 如果仅用于那些选定的通道...那么我可以尝试增加采样/保持时间的 ADC 时钟周期数。 否则,如果是针对14个通道,那么时间对于应用程序至关重要..... 由于以下原因:

    我的设计使用大约135 μ s 的计时器中断...来实现包括数据记录在内的完整应用控制。ADC 仅从该中断例程触发。

    因此,如果使用4个 ADC 时钟周期...5个 ADC 通道 ADC 数据将花费大约35 μ s (采样+转换时间)....和  

    使用8个 ADC 时钟周期...5个 ADC 通道 ADC 数据将花费大约44微秒(采样+转换时间)… 而 如果是要考虑的14个通道

    ADC 数据大约需要122 μ s (采样+转换时间)…… 它非常接近我的全局 计时器中断。

    此致、

    ARS

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

    [引用用户="Bruce McKenney47378"]

    用于采样/保持的4个时钟非常短。 过短的采样/保持(无法使采样电容器稳定)可能伪装成通道串扰。  

    您是否使用用户指南(SLAU208Q)第28.2.5.3节中的公式对照传感器的输入阻抗检查了 S/H 时间?

    [/报价]

    是的。 我检查过的 Bruce。

    正如我说过的...我的传感器电路通过运算放大器和连接在运算放大器和 ADC 通道之间的 R-C 滤波器连接到 MSP430 ADC、电阻为1K 欧姆和100nF。

    因此,对于12位分辨率,通过使用用户指南(SLAU208Q)第28.2.5.3节中的公式,我的设计在理论上要求每个通道1.43 uec。。。 而对于4个 ADC 时钟周期、每个通道的采样保持时间大约为1.66 μ s。

    我可以尝试最小化 ADC 通道干扰的任何其他方法。令人惊讶 的是、在我的情况下、通道 A13不会对通道 A1、A2、A3大有影响。它们只读取3或4个 ADC 计数。

    此致、

    ARS

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

    好的。 我提到了公式、因为有时人们(如我)会忘记、这就是我、嗯、他们看到的症状。

    ADC12OSC 的运行频率通常约为5MHz、即小于1usec S/H 还是将其分频?

    抱歉、我之前漏掉了问题(2):S/H 时间适用于序列中的每次转换。

    您对5个通道或14个通道感兴趣吗? 如果 EOS 在 MCTL13上、您将转换14个通道、因此如果您只需要5个通道、这是不必要的工作/时间。 如果需要、可以设置"ADC12MCTL4 = ADC12SREF_1+ADC12INCH_13+ADC12EOS;"。

    [编辑:更正了一些拼写错误]

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

    Bruce、您好!

    感谢你的帮助。

    [引用用户="Bruce McKenney47378]ADC12OSC 的运行频率通常约为5MHz、即小于1usec S/H 还是将其除以?

    我的设计中的 ADC 时钟以2.4 MHz 的频率运行(源自 SMCLK 并将其向下推导)。此部分的 ADC 有一个勘误表(勘误表号: ADC27),它说明 了在限制范围内获得 ADC12_A 积分和微分非线性的权变措施, ADC 时钟频率应小于2.7MHz

    e2e.ti.com/.../Errata-msp430f5529_5F00_slaz314ac.pdf

    [引用用户="Bruce McKenney47378]]\n 您是否对5个频道或14个频道感兴趣? 如果 EOS 在 MCTL13上、您将转换14个通道、因此如果您只需要5个通道、这是不必要的工作/时间。 如果需要、可以设置"ADC12MCTL4 = ADC12SREF_1+ADC12INCH_13+ADC12EOS;"。[/QUERP]

    我只想使用5个通道、例如 A0、A1、A2、A3 和 A13。但我认为我需要将 ADC12MCTL13用于通道 A13、在这种情况下、无论我是否使用、14个通道都将被采样和转换。

    但您在这里已经很清楚地说明了它。 现在、我可以这样做、只获得 这5 个 ADC 通道的采样/转换时间。

    ADC12MCTL0 = ADC12SREF_1+ADC12INCH_0; // ADC12MEM0

    ADC12MCTL1 = ADC12SREF_1+ADC12INCH_1; // ADC12MEM1

    ADC12MCTL2 = ADC12SREF_1+ADC12INCH_2;// ADC12MEM2

    ADC12MCTL3 = ADC12SREF_1+ADC12INCH_3;// ADC12MEM3

    ADC12MCTL4 = ADC12SREF_1+ADC12INCH_13+ADC12EOS;// 即通道 A13的 ADC12MEM4

    采用上述方法并将采样保持时间增加到8个 ADC 时钟周期有助于我减少通道 A0上的干扰(计数从48减少到大约24),但并未完全消除。

    任何其他建议

    此致/

    ARS

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

    只有通道 A0受到影响似乎很奇怪。 该信号源是否有独特之处?

    如果所有其他操作都失败、请在转换列表的末尾添加一个虚拟通道、并将该输入接地。

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

    一个相当快速的实验是重新排序通道、例如交换 MCTL0/1的 inch 设置(以及读取 MEM0/1的代码)、并查看症状是否随通道发生变化。

    据我所知、您使用的是 CONSEQ=1 (和 MSC=1)、并具有一个135us 计时器触发器? 即、读取最后一个通道和第一个通道之间存在延迟?

    几个月前、另一位用户在此处报告了类似(-ish)的症状:

    https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/895970

    尽管他有(1)个 ADC12_B 而不是 ADC12_A、和(b)个 R/C、而不是运算放大器、为 ADC 通道提供馈送。 Lixin 对电容有一些顾虑、但没有分辨率。 但我想我会提到它。

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

    感谢 David 的建议。

    [引用 user="David Schultz36">只有通道 A0受到影响似乎很奇怪。 该信号源是否有独特之处?[/quot]

    不是真的。 A0、A2是来自相似传感器电路 的高增益通道,而 A1、A3是低 增益通道。 请参阅 图中的电流传感器桥接器连接到 A0/A1 ADC 通道。 可能有助于理解我的问题。

    [引用 user="David Schultz36"]如果所有其他操作都失败,请在转换列表的末尾添加一个虚拟通道,并将该输入绑定到接地。

    是的,我添加了一个虚拟通道。但结果没有变化。 遗憾的是、我无法将该 i/p 连接到 GND ...因为我的硬件已经安装在现场。唯一的可能性是固件更新、

    Rgds、

    ARS

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

    谢谢... Bruce 为我提供有关这个主题的帮助。

    [引用用户="Bruce McKenney47378"]一个相当快速的实验是重新排序通道,例如交换 MCTL0/1的英寸设置(以及读取 MEM0/1的代码),并查看症状是否随通道的变化而变化。

    我尝试重新排序。但行为保持不变。

    [引用用户="Bruce McKenney47378]]据我所知、您使用的是 CONSEQ=1 (和 MSC=1)和135us 计时器触发器? 即、读取最后一个通道和第一个通道之间存在延迟?

    您的答案是.CONSEQ=1 (并且 MSC=1)。在我的代码中,读取最后一个通道和第一个通道之间没有延迟。 所有通道在一个定时器中断中被读取(ADC12MEMx)一次、然后针对下一个采样/转换被触发。

    我已附上我的 ckt. concept....in 上一篇文章的图片。

    Regds、

    ARS

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

    在输入端使用 RC 滤波器时、您需要注意值、但不显示任何值。 由于 R 足够大、导致采样时间问题、因此 C 需要相对于采样电容足够大、以便采样后重新分配电荷、变化小于1/2LSB。

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

    [引用 user="David Schultz36">在输入上使用 RC 滤波器时,您需要小心处理值,但不显示任何值。 [/报价]

    R = 1K 欧姆、C = 100nF

    [引用 user="David Schultz36"]当 R 足够大、足以导致采样时间问题时、C 需要相对于采样电容足够大、以便在采样后重新分配电荷、变化小于1/2LSB[/QUES]

    好的

    寄存器

    ARS

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

    "不变"是指 A0之后出现的症状、还是停留在 MCTL0? 根据对此的答案、您可能需要将"虚拟"通道置于开头而不是结尾

    "延迟"是指"突发之间的时间间隔"、不一定是故意延迟。 我只是想了解一下动态因素。

    另一个实验是将 SHT"向上翻、使其在时间槽内尽可能高。 假设 SHT=2 (16)、我的计算器显示5*(16+12+1)/2.5MHz=58usec、这似乎不足135usec 即可成功。  

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

    [引用用户="Bruce McKenneny47378]"'不变'是否意味着症状出现在 A0之后、还是停留在 MCTL0? [/报价]

    是的、它遵循 A0。

    [引用 user="Bruce McKenney47378"]根据对此问题的回答,您可能希望将“虚拟”通道放在开头而不是结尾处。

    好的。我认为最后是假的(我试过.....) 或者开始不会在逻辑上显著改变结果。无论如何让我试一下。

    [引用用户="Bruce McKenney47378">另一个实验是将 SHT"提高到您可以在时间槽内管理的水平。 假设 SHT=2 (16)、我的计算器显示5*(16+12+1)/2.5MHz=58usec、这似乎足够小于135usec 成功。

    实际上、我会 再添加4个通道。 因此、max SHT=1 (8个时钟周期)、我可以考虑产品设计的最高变体。

    感谢大家。

    Rgds、

    ARS

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

    A0移动的症状似乎确实表明它是电气的、只有该端口。 在 S/H 时间更长的情况下、它得到了改进(即使它没有消失)、这一事实表明了输入阻抗方面的一些问题。

    我没有意识到您计划再增加4个频道。 如果我们假设 A0是唯一有问题的通道、那么下面是另一个技巧:使用 MCTL7-15、从 MCTL7中的 A0开始、并设置 CSTARTADD=7。 设置 SHT0=(长)和 SHT1=(短)。 这将仅对 A0使用更长的 S/H 时间。

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

    您好、ARS、

    几天以来,我们都没有听到您的声音,因此我假设您能够解决您的问题。
    如果情况并非如此,请单击“这无法解决我的问题”按钮,并使用更多信息回复此主题。
    如果此主题锁定、请单击"提出相关问题"按钮、然后在新主题中描述您的问题的当前状态以及您可能需要帮助我们帮助解决您的问题的任何其他详细信息。

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

    Bruce / David、您好、

    感谢您在该主题上提供宝贵的建议和帮助。

    尽管我们已经做了几次实验,以完全消除固件中特定通道的影响(但它会减少一点),但实际上它并没有解决。因此,我看到的唯一选择是我的产品 H/W 设计中的轨道布局更改。

    因此,如果我遇到任何新结果,您可以将此主题标注为 lock.in 案例...我将遵循标准论坛指南来打开与此相关的问题。

    谢谢与 Rgds、

    ARS