STM32自带的ADC有比声卡更高的采样率
之前发过一个使用USB声卡芯片来采集信号的SDR,但是控制频率只能手动旋转编码器,而且这样在软件上读频率很麻烦。当时考虑使用声卡芯片本身的IO口来控制频率。但是厂商给的资料很少,不好实现。前段时间便换了一种方案,使用一个USB-HUB芯片连接USB声卡和一个STM32,使用STM32来控制,USB声卡发送数据 。
要实现使用SDR#或者HDSDR等软件控制频率,同时将采集到的数据发送给SDR软件,需要一个叫做EXTIO的工具。我们通过它,实现把频率发送给SDR设备,并让SDR软件可以取得采集到的数据。我将STM32的USB设置为一个虚拟串口设备。这样就可以通过串口API和音频API实现控制和采集数据的取得。编写程序后生成的extio-XXX.dll就可以加到SDR#等软件下,实现控制SDR硬件功能。简要的表示为下图所示。
实际上如果我使用了单片机后,可以使用FT232H这类芯片,配合单片机实现数据传输和控制。STM32可以直接使用音频codec采集信号同时进行控制。我使用USB声卡只是之前使用过USB声卡,偷懒了一下。
同时,如果使用FT232H等芯片连接FPGA再使用一个高速ADC,便可以实现短波段直采。当然,FT232H的速度不够快,还要在FPGA内实现数字下变频等内容。之后同样的在extio中使用FT的API便可以取得数据和发送控制信号,实现短波SDR。如果再在ADC前面加入一个射频开关,连接R820T等芯片,可以拓宽频率接收范围。当然,已经有爱好者制作出了很多类似的方案,比如下面这个方案。
XXXXXXXXXXXXXXXXXX/Dfinitski/SDR-Micron/
下面是我制作出来的SDR接收时录制的视频
CM-SDR.mp4 点击下载
下图为采集和控制的板子,声卡引出了两路ADC和两路DAC,通过IPEX和下面的射频板连接。STM32引出了一组IO,可以用来实现控制频率,控制滤波器切换和控制放大器增益等功能。
这次接收方案还是使用了开关混频的零中频,性能不咋样。不过实现了采集和控制之后,以后可以在这个的基础上尝试使用各种各样的接收方案,还是有一定的可玩性。既然使用了CM的USB声卡,就叫他CM-SDR吧。
下面是EXTIO的文档
其实我一直没看明白用的什么方法处理射频,难道是MSI001…
楼主说的前序文章是这篇 XXXXXXXXXXXXXXXXXXXXXXXX/t/85219
声卡SDR能做到窄带接收机的极致,但好的声卡也是很贵的
天线附近有照明灯和空调外机,干扰下来效果是有点恶心。不过最近准备搞一个二次变频超外差的结构玩一下,再看下效果咋样。
天线附近有照明灯和空调外机,干扰下来效果是有点恶心。😂不过最近准备搞一个二次变频超外差的结构玩一下...
msi001不就是二次变频超外差么。中短波干扰无处不在,用高速ADC+FPGA肯定要用dcdc,这样处理起来就比较麻烦了。
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。