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/UCD3138A:有关 PCM 的环路控制

Guru**** 2496595 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/711324/ccs-ucd3138a-loop-control-about-pcm

器件型号:UCD3138A

工具/软件:Code Composer Studio

环路控制模式为 PCM。 测试完成后、发现 PWM 输出占空比有抖动。 我想知道、抖动来自电压环路或电流环路。 如何进行调试?

前端2 DAC 连接 filter0输出。 然后我输出 FILTERXNREAD、DPWMFILTERDUTIREAD 的数据、发现数据也会抖动。 因此、握手可能会形成电压环路。

然后、我设置前端2 DAC 连接 DAC0并按如下方式设置 DAC0:

LoopMuxRegs.EXTDACCTRL.bit.DAC2_SEL = 0;   

volture.ref = Vout_Cali;
 volte.dac_value = volture.ref;
 FeCtrl0Regs.EADCDAC.BIT.DAC_VALUE = VOLTGE.DAC_VALUE;

我编写的代码是否正确? 如果出现问题、如何获取该问题的有用寄存器信息?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抖动很可能根本不是来自滤波器、而是来自整个系统、包括滤波器系数、不稳定或来自外部噪声。 要查看有关噪声的信息、请在驱动 DPWM 的滤波器输出上放置钳位。 请小心执行此操作、因为您正在运行开环。 我建议您谨慎地向上调整 DPWM、以使您的目标电压与您拥有的负载相匹配。 然后查看进入 EADC 引脚和 EADC 读数寄存器的信号。 如果这是振荡、则输入端会产生一些噪声。 您需要在外部电路中修复该问题。 或者、您可以更改滤波器系数并减小带宽以将其滤除。 还有一种方法可以使用非线性模式来对 EADC 值与零之间的微小差异没有响应。

    如果这是稳定的、则需要调整滤波器系数以实现系统稳定性。 我不知道您只能查看特定滤波器并将噪声归咎于它的任何情况。 滤波器是数字滤波器、因此没有太多的噪声源。 你可以获得限制循环、但这应该非常小。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想禁用电流环路控制、并且仅使用电压环路控制。 但我发现 PWM 占空比是恒定值。 我禁用所有前端2设置、并使用 DPWM0_FILTER_SEL 寄存器设置来自 filter0的 PWM 占空比。 对吗? 还有其他需要注意的吗?
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    比这更困难。 您需要为所有 DPWM 使用滤波器、并且需要为所有四个 DPWM 设置 CLA_EN 位。

    您可能还需要禁用 DPWM 中的 CBC_PWM_AB_EN 位、因为您正在从使用 PCM 切换以控制 DPWM 边沿。 现在、您需要使用滤波器。 最后、您可能需要返回使用 CBC 进行过流。 在 PCM 模式下、但在电压模式下、您可以免费获得过流保护。

    我认为滤波器中可能存在一些缩放、因此您应该看看 YN_SCALE、滤波器钳位和 OUTPW_MULT_SEL。 您需要 output_MULT_SEL 指向 DPWM 周期。

    可能还有其他类型。 我建议查看到目前为止我所选择的内容、如果无法使用、则通过滤波器和 DPWM 进行跟踪。 它有点像跟踪模拟电路。 查看寄存器、看看您是否遇到了错误。

    当然、补偿将完全不同、因为具有脉宽控制功能的单个滤波器的响应与电压和电流滤波器完全不同、随后是峰值电流模式。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据您的回复、我再次更改了代码。 此外、我还将代码与 HSFBFirmware-1.1进行比较、然后更改代码以进行测试。 但 PCM 控制功能未成功禁用。 PWM 输出异常。 您能给我一个电子邮件地址吗? 我可以将 PWM 初始化代码发送给您、并帮助我查看我设置的哪个寄存器错误。
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我从未成功地读取错误代码。 我自己要做的是取出所有滤波器初始化、然后从简单的开环版本的滤波器开始。 我喜欢 UCD 实验中使用的技术、在该技术中、您只在 PID 的 P 系数中输入值、并使用 CPU 采样模式强制值进入 EADC。 我建议从该实验练习代码开始、但保留您得到的 DPWM 除外。 然后让 DPWM 触发滤波器、然后将 DPWM 连接到滤波器、然后从那里执行。

    尝试一次放入一整组更改可能看起来会更快、但实际上并不是。 它太复杂了。

    您还需要查看其余代码并获取对滤波器的动态更改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经使用 CPU 采样模式并将一个值写入 XN 寄存器。 PWM 抖动已从50ns 降至17ns。 但它无法通过环路控制或电压采样了解问题情况。 接下来该怎么办?
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    50 ns 对我来说听起来不是很像。  发生这种情况时、您的脉冲宽度和周期是多少?  换句话说、抖动的百分比是多少?  它是否会导致输出端出现任何超出规格的噪声?   由于数字电路的性质、很难获得像您有时在模拟电路上所能获得的那样可靠的输出波形、但通常不会导致任何系统问题。  很可能、EADC 输入在两个值之间来回移动。

    您可以通过将其保持在开环模式(与现在一样)并使用内存调试器查看 EADC 值来检查它。  EADCVALUE.bit.ERROR_VALUE。

    当您查看 EADC 值时、至少 如果系统处于稳定状态、 则会出现明显误差、您将看到 -128和+127等值。   这是由内存调试器一次只读取一个字节引起的。  通常、EADC 将在0和1以及-1之间来回切换。

    它们将为0、1和0x1ff (对于-1)。  但是、由于存储器调试器一次读取一个字节、有时会在0x1ff 时读取低字节、而在0或1时读取高字节。  这将导致0xff 或 127。  另一方面、如果在零或1时读取低字节、在0x1ff 时读取高字节、则会得到0x100或0x101、这将提供-128或-127。

    由于您运行的是开环、因此您可以调整 EADCDAC 以使读数更为负数或正数、因此您不会看到此问题。

    然后、您可以查看 EADCVAUE 并查看其噪声。  假设您具有可编程负载、您甚至可以在开环模式下针对高负载调整系统。  通常、较高的电流会在 EADC 输入上产生更多噪声。  

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

    我看到的最大计时器可能为100ns。 50ns 是正常值。 输出波形和噪声不符合规格的情况。

    我认为您的意思是 ERROR_VALUE 应为0、1或-1。  对吗? 我看到了 EADCVALUE.bit.ERROR_VALUE 的值。  它在-15到+14之间抖动。  这是根本原因吗? 然后、我在-4和+5之间更改硬件和值抖动。 但 PWM 占空比仍然抖动。 是否需要让误差值在-1和+1之间变化?

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

    EADC 切换的最小量也取决于 AFE 增益。  EADC 是一个6位 ADC、但 EADC 值为9位。  随着增益的变化、EADC 值也会发生偏移。  这会将最低有效位始终保持在1mV 的标称值。  因此、如果增益为8、则最小 EADC_Value 阶跃将为1。

    增益为4时、EADC_Value 阶跃将为2、 增益为2、阶跃为4。  增益为1、步长为8。  

    但是、在任何情况下、EADC 上的任何噪声都将直接通过滤波器并出现在输出上。

    您可以通过减小滤波器上的带宽来降低噪声、还可以使用非线性模式为0附近的范围创建死区。

    但我认为您可能会尝试使 EADC 的输入更安静。  

    您尚未回答我关于开关频率的问题。  您的开关频率是多少?

    您说的是、在满载时、您的开关导通时间仅为100ns 吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    开关频率为200K。 开关导通时间不仅仅是100ns。 PWM 占空比输出具有100ns 抖动。
    您知道、在将电压采样更改为差分信号后、EADCVALUE.bit.ERROR_VALUE 会降低、但 PWM 占空比不会降低。 它不符合理论。
    我将 AFE 增益从1更改为0和3。 外观不是很好。 由于 ERROR_VALUE 抖动、AFE 增益从1 (4mv)更改为0 (8mv)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在同一 Vout 和 Iout 点上使用 CPU_sample 时、您是否尝试查看过错误值? 这将使您能够查看由电路和前端引起的噪声量 换句话说、您可以排除 UCD 中的补偿滤波器。 之后、您需要查看总环路、可能会降低滤波器系数的带宽、或使用非线性模式在零误差附近创建死区、因此误差的微小变化不会影响滤波器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。 我在同一 Vout 和 Iout 点使用 CPU_sample 时看到了错误值。 它是一个固定值。 它是开环。 可能是循环中的固定值、结果就是这样。 我不知道我现在如何看到噪声。
    另一个问题是、如果是电压环路控制、如何更改 PWM 占空比? 我可以使用哪个寄存器? 我想将来自 DPWM0A 的 PWM 输出占空比更改为稍微大于来自 DPWM1A 的占空比。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您使用 cpu_sample,您可以从 UCD 看到时钟抖动。 可能会有一些。 您可能会在1和-1之间切换回、并查看对滤波器输出的影响。 在闭环中运行、没有好的方法来判断噪声是由某些滤波器问题引起的、还是来自与受控体相互作用的系数。 我想我们没有发现任何滤波器架构问题会导致噪声。

    如果您希望使用同一个滤波器驱动两个 DPWM 并获得不同的脉冲宽度、我知道的唯一问题是周期调整寄存器。 这可以将脉冲宽度改变固定的量。 如果您在周期调整中输入负值、请确保滤波器上的钳位值较低、并且正极侧的钳位值大于周期调整负极值。 滤波器绝不会为 DPWM 提供负值、但周期调节操作没有下溢保护。 如果滤波器值与周期调整之和为负、则会将其解释为较大的正数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正如您所说的、当环路控制为电压时、我可以使用周期调整寄存器在同一滤波器中获取不同的脉冲宽度。 在 PCM 模式中,通过 DPWMCBCLOCATION 寄存器进行 PWM 占空比控制。 如果我想在电流环路中执行同样的操作、我可以使用哪个寄存器?
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在 PCM 中、导通时间由比较器而不是滤波器/DPWM 进行设置。  因此、周期调整不起作用。  在 PCM 模式下、我不知道有什么方法可以完成您想要的任务。  为什么您希望不同脉冲上具有不同的长度?

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

    我不知道如何清楚地说明原因。 电流在电压环路中偏斜。 因此,我使用周期调整寄存器来更改校准电流的占空比宽度。 在 PCM 模式下、如果来自电流偏移、也需要执行同样的操作来查看抖动。

    我不知道为什么不能在描述中插入图片。 我想您在看到波浪后就会知道原因。

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

    我不知道为什么你也不能插入图片。  您需要单击"插入代码"、"附加文件"等内容的位置...   然后您将看到另一个屏幕

    如下所示:

    您应该能够将内容粘贴到此屏幕。

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

    这是上传测试。  如果可以、我将对其进行解释。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、下面是我上传孙子攀登图片的方式。 单击下面的"插入代码、附加文件等"。 然后、您应该会看到一个更高级的屏幕。 我只是尝试粘贴图片、这似乎是有效的、但实际上不是。 相反、单击要插入图片的回形针、然后转到并从文件中选择图片、然后这样做。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CH2:DPWM0A 通道3:电流@EP2

            控制环路仅是电压。 您可以看到电流信号可能会进入饱和状态。 然后我使用周期调整寄存器添加10ns 占空比来校准电流信号。 它会改变正常状态,但10ns 太小。 因此 、电压环路控制对我们的模块来说并不是很好。  

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

    CH1:电流信号@ EP2 ch3:DPWM0A CH4:DPWM1A

    我在 PCM 模式下获得波形。 虽然您说奶昔是50ns,但没关系。 但输出纹波将超出规格。 它具有一些异常的凹凸。 它使输出纹波变得更加糟糕。 我们需要搜索原因、因此进行一些测试。 此时、不知道抖动来自电压环路或电流环路。

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

    波形是输出纹波。 模块输出电压为12V。

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

    ???

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ????
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如前所述、输出纹波通常不来自特定的环路。 它要么来自抖动、输入信号中的噪声、要么来自系数与电源设备之间的不匹配。 我已经尽可能地带您来、我将把这个线程分配给在噪声和系数方面更专业的人。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Zhiwei、

    您是否检查了环路响应? 如果带宽过大、抖动可能会导致更多纹波。

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