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.
您好!
我已经关联到上一个问题、该问题依赖于该问题。 我在 C2000Ware 中实施了时钟丢失检测示例、对 F2837xD 器件进行了一些调整、并让其正常运行、我认为是正确的。
不过、我遇到了一些问题、我不确定它们是否能够修复、以便在外部振荡器缺失的情况下为我们提供更合适的跳闸功能。
我附上了一张结果的照片,并附有我们所期望的答复,我认为这比试图在这里全部输入要有用得多。
本质上、它在发生跳闸的范围内很明显、而在内部振荡器设为200MHz 之前开始在10MHz 上运行的范围内也很明显。
此外、我们需要指示何时从 PWM 提升跳闸、因为我们不想在充电周期之间恢复 PWM 切换。 此行为也可以在示波器中看到、并在随附的图中标注。
在我们的应用中、我们能做些什么来提高这个 MCD 的性能呢?
此致、
Jmh.
JM、您好!
我们有一款 CLOCKFAIL 来自 MCD 的信号、可用于触发动作/跳闸 PWM 输出(设置为低电平、高电平、Hi-Z)。 我建议您参考 TRM (技术参考手册) ePWM 一章中的"跳闸区"子模块
您可以清除 TRIP 标志、以便在设置时钟后开始正常操作。 C2000 ware 中包含 Ex1跳闸区域、可从 ePWM 示例中开始、然后您可以配置 连接到系统时钟故障逻辑的 TZ5、并为其设置适当的跳闸操作。
谢谢。
Prarthan.
你好 PrarThan 感谢你的答复。
我知道跳匣区域已经实现了许多不同的用途、这一点很好理解。 但是、如果您查看随附的照片、会发现 PWM 未按预期跳闸。 如果检测到 CLOCKFAIL、我希望 PWM 会跳闸并保持跳闸、直到它被复位。 不过、在某些时间段中、PWM 频率明显低于编程设定的200kHz。
混淆区域直接位于示波器中黄色信号上升沿的左侧和右侧。 中间10MHz 时钟开始踢脚并引起一些奇怪的行为-这是否看起来像 CLOCKFAIL 跳闸的正常功能?
我认为时钟频率变化时、CLOCKFAIL 跳闸不像正常跳闸区那么简单。 您能建议如何实现我尝试实现的目标的逻辑流程吗? 是否似乎 CLOCKFAIL 信号的 TRIP 标志自动复位、而不需要手动复位?
此致、
JMH
好的,所以你已经实现了 clockfail 的跳闸区在下图中? 仅供参考-需要在跳闸 区域控制寄存器(TZCTL)中定义跳闸操作以采取适当的操作。
您是否在做 CBC 或 OSHT?
您是否在手头清除 FLG、因为只有 TZCLR 寄存器可以清除锁存器上的跳闸条件、如下图所示。 这些标志的复位源是 sysrsn (系统复位)、这里明显不会发生
谢谢!
我确信我使用的是一次性跳闸区域。 我明天再看一次。 您能否确认我在随附照片中描述的功能是否可取、以及照片中显示的功能是否看起来不正确?
我仅在控制器启动新脉冲时重置一次性跳闸区域、因此我们似乎同意存在其他因素导致跳闸行为不稳定。
此致、
JMH
是如果跳闸不被清除、它应该保持在 TZCTL 寄存器中定义的运行方式。
您能给我发送您的代码吗我可以看一下
当控制器启动新脉冲时,我仅重置一次性跳变区,
你在这里要什么脉冲?
谢谢!
您好、Prarthan、
我用于 MCD 的代码与 driverlib 中示例文件夹中的代码完全相同。 我没有进行任何更改。
我有一个定义为使能信号的 GPIO、它可以通过跳闸区域启用或禁用 PWM。 我担心的是,当它不应该是,我重置它,但事实不是我认为的情况。 跳闸(与 NMI...同时触发) 似乎工作正常)。
我在下面附上了另一个屏幕截图、它更详细地显示了这个问题、我想。
NMI 启动和 PWM 跳闸发生在示波器上的黄色 GPIO 信号的上升沿。
在 NMI 启动和 PWM 跳闸之前有一些未定义的行为、TRM 确实声明这需要大约0.89mS 的最大时间来触发 NMI 并使 PWM 跳闸。
但是、这种行为对于 PWM 控制的稳压器来说当然不可取、因为在发生跳闸的短时间内、我们切换到内部振荡器时、PWM 频率会大幅降低。 这可能会在转换器中导致很多问题、但我不确定我们对此是否可以做得太多。
有没有更好的方法可以与缺失时钟检测电路同时运行、这种方法可以让我们检查是否发生了此故障并一直将 PWM 保持在低电平状态、直到 NMI 标志复位?
请注意、Launchpad 中的默认时钟源是什么? 我是否必须手动将时钟源设置为外部振荡器才能使其工作?
外部振荡器似乎是默认源、否则短接不会导致时钟故障、但会尽量覆盖所有基极。
热切期待您的回复、
Jmh.
我用于 MCD 的代码与 driverlib 中用于它的示例文件夹中的代码完全相同。 我没有进行任何更改。 [/报价]c2000ware 中的示例1_mcd 模拟丢失的时钟并生成 NMI 没有 PWM 跳闸区域连接配置可根据此处生成的时钟故障信号来触发它需要单独完成假设您已经在执行此操作
在 NMI 启动和 PWM 跳闸之前有一些未定义的行为,TRM 确实指出,触发 NMI 并使 PWM 跳闸最多需要0.89mS。正确、这是 MCD 检测和操作所需的时间。
请注意,Launchpad 中的默认时钟源是什么? 我是否必须手动将时钟源设置为外部振荡器才能使其正常工作是的,函数 Device_init ()中定义了所有示例要在 XTAL 上运行,请参阅 device.h,device_setclock_CFG 定义。如果需要,可以在该处更改 OSCSRC 源。
[/quote]
您好、Prarthan、
你确定吗? TRM 指出、一旦为 CPU1触发 NMI、跳闸便会自动设置并发送到 PWM 模块。 我已经为此定义了所有操作、如果这是您的意思的话。
因此、要确认、默认情况下不启用外部晶体振荡器。 调用 device_init()时的默认时钟源是什么? 是否不能调用 device_init ()然后使用 SYSCTL driverlib 函数更改为 XTAL?
我认为我还没有收到有关该问题的答案。 时钟被移除后、如何避免 PWM 的频率显著降低? 在触发 NMI 之前、PWM 跳闸不会生成、这意味着如果移除了时钟、如果不采取措施来避免它、PWM 会正常进行。
此致、
JMH
您确定吗? TRM 指出、一旦为 CPU1触发 NMI、跳闸便会自动设置并发送到 PWM 模块。 我已经为此定义了所有操作、如果这是您的意思的话。 [/报价]是的、我不确定是否将 PWM 跳闸区域配置为使用时钟故障信号。
[/quote][/quote]要确认,是否默认未启用外部晶体振荡器? 调用 device_init()时的默认时钟源是什么? 是否不能调用 device_init ()然后使用 SYSCTL driverlib 函数更改为 XTAL? [/报价]默认情况下、源为 INTOSC2、如下面的 OSCCLKSRCSEL 位说明所示。
然后将示例配置为使用 SysCtl_setClock ()函数中定义的 XTAL,您可以参考 device.h 并查看 DEVICE_setClock_CFG 的定义,如下图所示。 它可以立即由本例中的 Device_init()函数调用全部源和 PLL 设置。
[/quote]我不相信我还没有收到有关此问题的答案。 时钟被移除后、如何避免 PWM 的频率显著降低? 在触发 NMI 之前、PWM 跳闸不会生成、这意味着如果移除了时钟、如果不采取措施来避免它、PWM 会正常进行。 [/报价]MCD 执行跳闸信号操作所需的8192个 INTOSC 周期会限制该操作、没有权变措施。
谢谢!
感谢您的帮助。
现在我们知道 INTOSC2是默认的时钟信号、我们可以评估信号是否正常吗?
如果将 XTAL 配置为源、并且 XTAL 停止工作或短路或以其他方式删除、您是否会期望这种行为? 绿色信号是否不仅应该是零伏、而且根本不会振荡? 我非常困惑、为什么要改变频率。
如果这是预期的功能、则不适合用于大量电源转换器。 例如、在隔离式转换器中、由于时钟转换而显著降低的这种频率会使变压器饱和、导致大电流、并且很可能会损坏开关器件。
仅供参考、示波器上的绿色信号是一个 GPIO、通过输出 XBAR 和 XLCKOUT 函数配置了它的 SYSCLK。 黄色表示 NMI ISR。 粉色是 PWM、蓝色是我的使能信号。 谢谢。
INTOSC2是 POR 时的默认源、但示例在初始化中设置 XTAL。 这就是它在您中断其正常运行时检测 MCD 的原因。
谢谢!
您好、Prarthan、
在 NMI ISR 导致 PWM 跳闸之前、您能否确认这是否是外部时钟故障期间 PWM 的预期行为? 这就是我要问的所有问题。 如果是这样,我们可以确认它是不合适的。 我知道 INTOSC2是默认源、并且 Launchpad 示例将其切换到板载外部振荡器、但我关于晶体短路或以其他方式移除 PWM 后、在 NMI ISR 启动并使 PWM 跳闸之前的 PWM 行为问题仍未得到解答。
ISR 会将时钟源切换到 INTOSC1、但 TRM 会指出、一旦检测到时钟故障、时钟源就会自动切换到 INTOSC1。 因此、在跳闸发生后、NMI ISR 跳闸之前的短时间内无法判断预期的行为是什么。
附件是具有预期行为的 MCD 电路图像、当外部晶体短路且外部控制 GPIO 处于低电平并使 PWM 跳闸时出现。 这是我们打算在所有条件下在整个系统中执行的操作、以确保在发生这些故障时的安全性。
此致、
JMH
Prarthan、是否有办法启用和禁用我们可以实现的 MCD 校验电路? 如前所述、当我们的 GPIO 控制信号为零时、我们的 PWM 将自动跳闸、因为它使用 XINT1路由到 TZ1。 当 PWM 为低电平时、该选项会自动跳闸。
我的想法是仅在 GPIO 为低电平时启用 MCD、如果在 GPIO 确实为低电平时发生短路、则此功能非常有效。
但是、如果在 GPIO 为高电平时晶振短路或丢失、则会出现上述行为。 GPIO 将保持高电平、直到时钟切换到内部振荡器或者从外部晶体消除短路。
如果我们可以从内部时钟运行 GPIO、即使外部晶体振荡器短路、它也可能改变状态。 然后、我们可以在 XINT1 ISR 中启用 MCD、并将其余功能切换到内部时钟 INTOSC1/2。 这些直线上是否有什么东西、或者您能想到的任何其他东西可以让我们避免时钟故障期间 PWM 频率显著降低?
此致、
JMH
JM、您好!
由于 MLK 假期、请延迟回复。
8192 INTOSC1周期用于电路确定 OSCCLK 的损耗(可以是 INTOSC2或 XTAL/X1)。 一旦它检测到 OSCCLK 的丢失、就会生成 NMI、您可以在 ISR 中配置 PWM 操作。
您能否确认这是否是 NMI ISR 导致 PWM 跳闸之前外部时钟故障期间 PWM 的预期行为?
在发生 CLOCKFAIL 之前、PWM 频率应该没有变化。
在 MCD 电路检测到丢失后、会同时执行所有操作(NMI 生成、PWM 跳闸、切换到 INTOSC1)、但检测可能会延迟0.8192毫秒。
0.8192ms (8192个 INTOSC1周期)的延迟来自递增计数的13位计数器(2^13 =8192)、建议参考 TRM 以获得更多详细信息。
那么、在短路发生和 NMI 被触发之间的这段时间内、您如何解释时钟频率发生变化、PWM 频率也发生变化呢?
如果 PWM 通过外部晶体工作、而这是短路的、那么您如何预计时钟频率会因此而不会改变 PWM 频率?
TRM 本身指出、MCD 切换到内部时钟、在配置之前、内部时钟将为10MHz。 直到在 NMI ISR 中将时钟频率设置为200MHz、才会正常运行。
您能否至少从我提供的信息中解释或解释您认为 MCD 期间可能发生的事情?
因此、当检测到 MCD 时(可能为8192个周期或0.8192毫秒的延迟)、时钟仍将由原始源(在本例中为 XTAL)提供。
并且一旦检测到该引脚、它就会将时钟源切换到 INTOSC1、因为它的无毛刺脉冲切换。
我预计在触发 NMI 之前 PWM 频率不会发生变化、一旦我在实验练习中复制了相同内容、我会回来与您联系。 下面的图表还说明了相同的开关电路、该电路根据 CLOCKFAIL 信号从 SYSPLL 的输出切换到 INTOSC1、除非 CLOCKFAIL 未置位且没有开关。
好的、由于 XCLKOUT 上的时钟频率输出 SYSCLK 在故障期间明显改变、所以显然存在问题。 这将表示注释"因此、在检测到 MCD 时(延迟可能为8192个周期或0.8192毫秒)、时钟仍将由原始源提供(在您的情况下为 XTAL)。
并且一旦检测到该引脚、它就会将时钟源切换到 INTOSC1、因为它的无毛刺脉冲切换。"
这是不正确的、除非电路发生了严重的问题。
如果您设法重建问题、请告诉我。
感谢您的帮助。
JMH
你好 Prarthan,网站没有更新从你自己有关这个问题的娱乐-你能给它一个机会,当你赶上一分钟,因为我仍然在战斗这个问题。
此致、
JMH
JM、您好!
NMI ISR 中的 GPIO 切换 被延迟、不能保证此时生成了时钟故障。
在 NMI ISR 中发生 GPIO 切换之前、会生成 CLOCKFAIL。
如果在 ePWM 跳闸区域子模块中使用 CLOCKFAIL 信号、它会在生成 CLOCKFAIL 时立即生成跳闸。
PWM 频率变化与 PWM 上发生跳闸操作之间的时间差是多少。 请告诉我,如果你有这是通过测试?
谢谢。
普拉森
JM、您好!
关于上述问题:
您是否有 PWM 频率变化到发生 PWM 跳闸之间的时间间隔?
当您在 ePWM 跳闸区域子模块中使用 CLOCKFAIL 信号时,它会在生成 CLOCKFAIL 时立即生成跳闸。
PWM 频率变化与 PWM 上发生跳闸操作之间的时间差是多少。 请告诉我您是否已通过测试获得该信息[/报价]