【开源】HX9500.02扫频仪试验电路图和程序
虎哥2012/01/15仪器仪表 IP:上海
喜欢射频仪器的KCer有福了!今天我们开放扫频仪HX9500第二版的源码,欢迎大家讨论!

在HX9500.01的基础上研制HX9500.02标量网络分析仪的过程中,我们进行了一系列改进试验,包括采用嵌入DDS的锁相环(如“相加环”)改善全频段的频率步进(step)、采用超外差电路进行检波,以便消除跟踪源谐波对动态范围的影响;采用二次变频,在高第一中频用较宽的中频带宽,在第二本振采用频率范围比较窄,但步距很小的PLL进行频率微调,从而低成本实现全频段小步进;以及进行137MHz以下分析时,跟踪源PLL空闲,可以用来与S21检波器的本振混频来产生低频率本振,从而节省一个DDS电路等设计。这些方案是为了降低扫频仪的成本,并且提高扫频仪的性能。这些方案的试验都获得了成功,但是也有相应的缺陷。

例如,当采用二次变频,二本振微调实现小步进时,对第一中频滤波器的带内波动有严格要求。采用共用一个PLL的方案,跟踪源向S21检波电路的泄漏较大,影响动态范围,且需要增加滤波器等。

HX9500.02的设计频率范围1MHz~1GHz,动态范围80dB,采用一次变频,中频455KHz。同9500.01一样,仍然在137MHz以上采用4350做PLL振荡器,在137MHz以下采用9951作为振荡器。频率步进在137MHz以下约为1Hz。实际测试效果,在采用中频滤波以后,动态范围可以很轻松的提升到70dB以上,如果做好屏蔽措施,到80dB以上不成问题。

由于设计水平一直未达到KC的最低要求,直到该项目终止也没有完成实验,这里面除了技术的因数,主要是人事和流程管理过多依赖信任,疏于体制约束和对人性的洞察,对表面善良内心阴险的人缺乏防范。结果项目负责人在KC积攒知识和资源,在开发即将完成之时另立山头,导致人力物力投入全部报废,造成重大损失。这套方案本身是可行的,但是只适合爱好者学习和DIY,确实达不到KC对成品仪器的基本要求。这一系列实验提供了多种思路,为开发相关低成本仪器提供了经验,大家感兴趣的话可以继续研究。

下面是HX9500.02的原理图和布板图(最后一次的改动尚未完成,因此布板图仅供参考),分辨率都足够,点击图片或者另存为可以看到清晰大图。

控制板
原理图 控制 电桥.png

CPU板.png

射频板
射频板.png
原理图 射频 小.png


键盘板
原理图 键盘.png

键盘.png


HX9500项目已经终止,取而代之的是HX9501标量网络分析仪/频谱仪项目,现在正在制作试用版:https://www.kechuang.org/t/40754
来自:仪器与装备 / 仪器仪表
26
 
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
虎哥 作者
12年4个月前 IP:未同步
354185
HX9500.02共有3张电路板:控制板、射频板和键盘。控制板上面也有一部分射频电路。布板是按照一个小型手持仪器考虑的,其外观与HX9501.01已经颇为接近。

下面是9500.02试验时留下的文物。

控制板,CPU在背面。
IMG_0201.jpg

射频板。
IMG_0203.jpg

键盘
IMG_0204.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥作者
12年4个月前 IP:未同步
354187
下面是源代码。电路图和程序随时都在改,很乱,不能直接用,需要自己修改。高手就不要吐槽了,吐槽点太多。


attachment icon KC500MHz扫频仪0825版本.rar 538.96KB RAR 161次下载

因为CPU资源不够(经9501课题组评估,认为实际上是程序有缺陷),所以还尝试了两块CPU分别负责射频硬件控制、显示、键盘扫描的方案,CPU间用串口通信。由于工作不稳定,放弃实验。这是当时用的代码。


attachment icon HX9500.02.rar 566.38KB RAR 103次下载
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
radio73
12年4个月前 IP:未同步
354304
[s:271]  [s:271]  [s:271]  [s:271]  [s:223]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
立棍
12年4个月前 IP:未同步
355698
455的像频有抑制吗?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥作者
12年4个月前 IP:未同步
355746
没有采用镜像抑制措施,从电路图也可以看出来。扫频分析是闭路测试,一般情况下不会有镜像干扰的问题,所以不需要抑制镜像。如果要用此机观察空间频谱,则可能出现假响应。所以频谱功能是附送的功能,仅供参考。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
edzyj
12年3个月前 IP:未同步
362788
问个问题。用了DDS,为何频率最低是1M呢?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥作者
12年3个月前 IP:未同步
362829
引用第6楼edzyj于2012-02-04 18:01发表的  :
问个问题。用了DDS,为何频率最低是1M呢?


受很多因素制约,看看电路图就明白了。软件可以设到100Hz,但无法保证指标。

爱好者几百元就能搞出到1G的VNA,并不表明他能达到一个成品仪器的最起码要求。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yzhxdz
12年3个月前 IP:未同步
368188
[s:271][s:271][s:271][s:271]楼主好人
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yyhhgg
10年3个月前 IP:未同步
664327
谢谢分享
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yyhhgg
10年3个月前 IP:未同步
665920
谢谢分享,功能在全点就好了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
3dg6
9年11个月前 IP:未同步
695186
不错学习了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
suyuping99
9年11个月前 IP:未同步
695211
本帖最后由 suyuping99 于 2014-6-14 16:08 编辑

忍不住吐槽一下。控制板和射频板的设计与布板布线,其风格与KC901 的风格大相径庭,许多地方都缺仔细考量,不太协调。极其暴露负责人的功力~~~这有点像在玩啊~~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
xuliya282
9年1个月前 IP:安徽
757452
ting le xiang mu ke xi le(gang huan win7 ,han zi diao bu chu lai)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
GB913759593
9年1个月前 IP:广东
757472
发现有3R33[s::lol]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
stm2015
8年11个月前 IP:俄罗斯
769706
Hello, it is impossible to build a project in keil,
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
wenyanwen
8年11个月前 IP:上海
769709
谢谢分享
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
stm2015
8年11个月前 IP:俄罗斯
769870
提供的示例代碼,也可以收集並寫處理器
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
曾奎
8年11个月前 IP:重庆
769932
高手 我能和你做朋友吗?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
stm2015
8年11个月前 IP:俄罗斯
771104
不能建设项目keil、缺乏图书馆,并编写了很多错哪儿弄到的所有项目档案
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
stm2015
8年11个月前 IP:俄罗斯
771357
compiling main.c...
ili9320.c(412): error:  #20: identifier "GPIOD" is undefined
ili9320.c(488): error:  #20: identifier "GPIOD" is undefined
ili9320.c(495): warning:  #223-D: function "ADC_GetConversionValue" declared implicitly
ili9320.c(495): error:  #20: identifier "ADC1" is undefined
ili9320.c(598): error:  #20: identifier "GPIOD" is undefined
ili9320.c(612): error:  #20: identifier "GPIOD" is undefined
main.c(9): error:  #20: identifier "ADC_InitTypeDef" is undefined
main.c(10): error:  #20: identifier "DMA_InitTypeDef" is undefined
main.c(11): error:  #20: identifier "EXTI_InitTypeDef" is undefined
main.c(108): warning:  #223-D: function "DMA_DeInit" declared implicitly
main.c(108): error:  #20: identifier "DMA1_Channel1" is undefined
main.c(111): error:  #20: identifier "DMA_DIR_PeripheralSRC" is undefined
main.c(113): error:  #20: identifier "DMA_PeripheralInc_Disable" is undefined
main.c(114): error:  #20: identifier "DMA_MemoryInc_Disable" is undefined
main.c(115): error:  #20: identifier "DMA_PeripheralDataSize_HalfWord" is undefined
main.c(116): error:  #20: identifier "DMA_MemoryDataSize_HalfWord" is undefined
main.c(117): error:  #20: identifier "DMA_Mode_Circular" is undefined
main.c(118): error:  #20: identifier "DMA_Priority_High" is undefined
main.c(119): error:  #20: identifier "DMA_M2M_Disable" is undefined
main.c(120): warning:  #223-D: function "DMA_Init" declared implicitly
main.c(123): warning:  #223-D: function "DMA_Cmd" declared implicitly
main.c(125): error:  #20: identifier "ADC_Mode_Independent" is undefined
main.c(128): error:  #20: identifier "ADC_ExternalTrigConv_None" is undefined
main.c(129): error:  #20: identifier "ADC_DataAlign_Right" is undefined
main.c(131): warning:  #223-D: function "ADC_Init" declared implicitly
main.c(131): error:  #20: identifier "ADC1" is undefined
main.c(134): warning:  #223-D: function "ADC_RegularChannelConfig" declared implicitly
main.c(134): error:  #20: identifier "ADC_Channel_3" is undefined
main.c(134): error:  #20: identifier "ADC_SampleTime_55Cycles5" is undefined
main.c(136): warning:  #223-D: function "ADC_DMACmd" declared implicitly
main.c(139): warning:  #223-D: function "ADC_Cmd" declared implicitly
main.c(142): warning:  #223-D: function "ADC_ResetCalibration" declared implicitly
main.c(144): warning:  #223-D: function "ADC_GetResetCalibrationStatus" declared implicitly
main.c(147): warning:  #223-D: function "ADC_StartCalibration" declared implicitly
main.c(149): warning:  #223-D: function "ADC_GetCalibrationStatus" declared implicitly
main.c(152): warning:  #223-D: function "ADC_SoftwareStartConvCmd" declared implicitly
main.c(209): error:  #20: identifier "ADC_Channel_12" is undefined
main.c(213): warning:  #223-D: function "ADC_GetConversionValue" declared implicitly
main.c(216): error:  #20: identifier "ADC_Channel_11" is undefined
main.c(240): warning:  #223-D: function "SysTick_CLKSourceConfig" declared implicitly
main.c(240): error:  #20: identifier "SysTick_CLKSource_HCLK" is undefined
main.c(246): warning:  #223-D: function "SysTick_SetReload" declared implicitly
main.c(249): warning:  #223-D: function "SysTick_ITConfig" declared implicitly
main.c(639): error:  #20: identifier "GPIOD" is undefined
main.c(644): error:  #20: identifier "GPIOC" is undefined
main.c(653): error:  #20: identifier "GPIOE" is undefined
main.c(721): warning:  #223-D: function "SysTick_CounterCmd" declared implicitly
main.c(721): error:  #20: identifier "SysTick_Counter_Enable" is undefined
main.c - 30 Error(s), 18 Warning(s).
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
stm2015
8年11个月前 IP:俄罗斯
771358
compiling main.c...
main.c(1): error:  #5: cannot open source input file "stm32f10x_lib.h": No such file or directory
main.c - 1 Error(s), 0 Warning(s).
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥作者
8年11个月前 IP:四川
771408
这个项目已经废了,源码里面能用的只有一些控制函数,写得很烂而且应该是在两个版本之间的代码,发出来只是起参考作用,不建议再继续搞。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
不死野人
8年11个月前 IP:广东
773012
woo,learning
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zjsx8192
7年1个月前 IP:广东
832504
很好的参考。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hzoldman
6年8个月前 IP:浙江
838583
对业余玩玩有很好的参考作用,谢谢。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
虎哥
专家 进士 学者 机友 笔友
文章
1534
回复
13003
学术分
39
2005/08/24注册,22分49秒前活动

刘 虎

创新工程局主席

主体类型:个人
所属领域:无
认证方式:身份证号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}