MM32F0040的时钟安全系统有什么作用

描述

MM32F0040 是一款搭载高性能 Arm® Cortex®-M0 作为内核的 32 位微控制器,最高工作频率可达到72MHz,提供 32KB FLASH 和 4KB SRAM。MM32F0040 系列 MCU 适用于多种应用场合,如工业物联网设备、PC外设、电子门锁控制、医疗和保健设备、手持设备、电机控制、电梯呼叫面板、游戏娱乐以及 8/16 位 MCU 升级替换。

我们对客户经常问到的问题进行一一解答。

MM32F0040 的时钟源有哪些?

分析案例

MM32F00040有四个系统时钟源:

高速内部时钟(HSI 上电后默认),频率为 8MHz,全温全压范围时钟精度 ±2.5%

高速外部时钟(HSE),有源晶振频率范围是 2MHz ~ 32MHz ,无源晶振频率范围是 4MHz ~ 24MHz

锁相环(PLL):当 HSI(或 HSE)作为 PLL 时钟源时, HSI(或 HSE)不可关闭

低速内部时钟(LSI)

软件

参考建议

MCU 时钟输出(MCO)允许时钟输出到外部 MCO 引脚上。相应 GPIO 端口的配置寄存器必须被配置为相应功能。可以选择以下 6 个时钟信号中的一个作为 MCO 时钟:

软件

用户可以通过 MCU 时钟输出确认配置的时钟,受限于 MCU 的 IO 的速度,建议 MCO 输出频率小于 24M,配置如下:

软件

案例十

MM32F0040 的时钟安全系统有什么作用?要怎么使用?

分析案例

时钟安全系统可以监测HSE时钟是否失效,一旦发现 HSE 时钟失效,将自动切换系统时钟源到 HSI,并引发NMI 中断,在 NMI 中断中对时钟做处理,从而确保时钟系统的稳定性和可靠性。

用户可以根据实际的需求选择是否使能时钟安全系统,一旦启用 CSS,如果 HSE 时钟发生故障,CSS 中断发生,并自动生成 NMI 中断。除非 CSS 中断挂起位被清除,否则 NMI 将被不停地执行。因此,在 NMI 的处理程序中,用户必须通过设置时钟中断寄存器(RCC_CIR)的 CSSC 位为 1 来清除 CSS 中断。

时钟安全系统启用的步骤如下:

配置控制状态寄存器 (RCC_CSR)的 LSION 位为 1 和 LSI_OEN_LV 位为 1,使能 LSI

等待控制状态寄存器 (RCC_CSR) 中的 LSIRDY 位被置位为 1,表示 LSI 稳定,可输出有效时钟

配置时钟控制寄存器(RCC_CR)中的 CSSON 位为 1 ,时钟安全系统使能

案例十一

MM32F0040 有 SysTick 吗?如何配置?

分析案例

SysTick 系统定时器是属于 ARM-M 内核中的一个外设。系统定时器是一个 24bit 的向下递减的计数器,RCC 通过 AHB 时钟 8 分频后供给 CPU 系统定时器的(SysTick)外部时钟。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,将从RELOAD 寄存器中自动重装载定时初值,开始新一轮计数,以此循环往复。只要不把它在 SysTick 控制及状态寄存器中的使能位清除,就永不停息。

SysTick定时器位于在NVIC中,用于产生SysTick异常,并且SysTick中断的优先级也可以设置。

参考建议

SysTick有四个寄存器,分别为CTRL(控制与状态寄存器)、LOAD(自动重装载值寄存器)、VAL(当前值寄存器)、CALIB(校准值寄存器)。配置参考链接:

Cortex-M0中断控制和系统控制

案例十二

MM32F0040 有几种看门狗?它们分别有什么作用?

分析案例

MM32 系列 MCU 都有两个看门狗:独立看门狗和窗口看门狗。

独立看门狗:

独立看门狗是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号或者中断信号,即 IWDG_RESET或IWDG_IRQ。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。

独立看门狗的时钟由独立的 RC 振荡器 LSI 提供,即使主时钟发生故障它仍然有效,有独立的时钟源,可以与内部高速时钟形成相互监督的功能。LSI 的频率一般在 20~80KHz 之间,根据温度和工作场合会有一定的漂移,我们一般取 40KHz,所以独立看门狗的定时时间并不是非常精确,只适用于对时间精度要求比较低的场合。

软件

窗口看门狗:

窗口看门狗跟独立看门狗一样,也是一个递减计数器不断的往下递减计数,当减到一个固定值 0x40 时还不喂狗的话,产生复位,这个值叫窗口的下限,是固定的值,不能改变。这个是跟独立看门狗类似的地方,不同的地方是窗口看门狗的计数器的值在减到某一个数之前喂狗的话也会产生复位,这个值叫窗口的上限,上限值由用户独立设置。窗口看门狗计数器的值必须在上窗口和下窗口之间才可以喂狗。

软件

参考建议

独立看门狗的设计初衷是为了检测和解决由软件错误所引起的故障,它的原理可简述为:当独立看门狗(IWDG)计数器不断递减到达给定数值时,产生一个系统复位信号使系统复位,从而提高系统整体安全性能。

在 MM32F0040 中,独立看门狗可以配置成不复位系统的外部中断方式,可用于对时钟精度要求不高的短周期低功耗唤醒的应用场景。

硬件看门狗及选项字节操作配置参考链接:

硬件看门狗及选项字节操作

窗口看门狗就是其喂狗时间有上下限范围的(窗口) 看门狗,主要用于检测由外部干扰和可预测的逻辑条件导致程序跑飞所引起的软件问题。

案例十三

MM32F0040 的 I2C 接口有两种速率模式,我们在实际应用中需要注意些什么吗?

分析案例

MM32F0040 的 I2C 支持两种速率模式:

标准模式,数据传输速率为 0~100kbps

快速模式,数据传输速率最大为400kbps

I2C 接口是挂载在 PCLK1 时钟总线上的,为达到标准I2C 的最大频率,要求 PCLK1 的时钟频率必须大于 3MHz;为达到快速 I2C 的最大频率,要求 PCLK1 的时钟频率必须大小 12MHz。

MM32F0040 的 I2C 接口符合标准 I2C 通信协议,但有如下限制:SDA 和 SCK 不是“真”的开漏引脚,当配置为开漏输出时,在引出脚和 VDD 之间的 PMOS 管被关闭,但仍然存在,这个在实际应用电路设计时,需要关注。

案例十四

MM32F0040 的 UART 通讯波特率容忍度如何?

分析案例

在实际项目中使用 UART 接口与其它设备进行通讯交互数据时,由于运行环境等多因素的影响,存在因时钟偏差导致收发双方波特率产生偏差的情况。MM32F0040 为了提高接收端对波特率变化的容忍度,在 STOP 状态时,当三次数据采样完成后,接收端就会开始准备下一帧数据的接收。当收发双方波特率偏差处于 ±3% 以内时,仍然能够保证数据的正确传输。

同时 MM32F0040 支持硬件波特率自适应功能,配置参考链接:

UART硬件波特率自适应

  审核编辑:彭菁
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分