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.

[参考译文] PMP23126:SYNCPER 信号配置

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1201337/pmp23126-syncper-signal-configuration

器件型号:PMP23126
主题中讨论的其他器件: TIDM-02000

您好!

我正在研究 PMP23126文档。 我的问题与没有 SR 案例的 PCMC 内部环路有关。

1) 1)在下图3中、CMPC 信号用作生成 SYNCPER 信号。 您能否解释一下设计人员为什么选择 CMPC、而不是零或周期? EPWM5可通过设置2作为 epwm5上的相移轻松同步到 ePWM1。 然后、它与 ePWM1完全同步、并且当 TBCTR=zero 时、可轻松生成 SYNCPER 信号。 您能对此发表评论吗?

a)如何确定 CMPC 值? ePWM5的时基计数器配置中是否存在与 ePMW1进行比较的任何相位偏移。 我在软件中没有看到相关行。 请从 Resource Explorer 下载?

b) CMPC 是否等于 ePWM1B 的周期+死区? 在图3中、它看起来不是很好。

c)当 ePWM1B 的死区更改时、您是否更新 CMPC 的值?

d)我下载了  PMP23126的示例代码、但是、我没有看到使用 EPWM5和 SYNCPER 来同步 CMPSS 模块的相关行? 您能告诉我这些行在哪里吗?

e)在 CMPSS 模块上监控和限定 SYNCPER 信号是否存在任何延迟时间?

f)基于事件的相移操作的占空比范围是多少? 我能获得%100或%0占空比吗? 我还针对 TIDM-02000问了这个问题。

2) 2)如何确定消隐窗口长度及其偏移的值? 我认为、如果我在 ePWM1中更改死区、我还应该更新窗口长度吗? 如果需要、您能告诉我这些行在软件中的写入位置吗? 我在软件中没有看到这些行。 如果您给我指导、我可以下载新的。

3) 3)如果我将0设置为 RAMPMAX、作为 CMPSS 的内部 DAC、它的输出电压是否也为0? 加载0时是否有任何最小值?

提前感谢。

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

    尊敬的 Gokhan:

    此设计使用峰值电流模式控制、并且峰值电流比较在开关周期的两个半周期内完成。 是的、您的确可以使用时基计数器来轻松实现 ePWM1和 ePWM2之间的相移、但这更类似于 PSFB 的电压模式控制、在这种情况下、您需要直流阻断电容器来避免变压器最终进入饱和状态。  

    2.由于此设计使用有源钳位、因此需要保持最小占空比、以避免在开关周期的续流期间开启有源钳位。 设置该消隐窗口是为了确保这段最短时间。 消隐窗口应该比死区时间长。 在代码中、C2000根据负载电流更新初级侧死区时间。 您可以在 psfbpcmc.h 中找到死区时间调整代码

    3. RAMPMAX 是指添加到关断阈值的斜坡补偿的起始值。 值0意味着没有斜率补偿、如果有效占空比大于50%、则可能会导致次谐波振荡。  

    此致、

    Ben Lough

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

    您好,Benjamin,感谢您的回答。

    您能详细地重新调查我的问题吗? 我不能得到我需要的东西。

    1. 此设计使用峰值电流模式控制、并且峰值电流比较在开关周期的两个半周期内完成。 是的、您的确可以使用时基计数器来轻松实现 ePWM1和 ePWM2之间的相移、但这更类似于 PSFB 的电压模式控制、在这种情况下、您需要直流阻断电容器来避免变压器最终进入饱和状态。  [/报价]

    是的、我明白了。 不过、我的问题与它无关。 这就是您没有选择 ePWM5和完全 snyc 到 ePWM1的原因。 设置 CMPC、但为什么不设置 TBCTR=ZERO 或 PERIOD。 您可以使 ePWM5与 ePMW1完全同步。

    2. 由于此设计使用有源钳位、因此需要保持最小占空比、以避免在开关周期的续流期间开启有源钳位。 设置该消隐窗口是为了确保这段最短时间。 消隐窗口应该比死区时间长。 在代码中、C2000根据负载电流更新初级侧死区时间。 您可以在 psfbpcmc.h[/quoto]
    中找到死区时间调整代码此消隐窗口已设置以确保此最短时间[/quoto]

    最小占空比值是多少? 您能指导我进行计算吗?  

    在代码中,C2000根据负载电流更新初级侧死区时间。
    [/quote]
    [/quote][/quote]

    但您不会更新代码中的消隐窗口或 CMPC 值。 您要更新吗?

    RAMPMAX 是指添加到关闭阈值的斜坡补偿的起始值。 值0意味着没有斜率补偿、如果有效占空比大于50%、则可能会导致次谐波振荡。  [/报价]

    我的问题与内部 DAC 特性有关。 CMPSS 比较器中是否存在任何偏移。

    提前感谢您。

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

    您好!

    关于这个问题、您能帮助我吗?

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

    尊敬的 Gokhan:

    1.从软件的角度来看,是的。 TBCTR=周期类似于使用 CMPC 值

    从对角初级侧 FET 导通的一刻到有源钳位脉冲的上升沿存在初始延迟。 该延迟是在 psfbpcmc_user_settings.h 中的 PSFB_ACL_DEADBAND_RED_INITIAL 处设置的。 对于具有100Mhz 时钟频率的28004x 器件、70的值为70/(100MHz)= 700ns。 在 psfbpcmc_hal.c 中、ACL 时间由 ePWM CounterCompareValue 设置。 对于值100、这将为有源钳位提供100-70/(100MHz)= 300ns 的脉冲宽度。 该有源钳位脉冲在每个开关周期中激活两次。 因此、您可能具有的最小占空比为2*1us/(1/100kHz)= 0.2。  

    3.无消隐窗口不会更新。

    4.在代码中、有一个为 Iref 设置的最小值、该值被转换为到 CMPSS 的 DAC 值。  这会限制 DAC 的最小值。  

    此致、

    Ben Lough

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

    尊敬的 Benjamin:

    感谢您的详细解释。 我真的 很感激。 您能帮忙跟进吗?

    4. 在代码中、为 IREF 设置了一个最小值、该值会转换为发往 CMPSS 的 DAC 值。  这将限制 DAC 的最小值。

    我认为是0。 它由 PSFB_irampmax_set 设置。 因此、0在内部 CMPSS DAC 输出端可能不意味着0? 您能评论一下吗?

    1.1) 如何确定 CMPC 值? ePWM5的时基计数器配置中是否存在与 ePMW1进行比较的任何相位偏移。 我在软件中没有看到相关行。

    1.2) CMPC 是否等于 ePWM1B 的周期+死区? 在图3中、它看起来不是很好。

    1.3) 当 ePWM1B 的死区发生更改时、您是否更新 CMPC 的值?

    1.4) 我下载了  PMP23126的示例代码、但是、我没有看到使用 EPWM5和 SYNCPER 来同步 CMPSS 模块的相关行? 您能告诉我这些行在哪里吗?

    1.5) 在 CMPSS 模块上是否存在由 SYNCPER 信号引起的受监控和限定的任何延迟时间?

    新问题) 我找不到 测试报告 PMP23126中显示的器件型号为 PAT6561NL 的变压器数据表。

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

    尊敬的 Gokhan:

    下面是变压器数据表:

    /cfs-file/__key/communityserver-discussions-components-files/171/PAT6561NL-MX2.pdf

    我想问一下您正在尝试执行什么操作或更改代码吗? 您正在尝试在应用中实现 PMP23126以外的一些特殊用例吗?

    此致、

    Ben Lough

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

    尊敬的 Benjamin:

    我将尝试设计板的软件、即 PSFB CDR 拓扑。 我使用的是 F280048。 我将研究示例软件、并试图了解 C2000的功能以及如何安全地使用它们。

    您能帮我解决一些问题吗?

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

    尊敬的 Gokhan:

    否、IREF 最小值为0.13。 它在 psfbpcmc_settings.h 中定义 IREF 和 Iramp 不是相同的。 在 psfbpcmc.h 中、PSFB_irampmax_set = PSFB_ICommand_SET_PU * PSFB_IRAMPMAX_SET_RATIO。 该比率在 psfbpcmc_user_settings.h 中设置、为65534。 因此、如果 ICommand 的最小值为0.13、则最小值为8519。

    您可以参考 psfbpcmc_hal.c 和 psfbpcmc_hal.h 其中实施了许多 ePWM 设置。

    1. EPWM1和 EPWM5之间无相移。

    2.它应该等于 EPWM1B 的脉冲宽度+死区时间

    3.否

    4.查看  psfbpcmc_hal.c 和 psfbpcmc_hal.h

    5.如果您担心导致设计问题的比较器延迟时间、我可以参考 CMPSS 文档。  

    https://www.ti.com/lit/ug/sprui33f/sprui33f.pdf?ts=1678301863488&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTMS320F280049C

    此致、

    Ben Lough

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

    谢谢 Benjamin、你帮了我很多。  

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

    尊敬的 Benjamin:

    还有一个问题;

    1) 1)为什么将时基计数器设置为2?

    2) 2)为何将相移设置为2?

    3) 3)为什么将 CMPC 设置为周期-5?

    CMPC 值是常数、我想您不会根据 ePWM1处的死区值在其他行中更新它。

    void PSFB_HAL_setupAdcOvrSamplPWM(uint32_t base1, uint16_t pwm_period_ticks)
    {
        EALLOW;
        EPWM_setPeriodLoadMode(base1, EPWM_PERIOD_DIRECT_LOAD);
        EPWM_setTimeBasePeriod(base1, pwm_period_ticks - 1);
        EPWM_setTimeBaseCounter(base1, 2);
        EPWM_setPhaseShift(base1, 2);
        EPWM_setTimeBaseCounterMode(base1, EPWM_COUNTER_MODE_UP);
        EPWM_setClockPrescaler(base1, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);     EPWM_enablePhaseShiftLoad(base1);     HRPWM_setSyncPulseSource(base1, HRPWM_PWMSYNC_SOURCE_COMPC_UP);
        EPWM_setCounterCompareValue(base1, EPWM_COUNTER_COMPARE_C,
                                     pwm_period_ticks - 5);     
                                     EDIS;
    }
    
    

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

    您好,Gokhan,

    剩余问题的答案:

    1)为什么将时基计数器设置为2?

    可能只是复制粘贴错误。  但是、它不应产生影响、因为 PWM 计数器将同步到 PWM1。

    2)为何将相移设置为2?

    可能只是复制粘贴错误。 不过、这无关紧要、因为此 PWM 未启用相移。

    3)为什么将 CMPC 设置为周期-5?

    通过将 CMPC 用作 SYNCPER 信号、您可以灵活地在 CTR=PRD 之前使 CMPSS 跳变一些周期。 设置 CMPC = PWM_PERIOD_TICKs - 5只是利用了这种灵活性。

    CMPC 值是恒定的,我想您不会根据 ePWM1上的死区值在其他行中更新它。

    正确、CMPC 值始终保持不变。 PWM1死区配置完全与 CMPC 无关。 CMPC 只用于触发 CMPSS。

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

    Gus、您好!

    可能只是复制粘贴错误。 不过、这无关紧要、因为此 PWM 未启用相移。

    [/报价]

    我看到"EPWM_enablePhaseShiftLoad (base1);"用于  PSFB_HAL_setupAdcOvrSamplPWM。 因此,我无法理解。

    使用 CMPC 作为 SYNCPER 信号可提供一定的灵活性,使您可以在 CTR=PRD 之前跳过 CMPSS 一些周期。 设置 CMPC = PWM_PERIOD_TICKs - 5仅利用该灵活性

    可以。 但在 CTR=PRD 或 CTR=zero 下生成 SYNCPER 很容易。 如果有任何技巧,我想学习。 在我看来,一切似乎不仅仅是一个错误。

    谢谢你。

    [/quote]