本应用说明介绍了在噪声干扰较重的应用中使用 S08PT60、FL16 和 AC60 的 MCU 器件时如何实现强大的软件。在一般情况下,软件设计无法改变将噪声耦合到系统中的物理介质,也无法降低外部源产生的噪声的绝对幅度。但是,软件必须能够识别特定事件,如果它是由噪声源触发的误报,或者是正常的驱动事件,然后对相应的操作做出明智的决定。例如,如果请求的操作存在任何不确定性,则软件不得打开 power control stage。良好的防御性软件设计是提高整体性能、系统保护和噪声环境下运行稳定性的关键因素之一。
这里说明了大多数微波炉应用使用的典型软件设计,以展示如何在实际案例中应用以下软件技术。每个主题还包括设备 PT60、FL16 和 AC60 的示例代码,作为快速入门指南,以帮助用户更快地采用这些技术。
一个好的防御软件推荐使用以下软件技术。
• 启用 Watch-Dog 以避免代码失控
• 定期刷新数据方向寄存器
• 填充未使用的内存以避免代码失控
• 定义所有中断向量,甚至包括未使用的中断向量
• 选择锁频环 (FLL) 接合模式
• 始终重新确认边缘触发的事件
• 在输出端口上启用转换速率控制
• 启用输入毛刺滤波器(PT60 内置功能)
当应用软件无法按预期执行时,例如,当瞬态噪声注入 MCU 时,正在运行的软件跳转到意外的内存位置或进入无限循环,从而强制系统重置。为了防止在启用 WDOG 计时器时从 WDOG 计时器重置系统,应用程序软件必须定期重置 WDOG 计数器。如果应用程序丢失并且无法在 WDOG 计数器超时之前重置 WDOG 计数器,则会生成系统重置以强制系统返回到已知的起点。建议将 WDOG 刷新routine 而不是 sub-routines 和 interrupt routines。WDOG 函数在主循环开始时初始化,WDOG 计数器在 forever 循环内定期重置。WDOG 重置代码由宏 __RESET_WATCHDOG() 定义。