STM32之RCC原理
1、時鐘源
在?STM32?中,一共有?5?個時鐘源,分別是?HSI?、?HSE?、?LSI?、?LSE?、?PLL?。
?①HSI?是高速內部時鐘,?RC?振蕩器,頻率為?8MHz?;
?②HSE?是高速外部時鐘,可接石英?/?陶瓷諧振器,或者接外部時鐘源,頻率范圍是?4MHz – 16MHz?;
?③LSI?是低速內部時鐘,?RC?振蕩器,頻率為?40KHz?;
?④LSE?是低速外部時鐘,接頻率為?32.768KHz?的石英晶體;
?⑤PLL?為鎖相環倍頻輸出,嚴格的來說并不算一個獨立的時鐘源,?PLL?的輸入可以接?HSI/2?、?HSE?或者?HSE/2?。PLL倍頻可選擇為?2 – 16?倍,但是其輸出頻率最大不得超過?72MHz?。
其中,?40kHz?的?LSI?供獨立看門狗?IWDG?使用,另外它還可以被選擇為實時時鐘?RTC?的時鐘源。另外,實時時鐘?RTC?的時鐘源還可以選擇LSE?,或者是?HSE?的?128?分頻。
STM32?中有一個全速功能的?USB?模塊,其串行接口引擎需要一個頻率為?48MHz?的時鐘源。該時鐘源只能從?PLL?端獲取,可以選擇為?1.5?分頻或者?1?分頻,也就是,當需使用到?USB?模塊時,?PLL?必須使能,并且時鐘配置為?48MHz?或?72MHz?。
另外?STM32?還可以選擇一個時鐘信號輸出到?MCO?腳?(PA.8)?上,可以選擇為?PLL?輸出的?2?分頻、?HSI?、?HSE?或者系統時鐘。
系統時鐘?SYSCLK?,它是提供?STM32?中絕大部分部件工作的時鐘源。系統時鐘可以選擇為?PLL?輸出、?HSI?、?HSE?。系系統時鐘最大頻率為72MHz?,它通過?AHB?分頻器分頻后送給各個模塊使用,?AHB?分頻器可以選擇?1?、?2?、?4?、?8?、?16?、?64?、?128?、?256?、?512?分頻,AHB分頻器輸出的時鐘送給?5?大模塊使用:
???????①送給?AHB?總線、內核、內存和?DMA?使用的?HCLK?時鐘;
???????②通過?8?分頻后送給?Cortex?的系統定時器時鐘STCLK;
???????③直接送給?Cortex?的空閑運行時鐘?FCLK?;
???????④送給?APB1?分頻器。?APB1?分頻器可以選擇?1?、?2?、?4?、?8?、?16?分頻,其輸出一路供?APB1?外設使用(?PCLK1?,最大頻率?36MHz),另一路送給定時器?(Timer)2?、?3?、?4?倍頻器使用。該倍頻器根據PCLK1的分頻值自動選擇?1?或者?2?倍頻,時鐘輸出供定時器?2?、3?、?4?使用。
???????⑤送給?APB2?分頻器。?APB2?分頻器可以選擇?1?、?2?、?4?、?8?、?16?分頻,其輸出一路供?APB2?外設使用(?PCLK2?,最大頻率?72MHz),另外一路送給定時器?(Timer)1?倍頻使用。該倍頻器根據PCLK2的分頻值自動選擇1?或?2?倍頻,時鐘輸出供定時器?1?使用。另外?APB2分頻器還有一路輸出供?ADC?分頻器使用,分頻后送給?ADC?模塊使用。?ADC?分頻器可選擇為?2?、?4?、?6?、?8?分頻。
需要注意的是定時器的倍頻器,當?APB?的分頻為?1?時,它的倍頻值為?1?,否則它的倍頻值就為?2?。
?
2、APB1和APB2連接的模塊
①連接在?APB1(?低速外設?)?上的設備有:電源接口、備份接口、?CAN?、?USB?、?I2C1?、?I2C2?、?UART2?、?UART3?、?SPI2?、窗口看門狗、?Timer2?、?Timer3?、?Timer4?。?注意?USB?模塊雖然需要一個單獨的?48MHz?的時鐘信號,但是它應該不是供?USB?模塊工作的時鐘,而只是提供給串行接口引擎?(SIE)?使用的時鐘。?USB?模塊的工作時鐘應該是由?APB1?提供的。
②連接在?APB2?(高速外設)上的設備有:?UART1?、?SPI1?、?Timer1?、?ADC1?、?ADC2?、?GPIOx(PA~PE)?、第二功能?IO?口。
?
總結
以上是生活随笔為你收集整理的STM32之RCC原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 入门 | 使用 SQL 构建一个关系数据
- 下一篇: 春招快到了,送你一份数据分析常见面试题