SYSOSC 可配置为 16MHz 或 24MHz,以替代基频。要使用这些配置,需要应用修整值。通过操作 SYSOSCTRIMUSER 中的字段来实现目标频率即可完成修整。要修整 SYSOSC,可以使用 CLK_OUT 单元将 SYSOSC 时钟引出至外部引脚,以便对其进行测量。
请按照以下过程获得用户修整值。可以将修整值编程到器件的闪存中,以便稍后调用。必须单独修整每个器件的值以确保准确性。也可以在内部通过使用频率时钟计数器 (FCC) 对 SYSOSC 进行修整。
在禁用频率校正环路 (FCL) 的情况下使用 CLK_OUT 的修整过程(无 ROSC 电阻器)
- 按照 CLK_OUT 一节中的说明启用 CLK_OUT 单元并选择 SYSOSC 作为时钟源
- 将 SYSOSC 频率设置为 BASE 以启动(确保 SYSOSCCFG 寄存器中的 FREQ 字段设置为表示 BASE 的 0h),并使 FCL 模式保持禁用状态
- 在 SYSOSCTRIMUSER 寄存器中对目标频率进行初始调优编程:
- 将 SYSOSCTRIMUSER 寄存器中的 RESCOARSE 修整字段设置为中程
- 将 SYSOSCTRIMUSER 寄存器中的 RESFINE 修整字段设置为中程
- 通过在 SYSOSCCFG 寄存器的 FREQ 字段中选择 USER,将 SYSOSC 切换为用户修整的频率
- 测量 CLK_OUT 引脚上的 SYSOSC 频率
- 通过在 SYSOSCCFG 寄存器的 FREQ 字段中选择 BASE,将 SYSOSC 切换回 BASE 频率。写入 SYSOSCTRIMUSER 需要 SYSOSC 以 BASE 频率运行。
- 将 SYSOSCTRIMUSER 参数调整为接近目标频率:
- 在 SYSOSCTRIMUSER 寄存器的 FREQ 字段中设置目标频率(16MHz 或 24MHz)
- 根据步骤 7a 中的选择,调整修整参数以实现 16MHz 或 24MHz
- 增大 SYSOSCTRIMUSER 寄存器中 CAP 修整字段的值将减小 SYSOSC 范围。对于 24MHz,请选择 CAP=0;对于 16MHz,请选择 CAP=1
- 增大 SYSOSCTRIMUSER 中 RESCOARSE 修整字段的值将以大约 1MHz 的较大步长降低频率
- 增大 SYSOSCTRIMUSER 中 RESFINE 修整字段的值将以大约 100kHz 的较小步长降低频率
- 重复步骤 4 至 7,直至达到所需的精度
- 保存得到的 SYSOSCTRIMUSER 值以供调用
在启用频率校正环路 (FCL) 的情况下使用 CLK_OUT 的修整过程(存在 ROSC 电阻器)
- 首先,完成 FCL 禁用调整过程(如上所述),以获取 SYSOSCTRIMUSER 寄存器中 CAP、RESCOARSE 和 RESFINE 修整字段的起始值
- 根据步骤 1 中获得的值中将 RESCOARSE 值增加 02h
- 在 CLK_OUT 仍然启用的情况下(SYSOSC 作为 CLK_OUT 的源),确保 SYSOSCCFG 寄存器中的 FREQ 字段设置为表示 BASE 的 0h,并通过设置 SYSOSCFCLCTL 寄存器中的 SETUSEFCL 位启用 FCL 模式
- 将 SYSOSCUSERTRIM 寄存器中的 RDIV 修整字段设置为中程
- 通过在 SYSOSCCFG 寄存器的 FREQ 字段中选择 USER,将 SYSOSC 切换为用户修整的频率
- 测量 CLK_OUT 引脚上的 SYSOSC 频率
- 通过在 SYSOSCCFG 寄存器的 FREQ 字段中选择 BASE,将 SYSOSC 切换回 BASE 频率
- 将修整参数调整为接近目标频率:
- 增大 SYSOSCTRIMUSER 寄存器中 RDIV 修整字段的值将以大约 50kHz 的较小步长增加频率
- 如果频率处于饱和状态(似乎未调整),则继续增大或减小 RDIV
- 重复步骤 5 至 8,直至达到所需的精度
- 保存得到的 SYSOSCTRIMUSER 值以供调用
注: SYSOSCTRIMUSER 参数仅在切换到 USER 频率时生效。选择 USER 频率后,对 SYSOSCTRIMUSER 的更改将无效。要刷新 USER 值,首先切换到 BASE 频率,然后更新 SYSOSCTRIMUSER,再然后将 SYSOSC 切换回 BASE 频率。