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.

[参考译文] CCS/LAUNCHXL-F28379D:问题与放大器;TMS320F28379D 中 ADC 器件的问题

Guru**** 2524380 points
Other Parts Discussed in Thread: LAUNCHXL-F28379D, OPA350

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/701473/ccs-launchxl-f28379d-questions-problem-for-adc-part-in-tms320f28379d

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件: OPA350

工具/软件:Code Composer Studio

您好!

我在使用 差分模式(16位)的 TMS320F38279D ADC 程序和硬件中有一些问题。

使用  电路板 LAUNCHXL-F28379D 中的 ADC 模块将频率约为1.9V Vpp 和1KHz 的正弦信号转换为数字信号。 运行结果如下所示。 可以看出、波形在黑色虚线框中出现相位损耗。 为什么会发生这种情况?

我尝试使用主芯片 TMS3220F28379D 制作电路板以实现 A/D 转换。 我使用同一程序进行的 A/D 测试。 与 LAUNCHXL-F28379D 结果相比、结果如下所示。 除了 Vpp、似乎有点错误。  我错过了什么?  

此致、

DITNY。

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

    您好、Yuansheng、

    如果不查看电路、很难说出可能出现的问题、但您应该首先查看以下各项:

    • VDD、VDDIO 和 VDDA 电压符合预期、每个电源的去耦电容器具有适当的幅度和放置。
    • VREFHI 驱动电路是适当的并生成所需的电压。
      • 驱动运算放大器相当靠近器件
      • 适当尺寸的电容器位于 VREFHI 和 VREFLO 之间、并且非常靠近这些引脚
        • 该电容器上存在阻尼电阻器、因此运算放大器将保持稳定(或提取电路板寄生效应已完成、并且在没有分立阻尼电阻器的情况下发现其足够大)
      • 您可能希望对该电路的输出进行示波、并确保其不会振荡。   
    • VREFLO 与 VSSA 建立了很强的连接
    • VSSA 连接到数字接地 VSS
      • (这些是相同的网、或者两个平面在器件附近/下方的单点连接)
    • ADC 输入调节电路已通电并根据需要运行
    • ADC 输入共模在 VREFHI/2的50mV 范围内

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

    很抱歉、错过了几个机会:

    • X1输入频率符合要求
    • 在初始化运行后、PLL 设置在"Expressions"窗口中显示为正确
    • 启用 XCLKOUT 并确保 SYSCLK 符合需要(可能为200MHz)
    • 初始化后、ADC 预分频根据需要进行设置(可能值应为"6")
    • 相关 SOC 的 ADC ACQPS 已适当设置(可能至少 ACQPS = 63 => S+H 为320ns)
    • 输入连接到 ADCP 和 ADCn 通道、这些通道对应于从相关 SOC 读回的 CHSEL 值  

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

    大家好、Devin Cottier。

    感谢您的回复!

    我已经测试了 VDD、VDDIO、VDDA 和 VREFHI 等电压输入、它们的电压是所需的。 我认为 ADC 输入电路和 DSP 程序可能还可以、因为它们都可以在我 的板 模仿在 ADC 模块部分的 LaunchXL-F28379D 焊盘中工作。

    ADC 模块部件的原理图和 PCB 图片如下所示。

    "您可能希望对该电路的输出进行示波并确保其不会振荡"这意味着什么? 另外、我如何测试它?

    此致、DITNY。

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

    尊敬的 DITNY:

    这些是用于 VDDIO 轨的去耦电容器吗?

    这些是为了吸收来自电源的高频瞬态、因此需要物理分配到每个电源引脚并靠近器件。  这可能不会导致您观察到的问题、但这肯定会影响您的设计的噪声和可靠性。  

    基准振荡的问题是运算放大器不适合驱动容性负载。  在大容性负载下、运算放大器输出可能会振荡。  在 ADC 运行期间、您需要对 VREFHI 引脚进行示波、以查找明显的振铃。  如果您使用的是 OPA350 + 0.1欧姆+ 22 μ F 的 LaunchPad 设计、我们已经对电路进行了仿真、以确保其稳定; 只要您不向引脚添加大量额外电容、这应该是可以的。   

    您可能还需要在 ADC 输入上使用电容器。  大约220pF 至330pF、COF 或 NPO 类型。  单端输入在输入和接地之间有电容器、差分输入在两个引脚之间有电容器(在 launchpad 上、这些电容器将位于 BoosterPack 板上)。

    是否确定输入信号使输入引脚不失真?

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

    大家好、Devin Cottier。

    我删除了 ADC 中断中触发源为 ePWM 的几条程序语句。 运行程序时 、它可以大致显示  输入信号的波形。 但是、在 ADCAdcaResults 值中波频似乎并不正确。 输入信号为1KHz、每周期应具有大约10个点。 但是、您可以在图片中看到、它每周期只有6次、如下所示。(TBPRD I 设置为0x1000、 并且 CHSPCLKDIV 和 CLKDIV 是默认设置)。 这是如何发生的? 或者、我是否错过了什么?

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

    0x1000 = 4096。

    ePWM 处于向上计数模式还是向上向下计数模式?

    列出所有时钟设置可能是值得的、例如:
    X1输入
    PLL 倍频器
    PLL 分频器
    PLL 输出产生的 SYSCLK
    ePWM 分频器

    然后验证您可以执行的操作。 例如、SYSYCLK 您可以使用 XCLKOUT 功能进行验证、PLL 乘法器您可以通过查看"Expressions"窗口中的 ClkCfgRegs 进行验证
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Devin Cottier。

    ePWM 处于递增计数状态。 X1输入是一个10MHz 晶振。

    我用于调试的是器件支持 TI 的示例代码'adc_soc_ePWM_cpu01'。 我不会更改您提到的设置中的代码。
    正如我看到的,设置为:IMULT_40、FMULT_0、PLLCLK_BY_2。 那么 PLL 倍频器=40、PLL 分频器=1、对吧?
    您能告诉我在哪里找到以下设置吗?
    PLL 输出产生的 SYSCLK
    ePWM 分频器?

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

    如果 ePWM 时钟为100MHz、ePWM 处于向上计数模式、并且周期为4096个计数、那么采样率应该大约为24kHz。 您看起来与该值(6kHz)有两个数量级的差异。

    检查"Expressions"窗口中的 ePMW 乘法器、看看它是20还是40……您可能没有定义指示代码这是 LaunchPad 的标志?

    检查其他 ePWM 分频器。 您应该只需要一个/2分频器即可从200MHz SYSCCLK 达到100MHz。

    您可能还需要使用 XCLKOUT 验证 SYSCLK。

    您还可以将 ePWM 设置为在触发发生的同时切换引脚、以便您可以通过实验验证采样率。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Devin Cottier。

    你是对的。 正如您所说的、我认为我 没有定义标志来告诉代码这是一个 LaunchPad。 因为我将 IMULT 更改为40、它在器件中工作、支持 TI 针对 Launchpad 和自制电路板的多个代码、 每个周期大约12个点。

    但还有另一个问题。 当将 IMULT 更改为40时,模拟 器件支持 TI 的示例代码的代码在 launchpad 中工作,但不在我的电路板中工作。  我自己的董事会的结果与我首次提议 这一职位时的结果类似。  

    我使用的芯片是28379DPTPS、在 launchpad 中为28379DZWTT。 这种情况是否与不同的芯片有关?

    您能告诉我如何定义标志、让代码知道这是一个 LaunchPad 吗?  

    此致、

    DITNY。

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

    尊敬的 DITNY:

    有关定义符号的信息,请参见 

    您列出的两个器件之间的 w.r.t 不应有任何不同 PLL 频率、ADC 触发频率、ADC 转换时间等