mFrame
載入中...
搜尋中...
無符合項目
mcxa153::chip::clock::Clock 類別 參考文件final

MCXA153 微控制器時鐘管理系統 更多...

#include <Clock.h>

類別mcxa153::chip::clock::Clock的繼承圖:
ufm::lang::NonInstantiable ufm::lang::Object ufm::lang::Interface

靜態公開方法(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
 虛擬解構函式
 
- 保護方法(Protected Methods) 繼承自 ufm::lang::NonInstantiable
 NonInstantiable (void)=delete
 禁止實例化 NonInstantiable 類別
 
 NonInstantiable (const NonInstantiable &)=delete
 禁止複製建構函式
 
virtual ~NonInstantiable (void) override=default
 Destroy the Non Instantiable object.
 
NonInstantiableoperator= (const NonInstantiable &)=delete
 
NonInstantiableoperator= (NonInstantiable &&)=delete
 

額外的繼承成員

- 公開方法(Public Methods) 繼承自 ufm::lang::Object
void * operator new (size_t n)
 使用運算子 new 分配記憶體
 
void * operator new (size_t n, void *p)
 在指定記憶體上調用運算子 new
 
virtual ufm::lang::ObjectgetObject (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::ThreadcurrentThread (void) const
 取得當前執行緒指標
 
virtual int hashcode (void) const
 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Interface
virtual ~Interface (void)=default
 虛擬析構函式
 

詳細描述

MCXA153 微控制器時鐘管理系統

Clock 類別提供 MCXA153 微控制器的完整時鐘管理功能,包括時鐘源配置、 時鐘閘控制、頻率設定、分頻設定等。此類別設計為靜態工具類別, 無法實例化,所有功能均透過靜態方法提供。

主要功能包括:

  • 各種時鐘源的初始化和配置 (FROHF, FRO12M, FRO16K, 外部振盪器等)
  • 時鐘閘的啟用和停用控制
  • 時鐘選擇器和分頻器的配置
  • 各種外設時鐘頻率的查詢
  • 時鐘微調和監控功能
  • USB 時鐘的特殊處理
作者
ZxyKira
日期
2020
版本
1.0.0
此類別繼承自 NonInstantiable,無法建立實例
參閱
AttachID
GateName
SelectName
Div

建構子與解構子說明文件

◆ ~Clock()

virtual mcxa153::chip::clock::Clock::~Clock ( void )
overrideprotectedvirtualdefault

虛擬解構函式

由於此類別繼承自 NonInstantiable,此解構函式被設為預設實作。

此類別無法實例化,解構函式僅用於滿足 C++ 語法要求

函式成員說明文件

◆ ATTACH_REG_OFFSET()

static constexpr uint32 mcxa153::chip::clock::Clock::ATTACH_REG_OFFSET ( AttachID attachID)
inlinestaticconstexpr

計算時鐘附加暫存器偏移量

根據給定的附加 ID 計算對應的暫存器偏移量。 這是一個內聯常數表達式函數,用於編譯時計算。

參數
attachID時鐘附加識別碼
傳回值
uint32 暫存器偏移量,以位元組為單位
這是一個 constexpr 函數,可在編譯時求值
參閱
AttachID
attachClock()

◆ attachClock()

static void mcxa153::chip::clock::Clock::attachClock ( AttachID connection)
static

配置時鐘選擇多工器

根據給定的連接 ID 配置相應的時鐘選擇多工器, 以建立時鐘源與目標的連接關係。

參數
connection要配置的時鐘連接 ID,包含來源和目標資訊
此函數會根據連接 ID 自動解析並設定相應的多工器
參閱
getClockAttachId()
AttachID

◆ disableClock()

static void mcxa153::chip::clock::Clock::disableClock ( GateName clk)
inlinestatic

停用指定 IP 的時鐘

為指定的 IP 模組停用時鐘信號。此函數會解除時鐘配置鎖定, 清除相應的時鐘閘控制位元,然後重新鎖定時鐘配置。 對於 PWM0 相關的時鐘會進行特殊處理,包括檢查是否還有其他子模組使用。

參數
clk要停用的時鐘閘名稱
函數會自動處理時鐘配置的鎖定和解鎖
對於不可用的時鐘 (NOT_AVAIL) 會直接返回
PWM0 時鐘只有在所有子模組都停用時才會完全關閉
參閱
enableClock()
getClockStatus()

◆ enableClock()

static void mcxa153::chip::clock::Clock::enableClock ( GateName clk)
inlinestatic

啟用指定 IP 的時鐘

為指定的 IP 模組啟用時鐘信號。此函數會解除時鐘配置鎖定, 設定相應的時鐘閘控制位元,然後重新鎖定時鐘配置。 對於 PWM0 相關的時鐘會進行特殊處理。

參數
clk要啟用的時鐘閘名稱
函數會自動處理時鐘配置的鎖定和解鎖
對於不可用的時鐘 (NOT_AVAIL) 會直接返回
參閱
disableClock()
getClockStatus()

◆ enableUsbfsClock()

static bool mcxa153::chip::clock::Clock::enableUsbfsClock ( void )
static

啟用 USB 全速時鐘

為 USB 全速功能啟用所需的時鐘信號。USB 全速模式 需要特定的時鐘配置才能正常運作。

傳回值
true USB 時鐘成功啟用
false USB 時鐘啟用失敗
USB 時鐘通常需要 48MHz 的精確頻率

◆ fro12MTrimConfig()

static mcxa153::chip::Status mcxa153::chip::clock::Clock::fro12MTrimConfig ( SircTrimConfig config)
static

設定 FRO 12M 微調參數

配置 12MHz 快速內部振盪器 (FRO12M) 的微調參數, 用於提高時鐘精確度。

參數
configFRO 12M 微調配置參數
傳回值
mcxa153::chip::Status
傳回值
Status::SUCCESS微調設定成功
Status::ERROR微調設定失敗
參閱
setupFRO12MClocking()
SircTrimConfig

◆ frohfTrimConfig()

static mcxa153::chip::Status mcxa153::chip::clock::Clock::frohfTrimConfig ( FircTrimConfig config)
static

設定 FROHF 微調參數

配置高速內部振盪器 (FROHF) 的微調參數,用於提高 時鐘精確度或補償溫度、電壓變化對頻率的影響。

參數
configFROHF 微調配置參數
傳回值
mcxa153::chip::Status
傳回值
Status::SUCCESS微調設定成功
Status::ERROR微調設定失敗
參閱
setupFROHFClocking()
FircTrimConfig

◆ getAdcClkFreq()

static uint32 mcxa153::chip::clock::Clock::getAdcClkFreq ( void )
static

Return Frequency of Adc Clock.

傳回值
Frequency of Adc.

◆ getClkoutClkFreq()

static uint32 mcxa153::chip::clock::Clock::getClkoutClkFreq ( void )
static

Return Frequency of CLKOUT Clock.

傳回值
Frequency of CLKOUT.

◆ getClockAttachId()

static AttachID mcxa153::chip::clock::Clock::getClockAttachId ( AttachID connection)
static

取得實際時鐘連接 ID

根據輸入的連接 ID 中的偏移量,讀取暫存器中的實際來源值, 並組合偏移量以獲得實際的連接 ID。此函數用於查詢目前的 時鐘連接狀態。

參數
connection要查詢的時鐘連接 ID
傳回值
AttachID 實際的時鐘連接 ID,包含目前的來源配置
此函數會讀取相應的暫存器來獲取實際配置
參閱
attachClock()
AttachID

◆ getClockDiv()

static uint32 mcxa153::chip::clock::Clock::getClockDiv ( Div div_name)
static

取得時鐘分頻器值

讀取指定時鐘分頻器的目前分頻設定值。

參數
div_name時鐘分頻器名稱
傳回值
uint32 目前的分頻設定值
參閱
setClockDiv()
haltClockDiv()
Div

◆ getClockSelect()

static uint32 mcxa153::chip::clock::Clock::getClockSelect ( SelectName sel_name)
static

取得時鐘選擇器值

讀取指定時鐘選擇器的目前選擇值。

參數
sel_name時鐘選擇器名稱
傳回值
uint32 目前的時鐘選擇器值
參閱
setClockSelect()
SelectName

◆ getClockStatus()

static bool mcxa153::chip::clock::Clock::getClockStatus ( GateName clk)
inlinestatic

取得指定時鐘閘的狀態

檢查指定的時鐘閘是否已啟用。此函數會根據不同的時鐘閘類型 使用適當的暫存器和位元遮罩來查詢狀態。

參數
clk要檢查的時鐘閘名稱
傳回值
true 時鐘閘已啟用
false 時鐘閘已停用或不可用
對於 PWM0SUBCTL 類型的時鐘會使用特殊處理
參閱
enableClock()
disableClock()

◆ getCmpFClkFreq()

static uint32 mcxa153::chip::clock::Clock::getCmpFClkFreq ( uint32 id)
static

Return Frequency of CMP Function Clock.

傳回值
Frequency of CMP Function.

◆ getCmpRRClkFreq()

static uint32 mcxa153::chip::clock::Clock::getCmpRRClkFreq ( uint32 id)
static

Return Frequency of CMP Round Robin Clock.

傳回值
Frequency of CMP Round Robin.

◆ getCoreSysClkFreq()

static uint32 mcxa153::chip::clock::Clock::getCoreSysClkFreq ( void )
static

取得核心系統時鐘頻率

回傳 CPU 核心和系統匯流排的時鐘頻率。此頻率決定了 處理器的執行速度和系統效能。

傳回值
uint32 核心系統時鐘頻率,單位為 Hz
這是系統最重要的時鐘頻率之一
參閱
getFreq()

◆ getCTimerClkFreq()

static uint32 mcxa153::chip::clock::Clock::getCTimerClkFreq ( uint32 id)
static

取得 CTimer 功能時鐘頻率

回傳指定 CTimer (Counter/Timer) 的功能時鐘頻率。

參數
idCTimer 模組 ID
傳回值
uint32 CTimer 功能時鐘頻率,單位為 Hz
參閱
getFreq()

◆ getFreq()

static uint32 mcxa153::chip::clock::Clock::getFreq ( Name clockName)
static

取得指定時鐘的頻率

計算並回傳指定時鐘的實際運作頻率。此函數會考慮 時鐘源、分頻器設定等因素來計算最終頻率。

參數
clockName要查詢的時鐘名稱
傳回值
uint32 時鐘頻率,單位為 Hz
回傳的頻率是根據目前配置計算出的實際頻率
參閱
getCoreSysClkFreq()
Name

◆ getI3CFClkFreq()

static uint32 mcxa153::chip::clock::Clock::getI3CFClkFreq ( void )
static

取得 I3C FCLK 頻率

回傳 I3C (Improved Inter-Integrated Circuit) 功能時鐘的頻率。

傳回值
uint32 I3C FCLK 頻率,單位為 Hz
參閱
getFreq()

◆ getLpi2cClkFreq()

static uint32 mcxa153::chip::clock::Clock::getLpi2cClkFreq ( void )
static

Return Frequency of LPI2C0 functional Clock.

傳回值
Frequency of LPI2C0 functional Clock

◆ getLpspiClkFreq()

static uint32 mcxa153::chip::clock::Clock::getLpspiClkFreq ( uint32 id)
static

Return Frequency of LPSPI functional Clock.

傳回值
Frequency of LPSPI functional Clock

◆ getLptmrClkFreq()

static uint32 mcxa153::chip::clock::Clock::getLptmrClkFreq ( void )
static

Return Frequency of LPTMR functional Clock.

傳回值
Frequency of LPTMR functional Clock

◆ getLpuartClkFreq()

static uint32 mcxa153::chip::clock::Clock::getLpuartClkFreq ( uint32 id)
static

Return Frequency of LPUART functional Clock.

傳回值
Frequency of LPUART functional Clock

◆ getOstimerClkFreq()

static uint32 mcxa153::chip::clock::Clock::getOstimerClkFreq ( void )
static

Return Frequency of OSTIMER.

傳回值
Frequency of OSTIMER Clock

◆ getSystickClkFreq()

static uint32 mcxa153::chip::clock::Clock::getSystickClkFreq ( void )
static

Return Frequency of Systick Clock.

傳回值
Frequency of Systick.

◆ getTraceClkFreq()

static uint32 mcxa153::chip::clock::Clock::getTraceClkFreq ( void )
static

Return Frequency of Trace Clock.

傳回值
Frequency of Trace.

◆ getWwdtClkFreq()

static uint32 mcxa153::chip::clock::Clock::getWwdtClkFreq ( void )
static

Return Frequency of Systick Clock.

傳回值
Frequency of Systick.

◆ haltClockDiv()

static void mcxa153::chip::clock::Clock::haltClockDiv ( Div div_name)
static

停止時鐘分頻器

停止指定的時鐘分頻器運作,通常用於節能或重新配置時鐘系統。

參數
div_name要停止的時鐘分頻器名稱
停止分頻器可能會影響依賴此時鐘的外設運作
參閱
setClockDiv()
getClockDiv()
Div

◆ setClockDiv()

static void mcxa153::chip::clock::Clock::setClockDiv ( Div div_name,
uint32 value )
static

設定外設時鐘分頻器

為指定的時鐘分頻器設定分頻值,用於降低時鐘頻率以適應 不同外設的時鐘需求。

參數
div_name時鐘分頻器名稱
value分頻值 (實際分頻比可能是 value + 1)
分頻值的解釋方式可能因分頻器而異
設定分頻值前應確保時鐘源已正確配置
參閱
getClockDiv()
haltClockDiv()
Div

◆ setClockSelect()

static void mcxa153::chip::clock::Clock::setClockSelect ( SelectName sel_name,
uint32 value )
static

設定時鐘選擇器值

為指定的時鐘選擇器設定選擇值,用於控制時鐘多工器的輸入選擇。

參數
sel_name時鐘選擇器名稱
value要設定的選擇值
設定的值必須在選擇器支援的範圍內
參閱
getClockSelect()
SelectName

◆ setSysOscMonitorMode()

static void mcxa153::chip::clock::Clock::setSysOscMonitorMode ( MonitorMode mode)
static

設定系統振盪器監控模式

配置系統振盪器的監控模式,用於偵測振盪器故障。 監控模式可以被停用、產生中斷或在偵測到錯誤時重置系統。

參數
mode要設定的監控模式
  • DISABLED: 停用監控
  • INTERRUPT: 錯誤時產生中斷
  • RESET: 錯誤時重置系統
適當的監控模式可以提高系統的可靠性
參閱
MonitorMode

◆ setupExtClocking()

static mcxa153::chip::Status mcxa153::chip::clock::Clock::setupExtClocking ( uint32 iFreq)
static

初始化外部振盪器時鐘到指定頻率

配置外部振盪器 (External Oscillator) 為指定的頻率。 外部振盪器通常提供更高的頻率穩定性和精確度。

參數
iFreq期望頻率,必須等於精確的 Hz 值
傳回值
mcxa153::chip::Status
傳回值
Status::SUCCESS初始化成功
Status::ERROR初始化失敗或頻率不支援
頻率值必須與實際外部振盪器頻率完全匹配
參閱
setupExtRefClocking()

◆ setupExtRefClocking()

static mcxa153::chip::Status mcxa153::chip::clock::Clock::setupExtRefClocking ( uint32 iFreq)
static

初始化外部參考時鐘到指定頻率

配置外部參考時鐘 (External Reference Clock) 為指定的頻率。 外部參考時鐘通常來自外部時鐘源輸入。

參數
iFreq期望頻率,必須等於精確的 Hz 值
傳回值
mcxa153::chip::Status
傳回值
Status::SUCCESS初始化成功
Status::ERROR初始化失敗或頻率不支援
頻率值必須與實際外部參考時鐘頻率完全匹配
參閱
setupExtClocking()

◆ setupFRO12MClocking()

static mcxa153::chip::Status mcxa153::chip::clock::Clock::setupFRO12MClocking ( void )
static

初始化 FRO12M 時鐘

啟用 12MHz 快速內部振盪器 (FRO12M),此時鐘通常用作 低功耗模式下的系統時鐘或作為其他外設的時鐘源。

傳回值
mcxa153::chip::Status
傳回值
Status::SUCCESS初始化成功
Status::ERROR初始化失敗
參閱
setupFROHFClocking()
fro12MTrimConfig()

◆ setupFRO16KClocking()

static mcxa153::chip::Status mcxa153::chip::clock::Clock::setupFRO16KClocking ( uint8 clk_16k_enable_mask)
static

初始化 FRO16K 時鐘

啟用 16KHz 快速內部振盪器 (FRO16K),此低頻時鐘通常用於 低功耗應用、看門狗定時器或實時時鐘功能。

參數
clk_16k_enable_mask16K 時鐘啟用遮罩 (0-3)
  • 0b00: 停用 clk_16k0 和 clk_16k1
  • 0b01: 僅啟用 clk_16k0
  • 0b10: 僅啟用 clk_16k1
  • 0b11: 啟用 clk_16k0 和 clk_16k1
傳回值
mcxa153::chip::Status
傳回值
Status::SUCCESS初始化成功
Status::ERROR初始化失敗
可選擇性啟用不同的 16K 時鐘輸出
參閱
setupFRO12MClocking()

◆ setupFROHFClocking()

static mcxa153::chip::Status mcxa153::chip::clock::Clock::setupFROHFClocking ( unsigned int iFreq)
static

初始化高速內部參考時鐘 (FROHF) 到指定頻率

啟用快速內部振盪器 (FIRC) 並設定為指定頻率作為 fro_hf 的來源。 FROHF 是系統的主要高頻時鐘源之一。

參數
iFreq期望的頻率,支援的值為 48, 64, 96, 192 MHz
傳回值
mcxa153::chip::Status
傳回值
Status::SUCCESS初始化成功
Status::ERROR初始化失敗或不支援的頻率
僅支援特定的頻率值
參閱
setupFRO12MClocking()
frohfTrimConfig()

此類別(class) 文件是由下列檔案中產生: