磁场越强,角度也可能越错! HALL 与 TMR 手册里都写“工作磁场范围”,其实不是同一个参数
首发于公众号「如是有为」 · 查看原文

磁场越强,角度也可能越错
做磁编码器的人,很容易养成一个直觉:磁铁靠近一点,磁场强一点,信号大一点,噪声占比就低一点。
于是设计讨论最后经常收敛成一句话:
“要不把磁铁再做强一点?”
这句话有时候能救命。
也有时候,会亲手把原本还能用的角度曲线推坏。
真正的问题,不在于磁场到底是 20 mT、60 mT 还是 300 mT,而在于数据手册里那个看起来很简单的 mT,到底在约束信号链的哪一层。
TI 的 TMAG5170A2 给出了 ±75 mT、±150 mT、±300 mT 三档磁场范围,而且 X、Y、Z 三个轴可以独立配置。
TDK 的 TAS2141-AAAB 则给出了 20–80 mT 的 External Magnetic Field 条件,并列出相应的角度性能。
看到这里,很容易有人拿计算器:
300 mT 比 80 mT 大这么多,是不是前者“抗磁场能力”就是后者的四倍?
不是。
甚至这两个数字,本来就不应该这么比。
TMAG5170A2这个轴的磁场分量,怎样映射进数字转换范围?
TAS2141这颗 TMR 角度桥,在什么磁场条件下声明它的角度性能?
先看最简单的一圈磁场
假设一块径向磁化磁铁在芯片上方旋转,芯片看到理想的平面旋转磁场:
Bx = B cos θ
By = B sin θ
如果 B = 60 mT,那么 X、Y 两个分量都在 −60~+60 mT 之间变化。
对 TMAG5170A2 来说,选择 ±75 mT 档,意味着单轴还剩大约 15 mT 的峰值余量。
如果机械变化把磁场幅值推到了 90 mT,那么在某些角度下就可能超出当前量程。把量程切到 ±150 mT,可以重新获得测量余量。
但是事情到这里才刚刚开始。因为量程扩大,不等于精度免费增加。
TMAG5170 内部使用 12-bit ADC。官方资料同时说明,在开启平均时,结果可以扩展到 16-bit 结果字;但 16-bit 输出,并不等价于真正获得了 16-bit 独立物理分辨率。
所以从 ±75 mT 切到 ±300 mT,在一个简化的“相同数字编码空间”模型下,同样大小的磁场变化,占到的数字刻度自然会减少。
你得到的是:更大的过量程余量。
你没有得到的是:免费的四倍角度分辨率。
更麻烦的不是饱和,而是圆心跑了
现在仍然保持 B = 60 mT,但在 X 方向叠加一个固定外场 Bo = 20 mT。
Bx = 60 cos θ + 20
By = 60 sin θ
原本以原点为圆心的磁场轨迹,被整体向右平移了 20 mT。
在真实机械角 θ = 90° 时,本来应该看到 (0, 60),现在却变成 (20, 60)。如果直接做 atan2:
θm = atan2(60, 20) ≈ 71.565°
Δθ ≈ −18.435°
18 度。
这已经不是“精度稍微掉一点”,而是角度直接歪掉一大截。
最有意思的地方是:如果你嫌 ±75 mT 会超量程,把 TMAG5170A2 改成 ±150 mT,芯片确实可以把这个错误矢量完整测下来。
但角度还是错。
因为你只是避免了削顶,并没有消除那个 20 mT 的外场。
换句话说,量程足够,只能证明芯片把错误磁场测完整了;它不能证明这个磁场仍然代表真实机械角。
那磁场做强一点是不是就好了?
有一定道理。还是刚才那 20 mT 外场,如果目标旋转磁场从 60 mT 提高到 120 mT:
θm = atan2(120, 20)
Δθ ≈ −9.462°
确实从 18.4° 降到了 9.46°。
所以“把磁场增强”并不是一句完全错误的话。它提高了目标磁场与固定外场之间的比值。
但代价也马上出现:Hall 信号链可能需要切换更大的量程;如果使用的是一颗对工作磁场有明确要求的 TMR 角度桥,你还必须重新确认有没有把器件推离厂家声明的磁场条件。
TAS2141-AAAB 的官方参数页给出的 External Magnetic Field 是 20–80 mT。它同时给出典型 25°C 角度精度 ±0.1°、全温区 ±0.6°。
这不能理解成 80 mT 是悬崖、81 mT 芯片就突然坏掉;但也绝不能反过来理解成:磁场越强,TMR 输出一定越漂亮。
最阴的一种错误:两个轴都没超量程,角度还是错十八度
TMAG5170 有一个很好用的能力:X、Y、Z 可以分别配置量程。
做三维磁场测量非常方便,但如果你自己拿 X、Y 原始码做角度,这也给工程师挖了一个坑。
假设 X 轴配置为 ±75 mT,Y 轴配置为 ±150 mT。真实机械角是 45°,所以实际磁场满足:
Bx = By
物理磁场明明一样大,但因为两路满量程不同,如果直接看未经统一尺度换算的数字码,一个轴每 mT 对应的码数可能大约是另一个轴的两倍。
于是原本应该是 1:1 的正交矢量,被你喂给 atan2 时可能变成近似 2:1:
atan2(1, 2) ≈ 26.565°
45° − 26.565° = 18.435°
芯片没坏,磁铁没掉,ADC 没饱和。
只是你把两把刻度不同的尺子,直接塞进了同一个三角函数。
即使量程完全相同,圆也可能偷偷变成椭圆
假设两轴量程完全一样,但 Y 通道增益比 X 多 1%。可以写成:
X = cos θ
Y = (1 + ε) sin θ
ε = 0.01
对于很小的增益失配,角度误差的一阶近似是:
Δθ ≈ (ε / 2) sin 2θ
因此最大误差大约为:
Δθmax ≈ 0.005 rad ≈ 0.286°
更重要的不是这个 0.286°,而是它的形状。因为里面出现了 sin 2θ,所以误差会在机械一圈里出现两个周期。
为什么很多角度误差图不是一个随机毛刺,而是非常漂亮地长出一阶、二阶、四阶谐波?因为角度计算前面那条“圆”,其实早就已经不是圆了。
偏置圆心平移
增益失配圆变椭圆
非正交椭圆倾斜
最后 atan2 很无辜。它只是忠实地告诉你:“你给我的这个点,相对于原点就是这个方向。”
TMR 也逃不过这条信号链
有时候讨论到了这里,会冒出另一个过度简化的说法:
“那是 Hall 的问题,TMR 是桥,天然就直接出 sin/cos。”
也没这么便宜。
TAS2141 的确是一颗 TMR 全桥式、差分 Sin/Cos 模拟输出角度传感器。但桥后面还要有电路。
两路差分输出以后,真实系统里仍然可能面对:放大器增益失配、输入失调、共模范围、ADC 参考、电源纹波、通道同步、PCB 不对称,以及后续软件标定。
所以 TMR 这个名字,并没有替后面的模拟链和数字链把作业写完。反过来,Hall 也不能只盯着一个 ADC 位数,就宣布整机角度性能。
最终角度误差始终属于整条链。
真正该测的,不是一点磁场,而是一整圈轨迹
如果让我做这个验证,我最不愿意看到的一张表就是:
| 气隙 | 中心磁场 |
|---|---|
| 1.5 mm | 86 mT |
| 2.0 mm | 68 mT |
| 2.5 mm | 53 mT |
因为这张表几乎什么都没告诉我。
真正应该保存的是:整整一圈。
对于 Hall:
(Bx(θ), By(θ))
再加参考角:
θref
对于 TMR bridge,则至少保存两路经过定义清楚的差分信号:
Vsin(θ)
Vcos(θ)
然后把它们画在 XY 平面里。
边缘被切平可能是过量程
圆心离开原点可能存在 DC offset 或外场
圆变成椭圆检查两轴增益
椭圆还有倾斜继续检查正交误差
如果这些东西随温度、气隙、转速或者电机电流改变,那就别再把它叫作“一次标定能解决的问题”。
还有一个特别容易把人骗到的参数:Unlimited
TMAG5170 的绝对最大额定值里,磁通密度 BMAX 写的是:Unlimited。
这句话特别值得编码器工程师记住,因为同一颗磁传感器,完全可能同时存在三种“磁场边界”:
01器件会不会被磁场弄坏
02磁场还能不能被正常测出来
03最终角度还能不能满足系统要求
Unlimited、±300 mT、最终 ±0.x°,根本不是同一列参数。
如果有人把它们抄进 Excel 以后,只保留“最大磁场”这一栏,那么表格做得越漂亮,误导得可能越彻底。
所以“磁场越强越好”,这句话只说对了一半
磁场增强以后,目标信号相对于随机噪声和某些固定干扰可能会变得更有优势。这是真的。
但与此同时,它可能逼迫 Hall 传感器切换更大量程;降低单位磁场占据的数字编码比例;改变采样、平均与动态响应之间的权衡;把某些角度桥推出厂家声明的工作磁场条件;放大磁路非线性、偏心和结构误差的重要性。
最后甚至只是——
把一个本来就错误的磁场矢量,测得更加清楚。
所以我现在越来越不喜欢一句话:
“这个磁铁多少 mT?”
这问题问得太早了。
我更关心的是:它转一整圈以后,磁场轨迹是什么形状?经过传感器、模拟前端、ADC、增益补偿和 atan2 以后,这条轨迹最后变成了多少角度误差?
磁场的数字,必须顺着整条信号链一直往后追。
一直追到角度。
在那里,才知道这颗更强的磁铁,到底是在帮你——还是在帮错误变得更清楚。
公开来源
TI:TMAG5170 数据手册 SBASAF4,型号量程、ADC、轴配置及角度增益/偏置补偿。
TDK:TAS2141-AAAB 数据手册,推荐磁场条件与角度桥性能。
文中的 60 / 120 mT、20 mT 外场、18.435°、9.462°、以及 1% 增益失配对应约 0.286° 等数字,均为给定假设下的数学分析,不是两款器件的实测横评结果。

关注公众号「如是有为」
微信扫一扫,新文章先在公众号发出。