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.

[参考译文] TMS320F28335:ADC 读取饱和、所有读取值将逐渐变为2048

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/820448/tms320f28335-adc-reading-saturation-all-reading-values-will-gradually-go-to-2048

器件型号:TMS320F28335
主题中讨论的其他器件: MC3403TL082

我们绘制了一个 PCB 板、将 TMS320F28335用作数字控制器。 我们发现 ADC 信号读数有问题。

当我们开始使用 ADC 模块读取值时、开始时所有信号都是正确的。 然而、在大约30秒后、大于和小于1.5V 的值将变为2048 (4096的一半)。 我们将其称为"饱和问题"。

在我的 PCB 板上、ADC 信号首先进入运算放大器以调节电压并在其上添加1.5V 偏移。 这是零输入将向 ADC 模块输出1.5V 电压、最大输入将 输出0V 电压、最小输入将输出3V 电压。 我们使用二极管将 ADC 模块之前的信号钳制在0V 至3.3V 之间。

 当我们检查电路板时会出现一种现象。 我的 PCB 板上有几个电源:(1) 15V 和-15V 为 OPAMP (2) 5V 供电、为参考 IC 和电源 IC 供电。 电源 IC 将为 TMS320F28335的 VDD、VDDA、VDDIO...生成3V 和1.8V 电压。 发生饱和问题后、如果我们关闭15V 和-15V 一段时间、则在我们再次打开15V 和-15V 后、ADC 值将在开始时正确。 但是、它会在稍后再次出现饱和问题。 相反、无论我们如何关闭和打开5V 电源、ADC 值仍然是饱和的。

在 PCB 测试中、我们已经检查了 DSP 上的引脚、例如 ADCREFIN 、 ADCLO、ADCRESEXT、ADCREFFP、ADCREFM、VDDA、VSSA。 所有这些都可以作为说明书正常工作。 这一问题在我们的所有五个板上都出现。

到目前为止、我们没有方向来检查问题。 有人有想法吗?

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

    您好、Lee、

    您是否参考 了《F28335的 ADC 参考指南》中的"上电序列"部分? 在所有电路上电后、ADC 需要5ms 的延迟。 您是否已将其纳入设计中?

    此外、您是否曾尝试绕过运算放大器/二极管以检查问题的根源是什么? 您是否具有此功能?

    这可能有助于缩小问题可能来自哪里的范围。

    此致、

    Marlyn

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

    李振陈

    您能否使用示波器捕获 ADC 输入信号(运算放大器输出)以确保其工作正常?  尽量靠近 ADC 输入引脚进行探测。

    运算放大器输出上是否有任何有源滤波器?

    Tommy

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

    嗨、Tommy、

    感谢你的帮助。  

    图1显示了开始时的波形。  

    黄色的是来自信号发生器的+2V 和-2V 方波。

    蓝色的是 OPAMP 的输出。 蓝色=黄色*(- 4.87/18)+ 1.5 =>输出将为0.96V 和2.04V。

    绿色的是 ePWM 输出、如果0V 进入 DSP、它将输出100%占空比;3V 进入 DSP、它将输出0%占空比。 => 68%和32%

    从图1可以看出、在开始 时、波形都是正确的。

    然而、一段时间后、一侧2.04V (32%占空比)接近50%。

    当我关闭运算放大器的15V/-15V 电源几秒钟时、波形将再次变为正常。

    OPAMP 电路如下所示。 运算放大器输出上有一个 RC 低通滤波器。 我实际上不知道您说的有源滤波器是什么意思。

    -李陈灿

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

    您好、 Marlyn、

    感谢你的帮助。

    以确保上电序列。 我首先为电源 IC 提供5V 电压、以便为 DSP 生成3.3V 和1.8V 电压。 大约10s 后、我打开 OPAMP 的15V/-15V 电压。 然后、我使用信号发生器开始我的实验。  

    我已经测试了几个条件:

    (1)电路板上为15V/-15V 时、直接将信号输入 DSP。 在这种情况下、输出会受到饱和问题的影响。

    开始时的正确波形。

    蓝色的是1V 和2V 的输入信号。

    绿色的是来自 ePWM 模块的输出信号。 如果输入为0V、则输出100%占空比;如果输入为3V、则输出为0%占空比。  

    因此、绿色应该是66%和33%。

    错误的是、32%的占空比逐渐接近50%。

    (2)"无"15V/-15V 板载、 直接将信号输入到 DSP。 在这种情况下、输出没有问题!

    -李陈灿

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

    大家好、Tommy:

    我的团队发现、我发布的波形与我们得出的结论略有不同。

    从 2019年7月16日上午3:21的答复中显示的波形 可以看出、在输入电压大于或小于1.5V 时、占空比更像是具有17%的额外占空比。

    正确的波形应该是33%和66%的占空比。 然而、在运行一段时间后、占空比将为50%和83%。  

    这意味着 DSP 逐渐感应 到-0.5V 偏移。 在这种情况下、进入 DSP 之前的输入信号为1V 和2V、但 DSP 逐渐感应到0.5V 和1.5V。 因此、DSP 生成83%的占空比和50%的占空比。   

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

    李晨灿

    对于该线程的调试范围、我们将仅考虑 ADC 本身。  重点应放在驱动到 ADC 输入引脚上的电压及其相关的转换结果上。  ePWM 驱动和运算放大器配置等其他变量会使噪声分散注意力。  在转换到交流信号之前、使用静态直流输入信号可能更有益处。

    当您确定蓝色信号的范围时、这是否直接在 ADC 引脚网络上测量、而在探测点和 ADC 引脚之间没有任何其他组件?  

    当您获得意外的 ADC 结果时、似乎存在可见的信号干扰。  对此应进行调查。  您能否确认馈送 ADC 的信号具有足够的带宽来在 ACQ_PS 窗口内为通道电容器充电?  以下是数据表中的 ADC 输入模型:

    Tommy

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

    大家好、Tommy、

    我用了一些时间来测试我的电路。 很抱歉等待。

    OPAMP 电路如下所示。 在 OPAMP 处理完毕后、输出信号将进入 DSP。

    我测量了 OPAMP 输出侧的三个点。

    波形1位于实验开始处。 输入信号为-4V。 因此 OPAMP 输出将为2.58V。 所有这三个点都非常接近计算值。

    一段时间后、DSP 开始出错。 尽管 OPAMP 输出与开始时不同、但值差别不大、导致 DSP 出错。 如果 DSP ePWM 输出为35.5%、OPAMP 输出应为1.95V。

    DSP 现象如以下视频所示。 从视频的42秒开始。

    https://youtu.be/GxI2D5WfK88

    我已尝试更改 ACQ_PS。 然而,这一现象仍然存在。

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

    李晨灿

    我建议存储一个运行中的~20 ADC 转换数组、并在 ePWM 输出运行时在"Expressions"窗口中监控原始值。  没有足够的证据可以得出 ADC 转换不正确的结论。  这可能是 ePWM 问题。

    Tommy

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

    大家好、Tommy、

    我使用 Code Composer Studio 中的图形工具来显示读取值。

    从图中可以看出、ADC 开始抖动并降至2400左右。

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

    李晨灿

    感谢您捕获该图。

    在我看来、有一些负载会在输入信号上声明自己的状态。  它提醒了我、您的观察结果是、在您对运算放大器进行下电上电后、错误行为消失了。

    您是否有其他由运算放大器驱动的负载?

    我在 MC3403中找到的数据表列出了相对较慢的带宽。  您是否有另一个具有更高带宽的运算放大器可供您尝试?

    它还有助于将示波器捕获放大至100ns/div 或10ns/div 范围、以查看运算放大器如何在 ADC 采样期间调节 C169电压。  例如、当 ADC 以25MHz 运行时、ACQ_PS=0将产生一个1/25MHz=40ns 的采样窗口、其中 Ch 电容器必须稳定。

    Tommy

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

    李晨灿

    自上次更新以来已经有一段时间了。  我假设您能够解决您的问题。

    如果没有、请回复此主题。  如果该线程由于超时而锁定、请创建一个描述问题当前状态的新线程。

    Tommy

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

    大家好、Tommy

    看起来、在 OPAMP 和 DPS ADC 输入之间、有一些意外负载可用作分压器。  

    但是、我现在没有证据来了解正在发生的情况。

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

    嗨、Tommy、

    OPAMP 和 DSP ADC 输入之间没有其他负载。

    我没有更改 MC3403 OPAMP 以检查 OPAMP 的带宽是否重要。

    我对 C169电容器的电压进行了实验。

    有一些有趣的现象。 当 ACQ_PS 未设置为零时。 每次 DSP ADC 采样时间都会出现尖峰。

    图1显示了 C169上的电压。

    为了检查这种现象、我使用不同的 ACQ_PS 来检查采样保持时间。

    这两起案件的总干扰时间为8.8us 和15.6us。 即220和390 ADC 时间(25MHz)。  

    我认为、ADC 采样保持为内部电容充电是一种合理的现象。

    但是、我不知道电压差45.4mV 和79.25mV 是否合理?

    要检查这个问题、首先我从 DSP 操作开始检查干扰。 我发现、在开始时、C169波形上没有干扰。 在运行期间、干扰逐渐上升。  

    其次、我将 C169电容从103 (10nF)变为105 (1uF)。

    波形如探头1的下图所示。 探头1处于交流模式、因此我忽略直流值。 波形中似乎没有可识别的干扰。  

    但是、ADC 读数错误仍然存在。   

    今天实验的结论如下所示。

    1、当 ACQ_PS 不等于零时、C169的每个 ADC 采样保持时间都会受到干扰。

    2.当 C169的电容更改为大电容时、干扰消失。 但是、C169上的电压降至低于预期电压的错误电压。

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

    [引用用户="Lee Chen CHan"]

    今天实验的结论如下所示。

    1、当 ACQ_PS 不等于零时、C169的每个 ADC 采样保持时间都会受到干扰。

    2.当 C169的电容更改为大电容时、干扰消失。 但是、C169上的电压降至低于预期电压的错误电压。

    [/报价]

    我的评估是、您的 ADC 误差是由信号调节不足引起的。  我想、您可以通过使用具有更高带宽的运算放大器来获得最佳结果、以便它能够在 ADC 采样期间抵消信号干扰、并允许内部 ADC 通道在 ACQ_PS 窗口内趋稳。

    在 ACQ_PS=0时、您使用较高的 ACQ_PS 设置观察到的干扰仍然出现在器件内、但您很可能无法观察到它们、因为采样窗口太快、以至于干扰没有时间传播回来。  较大的 ACQ_PS 窗口对带宽的要求较低、因此您可以首先从最大 ACQ_PS 设置开始、以查看是否可以满足该窗口。

    正如您所看到的、大 C169电容器有助于满足 ADC 通道电容器的采样需求、但源信号需要能够在下一次 ADC 采样之前将 C169重新充电至正确的电平。  我认为您需要确定1uF C169的观察到的直流电平是否正确、以及它是否与 ADC 转换匹配。

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

    大家好、尤其是 Tommy、

    经过几次试验、我终于发现了 ADC 模块上的错误!

    简而言之、这是一个负电压、这会导致 ADC 模块发生故障。

    在我的 PCB 布局中、有一个由 TL082 OPAMP 组成的电压跟随器。 该电压跟随器提供输入缓冲器、让我的传感器信号驱动 ADC 模块。  

    但是、当跟随器的输入悬空(未连接任何元件)时、它会向 ADC 模块输出-1V 信号。

    尽管我有一个二极管对将信号钳位到-0.75V、但该负信号已经影响 DSP ADC 模块。

    在我的实验中、  

    当负信号小于-6V 时、

    ADC 模块开始捕获错误信号。

    此外、  

    我们都知道、ADC 有 A 和 B 两组。

    如果一组中的信号之一太负、

    整个团队将一起出错。

    下面是我的体验波形、  

    使用计算机获取正弦波的 ADC 信号(在向左移动4位之前、因此值在0 ~ 65536范围内)。

    从结果可以看出、当其中一个 ADC 获得负输入时、同一组中的另一个 ADC 模块将出错。  

    要得出这个问题的结论、信号饱和问题不是由缓慢的运算放大器引起的、而是由 DSP 本身引起的。

    负输入让 DSP 开始通过内部二极管保护自身、让 ADC 模块获得错误的值。

    感谢向我提供宝贵意见的每个人、帮助我逐步发现问题!