91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

STM32F407的晶振選型分析

jf_43510033 ? 來(lái)源:jf_43510033 ? 作者:jf_43510033 ? 2025-11-07 12:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

要讓 STM32F407 同時(shí)穩(wěn)定運(yùn)行 USB(OTG FS)、以太網(wǎng)(ETH)、CAN 三大功能,核心是選擇能滿足所有外設(shè)時(shí)鐘精度要求、且適配 STM32F4 PLL 時(shí)鐘樹(shù)的 HSE 晶振 ——最佳方案是:HSE 頻率選 25MHz,類(lèi)型選「無(wú)源貼片晶振(Parallel Resonant 型)」,其次可選 8MHz 無(wú)源晶振(兼容性稍弱)。

一、選擇核心邏輯:三大外設(shè)的時(shí)鐘硬約束

STM32F407 的 USB/ETH/CAN 對(duì)時(shí)鐘有明確要求,HSE 作為核心時(shí)鐘源,必須同時(shí)滿足:

外設(shè) 關(guān)鍵時(shí)鐘要求 精度要求
USB OTG FS 必須提供 48MHz 精確時(shí)鐘(來(lái)自 PLL_Q 分頻輸出) ±0.25%(USB 2.0 標(biāo)準(zhǔn))
以太網(wǎng)(ETH) RMII 模式需 50MHz 參考時(shí)鐘(可由 PHY 自供或 MCU 輸出);MAC 時(shí)鐘來(lái)自 AHB1(168MHz 系統(tǒng)時(shí)鐘下穩(wěn)定) ±1%(主流 PHY 要求)
CAN 時(shí)鐘來(lái)自 APB1(最大 42MHz,168MHz 系統(tǒng)時(shí)鐘下由 APB1 4 分頻得到) ±1%(CAN 協(xié)議要求)

同時(shí),STM32F4 的 PLL 時(shí)鐘樹(shù)有固定規(guī)則(PLL 輸入頻率 1-2MHz 最優(yōu),PLL_Q 需分頻出 48MHz),HSE 頻率需適配這一規(guī)則,才能讓系統(tǒng)時(shí)鐘(SYSCLK)穩(wěn)定跑滿 168MHz(F407 最高性能)。

二、最佳 HSE 選擇:25MHz 無(wú)源晶振

1. 頻率選擇理由:完美適配 PLL 時(shí)鐘樹(shù),兼顧所有外設(shè)

STM32F4 的 PLL 時(shí)鐘樹(shù)配置邏輯(目標(biāo):SYSCLK=168MHz + USB=48MHz + ETH 兼容):

PLL 核心公式:PLL_OUT = (HSE / PLL_M) * PLL_N

為了 USB 輸出 48MHz:PLL_OUT / PLL_Q = 48MHz → 最優(yōu)解是 PLL_OUT=336MHz,PLL_Q=7(336/7=48,整數(shù)分頻無(wú)誤差);

為了 SYSCLK=168MHz:PLL_OUT / PLL_P = 168MHz → PLL_P=2(336/2=168);

為了 PLL 穩(wěn)定:HSE / PLL_M = 1MHz(PLL 輸入頻率 1MHz 是最優(yōu)區(qū)間)→ PLL_M=HSE(因 1MHz×PLL_M=HSE)。

當(dāng) HSE=25MHz 時(shí),PLL 配置為:

PLL_M=25(25MHz /25=1MHz,滿足 PLL 輸入要求);

PLL_N=336(1MHz×336=336MHz,PLL_OUT 目標(biāo)值);

PLL_P=2(336MHz/2=168MHz,SYSCLK 滿速);

PLL_Q=7(336MHz/7=48MHz,USB 時(shí)鐘精準(zhǔn))。

此時(shí):

CAN 時(shí)鐘:APB1 4 分頻 → 168MHz/4=42MHz(符合 CAN 最大時(shí)鐘要求);

ETH 時(shí)鐘:25MHz 是以太網(wǎng) PHY 的「標(biāo)準(zhǔn)參考頻率」,PHY 可直接用 25MHz 晶振生成 50MHz RMII 參考時(shí)鐘(無(wú)需 MCU 額外輸出,簡(jiǎn)化配置、降低干擾)。

2. 類(lèi)型選擇理由:無(wú)源晶振(Parallel Resonant 型)

優(yōu)先選 無(wú)源貼片晶振,而非有源晶振 / 溫補(bǔ)晶振(TCXO),原因:

晶振類(lèi)型 優(yōu)勢(shì) 劣勢(shì) 適配性
無(wú)源晶振(推薦) 成本低、體積?。ㄙN片封裝如 3225/2520)、功耗低、STM32F4 原生支持(僅需外接負(fù)載電容 需 MCU 提供振蕩電路(簡(jiǎn)單) ? 最佳選擇(滿足所有精度)
有源晶振 精度極高(±1ppm)、抗干擾強(qiáng) 成本高、需額外供電(VCC/GND)、PCB 設(shè)計(jì)復(fù)雜 ? 沒(méi)必要(無(wú)源已滿足精度)
溫補(bǔ)晶振(TCXO) 極端溫度下精度高(±0.1ppm) 成本高、體積大、功耗高 ? 僅極端環(huán)境(-40℃~85℃+)考慮

具體選型參數(shù)

封裝:優(yōu)先 3225(3.2×2.5mm)或 2520(2.5×2.0mm)貼片(節(jié)省 PCB 空間),插件 HC-49S 也可(適合面包板 / 原型機(jī));

精度:±10ppm(工業(yè)級(jí),-40℃~85℃),嚴(yán)苛環(huán)境可選 ±5ppm(足夠覆蓋 USB±0.25% 要求);

負(fù)載電容:12pF(STM32F407 HSE 引腳典型推薦值,需與晶振規(guī)格書(shū)匹配,否則頻率偏移);

頻率容差:±10ppm(常溫下),溫漂:±10ppm(-40℃~85℃)。

三、次選方案:8MHz 無(wú)源晶振(兼容性備選)

若供應(yīng)鏈中 25MHz 晶振不易獲取,可選擇 8MHz 無(wú)源晶振(經(jīng)典通用頻率),配置邏輯如下:

PLL 配置:PLL_M=8(8MHz/8=1MHz)、PLL_N=336、PLL_P=2、PLL_Q=7(與 25MHz 配置一致,同樣滿足 USB=48MHz、SYSCLK=168MHz);

ETH 適配:需 PHY 自帶 25MHz 晶振生成 50MHz RMII 參考時(shí)鐘(8MHz 晶振無(wú)法通過(guò) MCU 直接生成 50MHz 整數(shù)分頻時(shí)鐘,需 PHY 自供);

優(yōu)缺點(diǎn):兼容性強(qiáng)(8MHz 晶振隨處可得),但 ETH 配置需依賴 PHY 自供時(shí)鐘,靈活性稍弱于 25MHz。

四、不推薦的頻率(避坑)

12MHz/16MHz:雖能通過(guò) PLL 配置滿足 USB / 系統(tǒng)時(shí)鐘,但 ETH 兼容性差(PHY 少見(jiàn) 12/16MHz 參考晶振);

26MHz:部分 PHY 支持,但晶振通用性不如 25MHz/8MHz,成本稍高;

32MHz 以上:PLL_M 分頻后難以滿足 1MHz 輸入要求,PLL 穩(wěn)定性下降。

五、關(guān)鍵配置注意事項(xiàng)(避免踩坑)

晶振布局:負(fù)載電容需緊貼晶振引腳(引線長(zhǎng)度<3mm),避免電磁干擾(ETH/USB 對(duì)時(shí)鐘干擾敏感);

PLL 時(shí)鐘配置代碼(HAL 庫(kù)示例):

// 25MHz HSE 配置:SYSCLK=168MHz,USB=48MHz,APB1=42MHz(CAN)
void SystemClock_Config(void) {
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  // 1. 使能 HSE 并等待就緒
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; // HSE 不分頻(25MHz)
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 25;        // 25MHz/25=1MHz
  RCC_OscInitStruct.PLL.PLLN = 336;       // 1MHz×336=336MHz
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; // 336MHz/2=168MHz(SYSCLK)
  RCC_OscInitStruct.PLL.PLLQ = 7;         // 336MHz/7=48MHz(USB)
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
    Error_Handler();
  }

  // 2. 配置系統(tǒng)時(shí)鐘、AHB/APB 分頻
  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=168MHz
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;     // APB1=42MHz(CAN)
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;     // APB2=84MHz(ETH 等)

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) {
    Error_Handler();
  }
}

ETH PHY 時(shí)鐘:若用 25MHz HSE,可將 PHY 的 XTAL 引腳直接接 HSE 晶振(需確認(rèn) PHY 支持 25MHz 輸入),無(wú)需額外配置 MCO1 輸出;

電源與復(fù)位:HSE 晶振啟動(dòng)時(shí)間約 1ms,需在代碼中等待 HSE 就緒(HAL 庫(kù) HAL_RCC_OscConfig 已包含),避免時(shí)鐘未穩(wěn)定就啟動(dòng)外設(shè)。

總結(jié)

STM32F407 同時(shí)使用 USB/ETH/CAN 時(shí),最佳 HSE 方案是 25MHz 無(wú)源貼片晶振(3225 封裝,±10ppm,12pF 負(fù)載電容)—— 既完美適配 PLL 時(shí)鐘樹(shù),滿足所有外設(shè)的精度和頻率要求,又能簡(jiǎn)化 ETH 配置,是工業(yè)級(jí)應(yīng)用的主流選擇。若 25MHz 晶振不可得,8MHz 無(wú)源晶振可作為備選(需 PHY 自供 50MHz 時(shí)鐘)。

審核編輯 黃宇

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

    關(guān)注

    35

    文章

    3562

    瀏覽量

    73439
  • STM32F407
    +關(guān)注

    關(guān)注

    15

    文章

    189

    瀏覽量

    31629
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    選型指南

    關(guān)注點(diǎn)三方面,一起聊聊選型的關(guān)鍵要素。一、應(yīng)用場(chǎng)景與類(lèi)型的精準(zhǔn)匹配不同設(shè)備對(duì)時(shí)鐘精度、穩(wěn)定性和功耗的需求差異顯著,
    的頭像 發(fā)表于 03-02 08:27 ?61次閱讀
    <b class='flag-5'>晶</b><b class='flag-5'>振</b><b class='flag-5'>選型</b>指南

    定制選型?星通時(shí)頻任意頻點(diǎn)、尺寸齊全、快速打樣!

    選型與定制,可能是大部分工程師或采購(gòu)經(jīng)理都要經(jīng)歷的“頭疼大事”——找不到參數(shù)匹配的?找不到適配特殊場(chǎng)景的
    的頭像 發(fā)表于 01-14 16:20 ?492次閱讀
    <b class='flag-5'>晶</b><b class='flag-5'>振</b>定制<b class='flag-5'>選型</b>?星通時(shí)頻任意頻點(diǎn)、尺寸齊全、快速打樣!

    STM32的那些小關(guān)系

    STM32 適配,以及解剖圖
    的頭像 發(fā)表于 11-21 15:37 ?5135次閱讀
    <b class='flag-5'>晶</b><b class='flag-5'>振</b>與<b class='flag-5'>STM32</b>的那些小關(guān)系

    VCOCXO恒溫

    100hzm產(chǎn)品選型手冊(cè)
    發(fā)表于 09-23 16:43 ?0次下載

    在rt-thread4.0.2版本stm32f407硬件平臺(tái)上,使用reboot命令無(wú)法重啟,會(huì)讓系統(tǒng)死機(jī)的原因?

    我在rt-thread4.0.2版本stm32f407硬件平臺(tái)上,使用reboot命令無(wú)法重啟,會(huì)讓系統(tǒng)死機(jī)。 reboot命令默認(rèn)是調(diào)用rt_hw_cpu_reset()
    發(fā)表于 09-12 06:08

    STM32F407的IO去驅(qū)動(dòng)5V的外部上拉電阻,請(qǐng)問(wèn)VDD_FT的電壓范圍是多少?

    目前想用STM32F407的IO去驅(qū)動(dòng)5V的外部上拉電阻,看手冊(cè)5V容忍的VDD_FT且有保護(hù)二極管。 請(qǐng)問(wèn)VDD_FT的電壓范圍是多少? 開(kāi)漏輸出時(shí),PA8口的上拉電阻能否輸出5V? 謝謝!
    發(fā)表于 07-10 06:03

    華昕電子|有源選型和使用指南

    有源選型和使用指南有源的核心特點(diǎn)有源(晶
    的頭像 發(fā)表于 05-23 18:13 ?1040次閱讀
    華昕電子|有源<b class='flag-5'>晶</b><b class='flag-5'>振</b><b class='flag-5'>選型</b>和使用指南

    STM32F103C8T6無(wú)法選擇外部怎么解決?

    我從網(wǎng)上購(gòu)入了STM32F103C8T6的核心板,板上有外部。但我使用STM32CubeMX生成項(xiàng)目時(shí),卻無(wú)法選擇外部
    發(fā)表于 04-28 07:03

    STM32F030內(nèi)部怎么設(shè)置,內(nèi)部是延時(shí)函數(shù)怎么設(shè)置?

    STM32F030內(nèi)部怎么設(shè)置,內(nèi)部是延時(shí)函數(shù)怎么設(shè)置 使用STM32F030時(shí)沒(méi)使用
    發(fā)表于 04-23 07:45

    STM32F1能使用11.059Mhz外部嗎?怎么設(shè)置系統(tǒng)頻率和PLL?

    請(qǐng)問(wèn)STM32F1能使用11.059Mhz外部嗎?如果可以,怎么設(shè)置系統(tǒng)頻率和PLL?
    發(fā)表于 03-14 06:31

    STM32F407VGT6使用PLL倍頻后芯片會(huì)反復(fù)重啟怎么解決?

    STM32F407VGT6使用內(nèi)部16M,沒(méi)有使用PLL倍頻,直接用HSI做時(shí)鐘源程序可以正常跑通,但是使用PLL倍頻后芯片就會(huì)反復(fù)重啟,就算倍頻到16M也會(huì)反復(fù)重啟,,每33ms重啟一起。
    發(fā)表于 03-12 06:04

    stm32F407平臺(tái)上使用freertos,使用pvPortMalloc申請(qǐng)內(nèi)存,發(fā)現(xiàn)內(nèi)存中的數(shù)據(jù)總被修改,怎么解決?

    如題,我現(xiàn)在在stm32F407平臺(tái)上打開(kāi)FREERTOS,然后使用pvPortMalloc動(dòng)態(tài)申請(qǐng)內(nèi)存的時(shí)候,發(fā)現(xiàn)這塊內(nèi)存中的數(shù)據(jù)總是變化,后面改為malloc申請(qǐng),內(nèi)存中的數(shù)據(jù)就符合預(yù)期了,我已經(jīng)按照網(wǎng)上的流程配置了freertos,不知道是什么原因?qū)е逻@種現(xiàn)象?
    發(fā)表于 03-07 09:03

    使用STM32F030時(shí)沒(méi)使用內(nèi)部怎么設(shè)置,使用內(nèi)部時(shí)延時(shí)函數(shù)怎么寫(xiě)?

    STM32F030內(nèi)部怎么設(shè)置,內(nèi)部是延時(shí)函數(shù)怎么設(shè)置 使用STM32F030時(shí)沒(méi)使用
    發(fā)表于 03-07 08:13

    stm32f407這個(gè)STM32_RCC_PERIPHCLK_SDMMC是哪里定義的?

    stm32f407這個(gè)STM32_RCC_PERIPHCLK_SDMMC 是哪里定義的 函數(shù)調(diào)用這個(gè)會(huì)報(bào)錯(cuò) Error[Pe020]: identifier \"
    發(fā)表于 03-07 07:34

    STM32F407的高速USB,采用的是虛擬串口方式,VCP驅(qū)動(dòng)有l(wèi)inux系統(tǒng)的嗎?

    STM32F407使用高速USB的Device模式,使用的是虛擬串口VCP方式,網(wǎng)站上有Window7和Window8的驅(qū)動(dòng),是否也有l(wèi)inux系統(tǒng)下的驅(qū)動(dòng)?
    發(fā)表于 03-07 06:42