要操作stm32之前,最好先了解ARM的匯流排架構,以免在使用或設定上產生太多的疑問
可以參考工研院系統晶片技術中心的AMBA Bus介紹
AMBA Bus大概可以分成三種:
1、ASB-Advanced System Bus
2、AHB-Advanced High-performace Bus
3、APB-Advanced Peripheral Bus
因為我們要寫微控制器,所以比較會用到AHB和APB
我用的是STM32F103RET6,其內部已經將周邊都分好了,對應到APB1與APB2
其內部的功能真的還滿強大的,光TIMER可以做的事應該就打死一票的MCU了
內建的ROM與SRAM都還滿可觀的,最奇怪的是還內含一顆溫度感測器,愈來愈不懂要做什麼用
至於為什麼要分成APB1與APB2,主要的原因是AHB最高可以達到72Mhz,而APB1最高只能達到36Mhz,APB2最高可以達到72Mhz,這樣就知道為什麼要分成2組APB了,另外還提供一個Full speed的USB,所以可以選擇USB 48Mhz。
有趣的是,有個接腳名稱叫MCO(Main Clock Output),可以選擇不同的頻率做輸出
但更有趣的是,I/O雖然是在APB2下,但最高速只能跑到50Mhz,所以,當要輸出72Mhz的主頻率時,輸出是會失真的(原本應該要方波,但會看到正弦波)。
有了以上的了解後,大至上就對這顆stm32有初步的了解了,可以開始上工了。
沒有留言:
張貼留言