全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com)
1. 前面的内容中其实已经看到了,这个看门狗的时钟其实是固定的,SPB的时钟。这样,后面了解时钟树的时候需要注意一下。其实,在功能安全的失效分析中应该也要考虑这样的失效触发模式。如果时钟不存在了,或者出现了偏差,WDT会是一种什么样的行为?
2. WDT的三种工作模式:Time-Out的模式、Normal模式、Disable模式。开始看到这样的分类的时候,我以为这个normal模式或许是一个串口看门狗的功能。不过,后面的内容看了一下之后发现,其实就是一个自由度更高的超时看门狗。
1. 关于CPU0的WDT启动时候的自动生效问题,之前的文档整理中已经看过了。
2. 这一页很重要的一点就是看一下超时看门狗模式以及normal模式的差异,其实主要的一个差异点看起来就是定时器可以实现的设定范围是不同的。
3. 如果WDT禁用了,这个时候进行了正确的密码输入去访问会导致WDT切换到Time-Out的模式。
4. 关于WDT向SMU的请求,可能在3种情况下存在:第一种是面膜直接写错了或者另外的方式导致了非法写入;第二种和第三种可以综合刊,其实都是没有喂狗。
结合WDT以及SMU的功能组合就可以理解,为什么这个模块叫做看门狗定时器而不叫做看门狗了。因为单独的WDT是无法提供全部的看门狗功能的,结合SMU的一部分功能才能够凑出来一个完整的WDG的功能。
进行喂狗操作主要就是两个步骤:第一是提供正确的密码;第二是修改相关的寄存器。在进行下一次的写入操作的时候,ENDINIT的bit需要写1。
低功耗模式下,CPU如果是进入了idle状态软件是不运行的。这个时候对于WDT的操作一般来说是有2种:1,直接禁用; 2,比较推荐的方式,利用WDT的唤醒功能周期性短暂唤醒CPU来喂狗。
默认情况下,当调试器系统使能的时候看门狗是自动禁用的。
我看到过很多项目的实施,从表象上看似乎不是这样子。可能是如同上面的介绍是代码中进行了寄存器的修改,也可能是调试器对于MCU进行了特殊的操作。
上面这些信息基本就是AURIX TC275的运行模式的简单整理,在调试之前的文档阅读一般来说我都会有点走马观花,做一个大概的信息了解。等进行这个模块的功能调试的时候,还会对细节性的信息进行细致的分析。