Zi

Poke 49233, 0

By
on

拆解学习某国产特斯拉计的结构

前几天买了一个国产的磁场传感器粗略测定一个钕铁硼磁体的磁场强度(天恒测控 Tunkia 的 TM5100 手持特斯拉计),这几天正好需要扫描一个区域的磁场分布,就准备把这玩意接到电脑上采集数据,但是接上电脑之后竟然不工作。打电话问了厂家的技术支持,对方表示 TM5100 上原本配备有 USB 通信协议,甚至在官网的宣传手册里也写了支持 USB 通信,但是由于厂家的领导认为如果给手持仪器加上 USB 功能会导致台式的机器不好卖,因此强行要求技术人员屏蔽了这一部分程序。虽然他这种行为十分缺德,但是也是法律允许的商业行为,我也没有办法,只好把他的仪器拆开学习一下,看看如何能读出数据来。

首先拆电池,开后盖。注意后盖有一个螺丝上有一个贴纸,不要弄碎了。打开后可以看到电路板背面,如图所示。

back

接着往下拆,螺丝上都涂了红胶,看起来像是卡夫特的 K-200R 胶水。拆下来之后正面如图所示

front

正面一看没啥东西,就一个液晶显示屏的接口和驱动芯片,有用的电路基本都在背面。粗略看一眼背面的总体情况,PCB的做工一般,回流焊完成之后的很多地方都没清理干净,可以看到残留的锡之类的东西,还有很多有机质也没清理干净。最离谱的是甚至还有一个三角管竟然是歪着焊上去的,下面看起来都没有焊盘,像是把线路上方的树脂磨掉之后硬焊上去的。

1

这种情况根据我多年的野路子电子工程经验,多半是画 pcb 的人看错元件的引脚定义,或者在 BOM 里标错型号,少半是采购乱买器件,买了同一型号但不是同一个牌子的东西……(很多相同型号的器件,国产厂家有时候会和国外厂家生产的引脚定义不一样,尤其 AO3400 之类的小 MOS 上这种情况非常多见……)

不过画错板子第一时间竟然没有发现,也没有做正确的补救,而是就这么将就改一下,在正规的产品里面这我还是第一次见……总之感觉这就十分山寨。虽然板子非常山寨,但厂家显然很有防盗版意识,虽然也不是什么高科技电路,但还是对所有 IC 做了打磨处理,不让我们看是什么元器件。不过我们一眼就可以看到,这个 48 脚 IC 显然是主控 MCU,从他们打磨得不干净的地方可以隐约看到 ST 的标志,结合这个封装和板子十分山寨这一点,可以推测这个芯片是大家熟知的 STM32F103C8,很可能就是 STM32F103C8T6。

2

再观察电路板,可以看到右下角有一个4pin接口,旁边写着 JTAG100,检查一下可以发现线路连到 STM32 的调试针脚 JTCKJTMS 上,下面还留了经典的 4 针烧录触点,因此显然这是他们工程师预留的调试接口,也就是说可以把固件从这里重新烧录进去。如果以后咱们搞到开放了 usb 接口的固件的话,直接在这里调试就可以搞定了。另外,实际上我们也可以用 ST-Link 在调试口把固件 Dump 出来,直接反编译他的固件进行修改,但是这么做很麻烦,估计得花好几个小时才能搞定,所以还是算了。

3

往左边捋,可以看到探头的 5 条线插在一个 8 pin 母座上。不知道为啥有3个没用上。

4

接上探头,在地磁条件下 (前面板显示 0.02 mT) 依次测量电压,得到结果依次为 0.0001,0.1962,2.753,1.4687,1.4691 随便拿个磁铁放在探头边上,加上大概 88 mT 磁场,再次测量电压,得到结果为 0.0003,0.1965,2.757,1.4359,1.5046 可以看到前三个电压基本没变,第一个始终为0,应该是传感器的 GND,第二个和第三个压差差不多 2.5V也不变,第4个降低,第5个上升,因此我们可以猜测他的传感器应该是类似离子注入型砷化镓霍尔器件 (GaAs Ion Implanted Hall Sensor) 的东西,2,3线可能是个恒压源,也可能是个附近运放过来的恒流源。第4,5线则是测量信号线。这种器件的特点就是线性不错,不需要太多校正就能得到比较好的精度,而且饱和磁强度比较高,可以测量比较大的磁场,经常用的有东芝的 THS119 等。当然,也有可能是厂家定制的灵敏度比较低的霍尔元件,貌似国内的 SS45E 类似的器件厂家也提供定制可以测量大磁场的传感器的服务 (SS45E 最早是 Honeywell 的产品,一般用在几百个 Gs 也就是几十 mT 磁场的灵敏测量)

为了验证我们的猜测,把磁铁放远一点让磁场掉到 38mT 左右,再测 4,5 线电压,结果为 1.4554, 1.4830。如图所示,可以看到线性其实还可以。

l

跟着最后两根线走,可以看到最后这两个信号通过 C223 这个电容,串联两个 560 电阻耦合进了 U204 中。那么 U204 显然要么是运放,要么是仪放,要么是ADC。

5

这时候我们观察 U204 的引脚,在接近 STM32 那一侧明显可以看到3根线跑到了单片机上,并且有一个排阻负责耦合,那么这个多半是某个总线了。看一眼可以发现这3根线上还有3个472电阻,测量电阻另一端,可以得到3.284V,这显然是一个 3v3 的上拉,为了确认这一点,我们找到 MCU 的供电,从供电的滤波电容上量一个供电电压,发现也是 3.284V,因此可以确认这3条线肯定是总线了,至于是什么总线其实可以接个逻辑分析仪就看出来了,但我也懒得看了。那么这样来看 U204 应该就是核心 ADC,再看这个 16 脚封装,应该就是类似 ADS1220IPWR 的 24bit ADC。这种 ADC 很容易用,而且很适合用于测这种两个信号之差。

他这个仪器卖将近1000块钱,其实值钱的也就这个 ADC,探头,探头的驱动电路和他们的校准曲线。别的东西比如电路和程序这些基本上一毛不值。因此我们在 ADC 连到 STM32F103C8T6 的总线上飞几根线出来,引到我们自己的板子上用 GPIO 直接把 ADC 出来的测量结果读一下就行了。但我今天桌子上正好有一个更高精度的采集板,所以我跳过 ADC,直接在进 ADC 的差值电容 C223 上飞两条线出来测量就完事了。读到的结果对着仪器正面自己显示的示数找几个点做一个内插就行。

综合看下来,我感觉这个东西制造加上研发,成本应该在两百左右,如果加上全量程的精密校正曲线,成本估计还要再加个一百。这个仪器在买的时候分了几个不同的精度等级,但是看了一下结构,这个精度等级感觉是比较离谱的,比如说最低精度的那款是 5% 的误差,这就很不可思议,因为这个结构要说探头或者 ADC 的重复性只能达到 5% 我是不信的,就算是因为传感器的体质问题导致线性不好或者怎么,其实都是可以在主控芯片上建立内插出场校准曲线解决的,现成的板子上的那片STM32F103做这件事绰绰有余了。所以感觉这个所谓的等级应该也是厂家的一种商业策略,故意把精度调低一些,好卖给不同的人。