MM32F0040 是一款搭載高性能 Arm? Cortex?-M0 作為內(nèi)核的 32 位微控制器,最高工作頻率可達到72MHz,提供 32KB FLASH 和 4KB SRAM。MM32F0040 系列 MCU 適用于多種應(yīng)用場合,如工業(yè)物聯(lián)網(wǎng)設(shè)備、PC外設(shè)、電子門鎖控制、醫(yī)療和保健設(shè)備、手持設(shè)備、電機控制、電梯呼叫面板、游戲娛樂以及 8/16 位 MCU 升級替換。
我們對客戶經(jīng)常問到的問題進行一一解答。
MM32F0040 的時鐘源有哪些?
分析案例
MM32F00040有四個系統(tǒng)時鐘源:
高速內(nèi)部時鐘(HSI 上電后默認),頻率為 8MHz,全溫全壓范圍時鐘精度 ±2.5%
高速外部時鐘(HSE),有源晶振頻率范圍是 2MHz ~ 32MHz ,無源晶振頻率范圍是 4MHz ~ 24MHz
鎖相環(huán)(PLL):當(dāng) HSI(或 HSE)作為 PLL 時鐘源時, HSI(或 HSE)不可關(guān)閉
低速內(nèi)部時鐘(LSI)
參考建議
MCU 時鐘輸出(MCO)允許時鐘輸出到外部 MCO 引腳上。相應(yīng) GPIO 端口的配置寄存器必須被配置為相應(yīng)功能??梢赃x擇以下 6 個時鐘信號中的一個作為 MCO 時鐘:
用戶可以通過 MCU 時鐘輸出確認配置的時鐘,受限于 MCU 的 IO 的速度,建議 MCO 輸出頻率小于 24M,配置如下:
案例十
MM32F0040 的時鐘安全系統(tǒng)有什么作用?要怎么使用?
分析案例
時鐘安全系統(tǒng)可以監(jiān)測HSE時鐘是否失效,一旦發(fā)現(xiàn) HSE 時鐘失效,將自動切換系統(tǒng)時鐘源到 HSI,并引發(fā)NMI 中斷,在 NMI 中斷中對時鐘做處理,從而確保時鐘系統(tǒng)的穩(wěn)定性和可靠性。
用戶可以根據(jù)實際的需求選擇是否使能時鐘安全系統(tǒng),一旦啟用 CSS,如果 HSE 時鐘發(fā)生故障,CSS 中斷發(fā)生,并自動生成 NMI 中斷。除非 CSS 中斷掛起位被清除,否則 NMI 將被不停地執(zhí)行。因此,在 NMI 的處理程序中,用戶必須通過設(shè)置時鐘中斷寄存器(RCC_CIR)的 CSSC 位為 1 來清除 CSS 中斷。
時鐘安全系統(tǒng)啟用的步驟如下:
配置控制狀態(tài)寄存器 (RCC_CSR)的 LSION 位為 1 和 LSI_OEN_LV 位為 1,使能 LSI
等待控制狀態(tài)寄存器 (RCC_CSR) 中的 LSIRDY 位被置位為 1,表示 LSI 穩(wěn)定,可輸出有效時鐘
配置時鐘控制寄存器(RCC_CR)中的 CSSON 位為 1 ,時鐘安全系統(tǒng)使能
案例十一
MM32F0040 有 SysTick 嗎?如何配置?
分析案例
SysTick 系統(tǒng)定時器是屬于 ARM-M 內(nèi)核中的一個外設(shè)。系統(tǒng)定時器是一個 24bit 的向下遞減的計數(shù)器,RCC 通過 AHB 時鐘 8 分頻后供給 CPU 系統(tǒng)定時器的(SysTick)外部時鐘。當(dāng)重裝載數(shù)值寄存器的值遞減到 0 的時候,系統(tǒng)定時器就產(chǎn)生一次中斷,將從RELOAD 寄存器中自動重裝載定時初值,開始新一輪計數(shù),以此循環(huán)往復(fù)。只要不把它在 SysTick 控制及狀態(tài)寄存器中的使能位清除,就永不停息。
SysTick定時器位于在NVIC中,用于產(chǎn)生SysTick異常,并且SysTick中斷的優(yōu)先級也可以設(shè)置。
參考建議
SysTick有四個寄存器,分別為CTRL(控制與狀態(tài)寄存器)、LOAD(自動重裝載值寄存器)、VAL(當(dāng)前值寄存器)、CALIB(校準值寄存器)。配置參考鏈接:
Cortex-M0中斷控制和系統(tǒng)控制
案例十二
MM32F0040 有幾種看門狗?它們分別有什么作用?
分析案例
MM32 系列 MCU 都有兩個看門狗:獨立看門狗和窗口看門狗。
獨立看門狗:
獨立看門狗是一個 12 位的遞減計數(shù)器,當(dāng)計數(shù)器的值從某個值一直減到 0 的時候,系統(tǒng)就會產(chǎn)生一個復(fù)位信號或者中斷信號,即 IWDG_RESET或IWDG_IRQ。如果在計數(shù)沒減到 0 之前,刷新了計數(shù)器的值的話,那么就不會產(chǎn)生復(fù)位信號,這個動作就是我們經(jīng)常說的喂狗。
獨立看門狗的時鐘由獨立的 RC 振蕩器 LSI 提供,即使主時鐘發(fā)生故障它仍然有效,有獨立的時鐘源,可以與內(nèi)部高速時鐘形成相互監(jiān)督的功能。LSI 的頻率一般在 20~80KHz 之間,根據(jù)溫度和工作場合會有一定的漂移,我們一般取 40KHz,所以獨立看門狗的定時時間并不是非常精確,只適用于對時間精度要求比較低的場合。
窗口看門狗:
窗口看門狗跟獨立看門狗一樣,也是一個遞減計數(shù)器不斷的往下遞減計數(shù),當(dāng)減到一個固定值 0x40 時還不喂狗的話,產(chǎn)生復(fù)位,這個值叫窗口的下限,是固定的值,不能改變。這個是跟獨立看門狗類似的地方,不同的地方是窗口看門狗的計數(shù)器的值在減到某一個數(shù)之前喂狗的話也會產(chǎn)生復(fù)位,這個值叫窗口的上限,上限值由用戶獨立設(shè)置。窗口看門狗計數(shù)器的值必須在上窗口和下窗口之間才可以喂狗。
參考建議
獨立看門狗的設(shè)計初衷是為了檢測和解決由軟件錯誤所引起的故障,它的原理可簡述為:當(dāng)獨立看門狗(IWDG)計數(shù)器不斷遞減到達給定數(shù)值時,產(chǎn)生一個系統(tǒng)復(fù)位信號使系統(tǒng)復(fù)位,從而提高系統(tǒng)整體安全性能。
在 MM32F0040 中,獨立看門狗可以配置成不復(fù)位系統(tǒng)的外部中斷方式,可用于對時鐘精度要求不高的短周期低功耗喚醒的應(yīng)用場景。
硬件看門狗及選項字節(jié)操作配置參考鏈接:
硬件看門狗及選項字節(jié)操作
窗口看門狗就是其喂狗時間有上下限范圍的(窗口) 看門狗,主要用于檢測由外部干擾和可預(yù)測的邏輯條件導(dǎo)致程序跑飛所引起的軟件問題。
案例十三
MM32F0040 的 I2C 接口有兩種速率模式,我們在實際應(yīng)用中需要注意些什么嗎?
分析案例
MM32F0040 的 I2C 支持兩種速率模式:
標準模式,數(shù)據(jù)傳輸速率為 0~100kbps
快速模式,數(shù)據(jù)傳輸速率最大為400kbps
I2C 接口是掛載在 PCLK1 時鐘總線上的,為達到標準I2C 的最大頻率,要求 PCLK1 的時鐘頻率必須大于 3MHz;為達到快速 I2C 的最大頻率,要求 PCLK1 的時鐘頻率必須大小 12MHz。
MM32F0040 的 I2C 接口符合標準 I2C 通信協(xié)議,但有如下限制:SDA 和 SCK 不是“真”的開漏引腳,當(dāng)配置為開漏輸出時,在引出腳和 VDD 之間的 PMOS 管被關(guān)閉,但仍然存在,這個在實際應(yīng)用電路設(shè)計時,需要關(guān)注。
案例十四
MM32F0040 的 UART 通訊波特率容忍度如何?
分析案例
在實際項目中使用 UART 接口與其它設(shè)備進行通訊交互數(shù)據(jù)時,由于運行環(huán)境等多因素的影響,存在因時鐘偏差導(dǎo)致收發(fā)雙方波特率產(chǎn)生偏差的情況。MM32F0040 為了提高接收端對波特率變化的容忍度,在 STOP 狀態(tài)時,當(dāng)三次數(shù)據(jù)采樣完成后,接收端就會開始準備下一幀數(shù)據(jù)的接收。當(dāng)收發(fā)雙方波特率偏差處于 ±3% 以內(nèi)時,仍然能夠保證數(shù)據(jù)的正確傳輸。
同時 MM32F0040 支持硬件波特率自適應(yīng)功能,配置參考鏈接:
UART硬件波特率自適應(yīng)
-
微控制器
+關(guān)注
關(guān)注
48文章
7454瀏覽量
150853 -
軟件
+關(guān)注
關(guān)注
69文章
4699瀏覽量
87088 -
安全系統(tǒng)
+關(guān)注
關(guān)注
0文章
410瀏覽量
66886 -
MM32
+關(guān)注
關(guān)注
1文章
106瀏覽量
735
發(fā)布評論請先 登錄
相關(guān)推薦
評論