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.

[参考译文] TMS320F280049C:通过 CMPSS 设置 ePWM 跳闸

Guru**** 2524460 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1408953/tms320f280049c-epwm-trip-set-through-cmpss

器件型号:TMS320F280049C

工具与软件:

尊敬的 Champ:

我要求为我的客户提供服务。

它们尝试使用比较器 和 EPWM DCAEVT1 / DCAEVT2来触发 TZISR。

(1)。 由于 CMPSS 的数字输出行为似乎充当电平触发器、是否可以通过 CMPSS + ePWM DC 子模块将其配置为边沿触发行为?  或者、当使用 通过 CMPSS 设置的跳闸条件时、通过配置一次性跳闸中断来假装为边沿触发行为?

(2)。 继续第一个问题、客户希望实现什么、如下所示:

根据内部 DAC/外部信号、一旦正引脚上的检测电压高于负引脚1.5V、CMPSS 的比较电压就设置为1.5V、然后触发一次中断。 然后、如果正极引脚上检测到的电压保持高于1.5V、则不再触发中断。 继续、 只能再次触发中断、直到 CMPSS 正输入引脚上检测到的电压低于1.5V、然后再次高于1.5V、作为 TZISR 的真正边沿触发源。 简单来说、 每次比较器输出从0变为1时、都会发生中断。 对于 CMPSS + ePWM 模块是否有可行的权变措施?  

(3)。 当我们谈到 CBC 跳闸时,它的目标是 EPWMxA 和 EPWMxB 输出上的操作,而 TZISR 是同时触发 CBC ,对吗? 如果是、如果 CBC 事件在一段时间内仍然存在、TZISR 是否会一次又一次地中断?

感谢您提供的投入。

此致、

Johnny

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

    尊敬的 Johnny:

    请允许我再花一天时间来审查这个问题。 谢谢!

    此致、

    Allison

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

    您好、Allison、

    期待团队的支持。

    添加第二个问题、询问客户真正想要实施什么。

    此致、

    Johnny

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

    尊敬的 Johnny:

    1) 1)您可以配置 CMPSS 和 ePWM 模块、以便当比较器输出处于特定状态时(高电平或低电平-您可以配置使用的状态)、这可用于改变 ePWM 信号。 这可以通过使用数字比较子模块 DCAH/L 和 DCBH/L 信号路径来实现。 请参阅以下代码片段并查看 TRM 的此部分以了解更多详细信息。 这是否是客户的目标用例?

      

    2) 2)您是否说、每个周期都发生跳闸、条件为真? 如果客户使用比较器输出来触发一次性跳变而不是逐周期跳变、则可以解决此问题。 这是否可以解决客户的问题?

    3) 3)如果在清除标志时 CBC 跳闸条件仍然是活动的、则将再次设置这些标志-请参阅以下代码片段、该代码片段来自"TRM 跳闸区域"一章、其中对此进行了介绍。

    此致、

    Allison

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

    您好、Allison、

    感谢您的意见。

    1)。 是的、这是客户配置的用例。

    2)。 让我来解释更多。 最初我也建议客户一次性出行、同时 考虑到客户下面介绍的实际设计、可能有问题。

    当比较器数字输出处于特定状态(0/1)时、输出1表示使用 TZISR 触发一次性跳闸、然后执行一次  TZISR、然后离开 TZISR 之前、我们将手动清除该标志。 因此,如果跳闸条件仍然有效(比较器数字输出),则它将再次执行中断。 在这个注释中、如果正输入始终>负输入、数字输出可能仍会以1输出、那么它将再次触发 单稳态 TZISR、此行为可能仍然看起来为电平触发器、而不是边沿触发器。

    客户期望执行一次 TZISR、当它离开 ISR 时、如何知道下一次数字输出 从0变为1时作为边沿触发的时间、然后如果该边沿发生、则再次触发 TZISR。 因此、CPMSS 正输入始终大于负输入时不会发生这种情况、然后使用 TZISR 继续触发一次性跳闸。 希望描述清楚。

    谢谢。此致、

    Johnny

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

    尊敬的 Johnny:

    Allison 目前不在办公室;请期待延迟回复。 对此造成的不便、我深表歉意。

    此致、

    Delaney

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

    尊敬的 Johnny:

    感谢您的耐心等待。 您是否说客户需要跳闸仅发生在比较器边沿(例如、0->1或1-->0)、而不是根据比较器输出的状态发生? 客户是否考虑过使用 ECAP? 我可以咨询 ECAP 专家、了解这是否可以用作用例。

    此致、

    Allison

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="488507" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1408953/tms320f280049c-epwm-trip-set-through-cmpss/5399708 #5399708"]客户期望 TZISR 一次执行什么内容?当客户离开 ISR 时、如何知道下一次数字输出 从0变为1作为边沿触发时、如果该边沿出现、则再次触发 TZISR。

    也许尝试在退出 ISR 处理程序之前清除 RS 输出锁存(CMPSS)。 可能存在阈值 CMPSS±输入电气规格部分。 可能会澄清边沿条件行为、并且软件可以向 CMPSS 输入添加迟滞、使边沿过软。 此外、还可以添加比较器消隐 ePWM 配置控制 CMPSS 何时/如何响应发生器 A/B 输出占空比的 PWM 周期。

    /* Set 3x hysteresis on comparator inputs */
    CMPSS_setHysteresis(obj->cmpssHandle[cnt], 3);
    
    // SW clear high comparator digital filter output latch
    CMPSS_clearFilterLatchHigh(obj->cmpssHandle[cnt]);
    /* Delay 10us */
    DEVICE_DELAY_US(1);
    // SW clear low comparator digital filter output latch
    CMPSS_clearFilterLatchLow(obj->cmpssHandle[cnt]);
    
           /* Set the DC-1A/1B BLANKWDW to sync PWM periods
             * TRM: 18.1.4.2 PG.1878 Figures 18-54/55 */
            //EPWM_setDigitalCompareBlankingEvent(obj->pwmHandle[cnt], EPWM_DC_WINDOW_START_TBCTR_ZERO);
    																//EPWM_DC_WINDOW_START_TBCTR_PERIOD
    
            /* Set DCx offset between window start pulse and blanking
             * window in number TBCLK's(10ns), offset=10µs  */
            //EPWM_setDigitalCompareWindowOffset(obj->pwmHandle[cnt], 1000);
    
            /* Set DCx filter blanking window width TBCLK(10ns), width=5µs */
            //EPWM_setDigitalCompareWindowLength(obj->pwmHandle[cnt], 500);
    
            /* Enable the DCx Blanking window */
            //EPWM_enableDigitalCompareBlankingWindow(obj->pwmHandle[cnt]);
    
            /* Sset the Edge filter mode for Rise/Fall */
            //EPWM_setDigitalCompareEdgeFilterMode(obj->pwmHandle[cnt], EPWM_DC_EDGEFILT_MODE_RISING);
    
            /* Set DC filter 1 edge count required to trigger DC events */
            //EPWM_setDigitalCompareEdgeFilterEdgeCount(obj->pwmHandle[cnt], EPWM_DC_EDGEFILT_EDGECNT_1);
    
            /* Enable the DC edge filter */
            //EPWM_enableDigitalCompareEdgeFilter(obj->pwmHandle[cnt]);

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

    您好、Allison、

    TZISR (第1次)首次基于比较器输出的状态发生。 然后、仅当 比较器边沿状态从0-->1变为0时、下一个 TZISR (第2)才会再次发生

    这意味着 序列将采用以下方式:

    CMPSS V+> V-、然后 比较器输出1

    2.首次发生 TZISR (发生第1次 TZISR)

    3. CMPSS V+> V- 持续 保持不变、以使比较器输出保持为1

    4.第二次触发 TZISR 仅用于比较器输出边沿触发(因此比较器输出1 (步骤3中的状态)-->  0->1 (此时发生第2个 TZISR) )、当然在能够 触发第二个 TZISR 之前、在其他地方清除了第一个 TZISR 标志。

    如果使用 ECAP、我们不知道 CMPSS V+> V-标准是否同时满足、来触发 TZISR、除非 也轮询 SW 中的比较器输出。

    谢谢。此致、

    Johnny

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

    尊敬的 Johny:

    客户必须直接从 x49c TRM 进行一些研究、以完全了解 CMPSS 的工作原理。

    16.6使用 CMPSS
    16.6.1 LATCHCLR、EPWMSYNCPER 和 EPWMBLANK 信号
    LATCHCLR 信号在之后保持数字滤波器、同步块和锁存输出处于复位(0)状态
    所需的延迟。 使用 xLATCHCLR (x="H"或"L")在软件中激活它。 它也可以通过激活
    设置 xSYNCCLREN (x="H"或"L")时的 EPWMSYNCPER。 如果需要更长的 LATCHCLR 信号、则
    通过设置 BLANKEN、可以使用 EPWMBLANK 信号进行扩展。
    EPWMSYNCPER 和 EPWMBLANK (BLANKWDW)来自时基和数字比较
    和 ePWM 的不同子模块。 有关如何生成这两个信号的详细说明、请参阅
    添加到"增强型脉宽调制器(ePWM)"章节中的相应子模块部分。
    当 COMPDACCTL [SWLOADSEL]= 1时加载 DACxVALA 的 EPWMSYNCPER 信号是电平触发器
    基准输入负载。 如果 ePWM 的 TBCTR 和 TBPRD 都为0、EPWMSYNCPER 将保持为高电平、DACxVALA
    将立即从 DACxVALS 加载、而与 COMPDACCTL [SWLOADSEL]的值无关。 原因
    这、建议在将 COMPDACCTL [SWLOADSEL]设置为1之前先配置 ePWM。
    注释
    CMPSS 从 ePWM 接收的 SYNC 信号的名称已更新
    PWMSYNC 到 EPWMSYNCPER (SYNCPER/PWMSYNCPER/EPWMxSYNCPER)以避免混淆
    与其他 ePWM 同步信号 EPWMSYNCI 和 EPWMSYNCO 进行通信。 以了解具体内容的说明
    这些信号、请参阅增强型脉宽调制器(ePWM)一章。
    16.6.2同步器、数字滤波器和锁存延迟
    同步块增加了1-2个 sysclk 的延迟。 如果绕过数字滤波器(所有滤波器设置均为0)、则
    数字滤波器将增加2 sysclk 的延迟。 锁存器会增加1个 SYSCLK 延迟。
    www.ti.com 比较器子系统(CMPSS)
    SPRUI33D–

    16.6.3校准 CMPSS
    CMPSS 有两个偏移误差源:比较器偏移误差和比较器偏移误差。 且长度一致
    手动、比较器失调电压误差称为以输入为基准的失调电压误差、而比较器失调电压误差称为
    称为静态失调电压误差。 有关其值、请参阅特定于器件的数据手册。
    如果比较器的两个输入都是从一个引脚驱动的、则仅适用比较器偏移量误差。 但是如果
    比较器的反相输入由比较器驱动、则仅适用比较器的偏移误差。 这是
    因为比较器失调电压误差包括比较器失调电压误差。
    由于偏移误差、建议校准 CMPSS、以确保按预期发生跳闸
    误差。 以下流程概述了在比较器的反相输入为时如何执行校准
    从 Compdac 驱动。
    校准前注意事项:
    1.比较器的同相输入端需要静态直流信号。
    2.应禁用校准迟滞。 校准完成后可将其重新启用。
    3.噪声输入可能会导致校准变得困难、因此建议使用具有非零滤波器设置的锁存器
    具体取决于同相输入端信号的噪声大小。
    这种方法扫过了组件:
    将起始补偿器值设置为最大值0xFFF。
    •可选:可将起始补偿器值设置为最大值、而不是设置为 Vtarget + Static offset
    误差+裕量。 其中 Vtarget 是同相输入上的近似直流电压(静态偏移)
    误差是兼容偏移误差规格、裕度是一定量的保护带。 这种做法可能会产生影响
    从而加快校准速度、但仅在 Vtarget 已知时有效。 或者、如果 Vtarget 是未知的、则 ADC
    可用于对其进行转换。
    2.将比较值减1。
    3、等待压紧装置稳定。
    4.清除闩锁。
    5.等待可能的锁扣设置。
    6.如果设置了锁存器,则发现跳闸代码退出。
    •可选:可以通过以下方式再次检查跳闸代码:
    A.将压缩系数值增加1。
    B.清除闩锁。
    c.等待可能的锁扣设置。
    D.应解除锁定。
    7.如果未设置锁存器、则返回步骤2并重复。
    如果比较器的两个输入都由一个引脚驱动、那么也可以校准 CMPSS。 在本例中、
    该流保持不变、但比较器反相引脚上的电压在外部进行扫描。
    16.6.4启用和禁用 CMPSS 时钟
    如果在比较器处于活动状态时禁用 CMPSS 模块的时钟、则可以使用以下行为
    预期:
    •比较器不受影响、将继续因输入电压而跳变。
    •如果基准12位 DAC 正在驱动比较器的负输入、则负输入上的电压
    可以保持静态和不受影响、但 DACVALA 将不再从斜坡发生器或进行更新
    DACVALS。
    •斜坡发生器、同步块和数字滤波器在其当前状态下冻结。
    启用 CMPSS 的时钟会将其恢复为禁用时钟之前的状态。

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

    您好!

    负责这一问题的专家目前不在办公室、于9月16日星期一返回。 请期待您的回复。

    谢谢!

    Luke

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

    尊敬的 Johny 和 Luke

    同时、您可以考虑:

     由于软件设置时间延迟、似乎不建议在 ISR 期间从单稳态切换到连续电平检测标志。 可以为连续 ISR 设置 CMPSS 和 ePWM DAC、以更改 ePWM 占空比(降低逆变器功率)、直到逆变器负载降低时 CMPSS 跳闸故障条件清除、也可以配置一次性故障跳闸模式。 这两种模式都是电平跳变(根据设计)、通过 DACVAL-L/H 负载值使比较器工作。  软件 可以设置延迟计时器来自动清除单次触发故障、或通过紧急按钮输入 GPIO 端口手动清除故障标志。  

    电平比较器的精度取决于如上所述的校准效果。 Pos 和 Neg 比较器输入之间始终存在较小的偏移阈值、 通常为 -20mV。 页141-142 x49c 数据表。

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

    嗨、团队:

     可以通过一种方法在 PWM 本身中启用此边缘滤波器逻辑而不使用 CLB。

    请观看以下演示和示例代码。

    tidrive.ext.ti.com/.../77b58b71-d80c-49de-a5e9-98c11403ffa3

    访问代码: 8uc9{jYb.

    此致、

    Ryan Ma