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.

[参考译文] TMS320F28379D:在同步源之前 CMPSS2斜坡复位

Guru**** 2609895 points
Other Parts Discussed in Thread: TMS320F28379D, TMS320F28377D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1024970/tms320f28379d-cmpss2-ramp-resetting-before-sync-source

器件型号:TMS320F28379D
主题中讨论的其他器件: TMS320F28377D

CMPSS2设置为通过 PWM4的 CMPC 进行斜升和复位,在这种情况下,CMPC 设置为5 (CMPA 也设置为5,控制 PWM4下降沿的发生位置,因此比较器应在 PWM4的每个下降沿复位)。 我们注意到、它将在每个周期的早期复位大约15ns。 我们在与问题1和问题2 (链接)相同的设置下观察到了这一点。 我们在 TMS320F28379D 评估卡和使用 TMS320F28377D 的定制硬件上都观察到了此问题。 CMPSS2+的输入为0.360V。 微控制器的时钟频率为20MHz、PLL 配置为产生200MHz 的系统时钟、PWM 时钟设置为100MHz。

最小工作代码为 attachede2e.ti.com/.../1222.minimal_5F00_working_5F00_example.zip

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

    您好、Timothy、

    您能否提供更高分辨率的示波器截图? 我无法在您所附的文件中说明详情。

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

    你(们)好、Frank 希望这更好:

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

    您好!

    感谢您提供新的示波器屏幕截图。 这肯定要好得多。 因此、斜坡发生器将在以下两种情况之一复位:比较器跳闸或 pwmsyncper 信号。 在这2个信号中、您希望在您的应用中进行复位?

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

    我们期望它从 PWMSYNC 信号复位

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

    更确切地说、比较器已经跳闸、并且仍然跳闸。 我们期望斜坡发生器复位 PWM4的 SYNC 信号、从而将斜坡电平提高到应用到比较器正输入端的电压以上、从而导致比较器不再跳闸

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

    您好、Timothy、

    感谢您提供额外的详细信息。 我查看了 EPWM4配置的代码以及示波器屏幕截图。 配置代码没有太大问题、除了在调用 InitCMPSS2以考虑 CMPSS 加电时间后必须添加延迟。 不过、这不是问题的根源。

    由于您正在监控 cmpss 锁存器输出并使用 cmpss 滤波器、因此很难判断发生了什么情况、原因有以下几个:

    a.滤波器会延迟跳闸。 尽管您正在监控锁存输出、但在 F28379器件上、pwmsynper 信号会清除锁存器、但不会清除滤波器、因此可以立即设置锁存器、因为 pwmsynper 信号是一个短脉冲。

    b.您的 cmpss 斜坡从0.5V 开始、正输入设置为0.36v。 由于您已将斜坡编程为递减50mV、因此比较器理想情况下将跳闸为15ns (3个 sysclks)、但不会发生这种情况、因为 compdac 无法快速稳定。

    出于此调试的目的、请禁用滤波器(将滤波器设置设置为0)、而不是监控锁存输出、而是监控 COMPsts 输出。 这应该可以更好地了解发生了什么。 请在此配置中提供示波器截图。 谢谢。  

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

    这是示波器截图和更新的代码。 它似乎在 PWM4复位信号之后不久被跳闸、但在跳闸后很快将自身复位。  

    当我重新启用锁存器时、它保持跳闸状态、但会提前复位。  

    最后、我们注意到它实际上遵循 CMPC 而不是 CMPA。 在原始示例中、它们都设置为5。 以下是锁存器、无滤波器、CMPA=5、CMPC=15行为的屏幕截图:

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

    您好、Timothy、

    [引用 userid="494684" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1024970/tms320f28379d-cmpss2-ramp-resetting-before-sync-source/3805119 #3805119"]以下是范围截屏和更新的代码。 它似乎在 PWM4复位信号之后不久被跳闸、但在跳闸后很快将自身复位。[/引述]

    这是正确的行为。 将 rampgen 编程为从0.5V 开始、并针对每个 SYSCLK 将其递减至50mV。 根据您的配置代码、pwmsyncper 在 pwm4的下降沿触发。 在 pwmsyncper 信号上、rampgen 复位并开始递减。 从示波器屏幕截图可以看到、pwm4低电平和 cmpss 跳闸之间存在48ns。 这与当比较器被斜坡减量时,compdac 稳定并使其跳闸所需的时间一致。 如前所述、当比较器跳闸时、它还会重置斜坡、但不会启动斜坡递减。 因此、您看到的跳闸和复位是正确的。

    [引用 userid="494684" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1024970/tms320f28379d-cmpss2-ramp-resetting-before-sync-source/3805119 #3805119"]当我重新启用闩锁时,它仍然跳闸,但会提前重置。

    我不确定为什么会发生这种情况。 您几乎会看到两个 pwmsyncper 事件:一个在 CTR=0、一个在 CTR=CMPC。 根据您的配置代码、pwmsyncper 信号应仅在 CTR=CMPC 时发生、并且由于您具有 CMPA=CMPC、因此 pwmsyncper 应与 pwm4低电平对齐。 由于锁存器在 pwm4低电平之前清除、因此看起来有一个 pwmsyncper 事件在早期出现。

    [引用 userid="494684" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1024970/tms320f28379d-cmpss2-ramp-resetting-before-sync-source/3805119 #3805119">最后,我们注意到它实际上是遵循 CMPC 而不是 CMPA。 在原始示例中、它们都设置为5。 以下是锁存器行为的屏幕截图、无滤波器、CMPA=5、CMPC=15:

    您可以根据下面的配置代码进行选择。

    EPwm4Regs.HRPCTL.bit.PWMSYNCSELX = 4;              // Sync pulse to reset the DAC is on CTR=CMPC counting up

    您能否再尝试一个实验、将 CMPA 和 CMPC 设置为15、看看是否会发现与 LATCH 输出的第二个示波器快照相同的问题。