最近芯片惊魂比较多,从一开始的芯片涨价,到现在好多芯片买不到。芯片涨价还能咬咬牙继续做,只要采购成本低于重新设计和打样成本就行。买不到芯片才是最坑的,直接被逼无法生产。如果是模拟芯片还好,只改电路,如果数字芯片还牵涉改一堆软件,头疼。
HackRF最近应该也是碰到了类似的问题。一位朋友跟我说BOM里改了个零件型号。最新版本的BOM里几个sky13350替换为了sky13453,并且把PCB丝印改为2021版了。我查了github,发现固件和驱动都有修改。顿时慌了,难道新版本固件和驱动要放弃老款了?那我的PortaPack怎么办?虽然我可以按照HackRF的最新固件升级我的PortaPack固件,但是手头还在用2014款HackRF的买家怎么办?难道要抛弃他们不给继续更新了吗?
我立马下载了最新的hackrf的repository。先在firmware目录里用grep搜索了一下sky和13350以及13453等字眼,发现无论注释还是变量名都没有提到。这时我放心了不少,看来这颗芯片跟固件里的驱动没什么关系。说明它至少不是数字芯片,大概率只是模拟芯片。但是我还是不太放心,万一控制它的数字芯片的引脚逻辑变了,也有问题,但是这个不好通过简单的搜索来排查。
后来,我到hardware目录,看了下PCB果然不一样了,此时担心值又上升了几分。
直到我耐心看了原理图。找到了sky芯片的位置,在frontend部分。其实是有好几颗,但是也有一定规律。
1.电路的拓扑结构都没有变。
2.PIN的名称对应的功能也没什么区别,都是1个输入,2个输出,还有控制信号VCTL。
3.左侧老版本全都有2个逻辑控制口(1和5),右侧新版本只剩1个逻辑口(5),另一个(1)改为供电口。
4.从网络标签名来看老版本的5口和新版本的5口逻辑是相反的,是RX和TX的关系,或者LP和HP的关系,还有没截图到但是我能看到的加不加!的关系(程序员都懂啥意思)。
因此,我只要找到两个芯片的数据表,核对一下
A.他们功能确实都是开关,把1个射频口分别切换到另外两个射频口上
B.新的芯片用1个引脚就能控制,老芯片要用2个引脚控制。
C.新的芯片的控制引脚正好跟老芯片的对应引脚逻辑相反就行。
我先在立创商城上搜索,老的芯片果然没有货,连数据表都没了,新的那个还有数据表。我只好到digikey上找sky13350,上面找到了它的数据表,居然在底部还被我找到了替代品了有写到sky13453。那看来功能确实差不多。
打开数据表,发现两者确实差不多。只不过左侧老的芯片支持的wifi标准最高到g,新的芯片支持到n。我觉得这个只是取决于发布年代,跟性能、带宽没关系,当然我们后续可以看看具体射频参数。右下角的描述写得很清楚,功能是一样的,都是射频开关,那么A就确认没问题了。
往下看,2346几个引脚在两个芯片上确实都是对应的,24都是受控的两个通道,3是地,6是输入的那个射频通道。1在老芯片上VCTL1对应新的芯片的供电口,这个跟hackrf原理图相符。5口在老芯片上是VCTL2对应新的芯片VCTL。这样就说明B也确认了。新的芯片用1个控制引脚替代了老芯片的2个控制引脚。这个也符合逻辑,因为老芯片的2个控制引脚本就是互斥的,能够提供的信息是冗余的,留一个即可。
现在只剩下要确认5引脚在两个芯片上产生相反效果就行。这时我们可以往下看,老芯片的表5和新芯片的表4就有说明。
我们只看左侧的VCTL2,假设它是0,对应于OUTPUT1是插损,OUTPUT2是隔离,如果你不懂射频,可以理解为当VCTL2被拉低时,输出1是通的,输出2是断的。那么,如果对应新的芯片,由于逻辑相反,这个引脚VCTL拉低时,输出1应该是断的,输出2是通的。看右侧表格,RFC to RF2就是输出2通的意思,所以这个也确认了。至于VDD,现在是供电口,理应一直都是拉高的。
经过这样就确认了两颗芯片功能一致,可以互换,所需要修改的只是新的芯片有个逻辑引脚要改为供电口,以及另一个逻辑引脚要取反。这个已经在原理图里做过更改了,说明PCB上的硬件连线已经按要求改好,那么程序里的逻辑就没必要改。可以用同一套逻辑。
这样看下来是虚惊一场,新老HackRF都可以用同一套代码,无论是新固件还是老固件都行。只要确保新驱动对应新固件,老驱动对应老固件就行。这也符合Michael Ossman在github说的,他没有提到新硬件必须用新固件。
至于这两颗芯片性能有啥差别,我找时间详细核对一下指标。
首先,要说明几个指标的意思。
插损代表传输过程中的信号损失,越小越好。回损代表反射回来的信号,一般是负值,绝对值越大越好。隔离度代表通道间的影响,也是越大越好。IP3是三阶截取点表示线性度,越大越好。切换速度用时间表示,越小越好。EVM代表对数字信号星座图的影响,越小越好。
我们对比了表格,左边是老芯片,右边是新芯片。
老芯片的插损和切换速度更好。新的芯片的回损、隔离度、IP3更好。EVM都是一样的。
再看工作范围
老芯片的工作温度和存储温度的上限都要比新的芯片更大。
所以两款芯片各有千秋,到底新的是否比老的好,取决于你的项目更关心哪个指标。
所以开源的好处就在这里,到底好不好,完全可以自己评估,没必要完全听信商家宣传。
后来,本着事无巨细的原则,我又核对了两个版本的BOM和原理图。
C169和C170在BOM上只有新版本有,老的没有,但是原理图里新老的都有,所以是一样的。
几个电源口1V8 VCC VAA在两款BOM上看着不一样,实际在原理图上是一样的,只不过老的用了PCB飞线绕开跳线,新款直接连线了。
唯一有一点不一样的是USB的供电引线,拉到MCU供电口时的分压电阻有变化。
注意看R65和R62的区别,但我想这个影响不大,如果真有区别,那其中必然有个板子连LED都不会亮,这显然是不可能的,要验证也很好测。
还有一点,老款有个P42接TX,新款去掉了,只保留了RX,这个可以理解,因为新款换了开关,可以用RX来表示TX,没必要过多冗余信息。问题是P42是哪个芯片的引脚,这一点我还没搞清楚,如果读者知道麻烦告诉我,我好对比。目前估计就是原来P42的这个芯片,现在这个引脚应该是悬空了。