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:跳闸区操作优先问题

Guru**** 2562120 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1229953/tms320f28379d-trip-zone-action-priority-questions

器件型号:TMS320F28379D

我正在尝试添加 CBC、它可以在4开关降压/升压转换器上处理正负高电流。  我设置 CMPSS HI 和 LOW 来处理电流的极性、这样就不会有问题。  我想要解决的问题是、如何根据是处于降压模式还是升压模式、在 PWM A 和 B 输出上设置不同的操作、并且仍然保持单触发触发操作的设置。  我知道在运行时可能必须更改操作设置。  如果可能的话。  我有以下问题。

  1. 我注意到这些行动有优先事项  
    输出 EPWMxA:
    –TZA (最高)-> DCAEVT1 -> DCAEVT2 (最低)
    –TZAU (最高)-> DCAEVT1U -> DCAEVT2U (最低)
    –TZAD (最高)-> DCAEVT1D -> DCAEVT2D (最低)
    输出 EPWMxB:
    –TZB (最高)-> DCBEVT1 -> DCBEVT2 (最低)
    –TZBU (最高)-> DCBEVT1U -> DCBEVT2U (最低)
    –TZBD (最高)-> DCBEVT1D -> DCBEVT2D (最低)
    "什么都不做"设置是否会自动给下一个"什么都不做"设置 优先级?  例如、如果 TZA 设置为3或不执行任何操作且 DCAEVT1设置为2或强制拉低。  如果 DCAEVT1跳闸、它是强制 PWMA 为低电平、还是它不执行任何操作?  或者、如果我将 TZA 设置为强制低电平、将 DCAEVT1设置为强制 HI 并输入 DCAEVT1、PWMA 是否强制为高电平或低电平?
  2. 如果我从降压模式更改为需要不同操作的升压模式、那么我可以安全地重新加载操作寄存器、而不会出现任何问题
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    "什么都不做"设置是否会自动给下一个"什么都不做"设置 优先级?  例如、如果 TZA 设置为3或不执行任何操作且 DCAEVT1设置为2或强制拉低。  如果 DCAEVT1跳闸、它是强制 PWMA 为低电平、还是它不执行任何操作?  [/报价]

    将此操作设置为"不采取任何操作"是其自身的操作。 因此、在您所述的情况下、如果 DCAEVT1进入、则不会发生任何情况、因为 TZA 设置为不执行任何操作并且具有较高的优先级。 如果您不想执行任何操作、则需要将其保留为(0 -高阻抗状态)

    或者如果我将 TZA 设置为强制低电平并将 DCAEVT1设置为强制 HI 并输入 DCAEVT1,则 PWMA 将强制为高电平还是低电平?

    上述内容相同、因为 TZA 具有优先级、EPWMA 将被强制拉低。

    如果我从降压模式更改为升压模式时需要不同的操作,我可以安全地重新加载操作寄存器而不会出现问题

    您可以更改操作、但不确定它是否是"安全"转换、这取决于您的应用程序以及更新操作的位置。

    我尝试解决的问题是如何根据是降压模式还是升压模式在 PWM A 和 B 输出上设置不同的操作,并仍然保持单触发跳闸的操作设置。

    能否描述一下您的理想配置? 或许我可以帮助提供一个解决方案、但我需要更详细的信息、例如在 BUCK/BOOST 两种情况下、您是否需要设置 CBC 跳闸? 您需要为每种工具采取哪些行动? 您的一次性与什么(例如 DCxEVT 或其他信号)一起使用、为此设置了哪些操作?

    此致、

    马林

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

    尊敬的 Marlyn:

    感谢您的回复。  我按照我所需的方式设置跳闸、但无论我在 DEVxEVTx 操作设置中添加了什么、TZA 和 TZB 都能控制 EPWM 输出的内容。   必须有办法绕过 TZA 和 TZB 设置,否则其他设置毫无价值。 有什么建议吗?  

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

    尊敬的 David:

    如果不想使用 TZA/TZB、则需要将其操作设置为 (0 -高阻抗状态)-默认值。

    此致、
    马林

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

    我试了一下,似乎没有关系。  我会再试一次。

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

    大家好、Marlyn、 我已经尝试了高阻态、似乎 DCxEVT2的设置仍然没有效果。  是否必须为 GPIO 设置特定的方式才能使 HI Z 正常工作?  还是内部问题?

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

    尊敬的 David:
    无需以任何特定方式设置 GPIO。 您是否愿意分享您的跳闸区域和数字比较设置、我可以查看它们。

    此致、
    马林

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

    尊敬的 Marlyn:

    "对不起,我也没想到会被你撞见的。"  我有一个问题、当 TZCTL 设置为0 (HI-Z 模式)时、这到底是什么意思?  实际引脚是否处于高阻态?  我只是想知道这种模式在某种程度上对我是否有用。 发生跳闸、我只是无法在我需要的 PWM 上获得特定响应。  当我将 TZA/TZB 设置为高阻态时、无论行程是什么、它看起来都像是 PWMA 和 PWMB 同时变为低电平(不确定它们只是低电平还是处于高阻态)。  我想如果引脚实际上处于高阻态、我们也许能够在输出上放置上拉/下拉电阻以获得所需的结果。  我只是希望从高阻态切换/从高阻态切换足够快。

    谢谢。

    戴夫 G

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

    尊敬的 David:

    我有一个问题,当 TZCTL 设置为0 (HI-Z 模式)时,这到底是什么意思?  [/报价]

    ePWM 输出将由您在这些引脚处于高阻态 模式时设置的操作驱动。 如果输出被驱动为低电平、则这意味着特定的配置会将它们驱动为低电平。  

    行程正在发生,我无法获得所需的 PWM 的特定响应。

    您能描述一下您当前的配置吗? 您如何确保旅行进行?  您对 TZCTL/TZCLT2的设置是什么? 此外、对于系统中发生的每个事件、您所需的输出是多少?  

    此致、

    马林

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

    我可以在 CMPSSL 上强制执行负过流检测、并得到执行 TZA 和 TZB 中任何操作的跳闸(设置了 DCAEVT2标志)。  我可以在 CMPSSH 上强制进行正过流检测、跳闸会在 TZA 和 TZB 中执行任何操作(设置了 DCBEVT2标志)。  我想要的是、如果设置 DCAEVT2标志、我只希望 EPWMA 受到影响、EPWMB 将保持原样运行。  如果设置 DCBEVT2标志、我只希望 EPWMB 受影响、EPWMA 保持原样运行。  我认为此控制器不可能做到这一点、除非有办法完全禁用 TZA 和 TZB 设置的效果。  优先级机制是无用的。

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

    尊敬的 David:

    您能否说明如何使用此图设置您的应用? 我不知道您是使用 CBC 还是一次性使用 DCxEVTx、也不使用。

    我认为此控制器不可能做到这一点,除非有办法完全禁用 TZA 和 TZB 设置的效果。  优先级机制无效。

    有关逻辑工作原理的一些背景、而无需知道配置的详细信息。 如果您将 DCxEVTx 事件设置为 CBC 或一次性、这些事件会通过或门、然后该门传播到 EPWMxA 和 EPWMxB 块。 这意味着每次发生单次触发事件或 CBC 事件时、都会触发 EPWMxA/EPWMxB。 触发时发生的事件基于 TZCTL 寄存器和扩展寄存器(TZCTL2和 TZCTLDCA/TZCTLDCB)。 如果您不希望某个通道(A 或 B)执行某些操作、则必须执行检查以查看发生了什么跳闸并相应地更改 TZCTL 中的操作。 这不是一种直接的方法。

    TZA 和 TZB 具有最高优先级、因此 ePWM 模块的运行将通过这些位指示。 如果要执行 DCxEVTx、请勿将 TZA/TZB 设置为任意值(保留为默认值)、并为 DCxEVTx 设置操作。  

    另一种选择是不浏览跳闸区域子模块中的 CBC 或一次性逻辑、而是在 TZCTL 中为 DCxEVTx 添加一个操作。 如果发生 DCAEVT1/2、则只会触发 EPWMxA;如果发生 DCBEVT1/2、则只会触发 EPWMxB。 但是、TZCTL 寄存器的 DCxEVTx 位中指定的操作只会在 DCxEVTx 事件的持续时间内发生。 在较新的器件中、我们的确增加了一项功能来实现 CBC DCxEVT、而无需经历 CBC 的触发区逻辑。   

    谢谢、此致、

    马林

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

    尊敬的 Marlyn:   

    我想你终于通过了蜘蛛网在我的大脑,我看到了什么。  正是 CBC 的或门逻辑让我困惑。  不过、我有几个问题。

    1. 看起来 CBC 标志不会通过计数器复位为0来清除。  因此、我 必须依赖于通过同步脉冲清除的 cmpss 锁存器。  我已经对其进行了设置。  是否应该增加 DC 中的窗口来解决此问题?  因此、我不会让 DCxEVTx 信号通过计数器=0点、并且 CBC 会错误地触发。
    2. 我只是想确认、我不希望在 TZSEL 寄存器中选择任何选项都使 DCxEVTx 的单个操作正常工作?

    感谢您的帮助。

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

    尊敬的 David:

    我很高兴我们取得了进展!

    看起来计数器重置为0时 CBC 标志不会被清除

    为什么不清楚? 你仍然会看到"CBC"之旅的唯一方式是同时发生 CBC 和一次性。 在这种情况下、仍会由于一次性(或门)而发生跳闸。 否则、CBC 应根据你在 TZCLR 寄存器中指定的操作进行清零。

    因此我没有 DCxEVTx 信号经过计数器== 0点,我 CBC 误触发。

    您可以详细说明一下吗? 我无法遵循如何得到错误 CBC 触发。

    我只是想确认我不希望在 TZSEL 寄存器中为 DCxEVTx 的单个操作选择任何内容可以正常工作吗?

    是的。 然而、跳闸只会在数字比较事件期间发生。  

    此致、

    马林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么不清楚? 你仍然会看到"CBC"之旅的唯一方式是同时发生 CBC 和一次性。 在这种情况下、仍会由于一次性(或门)而发生跳闸。 否则、CBC 应根据您在 TZCLR 寄存器中指定的操作进行清零。

    我当时只是想大声地想起来。  由于 TZSEL 中没有内容、因此不会设置 CBC 标志、因此没有内容来清除和恢复常规的 ePWM 操作。  这意味着我必须确保清除 cmpss 锁存器才能恢复常规 ePWM 运行。  在 ePWM 计数器为0时、是否还有其他我应确保清除的东西来仿真 CBC。

    因此、我不会让 DCxEVTx 信号通过计数器=0点、并且 CBC 会错误地触发。

    您可以详细说明一下吗? 我无法遵循如何得到错误 CBC 触发。

    [/报价]

    我在直流滤波器中使用消隐来进行寻址。

    15.11.3使用 CMPSS 触发每个周期的 ePWM
    在使用 CMPSS 逐周期跳闸 ePWM 时、应采取措施防止
    在一个 PWM 周期内将比较器跳闸状态从扩展到下一个周期。 CMPSS 可以
    用于将跳闸条件以信号形式发送给下游 ePWM 模块。 对于峰值电流
    模式控制、每个 PWM 周期预计只有一个跳闸事件。 在某些条件下、可能会出现
    持续或晚跳变事件(到达接近 PWM 周期结束)、在以下情况下结转至下一个 PWM 周期
    不采取预防措施。 如果使用 CMPSS 数字滤波器或 ePWM 数字比较(DC)
    子模块被配置用来鉴定比较器跳闸信号、"N"个时钟周期的鉴定
    会在 ePWM 跳闸逻辑可以响应跳闸信号的逻辑变化之前引入。 一旦一个
    ePWM 跳闸条件合格、跳闸条件将在
    比较器跳闸信号已失效。 如果合格的比较器跳变信号在 N 个周期内保持有效、
    时钟周期之前、在以下条件之后才能清除跳闸条件
    PWM 周期已开始。 因此、新的 PWM 周期将在开始时立即检测跳闸条件。
    为避免出现这种意外跳闸情况、用户应用应采取措施、确保符合条件的
    在每个 PWM 周期结束之前、ePWM 跳闸逻辑看到的跳闸信号无效。 这可以
    通过多种方法实现:
    •设计系统时、应确保在操作之前的 N 个时钟周期内不会将比较器跳闸
    PWM 周期的末尾。
    通过 ePWM 事件滤波器激活比较器跳闸信号的消隐、至少提前两个时钟周期
    连续消隐至少 N 个时钟周期进入下一个 PWM
    取样。
    •如果使用 CMPSS COMPxLATCH 路径、则在 SCL 之前至少清除 N 个时钟周期
    PWM 周期的末尾。 该锁存可由软件清除(通过 COMPSTSCLR)或生成
    早期 PWMSYNCPER 信号。 此器件上的 ePWM 模块能够生成
    在 CMPC 或 CMPD 匹配(通过 HRPCTL)时针对任意 PWMSYNCPER 放置的 PWMSYNCPER
    生成正电压。

    谢谢

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

    尊敬的 David:

    我只想大声说。  由于 TZSEL 中没有内容、因此不会设置 CBC 标志、因此没有内容来清除和恢复常规的 ePWM 操作。  这意味着我必须确保清除 cmpss 锁存器才能恢复常规 ePWM 运行。  在 ePWM 计数器为0时是否有其他东西我应该确保被清除以模拟 CBC。

    不、我想不出你应该清除的任何其他东西、但我个人没有尝试通过数字比较事件来模拟 CBC 跳闸。 如果可以清除 EPWMSYNCPER 信号上的 CMPSS 锁存、我认为这应该处理好。

    此致、

    马林