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 |
浙公网安备 33010602011771号