1 话题背景
要为一款廉价的QCA9331网桥调试非标准信道,但样机较少,只能用一款同方案的老的家用路由器临时替代调试。调试中发现,明明将基频都切换到2112MHz去了,但手机还是能扫描到该SSID。然后换用另一片板子,问题依旧。最奇怪的是启动扫描时,能将周围的标准2G 信号都扫描出来,但信道却被标注为2112,2137等。但同样的代码定制出其他硬件平台的固件,正常启动后,手机扫描不到设备的WiFi信号,设备上也不能扫描到周围正常2G 信号。
2 背景根源
经过不断增加调试打印,最终发现,驱动中更改"fractional-N phased locked loop (PLL) synthesizer"时,QCA9331是算法是直接从ini文件中取值,而这些值就是2412-2848MHz的调整值。因此,无论驱动代码如何修改,只要寄存器中下发的调整值不变,硬件基频就只能发射出2412-2484MHz间的信号。
通过简单更改这些常量值后,手机就扫描不到该设备的SSID了,同时,在该设备上,也不能扫描到周围正常的2G 信号,跑流时,可以跑出非常平稳的效果。
为了缩小调整非标信道的信道偏差,还需对这些PLL值以及可调VCO(BIAS)值进行不断尝试,尽可能降低频偏,并提高EVM。
3 补充
PLL和VCO调整是个非常耗时的工作,同时还要不断调整主芯片外围的匹配电路,此外,天线也要适当地调整,整个过程都是一个系统性工作。所以,在现有的硬件平台上,通过涮第3方固件的方法来支持更多的非标信道,这只是一个美好的愿景而已(当然不排除2.3GHz,2.9GHz上可以有一定的效果)。另外,有些高品质的硬件方案中,增加了带通IC,它会直接卡死主频段,在这类硬件平台上,虽然信道列表中有N多信道(或频段)可选,但非标信道可能均不能用。因此,建议在选择支持非标信道的产品时,不要被多信道所迷惑,也许,非标信道越少越好用。