STM32の学習体験7:STM32クロックシステムのブロック図と相関関数を解釈

録音も、未来を容易にするために〜は読ま
主な内容
クロックシステムブロック図を読み、1);
2)システム構成時計相関関数の解釈。
公式情報:「STM32中国のリファレンスマニュアルV10」の章VIのリセットおよびクロック制御RCC
1.なぜSTM32複数のクロックソースがそれを持っていますか?
STM32は、非常に複雑であり、周辺機器とよりではなくので、すべての周辺機器は、このような高い周波数のシステムクロックを必要とし、例えば、Kのみの十ウォッチドッグとRTCのクロックを必要としています。同じ回路、クロックより早くより大きな消費電力、電磁干渉に対する耐性も弱いので、より複雑なマルチMCUのクロック・ソースのための一般的に、この方法は、これらの問題を解決するつつ。
2.解釈クロック系統図
ここに画像を挿入説明 1)STM32 5つのクロック源:HIS(高速内蔵)、HSE(高速外部)、LSI(内部低速)、LSE(外部低速)、PLL:
1.1高速HSI内部クロックは、RC発振器周波数が約8MHzのは、精度は、システムクロックとして、高くないれ、
1.2 HSEは、高速の外部クロックである水晶/セラミック共振器に接続されていてもよい、または外部クロックソース、16MHzの〜4MHzの周波数範囲を受信し、
1.3 LSI低速の内部クロックは40kHzのRC発振器周波数は、低電力クロックを提供します。;のみLSI、LSIを同時にまたRTCクロックのソースとして機能することができる独立したウォッチドッグクロックソース
1.4 LSEは、低速外部クロック、32.768kHzの水晶の、周波数であり、主にRTCクロックのソースとして、
1.5 PLLをロックするためリング周波数出力、HSI / 2、HSE又はHSE / 2に選択され、そのクロック入力ソース。あるいは乗算器2〜16回、それは最大出力周波数は72MHzである超えてはなりません。
2)MCOクロック出力STM32 IO(ピンに接続PA8)が出力されるクロック信号を選択することである(例えば、PLLの分周出力が2、HSI、HSE、またはシステム・クロック)は、外部クロックを使用することができます他のシステムは、クロック・ソースを提供し;
3)あるいはRTCクロックソースLSI、LSE、HSEと128で割った;
4)PLLクロックからUSBクロック源、STM32のシリアルインターフェースエンジンを必要とするフルスピードUSBモジュールの機能は、あります48MHzのクロック周波数の源。USBモジュールを使用することが所望される場合、クロックソースは、すなわち、PLLの出力から得られ、必要に応じて1.5または1分周分割することができ、PLLがイネーブルされなければならない、及び48MHzのまたは設定72MHzのクロック周波数;
5)システムクロックのSYSCLK作業員の過半数のSTM32クロックソース。システム・クロックSYSCLK任意にPLL出力、HSI又はHSE。72MHzの最大周波数;
6)クロック・ソースの他の周辺機器はSYSCLKあります。各モジュールに分周器であっによってAHB SYSCLK:
; DMAによって使用HCLK 6.1 AHBバスクロック、カーネル、およびメモリ
8システムタイマクロックによって区分6.2皮質、すなわちのSysTick;
6.3フリーランニングクロックFCLKへの直接のCortex;
6.4所与のAPB1デバイダ。APB1のAPB1分周出力周辺機器のための方法(PCLK1、36MHzの最大周波数)、タイマ(タイマ)2,3,4-倍に他の方法;
6.5 APB2分圧器を与えました。出力APB2周辺機器のための1つ(PCLK2、72MHzの最大周波数)、タイマ(タイマ1)倍に他の方法にAPB2分周器。
接続7)上記APB1は、電力インタフェース、バックアップインタフェース、CAN、USB、I2C1、I2C2含む低速周辺機器であり 、UART2、UART3 高速周辺機器の上方に接続されている、などがAPB2 UART1、SPI1、タイマ1、ADC1、含む ADC2を、すべての一般的なIOポート(PA〜PE)など第二の機能IOポート;
8)は、システムを監視CSSクロックは、HSEの故障後、自動的にHIS = SYSCLKに切り替わり、
図9)のいずれかの周辺機器の使用前に、有効にする必要がありますそれぞれのクロック;
10)は、5つのメインクロック:
10.1 SYSCLK(システムクロック);
10.2 AHBバスクロック;
10.3 APB1バスクロック(低速):36MHzのにスピードアップ、
10.4 APB2とバスクロック(高速):スピード最大72MHzまで、
10.5 PLLクロック。
3.クロック・コンフィギュレーション・レジスタ

typedef struct
{
  __IO uint32_t CR;                //HSI,HSE,CSS,PLL等的使能和就绪标志位 
  __IO uint32_t CFGR;             //PLL等的时钟源选择,分频系数设定
  __IO uint32_t CIR;               // 清除/使能 时钟就绪中断
  __IO uint32_t APB2RSTR;        //APB2线上外设复位寄存器
  __IO uint32_t APB1RSTR;        //APB1线上外设复位寄存器
  __IO uint32_t AHBENR;          //DMA,SDIO等时钟使能 
  __IO uint32_t APB2ENR;         //APB2线上外设时钟使能 
  __IO uint32_t APB1ENR;         //APB1线上外设时钟使能
  __IO uint32_t BDCR;            //备份域控制寄存器
  __IO uint32_t CSR;             //控制状态寄存器
} RCC_TypeDef;

4. RCC関連ファームウェアライブラリヘッダファイルとソースファイルは
:4.1クロック設定可能
RCC_LSEConfig()、RCC_HSEConfig()、RCC_HSICmd()、RCC_LSICmd()、RCC_PLLCmd()......
4.2クロックソースの設定:
RCC_PLLConfig()、RCC_SYSCLKConfigを( )、RCC_RTCCLKConfig()...
4.3分周率選択された構成:
RCC_HCLKConfig()
、RCC_PCLK1Config()、RCC_PCLK2Config()...
4.4周辺クロックイネーブル。

RCC_APB1PeriphClockCmd();    //APB1线上外设时钟使能
RCC_APB2PeriphClockCmd();    //APB2线上外设时钟使能
RCC_AHBPeriphClockCmd();     //AHB线上外设时钟使能

4.5他の周辺クロックの設定:
RCC_ADCCLKConfig()、RCC_RTCCLKConfig();
4.6状態パラメータ取得パラメータ:
RCC_GetClocksFreq()、RCC_GetSYSCLKSource()、RCC_GetFlagStatus();
4.7割り込みRCC関連機能:
RCC_ITConfig()、RCC_GetITStatus()、RCC_ClearITPendingBit() ...
知識ポイント
1)クロックのシステムブロック図に精通。

公開された24元の記事 ウォンの賞賛2 ビュー4126

おすすめ

転載: blog.csdn.net/Leisure_ksj/article/details/105221583