TCXO
TCXO(Temperature Compensated Crystal Oscillator)温度补偿晶振,通过温度补偿电路确保射频通信时钟的频率精度。在 2.4GHz 频段,50ppm 频率误差约等于 120kHz 偏移,超出接收机容限——TCXO 是保证无线通信可靠性的关键组件。
使用前需从 eFuse 中读取出厂校准值写入 TCXO,校准需在 RF 协议栈启动前完成。提供高精度延时和微秒级时间戳接口。
头文件清单
接口清单
接口名称 功能简述 uapi_tcxo_init 初始化TCXO uapi_tcxo_deinit 去初始化TCXO uapi_tcxo_get_count 获取TCXO计数值 uapi_tcxo_get_ms 获取TCXO计数毫秒值 uapi_tcxo_get_us 获取TCXO计数微秒值 uapi_tcxo_delay_ms 设置延迟毫秒数 uapi_tcxo_delay_us 设置延迟微秒数 uapi_tcxo_suspend 挂起TCXO uapi_tcxo_resume 恢复TCXO
Functions
uapi_tcxo_init
头文件清单
功能说明
- 初始化TCXO模块,完成底层硬件计数器初始化
- 重复调用时直接返回成功,不会重复初始化
- 初始化过程中通过中断锁保护全局初始化状态
前置条件
- TCXO模块未被初始化或已通过uapi_tcxo_deinit()去初始化
- 底层HAL层tcxo硬件资源可用
返回值
- 返回类型:errcode_t
返回值 文字含义 触发场景 ERRCODE_SUCC(0x0) 成功 初始化成功或已初始化 Other 其他错误码,参考errcode_t 初始化失败
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_TCXO_SUPPORT_LPM 特性宏 支持TCXO低功耗特性 n
uapi_tcxo_deinit
头文件清单
功能说明
- 去初始化TCXO模块,释放底层硬件资源
- 未初始化时调用直接返回成功
- 去初始化过程中通过中断锁保护全局初始化状态
前置条件
- TCXO模块已通过uapi_tcxo_init()初始化完成
返回值
- 返回类型:errcode_t
返回值 文字含义 触发场景 ERRCODE_SUCC(0x0) 成功 去初始化成功或未初始化 Other 其他错误码,参考errcode_t 去初始化失败
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_TCXO_SUPPORT_LPM 特性宏 支持TCXO低功耗特性 n
uapi_tcxo_get_count
头文件清单
功能说明
- 获取TCXO当前计数值(tick数)
- 低功耗模式下返回值包含休眠补偿计数
- 未初始化时返回0
前置条件
- TCXO模块已通过uapi_tcxo_init()初始化完成
返回值
- 返回类型:uint64_t
返回值 文字含义 触发场景 0 计数值为0 TCXO未初始化 非零值 TCXO当前计数值 TCXO已初始化,正常返回计数
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_TCXO_SUPPORT_LPM 特性宏 支持TCXO低功耗特性 n
uapi_tcxo_get_ms
头文件清单
功能说明
- 获取TCXO当前计数毫秒值
- 返回值由tick数除以每微秒tick数与1000的乘积换算得到
- 未初始化时返回0
前置条件
- TCXO模块已通过uapi_tcxo_init()初始化完成
返回值
- 返回类型:uint64_t
返回值 文字含义 触发场景 0 毫秒值为0 TCXO未初始化 非零值 TCXO当前计数毫秒值 TCXO已初始化,正常返回毫秒值
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_TCXO_SUPPORT_LPM 特性宏 支持TCXO低功耗特性 n
uapi_tcxo_get_us
头文件清单
功能说明
- 获取TCXO当前计数微秒值
- 返回值由tick数除以每微秒tick数换算得到
- 未初始化时返回0
前置条件
- TCXO模块已通过uapi_tcxo_init()初始化完成
返回值
- 返回类型:uint64_t
返回值 文字含义 触发场景 0 微秒值为0 TCXO未初始化 非零值 TCXO当前计数微秒值 TCXO已初始化,正常返回微秒值
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_TCXO_SUPPORT_LPM 特性宏 支持TCXO低功耗特性 n
uapi_tcxo_delay_ms
头文件清单
功能说明
- 基于TCXO计数器设置延迟毫秒数,阻塞等待指定毫秒数
- 延迟期间通过忙等方式循环检测计数器值
- 未初始化时返回失败
前置条件
- TCXO模块已通过uapi_tcxo_init()初始化完成
入参
名称 参数类型 详细说明 约束取值范围 m_delay uint32_t 延迟毫秒数 0 ~ 4294967295
返回值
- 返回类型:errcode_t
返回值 文字含义 触发场景 ERRCODE_SUCC(0x0) 成功 延迟完成 ERRCODE_FAIL(0xFFFFFFFF) 失败 TCXO未初始化 Other 其他错误码,参考errcode_t 执行失败
参考案例
src/application/samples/peripheral/tcxo/tcxo_demo.c
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_TCXO_SUPPORT_LPM 特性宏 支持TCXO低功耗特性 n
uapi_tcxo_delay_us
头文件清单
功能说明
- 基于TCXO计数器设置延迟微秒数,阻塞等待指定微秒数
- 延迟期间通过忙等方式循环检测计数器值
- 未初始化时返回失败
前置条件
- TCXO模块已通过uapi_tcxo_init()初始化完成
入参
名称 参数类型 详细说明 约束取值范围 u_delay uint32_t 延迟微秒数 0 ~ 4294967295
返回值
- 返回类型:errcode_t
返回值 文字含义 触发场景 ERRCODE_SUCC(0x0) 成功 延迟完成 ERRCODE_FAIL(0xFFFFFFFF) 失败 TCXO未初始化 Other 其他错误码,参考errcode_t 执行失败
参考案例
src/application/samples/peripheral/tcxo/tcxo_demo.c
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_TCXO_SUPPORT_LPM 特性宏 支持TCXO低功耗特性 n
uapi_tcxo_suspend
头文件清单
功能说明
- 挂起TCXO,保存当前计数值到休眠挂起计数
- 若arg非NULL,将当前计数值写入arg指向的内存
- 用于低功耗场景下保存TCXO计数状态
前置条件
- TCXO模块已通过uapi_tcxo_init()初始化完成
- 已开启CONFIG_TCXO_SUPPORT_LPM配置
入参
名称 参数类型 详细说明 约束取值范围 arg uintptr_t 挂起所需要的参数,指向uint64_t类型内存地址 NULL或有效的uint64_t指针地址
返回值
- 返回类型:errcode_t
返回值 文字含义 触发场景 ERRCODE_SUCC(0x0) 成功 挂起成功 Other 其他错误码,参考errcode_t 挂起失败
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_TCXO_SUPPORT_LPM 功能宏 支持TCXO低功耗管理功能 n
uapi_tcxo_resume
头文件清单
功能说明
- 恢复TCXO,根据休眠补偿微秒数计算补偿计数
- 内部先去初始化再重新初始化TCXO模块
- 用于低功耗场景下恢复TCXO计数状态
前置条件
- TCXO模块已通过uapi_tcxo_suspend()挂起
- 已开启CONFIG_TCXO_SUPPORT_LPM配置
- arg指向的内存包含有效的休眠补偿微秒值
入参
名称 参数类型 详细说明 约束取值范围 arg uintptr_t 恢复所需要的参数,指向uint64_t类型内存地址,内容为休眠补偿微秒数 有效的uint64_t指针地址,指向值非空
返回值
- 返回类型:errcode_t
返回值 文字含义 触发场景 ERRCODE_SUCC(0x0) 成功 恢复成功 Other 其他错误码,参考errcode_t 恢复失败
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_TCXO_SUPPORT_LPM 功能宏 支持TCXO低功耗管理功能 n
Type definitions
errcode_t
使用说明:uapi_tcxo_init、uapi_tcxo_deinit、uapi_tcxo_delay_ms、uapi_tcxo_delay_us、uapi_tcxo_suspend、uapi_tcxo_resume接口的返回值类型