![]() |
mFrame
|
MCXA153 微控制器時鐘管理系統 更多...
#include <Clock.h>
靜態公開方法(Static Public Methods) | |
static constexpr uint32 | ATTACH_REG_OFFSET (AttachID attachID) |
計算時鐘附加暫存器偏移量 | |
static bool | getClockStatus (GateName clk) |
取得指定時鐘閘的狀態 | |
static void | enableClock (GateName clk) |
啟用指定 IP 的時鐘 | |
static void | disableClock (GateName clk) |
停用指定 IP 的時鐘 | |
static void | attachClock (AttachID connection) |
配置時鐘選擇多工器 | |
static AttachID | getClockAttachId (AttachID connection) |
取得實際時鐘連接 ID | |
static void | setClockSelect (SelectName sel_name, uint32 value) |
設定時鐘選擇器值 | |
static uint32 | getClockSelect (SelectName sel_name) |
取得時鐘選擇器值 | |
static void | setClockDiv (Div div_name, uint32 value) |
設定外設時鐘分頻器 | |
static uint32 | getClockDiv (Div div_name) |
取得時鐘分頻器值 | |
static void | haltClockDiv (Div div_name) |
停止時鐘分頻器 | |
static mcxa153::chip::Status | setupFROHFClocking (unsigned int iFreq) |
初始化高速內部參考時鐘 (FROHF) 到指定頻率 | |
static mcxa153::chip::Status | setupFRO12MClocking (void) |
初始化 FRO12M 時鐘 | |
static mcxa153::chip::Status | setupFRO16KClocking (uint8 clk_16k_enable_mask) |
初始化 FRO16K 時鐘 | |
static mcxa153::chip::Status | setupExtClocking (uint32 iFreq) |
初始化外部振盪器時鐘到指定頻率 | |
static mcxa153::chip::Status | setupExtRefClocking (uint32 iFreq) |
初始化外部參考時鐘到指定頻率 | |
static uint32 | getFreq (Name clockName) |
取得指定時鐘的頻率 | |
static uint32 | getCoreSysClkFreq (void) |
取得核心系統時鐘頻率 | |
static uint32 | getI3CFClkFreq (void) |
取得 I3C FCLK 頻率 | |
static uint32 | getCTimerClkFreq (uint32 id) |
取得 CTimer 功能時鐘頻率 | |
static uint32 | getLpi2cClkFreq (void) |
Return Frequency of LPI2C0 functional Clock. | |
static uint32 | getLpspiClkFreq (uint32 id) |
Return Frequency of LPSPI functional Clock. | |
static uint32 | getLpuartClkFreq (uint32 id) |
Return Frequency of LPUART functional Clock. | |
static uint32 | getLptmrClkFreq (void) |
Return Frequency of LPTMR functional Clock. | |
static uint32 | getOstimerClkFreq (void) |
Return Frequency of OSTIMER. | |
static uint32 | getAdcClkFreq (void) |
Return Frequency of Adc Clock. | |
static uint32 | getCmpFClkFreq (uint32 id) |
Return Frequency of CMP Function Clock. | |
static uint32 | getCmpRRClkFreq (uint32 id) |
Return Frequency of CMP Round Robin Clock. | |
static uint32 | getTraceClkFreq (void) |
Return Frequency of Trace Clock. | |
static uint32 | getClkoutClkFreq (void) |
Return Frequency of CLKOUT Clock. | |
static uint32 | getSystickClkFreq (void) |
Return Frequency of Systick Clock. | |
static uint32 | getWwdtClkFreq (void) |
Return Frequency of Systick Clock. | |
static mcxa153::chip::Status | frohfTrimConfig (FircTrimConfig config) |
設定 FROHF 微調參數 | |
static mcxa153::chip::Status | fro12MTrimConfig (SircTrimConfig config) |
設定 FRO 12M 微調參數 | |
static void | setSysOscMonitorMode (MonitorMode mode) |
設定系統振盪器監控模式 | |
static bool | enableUsbfsClock (void) |
啟用 USB 全速時鐘 | |
保護方法(Protected Methods) | |
virtual | ~Clock (void) override=default |
虛擬解構函式 | |
![]() | |
NonInstantiable (void)=delete | |
禁止實例化 NonInstantiable 類別 | |
NonInstantiable (const NonInstantiable &)=delete | |
禁止複製建構函式 | |
virtual | ~NonInstantiable (void) override=default |
Destroy the Non Instantiable object. | |
NonInstantiable & | operator= (const NonInstantiable &)=delete |
NonInstantiable & | operator= (NonInstantiable &&)=delete |
額外的繼承成員 | |
![]() | |
void * | operator new (size_t n) |
使用運算子 new 分配記憶體 | |
void * | operator new (size_t n, void *p) |
在指定記憶體上調用運算子 new | |
virtual ufm::lang::Object & | getObject (void) override |
取得對應的 Object 物件 | |
void | delay (int milliseconds) const |
延遲指定的毫秒數進行執行緒等待 | |
bool | equals (Object *object) const |
判斷與另一物件是否為相同參照(指標型態比較) | |
bool | equals (Object &object) const |
判斷與另一物件是否為相同參照(參照型態比較) | |
void | wait (void) const |
使當前線程等待直到被通知 | |
bool | wait (int timeout) const |
等待通知或超時 | |
bool | yield (void) const |
讓執行緒讓渡控制權給同優先權的下一個執行緒 | |
int | lock (void) const |
核心鎖定,鎖定期間禁止線程切換 | |
int | unlock (void) const |
核心解鎖 | |
ufm::sys::Thread * | currentThread (void) const |
取得當前執行緒指標 | |
virtual int | hashcode (void) const |
返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
![]() | |
virtual | ~Interface (void)=default |
虛擬析構函式 | |
MCXA153 微控制器時鐘管理系統
Clock 類別提供 MCXA153 微控制器的完整時鐘管理功能,包括時鐘源配置、 時鐘閘控制、頻率設定、分頻設定等。此類別設計為靜態工具類別, 無法實例化,所有功能均透過靜態方法提供。
主要功能包括:
|
overrideprotectedvirtualdefault |
虛擬解構函式
由於此類別繼承自 NonInstantiable,此解構函式被設為預設實作。
|
inlinestaticconstexpr |
計算時鐘附加暫存器偏移量
根據給定的附加 ID 計算對應的暫存器偏移量。 這是一個內聯常數表達式函數,用於編譯時計算。
attachID | 時鐘附加識別碼 |
|
static |
配置時鐘選擇多工器
根據給定的連接 ID 配置相應的時鐘選擇多工器, 以建立時鐘源與目標的連接關係。
connection | 要配置的時鐘連接 ID,包含來源和目標資訊 |
|
inlinestatic |
停用指定 IP 的時鐘
為指定的 IP 模組停用時鐘信號。此函數會解除時鐘配置鎖定, 清除相應的時鐘閘控制位元,然後重新鎖定時鐘配置。 對於 PWM0 相關的時鐘會進行特殊處理,包括檢查是否還有其他子模組使用。
clk | 要停用的時鐘閘名稱 |
|
inlinestatic |
啟用指定 IP 的時鐘
為指定的 IP 模組啟用時鐘信號。此函數會解除時鐘配置鎖定, 設定相應的時鐘閘控制位元,然後重新鎖定時鐘配置。 對於 PWM0 相關的時鐘會進行特殊處理。
clk | 要啟用的時鐘閘名稱 |
|
static |
啟用 USB 全速時鐘
為 USB 全速功能啟用所需的時鐘信號。USB 全速模式 需要特定的時鐘配置才能正常運作。
|
static |
設定 FRO 12M 微調參數
配置 12MHz 快速內部振盪器 (FRO12M) 的微調參數, 用於提高時鐘精確度。
config | FRO 12M 微調配置參數 |
Status::SUCCESS | 微調設定成功 |
Status::ERROR | 微調設定失敗 |
|
static |
設定 FROHF 微調參數
配置高速內部振盪器 (FROHF) 的微調參數,用於提高 時鐘精確度或補償溫度、電壓變化對頻率的影響。
config | FROHF 微調配置參數 |
Status::SUCCESS | 微調設定成功 |
Status::ERROR | 微調設定失敗 |
|
static |
Return Frequency of Adc Clock.
|
static |
Return Frequency of CLKOUT Clock.
取得實際時鐘連接 ID
根據輸入的連接 ID 中的偏移量,讀取暫存器中的實際來源值, 並組合偏移量以獲得實際的連接 ID。此函數用於查詢目前的 時鐘連接狀態。
connection | 要查詢的時鐘連接 ID |
|
static |
取得時鐘分頻器值
讀取指定時鐘分頻器的目前分頻設定值。
div_name | 時鐘分頻器名稱 |
|
static |
|
inlinestatic |
取得指定時鐘閘的狀態
檢查指定的時鐘閘是否已啟用。此函數會根據不同的時鐘閘類型 使用適當的暫存器和位元遮罩來查詢狀態。
clk | 要檢查的時鐘閘名稱 |
|
static |
Return Frequency of CMP Function Clock.
|
static |
Return Frequency of CMP Round Robin Clock.
|
static |
取得核心系統時鐘頻率
回傳 CPU 核心和系統匯流排的時鐘頻率。此頻率決定了 處理器的執行速度和系統效能。
|
static |
取得 CTimer 功能時鐘頻率
回傳指定 CTimer (Counter/Timer) 的功能時鐘頻率。
id | CTimer 模組 ID |
|
static |
取得指定時鐘的頻率
計算並回傳指定時鐘的實際運作頻率。此函數會考慮 時鐘源、分頻器設定等因素來計算最終頻率。
clockName | 要查詢的時鐘名稱 |
|
static |
取得 I3C FCLK 頻率
回傳 I3C (Improved Inter-Integrated Circuit) 功能時鐘的頻率。
|
static |
|
static |
|
static |
|
static |
|
static |
Return Frequency of OSTIMER.
|
static |
Return Frequency of Systick Clock.
|
static |
Return Frequency of Trace Clock.
|
static |
Return Frequency of Systick Clock.
|
static |
停止時鐘分頻器
停止指定的時鐘分頻器運作,通常用於節能或重新配置時鐘系統。
div_name | 要停止的時鐘分頻器名稱 |
|
static |
設定外設時鐘分頻器
為指定的時鐘分頻器設定分頻值,用於降低時鐘頻率以適應 不同外設的時鐘需求。
div_name | 時鐘分頻器名稱 |
value | 分頻值 (實際分頻比可能是 value + 1) |
|
static |
設定時鐘選擇器值
為指定的時鐘選擇器設定選擇值,用於控制時鐘多工器的輸入選擇。
sel_name | 時鐘選擇器名稱 |
value | 要設定的選擇值 |
|
static |
設定系統振盪器監控模式
配置系統振盪器的監控模式,用於偵測振盪器故障。 監控模式可以被停用、產生中斷或在偵測到錯誤時重置系統。
mode | 要設定的監控模式
|
|
static |
初始化外部振盪器時鐘到指定頻率
配置外部振盪器 (External Oscillator) 為指定的頻率。 外部振盪器通常提供更高的頻率穩定性和精確度。
iFreq | 期望頻率,必須等於精確的 Hz 值 |
Status::SUCCESS | 初始化成功 |
Status::ERROR | 初始化失敗或頻率不支援 |
|
static |
初始化外部參考時鐘到指定頻率
配置外部參考時鐘 (External Reference Clock) 為指定的頻率。 外部參考時鐘通常來自外部時鐘源輸入。
iFreq | 期望頻率,必須等於精確的 Hz 值 |
Status::SUCCESS | 初始化成功 |
Status::ERROR | 初始化失敗或頻率不支援 |
|
static |
初始化 FRO12M 時鐘
啟用 12MHz 快速內部振盪器 (FRO12M),此時鐘通常用作 低功耗模式下的系統時鐘或作為其他外設的時鐘源。
Status::SUCCESS | 初始化成功 |
Status::ERROR | 初始化失敗 |
|
static |
初始化 FRO16K 時鐘
啟用 16KHz 快速內部振盪器 (FRO16K),此低頻時鐘通常用於 低功耗應用、看門狗定時器或實時時鐘功能。
clk_16k_enable_mask | 16K 時鐘啟用遮罩 (0-3)
|
Status::SUCCESS | 初始化成功 |
Status::ERROR | 初始化失敗 |
|
static |
初始化高速內部參考時鐘 (FROHF) 到指定頻率
啟用快速內部振盪器 (FIRC) 並設定為指定頻率作為 fro_hf 的來源。 FROHF 是系統的主要高頻時鐘源之一。
iFreq | 期望的頻率,支援的值為 48, 64, 96, 192 MHz |
Status::SUCCESS | 初始化成功 |
Status::ERROR | 初始化失敗或不支援的頻率 |