论坛风格切换切换到宽版
  • 9480阅读
  • 34回复

arduino  频谱仪 有人用过吗?效果如何? [复制链接]

上一主题 下一主题
离线BG9AGZ
 
发帖
285
只看楼主 倒序阅读 0楼 发表于: 2020-10-03
        这么多年那么多大神,国内国外论坛都没有这样廉价和实用的频谱仪,突然就出现了,看来还是人的想象力的问题,虽然比不上1W元的专业设备,不过优点在于廉价,2个si4432和nano最小系统才30元多,调试电台功放之类有价值,但实用性有待验证。
         tinysa好像没有开源。淘宝已经有卖的了,理论上根据STM32的管脚定义好像也可以找出大概,但STM32 linux交叉编译不会,没研究过,
https://github.com/erikkaashoek/tinySA

         但tinysa arduino 是开源的,最近一次更新在4个月前,编译顺利通过生成HEX了,管脚还没研究懂。按照作者PDF验证说明,连接2个si4432模块和一个ADE-1混频器,可能不用434MHZ带通滤波器,应该就可以验证了,电路图中的PE4302 射频衰减器和350MHZ的低通滤波器验证时可以不加,程序使用XPT2046电阻触摸屏,ILI9488     ILI9341    SSD1306 128的OLED 3种液晶屏,也可以编译中关闭3种屏幕,只用串口输出到WIN7电脑屏幕使用上位机程序(不过我WIN7运行这个程序出错,附件3种tPC软件,inysa stm32都可以使用,但是arduino待验证,),如果小屏幕出图像,就可以修改程序,加点微动开关之类的。
       大家谁弄过?反应效果如何?对比专业机器又怎么样?
自己想编译了,把附件库添加到arduino ,然后按照我的截图,删掉不要的文件,只对截图中几个文件进行编译,为研究这耗费半天。
    注意淘宝有2种si4432,根据作者网站图片的管脚和淘宝其中的一种不一样。

https://github.com/erikkaashoek/tinySA_Arduino








[ 此帖被BG9AGZ在2020-10-03 12:22重新编辑 ]
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
在线bd4lb
发帖
3126
只看该作者 1楼 发表于: 2020-10-03
最近几天,我用tinySA测量了几个DIY机的杂散指标。
还行。能看到每个DIY机,杂散指标的区别。
也对比测量了,DDS,Si5351VFO输出的高频信号,它们的杂散。

[ 此帖被bd4lb在2020-10-03 08:38重新编辑 ]
在线bd4lb
发帖
3126
只看该作者 2楼 发表于: 2020-10-03
tinySA连接电脑之后,用电脑测量数据,不行。
Win10系统。XP系统,都不行。
直接用tinySa测量,更方便一些。
在线bd4lb
发帖
3126
只看该作者 3楼 发表于: 2020-10-03
在线bd4lb
发帖
3126
只看该作者 4楼 发表于: 2020-10-03
离线BD7CE
发帖
1280
只看该作者 5楼 发表于: 2020-10-03
就喜欢这些设计,让业余爱好者也能触摸到原来遥不可及的设备
73! DE BD7CE
离线BG9AGZ
发帖
285
只看该作者 6楼 发表于: 2020-10-03
回 bd4lb 的帖子
bd4lb:tinySA连接电脑之后,用电脑测量数据,不行。
Win10系统。XP系统,都不行。
直接用tinySa测量,更方便一些。 (2020-10-03 09:21) 

     我知道你用的tinysa stm32版本,你说的电脑测数据不行,是指软件无法设置开始和结束频率吧?还是有其他的问题?
     STM32和开源的arduino 应该是反应速度的效果的区别,但是没人说,也不知道有没有人弄几十元arduion的,其实我想知道这个arduino效果。
  
离线BG3FB
发帖
296
只看该作者 7楼 发表于: 2020-10-03
BG3FB

QTH:Tanggu Tianjin CHINA

QQ:1179043830

E-mail:bg3fb@outlook.com

GL:OM89TB
离线BG9AGZ
发帖
285
只看该作者 8楼 发表于: 2020-10-03
我又重新理了下程序,发现作者开源的arduion    OLED屏幕程序编译还是有问题。得重新找逻辑错误了,但是串口和PC软件的程序编译通过了,也就是arduino只充当采集,PC来显示频谱。
在线bd4lb
发帖
3126
只看该作者 9楼 发表于: 2020-10-03
回复楼主。
还有,电脑版TINYSA的测量设置,比触屏版的少。
使用鼠标设置的时候,反应也有些迟钝。

我还不熟悉tinySA的使用方法。
看过tinySA的官网,使用PC的显示,与我的电脑显示,不太一样。
也许,电脑版本的TINYSA,与触屏版的tinySa,有区别。

直接使用tinySA测量,很方便的。
用USB与电脑连接过几次,总是不顺畅。
哈哈哈~

离线66718
发帖
3811
只看该作者 10楼 发表于: 2020-10-03
好玩具,真佩服这些国外的大神,这些高大上的东西都被整成白菜价了。
靠。仔细看了一下,老外竟然用的我们国产的模块,做的试验。
[ 此帖被66718在2020-10-03 17:41重新编辑 ]
BG6RSY
离线BH4QDP
发帖
1417
只看该作者 11楼 发表于: 2020-10-03
我感觉这就像是个管道工的作品
BH4QDP     江苏南京
曾用设备:   FTM-10R;    DG-J7;    FT-897D;    FT-857D + MAT-30 + 22AH磷酸铁锂  
现用设备:   FT-991A; IC-706MK2G + AH-4  +  PS30SWIII;    VX8R;  TH78A;   UV9DPLUS
现用天线:   固定使用25米左右长线天线,高度5.5米起斜拉至12米高;    野外使用自制多节仿PAC-12天线,最大高度可达9米    
现在想要:   买一个YAESU FC-40自动天调
离线BG9AGZ
发帖
285
只看该作者 12楼 发表于: 2020-10-03
管道工可写不了STM32  C程序,孔雀石STM32  C程序也不开源的,估计再过多少年也不会开源,这里能看到arduino C就不错了,能写复杂C的大神一般不会关注这些小东西,很费精力,不过同行之间有竞争,也会攻击这些黑科技,但这些小东西想法确实很超前,
     所以检验真理还是靠实践和市场来说话。
     业余无线电设备不一定非要指标顶尖设备,实用和普及我觉得才是最重要的,DIY当然也是以容易完成为目标,不要过于复杂最后止步就没意义了。
[ 此帖被BG9AGZ在2020-10-03 20:15重新编辑 ]
离线BG2WAH
发帖
424
只看该作者 13楼 发表于: 2020-10-06
从楼主的截图上看,也只能是验证一下原理
离线BG9AGZ
发帖
285
只看该作者 14楼 发表于: 2020-10-07
其实这个aduino 版本,是作者对stm32的修改和移植,精髓在于库的运用和算法的转换,所有单片机的代码都可以转换,只代码不过太多了不好理解而且以前没接触过这个算法,这恰恰是需要学习的,
     包括sark100也可以有这样的oled界面,
     但是一直一来,百度国内的类似资料,这种算法是没有的,csdn也没有。
     si4432  10年前的老片子了,rssi函数是可以表达某个接收频率功率强度的函数,你说这么专业的东西正好用在业务无线电里,甚至什么事都不做,只用这个函数监视7.023MHZ都是可以的
[ 此帖被BG9AGZ在2020-10-07 11:56重新编辑 ]
离线BG2WAH
发帖
424
只看该作者 15楼 发表于: 2020-10-07
能公开的代码只是一个框架,真正核心的算法属商业机密,只能自己去搞
离线BG9AGZ
发帖
285
只看该作者 16楼 发表于: 2020-10-07
回 BG2WAH 的帖子
BG2WAH:
能公开的代码只是一个框架,真正核心的算法属商业机密,只能自己去搞

https://blog.csdn.net/wordwarwordwar/article/details/56667990


      不知道你使用STM32 tinysa有没有延时的感觉。

      我理解电路图,这个频谱仪用 SI4432模块,和傅里叶算法没一点关系,启动LO的SI4432的扫描(频率会覆盖到3次或者更多次的谐波频率,但是短波模式最大不超过350MHZ,UV模式不超过1GHZ),ADE混频后接收模块SI4432采集434MHZ频率(中频)强度,存储到数组,OLED库显示数组频率范围和强度(DBM),就这样4个部分,但代码有点多,ARDUINO IDE 编译没通过,不知道作者代码哪里错了,或者使用的IDE不一样。
       而且编译时,发现串口初始化后,屏幕就不显示了,不知道哪里问题,

[ 此帖被BG9AGZ在2020-10-07 15:17重新编辑 ]
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线BG2WAH
发帖
424
只看该作者 17楼 发表于: 2020-10-08
没试过,猜一下
大概看了芯片手册,Si4432芯片分低高两段,分别为:240~480MHz和480~930MHz
输出VFO时,低段版固定输为480MHz,高段版输出480~930MHz,差频480-480=0,合频480+480=960MHz,930-480=450MHz,理论上可实现0~450MHz输出,考虑到后续滤波、耦合电容及扫频步长问题,只做到50KHz~350MHz。但是,Si4432好像只有在发送寄存器有待发送数据时才能启动发送,之后才有被调制的载波输出,基本流程好像是:数据写入芯片->启动发送->发送结束(中断或查询)->数据写入芯片……,这样,就算是被调制的载波也并非连续,如果想看波形要选1.75GHz(350*5)的示波器,所以,用我们手头常用的示波器看就是正弦波。
接收(或频谱测试):把中频设为480MHz,理论上可以实现0~450MHz(930-480),但考虑到低端合频、耦合电容及扫频步长问题,只做到50KHz~350MHz,其实质就是一个场强计。但是,把读取的场强值显示在终端上应该有个技巧,如果依据读取的场强值实时在Y轴上显示,就会造成显示不稳定,延迟长了显示虚高,延迟短了显示虚低。Si4432芯片0.5dB的场强精度还是挺诱人的,制作要点或者说技术含量:硬件带通滤波器、固件可变带通滤波器。
纯属个人推测,未经验证,高手继续。



[ 此帖被BG2WAH在2020-10-08 15:36重新编辑 ]
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线BG9AGZ
发帖
285
只看该作者 18楼 发表于: 2020-10-08
回 BG2WAH 的帖子
BG2WAH:没试过,猜一下
大概看了芯片手册,Si4432芯片分低高两段,分别为:240~480MHz和480~930MHz
输出VFO时,低段版固定输为480MHz,高段版输出480~930MHz,差频480-480=0,合频480+480=960MHz,930-480=450MHz,理论 .. (2020-10-08 13:07) 

arduino 本来就是小学生都可以学会的C语言,和python一样属于少儿编程。
    其实作者很多代码已经非常清晰了,比如那个显示频谱线的代码,但给的几个变量没理解,可以通过多次试验应该可以摸索明白,但我理解作者给的似乎不是arduino 128*64 oled的,但修改难度也不大,因为网上OLED库例子非常多
      其实不光我,或者别人迟早会放出整个源码和电路。刚好这个适合短波频谱的谐波观察,又不是搞军用雷达和5G,那个频谱需要到几十或几百GHZ,短波MHZ段足够用了,
      但是频谱延迟显示,我认为一定存在,因为atelm328p单片机采集功率数据到数组和显示的算法需要时间。

[ 此帖被BG9AGZ在2020-10-08 16:55重新编辑 ]
离线BG2WAH
发帖
424
只看该作者 19楼 发表于: 2020-10-08
回 BG9AGZ 的帖子
BG9AGZ:arduino 本来就是小学生都可以学会的C语言,和python一样属于少儿编程。
    其实作者很多代码已经非常清晰了,比如那个显示频谱线的代码,但给的几个变量没理解,可以通过多次 .. (2020-10-08 16:47) 

流程纯属根据中文版Si4432手册推测,如果想做这款小工具,滤波器是个大问题,手头至少要有个600MHz的扫频仪。如果用DSP芯片写代码,相信效果会更好。
[ 此帖被BG2WAH在2020-10-08 18:22重新编辑 ]