TCXO 温度补偿记录:HL 晶体

本文记录 HL 38.4 MHz 晶体配同一颗 TCXO 补偿 IC 的补偿结果,以 10/22 的第二批 7 颗为主(7 颗全部补偿完成,全程没有写失败)。10/21 第一批的结果放在文末对比。

1. 概况

项目 内容
晶体 HL 38.4 MHz(目标频率 F0 = 38 399 800 Hz,比标称低 5.2 ppm,这样 EROF 能落在 0x00~0x3F 以内)
芯片数 7 颗(CH1~CH7)
日期 2026-10-22(09:18 开始,16:13 算完寄存器,18:48 验证结束)
run_id 20261022_091829_263272
采集温度点 −30 / −20 / 5 / 25 / 60 / 75 / 85 °C(七点)
验证 −30→85 °C 升温验证,每颗 77 个点,频率误差取相对 25 °C 的值
关键配置 EIOS = 0x05;25 °C 调 EVRF 让 VREF 最接近 1.6 V(7 颗都选 0x02,VREF 1.598~1.6005 V);EROF 上限 0x3F;写完寄存器后在 25 °C 用 EFOF 把频率拉回 F0
算法 入口 _calibrate_channel_extended;least_squares_reference = free_dc(最小二乘带一个常数项,不强制过 25 °C);register_search_radius = 0(连续解直接四舍五入,不做整数穷举);峰峰值只用来选 ET0C
拟合点 7 个采集点 + 全温模板 vpoint_template_KDS26M_full_20261018.csv 的 14 个虚拟点(−15~65 °C),共 21 点等权
码响应表 code_response_table_HL_20261021.csv(HL 默认码变了,表里去掉了 ev1g 行)

2. 补偿结果

升温验证,7 个通道叠在一张图上(相对 25 °C):

验证结果(数据 tcxo_buchang_7ch_validation_20261022_091829_263272.csv,单位 ppm):

通道 全温峰峰值 5~60 °C 峰峰值 最大 |误差|
CH1 0.39 0.23 0.22(60.8 °C)
CH2 0.48 0.31 0.35(79.1 °C)
CH3 0.28 0.25 0.20(62.4 °C)
CH4 0.33 0.20 0.17(79.4 °C)
CH5 0.39 0.28 0.24(−22.7 °C)
CH6 0.54 0.20 0.31(78.2 °C)
CH7 0.49 0.33 0.30(83.0 °C)
7 颗平均 0.41 0.26 0.26

曲线的共同形状:

  • 5~20 °C 有一个凹,最低点在 14~18 °C,深约 −0.1 ppm。
  • 40~48 °C 有一个凸起,CH2/CH5/CH7 达到 +0.15~+0.23 ppm。
  • 60 °C 附近有一个 −0.2 ppm 的谷。
  • 75~85 °C 偏正,CH2/CH6/CH7 约 +0.3 ppm。

CH2 在 78 °C 有一个 0.13 ppm 的单点毛刺,其余相邻点之间的变化最大 0.07 ppm,没有跳变。

3. 七温采集数据

数据 tcxo_buchang_7ch_data_20261022_091829_263272.csv。VCCAL 是 25 °C 调完 EROF 后,每个温度下让频率回到 F0 所需的 VC;斜率是该温度下 VC 拉偏测得的 ppm/V。

VCCAL(V)

通道 −30 °C −20 °C 5 °C 25 °C 60 °C 75 °C 85 °C
CH1 0.6527 0.4347 0.2991 0.3956 0.5570 0.4394 0.2465
CH2 0.6141 0.4136 0.2868 0.3958 0.5816 0.4704 0.2810
CH3 0.5854 0.3963 0.2802 0.3881 0.5767 0.4747 0.2945
CH4 0.5890 0.3978 0.2804 0.3917 0.5863 0.4836 0.3017
CH5 0.5473 0.3634 0.2565 0.3854 0.6036 0.5058 0.3253
CH6 0.6065 0.4063 0.2783 0.3818 0.5286 0.4104 0.2200
CH7 0.4780 0.3058 0.2265 0.3806 0.6556 0.5774 0.4067

拉偏斜率(ppm/V)

通道 −30 °C −20 °C 5 °C 25 °C 60 °C 75 °C 85 °C
CH1 23.70 36.24 30.93 32.66 28.98 32.37 29.46
CH2 25.81 31.45 32.84 29.43 28.08 30.45 26.40
CH3 24.93 33.21 31.34 33.65 28.83 29.81 30.90
CH4 22.74 33.19 34.19 30.23 28.03 30.28 30.95
CH5 30.37 33.83 31.23 26.43 34.11 31.58 27.79
CH6 24.18 31.88 33.36 30.21 30.47 31.79 30.31
CH7 32.67 30.80 30.50 30.04 25.71 31.81 27.67

VCCAL 的形状和第一批一样:−30 °C 高,5 °C 是谷,60 °C 是峰。各颗的差别主要在随温度的倾斜,用 V(60) − V(−20) 衡量:CH1~CH6 是 122~241 mV,CH7 是 350 mV,倾斜最大。

4. 计算的寄存器值

数据 tcxo_buchang_7ch_result_20261022_091829_263272.csv:

CH EXOG EV1G EV4G EV5G ET0C
CH1 0x41 0x18 0x23 0x2a 0x28
CH2 0x44 0x1b 0x02 0x28 0x2a
CH3 0x42 0x1c 0x01 0x26 0x28
CH4 0x42 0x1d 0x03 0x27 0x29
CH5 0x46 0x1f 0x03 0x25 0x28
CH6 0x43 0x17 0x23 0x26 0x24
CH7 0x47 0x27 0x04 0x25 0x2b

EV4G/EV5G 是带符号的增益码,0x0x 表示负,0x2x 表示正。

默认寄存器(default_HL.txt):EXOG = 0x47、EV1G = 0x1e、EV4G = 0x28、EV5G = 0x29、ET0C = 0x2e、EIOS = 0x05、EVRF = 0x02、EFOF = 0x10。EROF 在 25 °C 逐颗调,这批落在 0x33~0x39。

EFOF 在 25 °C 的回调结果:CH1 → 0x12,CH3、CH5 → 0x11,CH6 → 0x14,CH2/CH4/CH7 保持 0x10。回调后 25 °C 频偏都在 ±0.1 ppm 以内。

5. 结论

  • 7 颗全部补偿到位,平均全温峰峰值 0.41 ppm,5~60 °C 峰峰值 0.26 ppm,最大误差 0.26 ppm。比 TJ X3 晶体用同一算法(free_dc)的 0.44 / 0.34 / 0.28 好,比 HL 第一批略差。

  • ET0C 普遍比默认 0x2e 低 3~10 码(0x24~0x2b),两批都是这样,说明 HL 的拐点温度比 TJ X3 低约 2~3 °C。CH7 倾斜最大,EV1G 外推到 0x27(比默认高 9 码),但验证结果正常,没有额外误差。

  • 剩余误差的形状是系统性的:5~20 °C 的凹、40 °C 的凸、60 °C 的谷、75~85 °C 偏正,两批 HL 和 TJ X3 各批都有。把 21 点上的拟合残差换算成频率误差,和实测基本吻合(15 °C 预测 −0.09~−0.19,实测 −0.09~−0.17 ppm)。这些波纹的阶数比 IC 能调的几项(EXOG/EV1G/EV4G/EV5G/ET0C)高,最小二乘只能把误差分摊,换选码方式消不掉。

  • 离线试过的两种改法:

    • 整数穷举(minimax):全温只降 0.03,中温不变。
    • 中温加权:5~60 °C 最多降 0.05 ppm,代价是全温多 0.07~0.1。

    所以继续用 free_dc 加四舍五入。

附:第一批(10/21)对比

第一批:run_id 20261021_124234_230113。CH6 在 85 °C 写 EV1G 失败,没有补偿,疑似座子接触问题。CH5 在第一次验证中进入异常状态:寄存器读回正确,但频率出现跳变,原样重写一次后恢复。10/22 只验证、不写寄存器又跑了一遍,结果为 tcxo_verify_validation_20261021_235444_746634.csv。

批次 有效颗数 全温峰峰 5~60 °C 峰峰 最大 |误差|
第一批 10/21(复跑验证,CH6 除外) 6 0.33 0.23 0.22
第二批 10/22 7 0.41 0.26 0.26
posted @ 2026-10-28 11:18  wangxiao8998  阅读(3)  评论(0)    收藏  举报