TCXO 温度补偿记录:TJ X3 38.4MHz

这篇记录 TJ X3 晶体(38.4 MHz)七点温补到目前为止最好的一次结果:10/20 换上的第三批(一次项调小的晶体)5 颗,
先用七温采集数据按原来的最小二乘目标(相对 25°C 钉零)算了一套寄存器并验证,然后用同一份采集数据、把最小二乘改成
允许直流偏移(free_dc)重算寄存器,再上机做了一次单独的 EFOF 回调 + 升温验证。下文以 free_dc 那次为主。

1. 概况

项目 内容
晶体 TJ X3,F0 = 38.4 MHz,工作范围 −30~85°C(配置名/输出目录沿用 KDS26M,实际不是 KDS 晶体)
芯片 第三批 5 颗,CH1~CH5(晶体一次项调小,VCCAL 跨度 0.31~0.45 V,前两批 0.5~0.8 V)
日期 2026-10-20
七温采集 run_id 20261020_113152_405846(tcxo_buchang_7ch_data_20261020_113152_405846.csv)
原算法验证 同 run:tcxo_buchang_7ch_validation_20261020_113152_405846.csv(least_squares_reference = anchor_25)
free_dc 验证(主体) run_id 20261020_205518_382448:efof_trim_20261020_205518_382448.csv + tcxo_efof_validation_20261020_205518_382448.csv
采集温度点 −30 / −20 / 5 / 25 / 60 / 75 / 85°C,自适应保温(VC 和频率都稳定才采)
验证方式 写入寄存器 → 25°C 用 EFOF 把频率拉回 F0 → 升温验证 2°C/min,−30→85°C,ppm 相对 25°C

关键配置:

  • 芯片设置:EIOS = 0x05,EVRF = 0x02,EROF 在 25°C 逐颗调(初值 0x30)。
  • 算法入口 _calibrate_channel_extended:
    • least_squares_reference = free_dc:最小二乘带常数项,直流偏移留给 25°C EFOF 回调去消,ET0C 按峰峰值选;
      旧做法 anchor_25 是把 25°C 误差钉成 0。
    • register_search_radius = 0:连续解直接四舍五入取整,不做 ±N 码整数搜索。
    • ET0C 温移:et0c_shift_model = table_u,温移表 et0c_shift_table_KDS26M_7ch_20261014.csv
      (候选码 0x14~0x3C),U 表 et0c_u_KDS26M_7ch_20261014.csv。
    • 虚拟点模板:vpoint_template_KDS26M_full_20261018.csv(−15~65°C 共 14 点,含低温段)。
      7 个采集点拟合出各分量后叠加模板,得到虚拟点,和采集点一起参与最小二乘。
    • 码响应:共用码响应表 code_response_table_TJX3_20261017.csv(旧批 7 颗平均,芯片间标准差 ≤2.5 mV),
      不逐颗采码响应,采集省约 3.3 小时。
    • exog_gain 1.0147,五阶拟合,f1 形状修正不开。

2. 补偿结果

升温验证(2°C/min),频率误差相对 25°C,5 颗叠在一张图上。

通道 全温峰峰 (ppm) 5~60°C 峰峰 (ppm) 最大 |误差| (ppm)
CH1 0.34 0.22 0.24
CH2 0.64 0.54 0.37
CH3 0.49 0.27 0.36
CH4 0.33 0.30 0.22
CH5 0.41 0.37 0.21
平均 0.44 0.34 0.28

同一份采集数据,旧目标 anchor_25 和 free_dc 的验证对比如下:

通道 anchor_25 全温 / 中温 / 最大 free_dc 全温 / 中温 / 最大
CH1 0.32 / 0.28 / 0.23 0.34 / 0.22 / 0.24
CH2 0.65 / 0.52 / 0.36 0.64 / 0.54 / 0.37
CH3 0.54 / 0.35 / 0.29 0.49 / 0.27 / 0.36
CH4 0.68 / 0.57 / 0.41 0.33 / 0.30 / 0.22
CH5 0.44 / 0.44 / 0.30 0.41 / 0.37 / 0.21
平均 0.53 / 0.43 / 0.32 0.44 / 0.34 / 0.28

和之前几次验证(各批平均)放在一起比:

验证 全温峰峰 5~60°C 峰峰 最大 |误差|
10/19 旧批,全温模板 + 四舍五入 0.62 0.42 0.33
10/19 新批,四舍五入 + 共用码响应表 0.77 0.40 0.49
10/20 第三批,同一流程(anchor_25) 0.53 0.43 0.32
10/20 第三批 + free_dc 0.44 0.34 0.28

3. 七温采集数据

采集用默认寄存器,每个温度点的 VCCAL 是把频率拉回 F0 所需的 VC(V),斜率是该点的拉偏斜率(ppm/V)。

VCCAL (V)

温度 (°C) CH1 CH2 CH3 CH4 CH5
−30 0.5447 0.4303 0.5840 0.5335 0.6436
−20 0.3673 0.2788 0.3902 0.3601 0.4340
5 0.2690 0.2245 0.2734 0.2656 0.2990
25 0.3945 0.3840 0.3808 0.3997 0.3971
60 0.6114 0.6712 0.5664 0.6135 0.5592
75 0.5122 0.5996 0.4583 0.5071 0.4355
85 0.3312 0.4336 0.2719 0.3217 0.2333

拉偏斜率 (ppm/V)

温度 (°C) CH1 CH2 CH3 CH4 CH5
−30 25.76 33.31 23.58 33.42 27.21
−20 36.33 34.88 38.22 30.23 32.59
5 33.00 32.97 31.42 30.89 32.42
25 32.32 28.37 32.87 28.46 32.32
60 27.80 25.13 29.21 28.29 27.10
75 28.03 30.99 28.65 30.41 30.57
85 30.33 30.19 30.47 31.73 32.12

实际温度和设定值相差不超过 0.2°C,35 个点状态都是 OK,都在扫描区间内(bracketed)。

4. 计算的寄存器值

默认寄存器(采集时):EXOG 0x45、EV1G 0x31、EV4G 0x28、EV5G 0x29、ET0C 0x2E、EFOF 0x10、EIOS 0x05、EVRF 0x02、
EROF 0x30(初值,25°C 逐颗调)、EMOD 0x00、EVCC 0x00。

free_dc 寄存器(最终上机、验证用的这套),EFOF 是写入后 25°C 回调得到的:

CH EXOG EV1G EV4G EV5G ET0C EFOF
CH1 0x42 0x20 0x05 0x2A 0x2D 0x12
CH2 0x46 0x29 0x05 0x23 0x2C 0x13
CH3 0x40 0x1C 0x02 0x2A 0x2C 0x16
CH4 0x45 0x1F 0x04 0x25 0x2A 0x12
CH5 0x44 0x17 0x20 0x27 0x2A 0x13

作为对照,同一份采集数据用 anchor_25 算出的寄存器(tcxo_buchang_7ch_result_20261020_113152_405846.csv):

CH EXOG EV1G EV4G EV5G ET0C EFOF
CH1 0x43 0x1F 0x02 0x26 0x2B 0x12
CH2 0x44 0x2A 0x06 0x26 0x2D 0x13
CH3 0x41 0x1C 0x01 0x29 0x2B 0x16
CH4 0x49 0x1E 0x00 0x01 0x27 0x14
CH5 0x46 0x16 0x23 0x24 0x28 0x13

两套比较:大多数通道只差 1~4 码。CH4 改动最大:EXOG 0x49→0x45,EV5G 0x01→0x25,ET0C 0x27→0x2A。
它的全温峰峰也改善最多,0.68→0.33。

5. 结论

  • 一次项调小的晶体最好补:VC 跨度小,原流程(anchor_25)全温平均 0.53 ppm,已经好于前两批的 0.62 / 0.77;
    前两批 −10°C 附近的鼓包也消失了(−0.18~+0.07)。
  • 最小二乘允许直流偏移(free_dc)有效:直流偏移交给 25°C EFOF 回调,ET0C 按峰峰值选。用同一份采集数据重算后上机,
    5 颗平均全温 0.53→0.44、5~60°C 0.43→0.34、最大误差 0.32→0.28 ppm。效果和"中温加权 ×2"相当,但不用人为定权重。
    机台配置已改为 free_dc。
  • 剩余误差:CH2 最差(全温 0.64),−22°C 附近 −0.37、0~15°C 整体偏负、45°C +0.27;CH3 在 75~80°C 有 +0.36。
    中温凹凸(10~15°C 低、40~45°C 高)的大小和 EXOG(公共增益)有关,约每码 +0.026 ppm,是模型误差,还在查。
  • 升温验证本身带动态误差(旧批静态核对,报告 2.14):升温时 25°C 参考点比静态低 0.10~0.15 ppm,
    以它为参考,45°C 被抬高约 +0.1。所以验证曲线上 45°C 的凸起有一部分是升温造成的。
posted @ 2026-10-28 11:17  wangxiao8998  阅读(3)  评论(0)    收藏  举报