CM4 Peripheral
STM32F303ZE Clock Tree
Flash latency → 根據 HCLK
不同,存取 flash 的 cycle 會不同
1
: SYSTICK
configurationHSE
Configure the SYSCLK
as 8MHz
AHB
clock as 4MHz
(HCLK
)APB1
clock as 2MHz
(PCLK1
)APB2
clock as 2MHz
(PCLK2
)USART3
傳輸資料到電腦做測試 (baudrate set up 38400
)程式實作設定
HSE
預設為 8Hz
HCLK
prescalar 設為 2
APB1
Low-speed prescaler 設為 2
APB2
Low-speed prescaler 設為 2
以下為程式結果,能夠印出資料表示時脈有設定成功,程式碼可見 exercise1.c
clock setting success
2
: PLL
configuration via HSI
HCLK
freqencies using PLL
APB1
: 20MHz
APB2
: 20MHz
APB1
: 20MHz
APB2
: 40MHz
APB1
: 30MHz
APB2
: 60MHz
PLL
as PLL's
input source and repeat the exercise using HSE
as input sourceUSART3
傳輸資料到電腦做測試 (baudrate set up 38400
)以下為程式結果,能夠印出資料表示時脈有設定成功 (三者其中一種),程式碼可見 exercise2.c
HCLK 20MHz success
HCLK 40MHz success
HCLK 60MHz success
3
: PLL
configuration via HSE
HCLK
freqencies using PLL
(APB
和 AHB
的除頻都設為 1
)
APB1
: 20MHz
APB2
: 20MHz
APB1
: 20MHz
APB2
: 40MHz
APB1
: 30MHz
APB2
: 60MHz
HSE
as PLL's
input source and repeat the exercise using HSE
as input sourceUSART3
傳輸資料到電腦做測試 (baudrate set up 38400
)以下為程式結果,能夠印出資料表示時脈有設定成功 (三者其中一種),程式碼可見 exercise3.c
HCLK 20MHz success
HCLK 40MHz success
HCLK 60MHz success
4
: PLL
configuration for 72MHz
PLL
configuration to boost the HCLK
to maximum capacity
APB1
: 36MHz
APB2
: 72MHz
HSE
and HSI
as PLL
Source respectivelyUSART3
傳輸資料到電腦做測試 (baudrate set up 38400
)以下為程式結果,能夠印出資料表示時脈有設定成功 (二者其中一種),程式碼可見 exercise4.c
HSE test success
HSI test success
5
: HSI
measurmentHSI
clock on microcontroller pin and measure it using oscilloscope or logic analyzerHSI
預設降頻作為練習 (1MHz
) ,表示 MCO
要除以 8
參考 STM32F303ZE 的 alternate function mapping,其中 MCO
可以從 PA8
輸出(使用 AF0
)
以下為邏輯分析儀結果 (將 MCO
除以 8
後輸出,即 1MHz
),程式碼可見 exercise5.c
6
: HSE
measurementHSE
as system clock and measure it以下為邏輯分析儀結果 (將 MCO
除以 8
後輸出,即 1MHz
),程式碼可見 exercise6.c