![](http://image.uc.cn/s/wemedia/s/upload/2024/10e67b1a7d5858a226e9b7cf634238ee.jpg)
![](http://image.uc.cn/s/wemedia/s/upload/2024/70b55a5608359d25df96f7c24f79f736.jpg)
Tejeez/OH2EAT 制作的 EFR32 SDR
将 EFR32 物联网微控制器收发器用作 SDR
Joshua R. 投稿并分享了一些关于如何将 EFR32 微控制器用作软件定义无线电的链接。EFR32 是一款专为 Zigbee、Z-Wave、Thread、蓝牙等物联网应用而设计的微控制器。我们感兴趣的是,EFR32 具有一种特殊模式,可以关闭解调器/调制器,而允许从芯片传输原始 IQ 数据。
OH2EAT/tejeez 提供了将 EFR32 用作 SDR 的示例,可在本文和他的 “gekokapula ”GitHub 软件仓库(https://github.com/tejeez/geckokapula)中找到。
这个获得麻省理工学院授权的软件仓库提供了硬件原理图和软件,用于创建一个具有 FM、CW、USB 和 LSB 发射功能的完整手持式 FM、AM、USB、LSB 和 CW 接收器。它还支持 12 kHz 瀑布图显示。调谐范围接近 13.2 MHz 至 2.9 GHz,但存在一些差距。
Silicon Labs 的这篇知识文章还介绍了 EFR32 的 SDR 模式。
![](http://image.uc.cn/s/wemedia/s/upload/2024/49adc3e57b63c13d56d78f3e76e5e996.png)
作为 SDR 的 EFR32。EFR32 具有特殊模式,其中之一是 IQ 采样模式。在这种模式下,我们可以 “关闭 ”解调器或调制器模块,直接从 ADC 获取 IQ 采样。
这是一款有趣的低成本芯片,但限制因素似乎是带宽太小。
作为小型 SDR 的 EFR32 SOC
我最近参加了一个涉及 Silicon Labs EFR32 系列 sub-GHz 收发器 SOC 的项目。我们注意到他们的文档中有几处提到了原始 IQ 接收模式,但没有详细介绍。我有时会想,一些带有 DSP 调制解调器的低功耗收发器芯片是否可以访问其内部 ADC 的采样,而这似乎是我所见过的第一个可以真正做到这一点的芯片。
大约在同一时间,我们偶然发现了一些剩余的 2.4 GHz EFR32MG1 模块。我想,如果能让 IQ 模式正常工作,它们就会变得非常有趣。类似廉价的单芯片 AM/FM/SSB/PSK31 接收器应该是可行的。
尝试使用一种新的微控制器通常并不容易,而且我对嵌入式开发并不感冒。我们必须安装编译器和可能的集成开发环境,学习使用它们,找到正确的编译器参数和编程器连接,找到芯片的文档,并花几个小时学习文档,才能让每个外设正常工作。可能要花上好几天时间进行令人沮丧的试验和出错,然后才能真正开始工作。我已经在几个朋友的帮助下完成了这些工作,因此对 Simplicity Studio 集成开发环境已经有了一定程度的熟悉,开始使用这些 EFR32 模块进行试验也就容易多了。
通过谷歌搜索发现,这种模式确实存在,而且可以通过在先进先出模式下操作接收器来使用。Simplicity Studio 有一个在 FIFO 模式下使用收发器的示例项目,它实际上可以在模块上运行,没有太大问题。通过对示例稍作修改,我最终成功实现了 IQ 接收!
我修改了示例,将 IQ 样本传输到 UART,并通过 USB-UART 转换器将其传输到 Linux PC。我在 PC 上另外安装了一个小程序来进行类型转换,然后将信号传输到 gqrx,并首次获得了一些瀑布图:
![](http://image.uc.cn/s/wemedia/s/upload/2024/94367a9d569f3c375ff9f8c1c0fe5ee6.png)
我从信号发生器发射频率扫描信号,但接收到的信号看起来有些奇怪。原因是 SOC 中至少有一部分解调器仍在运行,其 AFC 仍处于启用状态。您可以看到 AFC 是如何在扫频到达通带中心时开始跟踪扫频的。禁用 AFC 后,结果开始变得合理。尽管我认为 I 和 Q 的顺序与文档中规定的一致,但频谱仍然是颠倒的,不过这可以通过调换它们(或反转其中一个)来解决。
接收机内部使用的是低中间频率,但提供的 IQ 采样似乎经过了数字降频器,该降频器将信号移至零中心频率,将其过滤到所需的信道带宽,并以合理的采样率提供采样。这通常是件好事,因为当使用足够低的带宽时,在 SOC 的 40 MHz Cortex-M4 内核上处理采样是切实可行的。
集成开发环境中的无线电配置生成器会根据选定的符号率和信道带宽选择采样率。生成配置后,采样率会在生成的文件 efr32_radio_configurator_log.txt 中报告。
要开始实验,请下载我第一次实验的 git 仓库 bundle,并用 git clone -b master 复制 efr_fifotesti.bundle
![](http://image.uc.cn/s/wemedia/s/upload/2024/3ed33830c3a448be2bc28bf16a9802c4.jpg)
现在,只需连接几个按钮、一个 SPI 连接的显示屏,并通过一个电阻和一个电容从 PWM 输出驱动耳机,就可以制作一个带有频带范围的小型接收器了。现在,这开始需要一些真正的编程和构造工作,所以我没有立即开始做。
SOC 不支持传输时的 IQ,这限制了传输任意调制的可能性。在 4-FSK 模式下使用调制解调器并将语音量化为 4 级,应该可以实现粗调频传输。可以使用抖动或 delta-sigma 调制来减少量化失真,但这会在传输过程中产生额外的噪声边带。不过,在超高频频段上使用低功率时,这种方法还是可以接受的。基于 MFSK 的数字模式(如 MFSK16、JT65 等)也可以使用相同的原理,不过它们的短期频率稳定性可能不够好,尤其是在 2.4 GHz 上。对它们进行解码可能需要额外的 CPU,因为 SOC 只有 32 kB RAM,而 CPU 的速度也不是很快。
构建手持式收发器
在进行了一些初步实验之后,我开始编写显示频谱图的软件,以证明这确实是可行的。OH2FTG 开始使用相同的部件制作实际的手持收发器。我们意识到,通过将一些现成的模块和一些额外的部件连接在一起,制作一个可用的无线电是可行的。这激励我继续开发软件,我也制作了自己的手持设备:
![](http://image.uc.cn/s/wemedia/s/upload/2024/1d82f32424497f4b3b5992ce459fade5.jpg)
该软件仍然非常有限,您还不能用它进行真正的 QSO,但它的概念看起来很有前途。尽管我个人对数字语音还没有足够的兴趣来开发它,但如果有一个更快的处理器,就可以用一个合适的 SDR 解调器来制作一个基于 FSK 的 FreeDV 模式的手持设备。
该软件可在 github 的 geckokapula 存储库中找到,我偶尔也会更新其编译后的二进制版本。
![](http://image.uc.cn/s/wemedia/s/upload/2024/ba6a4c8957ff5b76d00832430183b7fd.jpg)