>

再战RF功率计

2017-08-10 by Stavros

目标是实现从1mW以下到几瓦射频功率的测量。

原理图很简单,6个300欧电阻并联成50欧假负载,二极管检波、分压后由MCP3421进行AD转换,STM32F030控制OLED屏显示。供电用一节5号电池,BL8530升压到3.3V。

主要的麻烦在于检波二极管。2015年试过一次,用2SC1622、2N5551之类高反压三极管的BC结检波,结果发现输入频率50MHz时测得结果严重偏小,输入144M、430M时就完全测不到了,换成1N60则一切正常。可见结电容稍微大一点都不行。但是1N60的耐压只有40V,这样用单只1N60时能测到的最大功率为 \frac{(40\rm V / 2\sqrt{2})^2}{50\Omega}=4\rm W , 两只串联时也只有16W,还是稍嫌小了点儿。如果有耐压上百伏的锗二极管就能测到几十瓦的功率了。

调试过程略麻烦。MCP3421测得的是22k分压电阻上的电压, 乘以(492/22)后可得二极管检波后的峰值电压, 再加上二极管压降Vf即得输入电压峰值.

问题是小信号输入时二极管完全是非线性的, 因此需要对若干已知输入电压Vin, 算出二极管压降VD和电流I.

根据二极管模型 I\approx I_Se^{V_D/nV_T} , 可得 V_D\approx nV_T{\rm ln}\frac{I}{I_S}=nV_T{\rm ln}I-nV_T{\rm ln}I_S , 其中n, Vt, Is都是常数. 之后就简单了, 用若干组实测数据, 拟合出Vd和I的关系式为V_D=0.0294{\rm ln}I + 0.5005, R^2=0.9941 . 从R平方值来看拟合得还可以.

下表左边两列是根据输入电压计算的功率和dBm值, 右边两列是用ADC转换结果换算的功率和dBm值. 精度似乎不错, 除了第一组数据以外, 最多只差0.1dBm, -10dBm的下限已经远超预期了.

如果需要准确测量更小的输入功率呢? 可以把检波二极管换成更灵敏的1SS86(反向耐压只有可怜的3V), 或者直接上对数放大器AD8307/AD8310之类.

最后还有个坑: 一开始MCU选了STM32F030F4, 结果大概是因为浮点运算比较多, 最后编译完居然有30k多, STM32F030F4的16k Flash根本不够用. 保险起见, 换成了64k Flash的STM32F030C8.