TCXO 温度补偿记录:TJ 光刻晶体 38.4MHz
本文记录 7 颗 TJ 光刻晶体(38.4 MHz)的完整温补过程和结果。重点是 10/26 把 EIOS 从 0x05 改成 0x03 后重新做的那次完整补偿,也是最终采用的一次。10/23 用 EIOS=0x05 做的第一次只在最后做一行对比。
1. 概况
| 项 | 内容 |
|---|---|
| 晶体 | TJ 光刻晶体,标称 38.4 MHz(F0 = 38400000 Hz),7 颗,装在 CH1~CH7 |
| IC | 与 TJ X3 各批用同一款 IC,每通道一颗 |
| 日期 | 2026-10-26 11:32 开跑,18:10 采集和计算完成,20:48 升温验证完成 |
| run_id | 20261026_113209_665480 |
| 采集温度点 | −30 / −20 / 5 / 25 / 60 / 75 / 85 °C,共 7 点。每点到温后自适应判稳:最少保温 5 min,VC 和频率连续 3 轮都稳定才采集,−30°C 最长等 40 min,其余点最长 30 min |
| 拉偏斜率 | 每个温度点用两个 EFOF 码各测一次频率,逐点算出 ppm/V |
| 验证 | 25°C 写入结果寄存器,再回调 EFOF 到 ±0.1 ppm 以内,然后按 2°C/min 从 −30°C 升到 85°C,误差都相对 25°C 计 |
关键配置
-
EIOS = 0x03(驱动电流)。上次用的 0x05 在上电过程中电流飘、不够,所以改成 0x03,其他配置都没动。
-
EVRF = 0x02 保持默认,不调(
adjust_evrf = false)。 -
算法入口是
_calibrate_channel_extended,设置least_squares_reference = free_dc、register_search_radius = 0:- 对每个 ET0C 候选码,用 7 个采集点加虚拟模板点做带常数项的最小二乘,也就是减掉一个常数后让平方和最小;
- 连续解直接四舍五入成整数码,不再做整数穷举;
- 预测峰峰值只用来挑 ET0C。
-
模型数据和 TJ X3 共用:
- 全温虚拟点模板
vpoint_template_KDS26M_full_20261018.csv; - 码响应表
code_response_table_TJX3_20261017.csv(code_response_model = measured); - ET0C 平移表
et0c_shift_table_KDS26M_7ch_20261014.csv。
EIOS 只改振荡激励电流,对 IC 的 VC 域响应影响很小,所以这些表没有重做。
- 全温虚拟点模板
-
流程上,结果寄存器改成回到 25°C 后再写(
program_at_trim_temperature = true),写完再做 EFOF 回调。以前是在 85°C 写,曾出现过写失败和生效值不稳的问题。
2. 补偿结果

升温验证结果如下(ppm,相对 25°C;数据文件 tcxo_buchang_7ch_validation_20261026_113209_665480.csv):
| 通道 | 全温峰峰 | 5~60°C 峰峰 | 最大 |误差| | 最大误差所在温度 |
|---|---|---|---|---|
| CH1 | 0.46 | 0.35 | 0.32 | 60.7°C |
| CH2 | 0.60 | 0.28 | 0.35 | 80.5°C |
| CH3 | 0.58 | 0.30 | 0.35 | 80.7°C |
| CH4 | 0.67 | 0.67 | 0.52 | 4.7°C |
| CH5 | 0.52 | 0.52 | 0.35 | 8.1°C |
| CH6 | 2.52(去掉单点约 0.62) | 0.58 | 2.05(去掉单点约 0.47) | −23.7°C |
| CH7 | 0.74 | 0.72 | 0.69 | 2.4°C |
| 6 颗平均(不含 CH6) | 0.60 | 0.47 | 0.43 |
- CH6 在 −23.7°C 有一次读数跳到 +2.05 ppm,前后两点分别是 −0.40 和 −0.35,属于单次读数异常。去掉这一点后,CH6 全温约 0.6,和其他颗相当。CH6 座子在这批里多次出过写失败,所以平均值不算它。
- 曲线的公共形状:0~10°C 和 60~65°C 各有一个凹,约 −0.2~−0.3 ppm,35~40°C 有一个凸,约 +0.1+0.15,7585°C 回升。CH7 的两个凹最深,到 −0.6~−0.7。
- 25°C 做 EFOF 回调后,7 颗都在约 ±0.1 ppm(−0.10~+0.07 ppm)。
3. 七温采集数据
数据文件 tcxo_buchang_7ch_data_20261026_113209_665480.csv,49 行状态全部是 OK。这次 CH6 也采全了。
VCCAL(V)
| 设定温度 (°C) | 实际 (°C) | CH1 | CH2 | CH3 | CH4 | CH5 | CH6 | CH7 | 平均 |
|---|---|---|---|---|---|---|---|---|---|
| −30 | −29.8 | 0.506 | 0.453 | 0.443 | 0.457 | 0.390 | 0.446 | 0.487 | 0.454 |
| −20 | −20.0 | 0.346 | 0.302 | 0.298 | 0.308 | 0.261 | 0.300 | 0.322 | 0.305 |
| 5 | 4.9 | 0.271 | 0.247 | 0.246 | 0.250 | 0.231 | 0.253 | 0.264 | 0.252 |
| 25 | 24.9 | 0.384 | 0.376 | 0.381 | 0.384 | 0.384 | 0.390 | 0.385 | 0.383 |
| 60 | 60.2 | 0.580 | 0.610 | 0.624 | 0.622 | 0.674 | 0.642 | 0.601 | 0.622 |
| 75 | 75.1 | 0.477 | 0.521 | 0.532 | 0.526 | 0.597 | 0.550 | 0.497 | 0.529 |
| 85 | 85.1 | 0.310 | 0.363 | 0.371 | 0.361 | 0.437 | 0.391 | 0.334 | 0.367 |
拉偏斜率(ppm/V)
| 设定温度 (°C) | 实际 (°C) | CH1 | CH2 | CH3 | CH4 | CH5 | CH6 | CH7 | 平均 |
|---|---|---|---|---|---|---|---|---|---|
| −30 | −29.8 | 27.9 | 35.9 | 32.6 | 30.9 | 30.4 | 31.6 | 22.5 | 30.3 |
| −20 | −20.0 | 34.7 | 37.1 | 36.8 | 38.0 | 37.7 | 40.0 | 36.9 | 37.3 |
| 5 | 4.9 | 38.8 | 37.2 | 38.3 | 35.4 | 36.2 | 37.2 | 40.7 | 37.7 |
| 25 | 24.9 | 31.5 | 36.2 | 32.6 | 34.6 | 30.7 | 32.5 | 32.9 | 33.0 |
| 60 | 60.2 | 26.9 | 29.6 | 25.8 | 25.7 | 25.3 | 26.7 | 25.6 | 26.5 |
| 75 | 75.1 | 32.7 | 30.2 | 28.6 | 28.9 | 27.6 | 30.4 | 30.1 | 29.8 |
| 85 | 85.1 | 35.4 | 32.2 | 33.3 | 39.4 | 32.3 | 33.8 | 40.8 | 35.3 |

- 光刻晶体颗间一致性很好:25°C VCCAL 7 颗都在 0.376~0.390 V,60°C 散布约 ±0.05 V。整条曲线都落在 0.23~0.67 V 内,没有削顶,也没有打到 0 V。
- 拉偏斜率在 −20~25°C 偏高,60°C 最低,往 85°C 回升,这个随温度的形状和以前各批一致。同一次采集里单点大约有 ±3 ppm/V 的测量散布。
- 和 EIOS=0x05 的采集相比,拉偏斜率平均只差 +1%(32.4→32.8 ppm/V)。但 VCCAL 形状上,5°C 和 60°C 相对 25°C 抬高了约 3 mV,大约 0.1 ppm。用 EIOS=0x03 再完整采一次,结果相同,说明不是采集重复性带来的。
- 25°C 的 EROF(初始化时调整):CH1 0x30、CH2 0x23、CH3 0x27、CH4 0x2b、CH5 0x2a、CH6 0x25、CH7 0x18。CH7 比其他颗低得多,光刻晶体在 25°C 的频率散布比 X3 大。
4. 计算的寄存器值
结果文件为 tcxo_buchang_7ch_result_20261026_113209_665480.csv,状态 DEFERRED,即 25°C 再写;EFOF 回调结果见 tcxo_buchang_7ch_efof_trim_20261026_113209_665480.csv。
EV4G 和 EV5G 是带符号增益码:0x0x 为负,0x2x 为正。例如 0x05 = −5,0x25 = +5。
| CH | EXOG | EV1G | EV4G | EV5G | ET0C | EFOF(25°C 回调后) | EROF |
|---|---|---|---|---|---|---|---|
| CH1 | 0x3d | 0x20 | 0x00(0) | 0x27(+7) | 0x27 | 0x16 | 0x30 |
| CH2 | 0x3c | 0x26 | 0x05(−5) | 0x29(+9) | 0x2a | 0x15 | 0x23 |
| CH3 | 0x3d | 0x27 | 0x08(−8) | 0x29(+9) | 0x2c | 0x14 | 0x27 |
| CH4 | 0x41 | 0x25 | 0x03(−3) | 0x23(+3) | 0x28 | 0x15 | 0x2b |
| CH5 | 0x41 | 0x2c | 0x0a(−10) | 0x25(+5) | 0x2c | 0x13 | 0x2a |
| CH6 | 0x40 | 0x27 | 0x06(−6) | 0x26(+6) | 0x2a | 0x14 | 0x25 |
| CH7 | 0x40 | 0x21 | 0x25(+5) | 0x23(+3) | 0x24 | 0x17 | 0x18 |
默认寄存器(初始化写入,也是计算的起点):
| EXOG | EV1G | EV4G | EV5G | ET0C | EVRF | EIOS | EROF | EFOF | EMOD |
|---|---|---|---|---|---|---|---|---|---|
| 0x45 | 0x31 | 0x28(+8) | 0x29(+9) | 0x2e | 0x02 | 0x03 | 0x30 | 0x10 | 0x00 |
和默认值相比:
- EXOG 小 4~9 码;
- EV1G 小 5~17 码;
- ET0C 小 2~10 码,CH7 小得最多,为 0x24;
- EV4G 多数取负,EV5G 比默认 +9 小。
这组寄存器在 10/27 重新写回了板子:25°C 写入后回调 EFOF,6 颗都在 ±0.09 ppm 以内。CH6 座子写失败,没写进去。
5. 与 10/23 第一次(EIOS=0x05)的对比
第一次是 10/23 跑的,run_id 为 20261023_093017_259687。那次 CH6 初始化写失败,被隔离了;CH7 在首次验证中跳变,之后用同一组寄存器又复测了一次(tcxo_verify_validation_20261023_192308_485266.csv)。表中数据是 6 颗平均,不含 CH6:
| 方案 | 全温峰峰 | 5~60°C 峰峰 | 最大 |误差| | 算法预测全温 |
|---|---|---|---|---|
| 10/23 EIOS=0x05(复测) | 0.49 | 0.41 | 0.28 | 0.50 |
| 10/26 EIOS=0x03(本文) | 0.60 | 0.47 | 0.43 | 0.58 |
10/26 晚 EIOS=0x03 重复采集(20261026_235727_306892) |
0.63 | 0.55 | 0.45 | 0.65 |
EIOS=0x03 比 0x05 差约 0.1 ppm,算法预测里就已经差这么多,实测和预测对得上。原因是采集数据本身:5°C 和 60°C 相对 25°C 抬高了约 3 mV。重复采集的最优解很平,有几颗换了另一组码,但效果接近,所以最后仍用第一次 EIOS=0x03 的寄存器。
6. 结论
-
补偿结果:EIOS=0x03 下,6 颗平均全温峰峰 0.60 ppm,5~60°C 0.47 ppm,最大 |误差| 0.43 ppm。最好的是 CH1,为 0.46 / 0.35;最差的是 CH7,为 0.74 / 0.72。
-
5°C / 60°C 偏负的来源:
- 这在算法预测里就有:预测残差在 5/60°C 为 +0.3~+0.4 ppm,25°C 回调到 0 后,5/60°C 就表现为偏负。
- 去掉虚拟模板重算,残差不变;码响应表和平移表都是 IC 侧的数据。所以问题不在模型数据,重新采模型数据也帮不上。
- 根本原因是 IC 能组合出的曲线没法同时贴合 5、25、60°C 三点。
-
和 TJ X3 的对比(同一 IC、同一算法;X3 是一次项调小那批,10/20 采集,5 颗):
项 X3 光刻(EIOS=0x05) 光刻(EIOS=0x03) 验证 全温 / 中温(ppm) 0.44 / 0.34 0.49 / 0.41 0.60 / 0.47 三次拟合后的非三次残差峰峰(mV) 14.4 17.6 19.8 - 光刻晶体的三次项小约 8%,二次项小约 30%,颗间一次项更一致;
- 光刻晶体的拉偏斜率高约 6%;
- 光刻晶体的非三次成分多 20~40%,集中在 25°C(更凹)和 60°C;
- 所以补偿极限比 X3 差约 0.05~0.1 ppm,是晶体本身的原因,不是算法或模型的问题。
-
再往下压的方向:
- 换码已经到头:试过中温加权加公共修正等 4 套方案,中温只改善 0.1 左右,全温没有变好,所以没有采用;
- 剩下的误差主要是一条各颗相同、周期约 25~30°C 的波纹,要靠 IC 增加更高阶的补偿项才能再降。
浙公网安备 33010602011771号