STM32W108的复位可以由多个复位源导致,每个复位源反馈到中央的复位检测逻辑,依据系统的状态和复位事件的性质来复位系统的各个部分。
4.3.1 复位原理
4.3.1.1 复位源
看门狗复位:
STM32W108包含一个看门狗定时器,是由内部1KHz的参考时钟所驱动,当该定时器超时溢出时,它产生WATCHDOG_RESET复位源到复位模块。
软件复位:
ARM Cortex-M3 CPU可以在软件控制下启动一个复位,产生SYSRESETREQ复位源到复位模块。
注:当使用外部调试器时,如果调试器发出SYSRESETREQ请求信号,该芯片可能被锁住,需要一个引脚复位或重新上电。建议不要在应用程序中直接写SCS_AIRCR寄存器,而是使用ST软件提供的一个复位函数,该复位函数能够确保芯片在复位之前处于安全的时钟模式之下。
可选字节错误:
在系统启动时,Flash存储控制器通过一个状态机从Flash存储信息块来读取配置信息,并且在读取的过程中进行执行可选字节错误检测。如果发现错误,则会产生一个错误信号OPT_BYTE_ERROR到复位模块。
如果检测到一个可选字节错误,系统会重新启动,并且会再次执行读取和检测程序。如果再次检测到错误,这个过程会重复进行,直到第三次失败后停止。这时系统进入一个可以自行恢复的模拟深睡眠状态,在这种状态下,Flash存储器读保护被强迫启动,以防止应用程序被破坏。
调试复位:
串口线/JTAG接口(SWJ)可用来访问SWJ调试端口(SWJ-DP)寄存器,通过设置SWJ-DP中的CDBGRSTREQ位,可产生复位源CDBGRSTREQ到复位模块。
JTAG复位:
遵照JTAG标准要求,STM32W108需要提供一个引脚可以配置为JTAG复位功能,此输入复位源独立于其它所有复位源,当该复位引脚有效时,只对JTAG TAP复位,对其它任何片上硬件不进行复位。如果STM32W108处于串行模式或SWJ被禁用,该输入复位引脚无效。