MM32F0040 是一款搭載高性能 Arm? Cortex?-M0 作為內(nèi)核的 32 位微控制器,最高工作頻率可達(dá)到72MHz,提供 32KB FLASH 和 4KB SRAM。MM32F0040 系列 MCU 適用于多種應(yīng)用場(chǎng)合,如工業(yè)物聯(lián)網(wǎng)設(shè)備、PC外設(shè)、電子門鎖控制、醫(yī)療和保健設(shè)備、手持設(shè)備、電機(jī)控制、電梯呼叫面板、游戲娛樂以及 8/16 位 MCU 升級(jí)替換。
我們對(duì)客戶經(jīng)常問到的問題進(jìn)行一一解答。
MM32F0040 的時(shí)鐘源有哪些?
分析案例
MM32F00040有四個(gè)系統(tǒng)時(shí)鐘源:
高速內(nèi)部時(shí)鐘(HSI 上電后默認(rèn)),頻率為 8MHz,全溫全壓范圍時(shí)鐘精度 ±2.5%
高速外部時(shí)鐘(HSE),有源晶振頻率范圍是 2MHz ~ 32MHz ,無源晶振頻率范圍是 4MHz ~ 24MHz
鎖相環(huán)(PLL):當(dāng) HSI(或 HSE)作為 PLL 時(shí)鐘源時(shí), HSI(或 HSE)不可關(guān)閉
低速內(nèi)部時(shí)鐘(LSI)

參考建議
MCU 時(shí)鐘輸出(MCO)允許時(shí)鐘輸出到外部 MCO 引腳上。相應(yīng) GPIO 端口的配置寄存器必須被配置為相應(yīng)功能。可以選擇以下 6 個(gè)時(shí)鐘信號(hào)中的一個(gè)作為 MCO 時(shí)鐘:

用戶可以通過 MCU 時(shí)鐘輸出確認(rèn)配置的時(shí)鐘,受限于 MCU 的 IO 的速度,建議 MCO 輸出頻率小于 24M,配置如下:

案例十
MM32F0040 的時(shí)鐘安全系統(tǒng)有什么作用?要怎么使用?
分析案例
時(shí)鐘安全系統(tǒng)可以監(jiān)測(cè)HSE時(shí)鐘是否失效,一旦發(fā)現(xiàn) HSE 時(shí)鐘失效,將自動(dòng)切換系統(tǒng)時(shí)鐘源到 HSI,并引發(fā)NMI 中斷,在 NMI 中斷中對(duì)時(shí)鐘做處理,從而確保時(shí)鐘系統(tǒng)的穩(wěn)定性和可靠性。
用戶可以根據(jù)實(shí)際的需求選擇是否使能時(shí)鐘安全系統(tǒng),一旦啟用 CSS,如果 HSE 時(shí)鐘發(fā)生故障,CSS 中斷發(fā)生,并自動(dòng)生成 NMI 中斷。除非 CSS 中斷掛起位被清除,否則 NMI 將被不停地執(zhí)行。因此,在 NMI 的處理程序中,用戶必須通過設(shè)置時(shí)鐘中斷寄存器(RCC_CIR)的 CSSC 位為 1 來清除 CSS 中斷。
時(shí)鐘安全系統(tǒng)啟用的步驟如下:
配置控制狀態(tài)寄存器 (RCC_CSR)的 LSION 位為 1 和 LSI_OEN_LV 位為 1,使能 LSI
等待控制狀態(tài)寄存器 (RCC_CSR) 中的 LSIRDY 位被置位為 1,表示 LSI 穩(wěn)定,可輸出有效時(shí)鐘
配置時(shí)鐘控制寄存器(RCC_CR)中的 CSSON 位為 1 ,時(shí)鐘安全系統(tǒng)使能
案例十一
MM32F0040 有 SysTick 嗎?如何配置?
分析案例
SysTick 系統(tǒng)定時(shí)器是屬于 ARM-M 內(nèi)核中的一個(gè)外設(shè)。系統(tǒng)定時(shí)器是一個(gè) 24bit 的向下遞減的計(jì)數(shù)器,RCC 通過 AHB 時(shí)鐘 8 分頻后供給 CPU 系統(tǒng)定時(shí)器的(SysTick)外部時(shí)鐘。當(dāng)重裝載數(shù)值寄存器的值遞減到 0 的時(shí)候,系統(tǒng)定時(shí)器就產(chǎn)生一次中斷,將從RELOAD 寄存器中自動(dòng)重裝載定時(shí)初值,開始新一輪計(jì)數(shù),以此循環(huán)往復(fù)。只要不把它在 SysTick 控制及狀態(tài)寄存器中的使能位清除,就永不停息。
SysTick定時(shí)器位于在NVIC中,用于產(chǎn)生SysTick異常,并且SysTick中斷的優(yōu)先級(jí)也可以設(shè)置。
參考建議
SysTick有四個(gè)寄存器,分別為CTRL(控制與狀態(tài)寄存器)、LOAD(自動(dòng)重裝載值寄存器)、VAL(當(dāng)前值寄存器)、CALIB(校準(zhǔn)值寄存器)。配置參考鏈接:
Cortex-M0中斷控制和系統(tǒng)控制
案例十二
MM32F0040 有幾種看門狗?它們分別有什么作用?
分析案例
MM32 系列 MCU 都有兩個(gè)看門狗:獨(dú)立看門狗和窗口看門狗。
獨(dú)立看門狗:
獨(dú)立看門狗是一個(gè) 12 位的遞減計(jì)數(shù)器,當(dāng)計(jì)數(shù)器的值從某個(gè)值一直減到 0 的時(shí)候,系統(tǒng)就會(huì)產(chǎn)生一個(gè)復(fù)位信號(hào)或者中斷信號(hào),即 IWDG_RESET或IWDG_IRQ。如果在計(jì)數(shù)沒減到 0 之前,刷新了計(jì)數(shù)器的值的話,那么就不會(huì)產(chǎn)生復(fù)位信號(hào),這個(gè)動(dòng)作就是我們經(jīng)常說的喂狗。
獨(dú)立看門狗的時(shí)鐘由獨(dú)立的 RC 振蕩器 LSI 提供,即使主時(shí)鐘發(fā)生故障它仍然有效,有獨(dú)立的時(shí)鐘源,可以與內(nèi)部高速時(shí)鐘形成相互監(jiān)督的功能。LSI 的頻率一般在 20~80KHz 之間,根據(jù)溫度和工作場(chǎng)合會(huì)有一定的漂移,我們一般取 40KHz,所以獨(dú)立看門狗的定時(shí)時(shí)間并不是非常精確,只適用于對(duì)時(shí)間精度要求比較低的場(chǎng)合。

窗口看門狗:
窗口看門狗跟獨(dú)立看門狗一樣,也是一個(gè)遞減計(jì)數(shù)器不斷的往下遞減計(jì)數(shù),當(dāng)減到一個(gè)固定值 0x40 時(shí)還不喂狗的話,產(chǎn)生復(fù)位,這個(gè)值叫窗口的下限,是固定的值,不能改變。這個(gè)是跟獨(dú)立看門狗類似的地方,不同的地方是窗口看門狗的計(jì)數(shù)器的值在減到某一個(gè)數(shù)之前喂狗的話也會(huì)產(chǎn)生復(fù)位,這個(gè)值叫窗口的上限,上限值由用戶獨(dú)立設(shè)置。窗口看門狗計(jì)數(shù)器的值必須在上窗口和下窗口之間才可以喂狗。

參考建議
獨(dú)立看門狗的設(shè)計(jì)初衷是為了檢測(cè)和解決由軟件錯(cuò)誤所引起的故障,它的原理可簡(jiǎn)述為:當(dāng)獨(dú)立看門狗(IWDG)計(jì)數(shù)器不斷遞減到達(dá)給定數(shù)值時(shí),產(chǎn)生一個(gè)系統(tǒng)復(fù)位信號(hào)使系統(tǒng)復(fù)位,從而提高系統(tǒng)整體安全性能。
在 MM32F0040 中,獨(dú)立看門狗可以配置成不復(fù)位系統(tǒng)的外部中斷方式,可用于對(duì)時(shí)鐘精度要求不高的短周期低功耗喚醒的應(yīng)用場(chǎng)景。
硬件看門狗及選項(xiàng)字節(jié)操作配置參考鏈接:
硬件看門狗及選項(xiàng)字節(jié)操作
窗口看門狗就是其喂狗時(shí)間有上下限范圍的(窗口) 看門狗,主要用于檢測(cè)由外部干擾和可預(yù)測(cè)的邏輯條件導(dǎo)致程序跑飛所引起的軟件問題。
案例十三
MM32F0040 的 I2C 接口有兩種速率模式,我們?cè)趯?shí)際應(yīng)用中需要注意些什么嗎?
分析案例
MM32F0040 的 I2C 支持兩種速率模式:
標(biāo)準(zhǔn)模式,數(shù)據(jù)傳輸速率為 0~100kbps
快速模式,數(shù)據(jù)傳輸速率最大為400kbps
I2C 接口是掛載在 PCLK1 時(shí)鐘總線上的,為達(dá)到標(biāo)準(zhǔn)I2C 的最大頻率,要求 PCLK1 的時(shí)鐘頻率必須大于 3MHz;為達(dá)到快速 I2C 的最大頻率,要求 PCLK1 的時(shí)鐘頻率必須大小 12MHz。
MM32F0040 的 I2C 接口符合標(biāo)準(zhǔn) I2C 通信協(xié)議,但有如下限制:SDA 和 SCK 不是“真”的開漏引腳,當(dāng)配置為開漏輸出時(shí),在引出腳和 VDD 之間的 PMOS 管被關(guān)閉,但仍然存在,這個(gè)在實(shí)際應(yīng)用電路設(shè)計(jì)時(shí),需要關(guān)注。
案例十四
MM32F0040 的 UART 通訊波特率容忍度如何?
分析案例
在實(shí)際項(xiàng)目中使用 UART 接口與其它設(shè)備進(jìn)行通訊交互數(shù)據(jù)時(shí),由于運(yùn)行環(huán)境等多因素的影響,存在因時(shí)鐘偏差導(dǎo)致收發(fā)雙方波特率產(chǎn)生偏差的情況。MM32F0040 為了提高接收端對(duì)波特率變化的容忍度,在 STOP 狀態(tài)時(shí),當(dāng)三次數(shù)據(jù)采樣完成后,接收端就會(huì)開始準(zhǔn)備下一幀數(shù)據(jù)的接收。當(dāng)收發(fā)雙方波特率偏差處于 ±3% 以內(nèi)時(shí),仍然能夠保證數(shù)據(jù)的正確傳輸。
同時(shí) MM32F0040 支持硬件波特率自適應(yīng)功能,配置參考鏈接:
UART硬件波特率自適應(yīng)
-
微控制器
+關(guān)注
關(guān)注
48文章
8250瀏覽量
162392 -
軟件
+關(guān)注
關(guān)注
69文章
5298瀏覽量
90881 -
安全系統(tǒng)
+關(guān)注
關(guān)注
0文章
419瀏覽量
67721 -
MM32
+關(guān)注
關(guān)注
1文章
108瀏覽量
1317
發(fā)布評(píng)論請(qǐng)先 登錄

MM32F0040的時(shí)鐘安全系統(tǒng)有什么作用
評(píng)論