0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RCC時(shí)鐘控制系統(tǒng)組成及時(shí)鐘原程序分析

牽手一起夢 ? 來源:eefocus ? 作者:eefocus ? 2020-01-24 17:38 ? 次閱讀

RCC:Reset and Clock Control,復(fù)位與時(shí)鐘控制系統(tǒng)。系統(tǒng)復(fù)位有三種:系統(tǒng)復(fù)位、電源復(fù)位、RTC domain復(fù)位。本文重點(diǎn)詳解Clock Control部分。下面看下STM32L152芯片的時(shí)鐘框圖和cubeMX軟件中的時(shí)鐘框圖。

RCC時(shí)鐘控制系統(tǒng)組成及時(shí)鐘原程序分析

RCC時(shí)鐘控制系統(tǒng)組成及時(shí)鐘原程序分析

RCC時(shí)鐘控制系統(tǒng)組成及時(shí)鐘原程序分析

如上圖所示,在STM32中,有五個(gè)時(shí)鐘源,為HSI、HSE、LSI、LSE、PLL。

①HSI:High Speed Internal,高速內(nèi)部時(shí)鐘,RC振蕩器

②HSE:High Speed External,高速外部時(shí)鐘,可接石英/陶瓷諧振器,或者接外部時(shí)鐘源;

③LSI:Low Speed Internal,低速內(nèi)部時(shí)鐘,RC振蕩器,頻率為37kHz;

④LSE:Low Speed External,低速外部時(shí)鐘,接頻率為32.768kHz的石英晶體;

⑤PLL:Phase Locked Loop,鎖相環(huán)倍頻分頻輸出。

另外,STM32還具有雙時(shí)鐘機(jī)制,即時(shí)鐘安全系統(tǒng)CSS(Clock Security System)。在外部晶振不工作時(shí),轉(zhuǎn)而使用內(nèi)部RC振蕩器作為自己時(shí)鐘心跳保證系統(tǒng)正常運(yùn)行。當(dāng)外部晶振恢復(fù)正常后,重新使用外部晶振。

上圖中也提到3種時(shí)鐘,F(xiàn)CLK、HCLK和PCLK。簡單介紹下三種時(shí)鐘。

(1)FCLK:Free Running Clock,為CPU提供時(shí)鐘信號(hào),平時(shí)說的CPU主頻,就是這個(gè)時(shí)鐘信號(hào),1/Fclk即為CPU時(shí)鐘周期;

(2)HCLK:為AHB bus peripherals提供時(shí)鐘信號(hào),AHB:advanced high-performance bus;HCLK是高速外設(shè)時(shí)鐘,一般給內(nèi)存、flash提供時(shí)鐘。

(3)PCLK:為APB bus peripherals供給時(shí)鐘信號(hào),APB:advanced peripherals bus;PCLK是低速外設(shè)時(shí)鐘,一般給CAN、USBI2C、USART、SPI、Timer、ADCDAC提供時(shí)鐘信號(hào)。下面結(jié)合Cubemx生成的系統(tǒng)時(shí)鐘原程序進(jìn)行分析。

void SystemClock_Config(void)

{

RCC_OscInitTypeDef RCC_OscInitStruct;

RCC_ClkInitTypeDef RCC_ClkInitStruct;

RCC_PeriphCLKInitTypeDef PeriphClkInit;

/**Configure the main internal regulator output voltage

*/

__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);//設(shè)置調(diào)壓器輸出電壓級(jí)別1,用來設(shè)置調(diào)壓器輸出電壓級(jí)別,器件未以最大頻率工作,達(dá)到性能和功耗平衡

/**Initializes the CPU, AHB and APB busses clocks

*/

RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI

|RCC_OSCILLATORTYPE_HSE;

RCC_OscInitStruct.HSEState = RCC_HSE_ON;

RCC_OscInitStruct.HSIState = RCC_HSI_ON;

RCC_OscInitStruct.HSICalibrationValue = 16;//HSI時(shí)鐘16M

RCC_OscInitStruct.LSIState = RCC_LSI_ON;

RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;

RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;//PLL時(shí)鐘源為HSE

RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8;//8倍頻

RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;//2分頻

if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)//初始化

{

_Error_Handler(__FILE__, __LINE__);

}

/**Initializes the CPU, AHB and APB busses clocks

*/

RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK

|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;

RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;

RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;//AHB 1分頻

RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;//APB1 1分頻

RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;//APB2 1分頻

if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)//初始化

{

_Error_Handler(__FILE__, __LINE__);

}

PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC;

PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;//RTC時(shí)鐘選擇LSI

if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)

{

_Error_Handler(__FILE__, __LINE__);

}

/**Configure the Systick interrupt time

*/

HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);//滴答定時(shí)器配置

/**Configure the Systick

*/

HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);//滴答定時(shí)器選擇HCLK 不分頻

/* SysTick_IRQn interrupt configuration */

HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);//滴答定時(shí)器中斷優(yōu)先級(jí)

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 電源
    +關(guān)注

    關(guān)注

    184

    文章

    17488

    瀏覽量

    249170
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6511

    瀏覽量

    110384
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1714

    瀏覽量

    131277
收藏 人收藏

    評論

    相關(guān)推薦

    北斗衛(wèi)星時(shí)鐘系統(tǒng)——ZREXT2000衛(wèi)星時(shí)鐘擴(kuò)展分機(jī)

    ? ? ? 衛(wèi)星時(shí)鐘系統(tǒng) 是專為大型電站、電廠設(shè)計(jì)的多種輸出接口的冗余接收系統(tǒng), ?北斗/GPS衛(wèi)星時(shí)鐘系統(tǒng) 采用2臺(tái)北斗/GPS主
    的頭像 發(fā)表于 11-11 14:37 ?40次閱讀
    北斗衛(wèi)星<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>系統(tǒng)</b>——ZREXT2000衛(wèi)星<b class='flag-5'>時(shí)鐘</b>擴(kuò)展分機(jī)

    CPU時(shí)鐘周期的組成和作用

    CPU時(shí)鐘周期是計(jì)算機(jī)體系結(jié)構(gòu)中一個(gè)至關(guān)重要的概念,它直接關(guān)聯(lián)到CPU的運(yùn)行速度和性能。以下是對CPU時(shí)鐘周期的定義、組成和作用的詳細(xì)解析。
    的頭像 發(fā)表于 09-26 15:32 ?318次閱讀

    時(shí)鐘噪聲對DAC性能影響系統(tǒng)分析

    電子發(fā)燒友網(wǎng)站提供《時(shí)鐘噪聲對DAC性能影響系統(tǒng)分析.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 09:14 ?0次下載
    <b class='flag-5'>時(shí)鐘</b>噪聲對DAC性能影響<b class='flag-5'>系統(tǒng)分析</b>

    液壓伺服控制系統(tǒng)組成及其組成部件的作用

    液壓伺服控制系統(tǒng)是一種利用液壓技術(shù)實(shí)現(xiàn)高精度、高速度、高穩(wěn)定性的控制方式,廣泛應(yīng)用于工業(yè)自動(dòng)化、航空航天、機(jī)器人等領(lǐng)域。本文將詳細(xì)介紹液壓伺服控制系統(tǒng)組成及其
    的頭像 發(fā)表于 06-14 11:03 ?1315次閱讀

    運(yùn)動(dòng)控制系統(tǒng)由什么組成

    運(yùn)動(dòng)控制系統(tǒng)是一種用于控制機(jī)械運(yùn)動(dòng)的系統(tǒng),它能夠根據(jù)預(yù)定的軌跡和速度對機(jī)械進(jìn)行精確控制。運(yùn)動(dòng)控制系統(tǒng)廣泛應(yīng)用于工業(yè)自動(dòng)化、機(jī)器人技術(shù)、航空航
    的頭像 發(fā)表于 06-12 10:51 ?1256次閱讀

    機(jī)械運(yùn)動(dòng)控制系統(tǒng)組成和應(yīng)用

    機(jī)械運(yùn)動(dòng)控制系統(tǒng),作為現(xiàn)代機(jī)械工程領(lǐng)域的重要組成部分,對于實(shí)現(xiàn)機(jī)械設(shè)備的自動(dòng)化、智能化和精確控制具有至關(guān)重要的意義。隨著科技的不斷進(jìn)步和工業(yè)自動(dòng)化水平的不斷提高,機(jī)械運(yùn)動(dòng)控制系統(tǒng)的應(yīng)用
    的頭像 發(fā)表于 06-07 14:46 ?1136次閱讀

    閉環(huán)控制系統(tǒng)的原理和組成

    與期望的輸出進(jìn)行比較,進(jìn)而調(diào)整系統(tǒng)輸入,以實(shí)現(xiàn)系統(tǒng)輸出的精確控制。本文將詳細(xì)介紹閉環(huán)控制系統(tǒng)的定義、原理、組成及其在各領(lǐng)域的應(yīng)用。
    的頭像 發(fā)表于 06-05 17:21 ?1807次閱讀

    運(yùn)動(dòng)控制系統(tǒng)組成與作用

    運(yùn)動(dòng)控制系統(tǒng)作為現(xiàn)代自動(dòng)化技術(shù)的核心之一,其廣泛應(yīng)用于工業(yè)自動(dòng)化、機(jī)器人技術(shù)、精密制造等領(lǐng)域。它通過控制電機(jī)或其他執(zhí)行器,使機(jī)器或設(shè)備按照預(yù)期的軌跡和速度運(yùn)動(dòng),實(shí)現(xiàn)自動(dòng)化操作。本文將對運(yùn)動(dòng)控制系統(tǒng)
    的頭像 發(fā)表于 06-05 16:35 ?2167次閱讀

    工業(yè)控制系統(tǒng)組成和應(yīng)用

    效率、降低了生產(chǎn)成本,并為企業(yè)的可持續(xù)發(fā)展提供了有力支持。本文將詳細(xì)介紹工業(yè)控制系統(tǒng)的定義、組成、應(yīng)用領(lǐng)域以及未來發(fā)展趨勢。
    的頭像 發(fā)表于 06-04 15:54 ?975次閱讀

    幾款高精度時(shí)鐘芯片的規(guī)格選型分析

    幾款高精度時(shí)鐘芯片,幾乎很多應(yīng)用都需要精確的計(jì)時(shí)例如銀行系統(tǒng),安全系統(tǒng)和電能表等。獲得高精度實(shí)時(shí)時(shí)鐘芯片的關(guān)鍵在于:精確頻率振蕩設(shè)備,以及用于控制
    發(fā)表于 05-13 11:50 ?0次下載

    RCC_ADCCLKConfig函數(shù)的ADC時(shí)鐘是默認(rèn)的嗎?

    ADC配置中,沒有找到配置ADC時(shí)鐘的函數(shù)RCC_ADCCLKConfig;ADC時(shí)鐘是默認(rèn)的嗎?
    發(fā)表于 03-28 08:36

    如何解決同步時(shí)鐘系統(tǒng)中的常見問題和故障?

    天線是時(shí)鐘同步系統(tǒng)中至關(guān)重要的組成部分,其故障可能會(huì)導(dǎo)致時(shí)間同步精度下降或無法正常工作。故障原因可能包括天線損壞、連接線松動(dòng)等。 時(shí)間同步精度不夠 時(shí)鐘同步
    的頭像 發(fā)表于 03-19 10:42 ?1297次閱讀
    如何解決同步<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>系統(tǒng)</b>中的常見問題和故障?

    控制系統(tǒng)之間如何實(shí)現(xiàn)時(shí)鐘同步?

    控制系統(tǒng)之間如何實(shí)現(xiàn)時(shí)鐘同步? 控制系統(tǒng)之間的時(shí)鐘同步是確保不同系統(tǒng)之間的時(shí)鐘保持一致的過程。它
    的頭像 發(fā)表于 01-16 14:37 ?922次閱讀

    電梯控制系統(tǒng)由哪些組成?

    電梯控制系統(tǒng)是指電梯的控制系統(tǒng)經(jīng)歷了從簡單到復(fù)雜的過程。電梯控制系統(tǒng)由多個(gè)部分組成,包括曳引系統(tǒng)、導(dǎo)向
    的頭像 發(fā)表于 11-27 16:06 ?4944次閱讀

    步進(jìn)電機(jī)控制系統(tǒng)程序如何設(shè)計(jì)

    的發(fā)展也需要不斷的創(chuàng)新和技術(shù)進(jìn)步,以滿足不斷變化的市場需求和應(yīng)用挑戰(zhàn)。那控制系統(tǒng)程序如何設(shè)計(jì)?一、確定控制要求首先需要確定步進(jìn)電機(jī)控制系統(tǒng)控制
    的頭像 發(fā)表于 11-16 08:07 ?1146次閱讀
    步進(jìn)電機(jī)<b class='flag-5'>控制系統(tǒng)</b><b class='flag-5'>程序</b>如何設(shè)計(jì)