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.

[参考译文] MSPM0G3518:询问 MSPM0G351x MCLK 死时钟监控器

Guru**** 2845830 points

Other Parts Discussed in Thread: LP-MSPM0G3519

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1631161/mspm0g3518-inquiry-regarding-mspm0g351x-mclk-dead-clock-monitor

器件型号: MSPM0G3518
主题中讨论的其他器件: LP-MSPM0G3519

您好:

我目前正在使用 AUTOSAR 架构在 MSPM0G351x 上实现 ISO-26262 硬件安全机制。  
我已经成功配置并启用了 MCLK 监视器(死时钟检查)、但我努力执行软件引起的故障注入来验证硬件的反应。

配置:
MCLK 源:SYSOSC (32MHz)。
LFCLK 源:LFOSC (32kHz)。
监控器启用:我已通过调试器验证 SYSCTL->SOCLOCK.MCLKCFG 寄存器中的 MCLKDEADCHK 位在初始化期间已成功设置为 1。

我需要在运行时故意停止 MCLK(强制它达到 0Hz)、以验证硬件是否检测到死区时钟(在 1 到 12 个 LFCLK 周期内)并触发安全反应。

尝试的测试(故障注入):
我尝试使用以下方法使 MCLK 耗尽、但两者都没有触发硬件监控器:
1- 将 MCLK 切换到禁用的源:当 SYSPLL 被禁用时、我尝试在 MCLKCFG 寄存器中设置 USEHSCLK = 1。

结果:硬件显示器未触发。 相反、CPU 保持运行(可能是以回退频率或无干扰多路复用器阻止了开关)、并且基于软件的频率时钟计数器 (FCC) 捕获了频率漂移。

2- 禁用有源振荡器:我尝试通过写入 SYSCTL->SOCLOCK.SYSOSCCFG 来强制禁用 SYSOSC。

结果:硬件没有反应。 CPU 继续正常运行、这可能是因为硬件保护有效时钟源不被禁用。

问题:

1- 故障注入方法:有意使 MCLK 无法运行或绕过 MSPM0G351x 上的无干扰多路复用器以成功触发 MCLK 死区时钟监控器以进行安全验证的建议软件方法是什么?

2- 硬件反应:技术参考手册指出:“MCLK 故障始终被视为对系统是致命的、并生成一个 BOOTRST。“ 是否有任何配置(可能通过 SYSCFG 或 NONMASKINT)可以将此故障路由到 NMI 或标准中断而不是硬 BOOTRST、或者 BOOTRST 反应是否严格硬接线?

 

感谢您的指导。

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

    稍后将进行一些测试并向您提供反馈

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“674264" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1631161/mspm0g3518-inquiry-regarding-mspm0g351x-mclk-dead-clock-monitor

    1- 将 MCLK 切换到禁用的源:当 SYSPLL 被禁用时、我尝试在 MCLKCFG 寄存器中设置 USEHSCLK = 1。

    结果:硬件显示器未触发。 相反、CPU 保持运行(可能是以回退频率或无干扰多路复用器阻止了开关)、并且基于软件的频率时钟计数器 (FCC) 捕获了频率漂移。

    [/报价]

    我尝试此测试、更改时钟源后 CPU 似乎会卡住。 而不会继续运行。 可以参考我的测试代码

    e2e.ti.com/.../gpio_5F00_toggle_5F00_output_5F00_LP_5F00_MSPM0G3519_5F00_nortos_5F00_ticlang.zip

    我使用 LP-MSPM0G3519

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

    您好、Gary、

    感谢您在 LP-MSPM0G3519 上测试该解决方案并提供 NoRTOS 示例!

    我正在运行完整的 AUTOSAR 架构(使用操作系统和 BSW 层)、因此 BSW 模块可能会在后台使 HSCLK 树保持部分活动状态、或者我的运行时寄存器写入被屏蔽、这就是为什么我的 CPU 保持运行并且我的 FCC 软件捕获到了漂移的原因。 我将查看 MCAL 配置以确保 HSCLK 真正为 0Hz。

    但是、关于 CPU 被“卡住“的 NoRTOS 测试:如果 MCLKDEADCHK 位成功启用、当 CPU 卡住时、硬件是否不应该在 1 至 12 个 LFCLK 周期内触发 BOOTRST? 在您的测试中、微控制器是实际重新启动、还是 CPU 只是无限期地保持冻结?

    我的最终目标是证明死时钟监控器成功发出了 BOOTRST 安全反应。

    再次感谢您的支持!

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

    您好、Mohamed、

    要回答您的第二个问题、MCLK 时钟监控故障会硬接线到 BOOTRST。 不允许执行 NMI 或其他中断的原因是 MCLK 有故障、因此可能永远不会执行 NMI、因为不再有时钟。 尝试恢复系统的唯一方法是应用 BOOTRST 以重新启动各种振荡器。

    此致、
    François μ s。

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

    您好 Francois、

    感谢您的解释! 就为什么没有有效时钟就无法实现 NMI 而言、这充分合乎逻辑。

    您或团队能否告知建议使用什么软件序列来特意使 MCLK(强制其达到 0Hz)无法成功触发此 BOOTRST 以进行我们的安全验证测试?

    再次感谢您的支持!
    Mohamed。

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

    尊敬的  Mohamed:

    在对设计进行检查后、请参阅以下注释

    以下测试方式无法正常工作、  

    [引述 userid=“674264" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1631161/mspm0g3518-inquiry-regarding-mspm0g351x-mclk-dead-clock-monitor 1- 将 MCLK 切换到禁用的源:当 SYSPLL 被禁用时、我尝试在 MCLKCFG 寄存器中设置 USEHSCLK = 1。

    由于当您使用以下功能尝试切换时钟时、MCU 将检查优先来自 SYSPLL/HFCLK 的 HSCLK、并且由于 SYSPLL 未启用、因此 CPU 将卡在 HSCLK 检查环路中。

    DL_SYSCTL_setMCLKSource (SYSOSC、HSCLK、DL_SYSCTL_HSCLK_SOURCE_SYSPLL);   

    [引述 userid=“674264" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1631161/mspm0g3518-inquiry-regarding-mspm0g351x-mclk-dead-clock-monitor 2- 禁用有源振荡器:我尝试通过写入 SYSCTL->SOCLOCK.SYSOSCCFG 来强制禁用 SYSOSC。

    这也不起作用、因为如果禁用 SYSOSC、MCU 会自动更改为 LFCLK

    这里我们有一个测试:当使用外部数字时钟作为 HFCLK_IN 的输入时、当您选择外部时钟时、它可生成复位。

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

    您好、Gary、

    谢谢你。 我们是否应该了解、当使用片上 MCLK 时钟源时、无法注入会从 MCLK 死区时钟振荡器触发 BOOTRST 的故障?


    此致、
    François μ s。

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

    如果 MCLK 从内部时钟引发、则无法注入故障 t 触发引导。

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

    谢谢您、Gary。

    穆罕默德 ·阿卜杜勒法塔赫:我认为这个话题现在已经结束了。 您还有其他问题吗?