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:针对 PWM 频率变化触发 CMPSS

Guru**** 2560390 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1276141/tms320f28379d-cmpss-triggering-on-pwm-frequency-change

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

我开始使用 CMPSS。


自行测试:

作为测试、我已将 CMPSS5 DACH 设置为2048。  如果我将 GND 连接到引脚、PWM 将按预期工作。 如果我连接3.3V、PWM 输出正如预期的那样被禁用。

但是、如果我将 CMPSS5 DACH 设置为20并将引脚连接到 GND、则我观察到的是:

  • 如果 PWM 从100%占空比启动、一切似乎都正常
  • 如果我更改 PWM 占空比、CMPSS5会跳闸、PWM 输出会被禁用。
  • 共享引脚上的 ADC 读数在结果寄存器中显示"0"

PWM 以10kHz 的频率触发同一引脚的 ADC 采样。   

关于更改 EPWM 通道的占空比会在与 CMPSS 相同的引脚上触发 ADC 转换、有什么建议可能会导致 CMPSS 跳闸?

我的项目的一些细节如下。  我将使用 LaunchPad_XL 对28379D 进行测试。

谢谢!

CMPSS/Xbar 配置:

CMPSS_enableModule (CMPSS5_base);
CMPSS_CONFIGHighComparator (CMPSS5_base、CMPSS_INSRC_DAC);

CMPSS_CONFIGDAC (CMPSS5_BASE、CMPSS_DACREF_VDDA | CMPSS_DACVAL_SYSCLK | CMPSS_DACSRC_SHDW);
CMPSS_setDACValueHigh (CMPSS5_base、20);


CMPSS_CONFIGFilterHigh (CMPSS5_base、0x3FF、32、31);
CMPSS_initFilterHigh (CMPSS5_base);


CMPSS_configOutputsHigh (CMPSS5_base、CMPSS_TRIP_SYNC_COMP | CMPSS_TRIPOUT_SYNC_COMP);

//配置 EPWM XBAR
XBAR_setEPWMMuxConfig (XBAR_TRIP4、XBAR_EPWM_MUX08_CMPSS5_CTRIPH);
XBAR_enableEPWMMUX (XBAR_TRIP4、XBAR_MUX08);

//配置输出 XBAR
XBAR_setOutputMuxConfig (XBAR_Output2、XBAR_OUT_MUX08_CMPSS5_CTRIPOUTH);
XBAR_enableOutputMux (XBAR_Output2、XBAR_MUX08);

PWM 配置:

EPWM_setTripZoneAction (EPWM4_base、EPWM_TZ_ACTION_EVENT_TZA、EPWM_TZ_ACTION_LOW);
ePWM_setTripZoneAction (EPWM4_base、ePWM_TZ_ACTION_EVENT_TZB、ePWM_TZ_ACTION_LOW);

EPWM_setTripZoneDigitalCompareEventCondition (EPWM4_base、EPWM_TZ_DC_OUTPUT_B1、EPWM_TZ_EVENT_DCXH_HIGH);

EPWM_enableDigitalCompareTripCombinationInput (EPWM4_base、EPWM_DC_combination_TRIPIN4、EPWM_DC_TYPE_DCBH);

ePWM_enableTripZoneSignals (EPWM4_BASE、EPWM_TZ_SIGNAL_DCBEVT1);

EPWM_setDigitalCompareEventSource (EPWM4_BASE、EPWM_DC_MODULE_B、EPWM_DC_EVENT_1、EPWM_DC_EVENT_SOURCE_ORIG_SIGNAL);

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

    对于上述代码片段、我已经尝试了同步和滤波模式。  上述操作是我对 SYNC 的设置。

    我也尝试过具有相同结果的滤波器。  以下是我为了使用 CMPSS 滤波器而修改的内容:

    CMPSS_configOutputsHigh (CMPSS5_base、CMPSS_TRIP_FILTER | CMPSS_TRIP_FILTER);

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

    尊敬的 Mark:

    您在 DAC 中使用什么基准?

     我强烈建议使用 C2000 SysConfig 工具、该工具是 用于配置引脚和外设的直观图形用户界面。

    您可以从 此处下载

    此致、

    哈迪