ESP32學(xué)習(xí)筆記(七) 復(fù)位和時(shí)鐘
目錄:
ESP32學(xué)習(xí)筆記(一) 芯片型號(hào)介紹
ESP32學(xué)習(xí)筆記(二) 開發(fā)環(huán)境搭建 VSCode+platformio
ESP32學(xué)習(xí)筆記(三) 硬件資源介紹
ESP32學(xué)習(xí)筆記(四) 串口通信
ESP32學(xué)習(xí)筆記(五) 外部中斷
ESP32學(xué)習(xí)筆記(六) 定時(shí)器
ESP32學(xué)習(xí)筆記(七) 復(fù)位和時(shí)鐘
1.復(fù)位
2.系統(tǒng)時(shí)鐘
2.1時(shí)鐘樹
2.2時(shí)鐘源
從時(shí)鐘樹可以看出 時(shí)鐘源共七種
ESP32 的時(shí)鐘源分別來自外部晶振、內(nèi)部 PLL 或振蕩電路 具體地說,這些時(shí)鐘源為:
2.2.1 快速時(shí)鐘
PLL_CLK
320 MHz 或 480 MHz 內(nèi)部 PLL 時(shí)鐘
XTL_CLK
2 ~ 40 MHz 外部晶振時(shí)鐘,模組板載的是40MHz晶振
2.2.2 低功耗慢速時(shí)鐘
XTL32K_CLK
32 KHz 外部晶振時(shí)鐘,模組不含此晶振,但io被引出來了
RC_FAST_CLK
8 MHz 內(nèi)部時(shí)鐘,頻率可調(diào)
RC_FAST_DIV_CLK
由 RC_FAST_CLK 經(jīng) 256 分頻所得,頻率為 (RC_FAST_CLK/256)。當(dāng)RC_FAST_CLK 的初始頻率為 8 MHz 時(shí),該時(shí)鐘以 31.250 KHz 的頻率運(yùn)行。
RC_SLOW_CLK
150 KHz 內(nèi)部低功耗時(shí)鐘,頻率可調(diào)
2.2.3 音頻時(shí)鐘
APLL_CLK
16 ~ 128 MHz 內(nèi)部 Audio PLL 時(shí)鐘
2.3時(shí)鐘信號(hào)
2.3.1 CPU時(shí)鐘
CPU_CLK
它在高效工作模式下,主頻可以達(dá)到 240 MHz。同時(shí), CPU 能夠在超低頻下工作,以減少功耗。
CPU_CLK 由 RTC_CNTL_SOC_CLK_SEL 來選擇時(shí)鐘源,允許選擇 PLL_CLK, APLL_CLK, RC_FAST_CLK,XTL_CLK 作為 CPU_CLK 的時(shí)鐘源。
2.3.2 外設(shè)時(shí)鐘
外設(shè)所需要的時(shí)鐘包括 APB_CLK, REF_TICK, LEDC_SCLK, APLL_CLK 和 PLL_D2_CLK。
APB_CLK
APB_CLK 時(shí)鐘頻率由 CPU_CLK 源決定
REF_TICK
REF_TICK 時(shí)鐘頻率由 APB_CLK 分頻產(chǎn)生, APB_CLK 時(shí)鐘頻率由 CPU_CLK 源決定。 REF_TICK 的時(shí)鐘頻率應(yīng)固定,因此當(dāng)切換 CPU_CLK 源時(shí),應(yīng)配置分頻寄存器,使其頻率固定。
例如,當(dāng) REF_TICK 時(shí)鐘頻率固定為 1 MHz 時(shí),如果 CPU_CLK 源為 PLL_CLK,則 REF_TICK 頻率 = 80 MHz /(APB_CTRL_PLL_TICK_NUM+1) = 1 MHz,那么 APB_CTRL_PLL_TICK_NUM 應(yīng)配置為 79 (0x4F)。
LEDC_SCLK
LEDC_SCLK 時(shí)鐘源由寄存器 LEDC_APB_CLK_SEL 決定
APLL_CLK
APLL_CLK 來自內(nèi)部 PLL_CLK,其輸出頻率通過使用 APLL 配置寄存器來配置
**PLL_D2_CLK **
PLL_D2_CLK 是 PLL_CLK 的二分頻時(shí)鐘。
2.3.3 Wi-Fi BT 時(shí)鐘
APB_CLK(特例)
Wi-Fi 和 BT 必須在 APB_CLK 時(shí)鐘源選擇 PLL_CLK 下才能工作。只有當(dāng) Wi-Fi 和 BT 同時(shí)進(jìn)入低功耗模式時(shí),才能暫時(shí)關(guān)閉 PLL_CLK。
LOW_POWER_CLK 允許選擇 RC_SLOW_CLK、 RTC_SLOW_CLK、 RC_FAST_CLK 或 XTL_CLK,用于 Wi-Fi和 BT 的低功耗模式
2.3.4 RTC時(shí)鐘
RTC_SLOW_CLK
允許選擇 RC_SLOW_CLK, XTL32K_CLK 或 RC_FAST_DIV_CLK,用于驅(qū)動(dòng) PowerManagement 模塊。
RTC_FAST_CLK
允許選擇 XTL_CLK 的分頻時(shí)鐘或 RC_FAST_CLK,用于驅(qū)動(dòng) On-chip Sensor 模塊。
2.3.5 音頻 PLL
Audio PLL
來自系統(tǒng)的時(shí)鐘源都不精確 并且不支持高精度的時(shí)鐘頻率配置。 所以esp32集成了APLL_CLK時(shí)鐘源 如下通常是40MHz
通過公式可配置出Audio PLL 時(shí)鐘信號(hào)
2.8 時(shí)鐘配置注意事項(xiàng)
大多數(shù)外設(shè)一般在選擇 PLL_CLK 時(shí)鐘源的情況下工作。
3.相關(guān)API
arduino框架下的時(shí)鐘配置函數(shù)
//function takes the following frequencies as valid values:
// 240, 160, 80 <<< For all XTAL types
// 40, 20, 10 <<< For 40MHz XTAL
// 26, 13 <<< For 26MHz XTAL
// 24, 12 <<< For 24MHz XTAL
bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz);
uint32_t getCpuFrequencyMhz(); // In MHz
uint32_t getXtalFrequencyMhz(); // In MHz
uint32_t getApbFrequency(); // In Hz
通過上位機(jī) 看出默認(rèn)的時(shí)鐘信號(hào)頻率
說明CPU_CLK選取內(nèi)部PLL_CLK為時(shí)鐘源480MHz 然后二分頻
所以APB就為80MHz文章來源:http://www.zghlxwxcb.cn/news/detail-793225.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-793225.html
到了這里,關(guān)于ESP32學(xué)習(xí)筆記(七) 復(fù)位和時(shí)鐘的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!