无线电测向运动80m(3.5-3.6MHz)信号源制作
我们燕山大学“燕之波”无线电测向协会基于哈工大制作信号源的方法,改用STM32单片机制作信号源
参考链接:
哈工大 0.8W 80m信号源制作方法
微信 蓝蓝的生活 设计篇 、 硬件篇、 软件篇 、跳坑篇
元器件列表
单片机:STM32
频率发生芯片:CDCE913
线性稳压器:①降压芯片:AMS1117-3.3 (-xx 是电压转换后的电压值,-3.3就是输出3.3V,-5就是输出5V。注:这里的选择请看后面的详细介绍) ②升压芯片:MT3608L
充电管理:TP4056
功放中的三极管/功率管:9013、2SD882
方案介绍
数字电路部分
频率发生器
CDCE913可通过单个输入频率生成多达 3 个输出时钟,即 图1 中的Y1 Y2 Y3引脚,不过我们只使用Y1一个输出引脚作为信号输出就行。
CDCE913的输入晶振可以选择在9MHz~32MHz之间即可,但需要注意,选择不同频率的晶振和输出不同频率的信号,在后续我们使用单片机写入CDCE913的寄存器中的值是不一样的,需要使用官方提供的ClockPro软件进行查询。怎样使用这个软件我放到后面具体代码部分讲。
LAMP和CTRL分别与STM32相连,这两个引脚在STM32中的设置是完全相同的。在使用I2C对CDCE913中的寄存器进行修改后,CDCE913的Y1引脚会持续输出对应频率的信号,但是我们希望他间断的发送信号,因为我们要发送摩斯码,这个CTRL可以通过高低电平控制信号是否输出。LAMP是使用发光二极管显式的观察间断情况。将STM32与LAMP和CTRL连接的引脚设置成推挽输出,置1时发送信号,置0时不发送信号。
CDCE913_SDA和CDCE913_SCL是CDCE913和STM32使用I2C进行通信的通信线,我们在STM32单片机设置引脚时使用开漏输出,因此R22和R23电阻是通信线的上拉电阻。
升压/降压芯片
在电路中,我们使用3.3V电压为STM32单片机和CDCE913频率发生器供电,使用9V电压用作功放电路。我们选择的电池是3.7V的,因此需要升压和降压。
降压芯片我们选择的AMS1117-3.3,这个芯片与哈工大使用的TPS79333不同,TPS79333在输入电压为3.7V时可以降压到3.3V,但AMS1117-3.3包括AMS1117-5都不能在输入电压为3.7V时输出对应电压,都只能输出3V,我们搜集资料发现,输入电压要至少比输出电压大1.4V才可以,因此我们使用升压后的9V作为了AMS1117-3.3的输入。
( >我们用AMS1117-3.3主要是因为实验室有现成的不用额外买 )
升压芯片我们选择的MT3608L,我们没选择哈工大的HX3033是因为它不好买(还贵)。输出电压的值可以通过电阻(图中R28和R31)之间的比值进行调整。 V o u t = V r e f × ( 1 + R 28 R 31 ) V_{out} = V_{ref} \times (1 + \frac{R_{28}}{R_{31}}) Vout=Vref×(1+R31R28),其中 V r e f = 0.6 V ( T y p i c a l ) V_{ref} = 0.6V(Typical) Vref=0.6V(Typical),这样算出来 V o u t = 9 V V_{out} = 9V Vout=9V。R29也就是连接引脚OC的电阻,位于19kΩ到96kΩ就行。
充电管理
LED4用红灯表示还未充满,LED5用绿灯表示充满。VCC引脚连充电口,BAT引脚连电池。
在充电过程中TP4056会发热,是正常现象。芯片底部有一大块接地的焊盘,是散热用的,要焊在板子上,用板子上的铜板进行散热。
滤波
拨码开关
目前选择信号源台号使用的是和哈工大一样的策略,即二进制选台, 0 − 9 0-9 0−9台对应 0000 − 1001 0000-1001 0000−1001,MO对应 1010 1010 1010,剩余二进制也全部对应MO台。
后续想用旋钮开关,不过占用STM32引脚较多,还在考虑改进。
下载调试端口+充电口+开关
下载端口我们留出了5脚排针,使用STLINK(简单的U盘样子的)进行烧写和调试,STLINK中电源线如果连接VIN,不打开K1开关即可烧写;如果连接5V需要打开K1开关才能烧写,但同时也可以给电池充电了。
K1是自锁按键开关,按下会锁住,保持2 3脚连通给板子供电,再按下会弹起,1 2脚连通即断路。
主控芯片STM32
制板时,晶振下面需要接地的铜最好屏蔽一下
模拟电路部分
这部分主要就是功放电路
图9是需要画在板子上的部分,还有两个线圈及天线在壳子上。
地:功放电路的地要与数字电路区分开,防止相互干扰。三角形代表模拟地,4条线代表数字地。模拟地在制板的时候需要考虑连接金属壳贴着大地或者引出一根地线插地里。
滤波电容:图9中的电容C46 C47 C18 C20 C21都是滤波电容。
三极管:三极管Q1是共射放大器,放大电压和电流;三极管Q2是缓冲级;T1线圈将电压放大2倍;VT3功率管和T2共同组成功率放大器。功率管工作时会发热,所以需要连散热片,不然很容易击穿。
磁环:磁环T1 T2 L4都是绿色磁环,外径22,内径13.5,高9.3。L3使用NXO-100黑色磁环。
制作过程
PCB制板
图11是打板的原理图,因此没有图10的两个线圈。
预览图12上方黄色部分是裸露铜板用来放置散热片。建议在CDCE913 Y1输出同时也是功放电路信号输入部分预留一个焊盘用来使用示波器测试是否数字电路是否正常输出信号。
线圈的缠绕
T1线圈
把0.4mm漆包线的3股线拧在一起,然后绕在绿色磁环上,总体绕制的方向见图13右图。在拧在一起之前,标记好哪个头和哪个尾是同一根线的。在绕在线圈上之后,按照图13左图方式将其中一个头和另一条线的尾连接在一起。图13引脚标号与图9原理图中对应。右图中电流起点对应1 3侧,电流终点对应2 4侧。
实图见下图:
T2线圈
使用0.4mm漆包线缠绕在绿色磁环上,各个部分的线的方向如图14所示。图14引脚标号与图9原理图中对应。
实图见下:
L3线圈
0.3mm漆包线缠绕NXO-100磁环,共从磁环绕出 1 + 12 = 13 1+12=13 1+12=13个抽头, 1 1 1连接T2中的4端, 12 12 12连接13脚旋钮开关外圈12个脚。绕制方向没有要求,不一定按照图中方向。
13脚旋钮开关(外圈12个脚+1个公共端)靠近中间位置有一个引脚,这个引脚叫公共端,焊在这个引脚上一根导线(额外的导线,不是刚刚从磁环中抽出的抽头),用来穿过图10中L4线圈并最终焊接在天线上。
实图如下:
L4线圈
使用0.4mm漆包线缠绕17圈在绿色小磁环上,没有方向要求。漆包线首尾分别连接发光二极管两端。实图如下:
最终L3的公共端引出的线要穿过L4,如下如:
调试
电源部分
将充电口+开关、降压、升压、充电管理和滤波部分焊接在电路板上
1、插上电池,测量电池插口母座正负极之间电压是否是电池电压。我们使用的是3.7V电池,电池电压范围在3.7~4.3V左右。
2、拔下电池,插上充电线,TP4056的BAT引脚能否正常输出电压。
3、按下总开关,测量升压模块能够正确输出9V电压;降压模块能否正确输出3.3V电压。
单片机STM32部分
STM32、单片机晶振、CDCE913中的LED6和程序下载/调试接口的5排针焊在电路板上,用STLINK连接5排针(程序下载/调试接口),在Keil5中编写以下代码并烧写:
#include "stm32f10x.h" // Device header
void Delay_us(uint32_t xus){SysTick->LOAD = 72 * xus; //设置定时器重装值SysTick->VAL = 0x00; //清空当前计数值SysTick->CTRL = 0x00000005; //设置时钟源为HCLK,启动定时器while(!(SysTick->CTRL & 0x00010000)); //等待计数到0SysTick->CTRL = 0x00000004; //关闭定时器
}void Delay_ms(uint32_t xms){while(xms--){Delay_us(1000);}
}int main(){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_SetBits(GPIOB, GPIO_Pin_10);while(1){Delay_ms(500);GPIO_ResetBits(GPIOB, GPIO_Pin_10);Delay_ms(500);GPIO_SetBits(GPIOB, GPIO_Pin_10);}
}
如果能够烧录并且可以观察LED6在闪烁,证明单片机能正常工作;否则,检查单片机的焊接情况,有无连焊或者虚焊。
CDCE913部分
焊接上CDCE913剩余部分、8421拨码开关,我在CDCE913的输出的地方预留了一个焊盘,在这个位置焊接一根导线,连接到示波器上。
再次使用STLINK,烧录完整代码(完整代码详见GITHUB)
拨码开关拨到 0000 0000 0000,能在示波器上观察到频率为3.50MHz的信号按照摩斯码‘— — — — —’的长短间隔进行发送,将拨码拨为 0011 0011 0011,能在示波器上观察到频率为3.53MHz的信号按照摩斯码‘— — \ — — — \ · · ·’的长短间隔发送。波形如下
功放电路部分
焊接上功放电路部分的元器件、刚刚缠绕的线圈并且拧上散热片,使散热片与裸露铜板紧贴,有导热胶可以涂在中间。
可以一部分一部分焊接功放电路,焊接一点测一点,这部分比较耗时间。
-
先将所有滤波的电容焊接到板子上(所有一端接9V一端接模拟地的电容),然后焊接信号输入端到Q1的相关电阻和电容、Q1以及上下电阻,在Q1的c端能够用示波器测量到峰值大约8.3V电压(哈工大提到约为电源电压),示波器探头一端接Q1的c,一端接地。
-
将缓冲级Q2焊接在板子上,在Q2的e端能测到大约8V左右的电压,比刚刚测的略低些
-
将T1与2端的电阻电容焊在板子上,测量1端相对于地的波形,峰值为8V,如图 示波器图1
测量1端相对于2端的波形,如图 示波器图2,峰值为4V,谷值为-4.2V,电压差为8.2V左右
测量3端相对于4端的波形,如图 示波器图3,峰值为8.6V,谷值为-9.6V,电压差为18.2V左右。变压器T1将电压放大了2倍左右。
-
焊接功率管VT3、线圈T2以及相关电阻电容,使用示波器测量T2的3端相对于模拟地的波形,如图 示波器图4
-
将T2的3端与L3相连,调整L3的档数,发现接入电路的圈数为12圈时能够让L3的输出端相对于地地电压最大,波形如图 示波器图4
-
此时观察连接在L4感应线圈上地LED灯,是最亮的
连上天线,大功告成!!!
功放电路修改调试记录
1、T2线圈的15圈和4圈要是同方向,即4圈要是15圈的正反馈
2、3.50MHz时,发现L3线圈,磁环为NXO-100,0.3mm漆包线缠绕8圈L3输出峰值最大为80V左右,峰值跳动稍微稳定的值大约是55V左右。
3、发现缓冲三极管发热(不是温热,比较烫手),并且在 2 中L3的缠绕情况下。考虑可能是电流过大,尝试更换T1线圈下方RC谐振的值,从22Ω//1.8pF更换为最初的100Ω//100nF(哈工大),缓冲三极管不再发热
4、在更换了RC的值之后再次调整L3的线圈,NXO-100磁环0.3mm漆包线11圈输出峰值最高90V左右,峰值有跳动,跳动范围为42-90+V,示波器显示峰值跳动问题:
如果增加3-4圈或者减小3-4圈,峰值跳动问题会明显好转,基本稳定在40V左右,如下图。而且发现,峰值跳动不明显的时候功率三极管发热很不明显。T2线圈有点不太能摸出来。
5、发现T2线圈有点温热,这个发现在调整完 3 后依旧存在,微信的解决方法是增加线圈数量。待尝试,不过感觉不是很急,或者待观察,因为不是很热。