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. 结论

  1. 补偿结果: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。

  2. 5°C / 60°C 偏负的来源:

    • 这在算法预测里就有:预测残差在 5/60°C 为 +0.3~+0.4 ppm,25°C 回调到 0 后,5/60°C 就表现为偏负。
    • 去掉虚拟模板重算,残差不变;码响应表和平移表都是 IC 侧的数据。所以问题不在模型数据,重新采模型数据也帮不上。
    • 根本原因是 IC 能组合出的曲线没法同时贴合 5、25、60°C 三点。
  3. 和 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. 再往下压的方向:

    • 换码已经到头:试过中温加权加公共修正等 4 套方案,中温只改善 0.1 左右,全温没有变好,所以没有采用;
    • 剩下的误差主要是一条各颗相同、周期约 25~30°C 的波纹,要靠 IC 增加更高阶的补偿项才能再降。
posted @ 2026-10-28 11:18  wangxiao8998  阅读(3)  评论(0)    收藏  举报