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.

[参考译文] TMS320F28035:使用 HRCAP 处理 PWM 周期捕获问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1534899/tms320f28035-use-hrcap-for-pwm-period-capture-issue

器件型号:TMS320F28035

工具/软件:

您好、专家

问题 1:

将两个模拟信号馈送到 ADCINA2 和 ADCINA4、并通过芯片的内部比较器生成两个 EVT 事件、以分别同步 PWM3 和 PWM5 的频率转换。 此外、PWM3 同步的同步事件也用于触发 PWM5 的捕获。 通过 DCCAP 寄存器捕获 PWM3 同步时刻 PWM5 的 TBCTR。 但在实际运行期间、发现当为此 PWM5 配置 Cape 时、波形在生成过程中无法正常下拉、从而导致出现异常锯齿波形、如下所示:

其中、通道 CH1 和 CH2 显示不采用 Cape ENABLE 配置的 PWM3 波形、而通道 CH2 和 CH4 显示采集配置后的 PWM5 波形。正常波形应与 CH3 的波形一致。 波形在芯片的 PWM 输出端口进行测试、随后的电源驱动电路断开、以避免干扰芯片的驱动。

问题 2:

使用 HRCAP 进行 PWM 周期捕获。 将引脚 50 上的 PWM3B 连接至引脚 60 上的 HRCAP2 以获取 PWM 周期、并启用 HRCAP2 的上升中断。 主中断由 PWM7 配置为固定的 100kHz。 在实际使用期间、会发生以下问题:

(1) 与引脚 50 捕获的上升沿的转换时间相比、上升中断具有几微秒的不一致延迟。 根据数据表、它最多应该有十个时钟周期(主时钟频率为 60MHz)。 为什么会发生这种情况?

(2) 由于 PWM3B 的可变频率范围为 20kHz 至 500kHz、因此当同时触发主中断和 HRCAP 中断时、HRCAP 中断会异常退出。 尚不确定在异常退出期间捕获的周期值是否保持正常。

在主中断和 HRCAP 中断中、分别配置切换信号。 在主中断中、CH3 信号进入时设置为高电平、退出时设置为低电平。 HRCAP 切换信号使用切换模式、在当前中断中将其设置为高电平、在下一个中断中将其设置为低电平。 两个中断的切换信号都通过 PWM6 在立即模式下进行配置、使用 AQCSFRC 寄存器进行强制切换、以尽快反映中断进入/退出时序。

CH2 是 PWM3B、CH1 是 HRCAP 中断的切换信号、CH3 是主中断的切换信号。

如上图所示、蓝色圈出的区域表示 HRCAP 中断进入时刻、与实际的 PWM3B 驱动边沿相比、该时间延迟了几微秒。 红色圆圈区域显示了 HRCAP 中断的异常退出时刻:当同时触发 HRCAP 中断和主中断时、HRCAP 中断异常退出。 此时、两个相邻主中断之间的间隔偏离 100kHz、但它们的组合周期等于 50kHz。 此时的晶体振荡器频率已被验证为正常。

(3) 当 PWM3B 上存在 800mV 干扰信号时、捕获精度会受到影响(通过电源,单板和信号发生器进行验证)。 数据表未指定用于捕获的上升沿/下降沿电平的说明。 使用 HRCAP 进行捕获时、PWM3B 的实际信号质量要求是什么?

CH2 是馈入 HRCAP2 引脚的捕获信号、噪声信号会导致捕获不准确。

(4) 为避免 HRCAP 中断与主中断之间出现抢占、如果未配置 HRCAP 中断、并且在主中断中直接计算 PWM3 周期值:TPR =(HRCap2Regs.HCCAPCNTFALL0 + HRCap2Regs.HCCAPCNTRISE0 + 1)、是否会出现错误?

问题 3

当 COMP1OUT 和 COMP2OUT 的脉冲宽度为几微秒并且尽管存在相位差但仍部分重叠时、DCCAP 的捕获值为 1、因此无法获得相位差。

附件包含针对上述问题的 PWM 相关配置。

e2e.ti.com/.../PWM-configurations.txt

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

    尊敬的 Ethan:

    我们首先在您的第一个问题上采取一个稳定器、因为这是您尝试使用 HRCAP 捕获的 PWM 输出生成。 如果我们可以首先修复您的 PWM、则继续查看 HRCAP 部分。

    [报价 userid=“494725" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1534899/tms320f28035-use-hrcap-for-pwm-period-capture-issue

    问题 1:

    将两个模拟信号馈送到 ADCINA2 和 ADCINA4、并通过芯片的内部比较器生成两个 EVT 事件、以分别同步 PWM3 和 PWM5 的频率转换。 此外、PWM3 同步的同步事件也用于触发 PWM5 的捕获。 通过 DCCAP 寄存器捕获 PWM3 同步时刻 PWM5 的 TBCTR。 但在实际运行期间、发现当为此 PWM5 配置 Cape 时、波形在生成过程中无法正常下拉、从而导致出现异常锯齿波形、如下所示:

    [/报价]

    我明白什么是 CH3? 您是否说启用数字比较捕捉 PWM5 不再按预期工作? PWM5/PWM3 的同步输入是什么? 我看到这两者都启用了相移。

    在波形图中、我还可以看到 PWM5 的输出进入高阻抗状态、我假设这是您在输出端看到的锯齿波形。

    [报价 userid=“494725" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1534899/tms320f28035-use-hrcap-for-pwm-period-capture-issue

    其中、通道 CH1 和 CH2 显示没有 Cape ENABLE 配置的 PWM3 波形、而通道 CH2 和 CH4 显示采集配置后的 PWM5 波形。 正常波形应该与 PWM3 波形一致。 波形在芯片的 PWM 输出端口进行测试、随后的电源驱动电路断开、以避免干扰芯片的驱动。

    [/报价]

    在下面的代码片段中、您正在为 TZA/TZB 配置 TZCTL、只有在发生单次触发或逐周期时才会针对该条件触发 TZCTL。 您是否尝试使用这些功能之一? 如果您不想逐周期或一次性使用、并且只想使用 DCA/BEVT1/2.force 立即影响输出、那么您还需要配置 TZCTL.DCAEVT1 和 TZCTL.DCBEVT2 寄存器、就像您对 TZA/B 所做的那样

    如果这样可以解决您的第一个问题、请先告诉我。

        EPwm5Regs.TZCTL.bit.TZA = TZ_FORCE_LO;                // IFY建议 可以解决OST封波拖尾问题
        EPwm5Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
    
        // DCAH和DCBH选择
        EPwm5Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP1OUT;    // DCAH:COMP1OUT input
        EPwm5Regs.TZDCSEL.bit.DCAEVT1 = TZ_DCAH_HI;           // DCAH = high, DCAL = don't care
        EPwm5Regs.DCACTL.bit.EVT1SRCSEL = DC_EVT_DIS_FLT;     // DCAEVT1事件不滤波
        EPwm5Regs.DCACTL.bit.EVT1FRCSYNCSEL = DC_EVT_SYNC;    // DCAEVT1 Force Synchronization Signal Select:0 同步信号
        EPwm5Regs.DCACTL.bit.EVT1SYNCE = 1;                   // 1:使能DCAEVT1.sync
        EPwm5Regs.TZCTL.bit.DCAEVT1 = TZ_NO_CHANGE;            // 数字比较事件强制EPWM5A为低电平
    
        EPwm5Regs.DCTRIPSEL.bit.DCBHCOMPSEL = DC_COMP1OUT;    // DCBH:COMP1OUT input
        EPwm5Regs.TZDCSEL.bit.DCBEVT2 = TZ_DCBH_HI;           // DCBH = high, DCBL = don't care
        EPwm5Regs.DCBCTL.bit.EVT2SRCSEL = DC_EVT_DIS_FLT;     // DCBEVT1事件不滤波
        EPwm5Regs.DCBCTL.bit.EVT2FRCSYNCSEL = DC_EVT_SYNC;    // DCAEVT1 Force Synchronization Signal Select:0 同步信号
        EPwm5Regs.TZCTL.bit.DCBEVT2 = TZ_NO_CHANGE;            // 数字比较事件强制EPWM5B为低电平

    此致、

    Ryan Ma

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

    您好、Ryan、

    关于问题 1、客户添加了面向 Cape 的 PWM6 作为替代解决方案。 因此,这是解决的,感谢您的帮助!

    [引用 userid=“494725" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1534899/tms320f28035-use-hrcap-for-pwm-period-capture-issue ](3) 当 PWM3B 上存在 800mV 干扰信号时、捕获精度会受到影响(通过电源,单板和信号发生器进行验证)。 数据表未指定用于捕获的上升沿/下降沿电平的说明。 使用 HRCAP 进行捕获时、PWM3B 的实际信号质量要求是什么?

    您能看看这个问题吗?

    由于 PWM 信号上有噪声、因此需要外部滤波电路。 在确定安全噪声容限后、需要计算滤波电路的参数。

    您能否提供允许的噪声容限的详细信息?

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

    您好、Hanbing、

    数据表未指定用于捕获的上升沿/下降沿电平的说明。 使用 HRCAP 进行捕获时、PWM3B 的实际信号质量要求是什么?

    此 e2e 主题:https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/617135/tms320f28377d-ecap-rising-edge-detection 介绍了用于捕获的上升沿/下降沿电平

    您需要参考 VIH 和 VIL 数据表要求。

    此致、

    Ryan Ma