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 端口的配置寄存器必須被配置為相應功能??梢赃x擇以下 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硬件波特率自適應
-
微控制器
+關注
關注
48文章
7714瀏覽量
152637 -
軟件
+關注
關注
69文章
5063瀏覽量
88444 -
安全系統
+關注
關注
0文章
412瀏覽量
67098 -
MM32
+關注
關注
1文章
106瀏覽量
863
發布評論請先 登錄
相關推薦
評論