使用 FCC_IN 触发器的上升沿到上升沿触发模式
以下步骤说明了如何使用 FCC 在参考时钟设置的触发周期内对源时钟脉冲进行计数,同时选择 FCC_IN 引脚作为参考时钟,并选择 SYSOSC 作为源时钟。此示例可用于根据在外部提供给 FCC_IN 引脚的精确时钟源来校准 SYSOSC 频率。
- 通过配置 GENCLKCFG 寄存器中的 FCCSELCLK 字段将源时钟设置为 SYSOSC。
- 通过清除 GENCLKCFG 寄存器中的 FCCTRIGSRC 位将参考时钟设置为 FCC_IN。
- 通过清除 GENCLKCFG 寄存器中的 FCCLVLTRIG 位来选择上升沿到上升沿触发。
- 在 GENCLKCFG 寄存器的 FCCTRIGCNT 字段中选择所需的参考时钟周期数来对此期间的源时钟进行计数。
- 确保在所需频率下启用 SYSOSC,并确保连接到 FCC_IN 的外部时钟源正常运行后再继续。
- 将 GO 位和 KEY 字段写入 FCCCMD 寄存器,以便在下一个触发时钟周期开始 FCC 捕捉。
- 轮询 CLKSTATUS 寄存器中的 FCCDONE 状态位。捕捉完成后,FCCDONE 将由硬件设置。FCCDONE 为只读状态,在开始新的捕捉时会由硬件自动清除。
- 从 FCC 寄存器中的 22 位 DATA 字段提取计数结果。
使用 LFXT 触发器的上升沿到上升沿触发模式
以下步骤说明了如何使用 FCC 在参考时钟周期内对源时钟脉冲进行计数,同时选择 LFXT 作为参考时钟,并选择 SYSOSC 作为源时钟。此示例可用于根据精确的 32.768kHz 手表晶体来校准 SYSOSC 频率。
- 通过配置 GENCLKCFG 寄存器中的 FCCSELCLK 字段将源时钟设置为 SYSOSC。
- 通过设置 GENCLKCFG 寄存器中的 FCCTRIGSRC 位将参考时钟设置为 LFXT。
- 通过清除 GENCLKCFG 寄存器中的 FCCLVLTRIG 位来选择上升沿到上升沿触发。
- 在 GENCLKCFG 寄存器的 FCCTRIGCNT 字段中选择所需的参考时钟周期数来对此期间的源时钟进行计数。
- 确保在所需频率下启用 SYSOSC,并确保 LFXT 正常运行后再继续。
- 将 GO 位和 KEY 字段写入 FCCCMD 寄存器,以便在下一个触发时钟周期开始 FCC 捕捉。
- 轮询 CLKSTATUS 寄存器中的 FCCDONE 状态位。捕捉完成后,FCCDONE 将由硬件设置。FCCDONE 为只读状态,在开始新的捕捉时会由硬件自动清除。
- 从 FCC 寄存器中的 22 位 DATA 字段提取计数结果。如果 SYSOSC 以 32MHz 的频率运行并且 FCCTRIGCNT 设置为“0”(一个参考时钟周期),结果应该是在单个 32.768kHz 周期内计算的大约 976 个周期。
- 为了校准 SYSOSC 以便在 24MHz 频率下运行,必须调整 SYSOSC 用户修整值,直至计数到大约 732 个周期。
- 为了校准 SYSOSC 以便在 16MHz 频率下运行,必须调整 SYSOSC 用户修整值,直至计数到大约 488 个周期。
通常,增加 FCCTRIGCNT 值会提高测量精度,但也会增加测量时间。
采用 FCC_IN 触发器和 HFCLK_IN 时钟的电平触发模式
以下步骤说明了如何使用 FCC 在一个外部参考脉冲窗口内对源时钟脉冲进行计数,并选择 HFCLK_IN 作为源时钟。此示例可用于根据外部信号驱动的固定脉冲宽度来测量外部时钟源的频率。
- 通过配置 GENCLKCFG 寄存器中的 FCCSELCLK 字段将源时钟设置为 HFCLK。
- 通过清除 GENCLKCFG 寄存器中的 FCCTRIGSRC 位将触发时钟设置为 FCC_IN 引脚功能。
- 通过设置 GENCLKCFG 寄存器中的 FCCLVLTRIG 位来设置电平触发。
- 确保 IOMUX 配置为 FCC_IN,HFCLK 配置为 HFCLK_IN,并由外部时钟提供 HFCLK_IN。
- 将 GO 位和 KEY 字段写入 FCCCMD 寄存器,以便在 FCC_IN 变为逻辑高电平时开始 FCC 捕捉。请注意,如果在 GO 生效时 FCC_IN 已经是逻辑高电平,则会立即开始计数。如果使用电平模式,在设置 GO 时,FCC_IN 应该为低电平,在设置 GO 后,触发脉冲应该发送至 FCC_IN。
- 轮询 CLKSTATUS 寄存器中的 FCCDONE 状态位。捕捉完成后,FCCDONE 将由硬件设置。FCCDONE 为只读状态,在开始新的捕捉时会由硬件自动清除。
- 从 FCC 寄存器中的 22 位 DATA 字段提取计数结果。
采用 FCC_IN 触发器和 HFCLK_IN 时钟的电平触发模式
以下步骤说明了如何使用 FCC 在一个外部参考脉冲窗口内对源时钟脉冲进行计数,并选择 HFCLK_IN 作为源时钟。此示例可用于根据外部信号驱动的固定脉冲宽度来测量外部时钟源的频率。
- 通过配置 GENCLKCFG 寄存器中的 FCCSELCLK 字段将源时钟设置为 HFCLK。
- 通过清除 GENCLKCFG 寄存器中的 FCCTRIGSRC 位将触发时钟设置为 FCC_IN 引脚功能。
- 通过设置 GENCLKCFG 寄存器中的 FCCLVLTRIG 位来设置电平触发。
- 确保 IOMUX 配置为 FCC_IN,HFCLK 配置为 HFCLK_IN,并由外部时钟提供 HFCLK_IN。
- 将 GO 位和 KEY 字段写入 FCCCMD 寄存器,以便在 FCC_IN 变为逻辑高电平时开始 FCC 捕捉。请注意,如果在 GO 生效时 FCC_IN 已经是逻辑高电平,则会立即开始计数。如果使用电平模式,在设置 GO 时,FCC_IN 应该为低电平,在设置 GO 后,触发脉冲应该发送至 FCC_IN。
- 轮询 CLKSTATUS 寄存器中的 FCCDONE 状态位。捕捉完成后,FCCDONE 将由硬件设置。FCCDONE 为只读状态,在开始新的捕捉时会由硬件自动清除。
- 从 FCC 寄存器中的 22 位 DATA 字段提取计数结果。