你觉得这篇文章怎么样? 帮助我们为您提供更好的内容。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
你觉得这篇文章怎么样?
在STM32F4型 NUCLEO板上安装MMDVM并装配接口屏蔽。
在本系列的文章中,我们将研究建立一个数字移动无线电(DMR)中继器,用于70cm波段(UHF)的业余无线电使用。添加两个移动模拟(FM)收发器来构建上行通路和下行通路,配以基于数字调制解调器系统的MMDVM,中继器控制和IP网络互连。
当地业余无线电团队将中继器投入使用,该团队经常为社区开展的如越野路跑,这种活动提供通信支持。常常有无线电爱好者到该地区,连接到IP连接的数字无线电网络。
DMR是什么?
DMR是由ETSI发布的开放数字移动无线电标准,并在下列三层中指定使用:
- 第一层.在欧洲波段446MHz无须使用许可。没有基础设备与中继器。
- 第二层.在PMR波段66 - 960 MHz需使用许可。支持更高的频率,先进的语音特性和IP数据服务。
- 第三层.在波段66 - 960 MHz中继操作,支持语音和短信,与 TETRA相似。
数字标准也适用于2M,70cm的业余无线电波段,在英国分别使用144 - 146MHz和430 - 440MHz。
DMR通过两个时间槽的TDMA,在标准12.5 kHz间距通道中支持双声道。4态FSK调制的速度为每秒4800个符号,对应9600位/秒。所以这是一个相当有效且不复杂的系统。
许多不同的供应商都提供DMR无线电设备。然而,,我们将在我们的中继器上添加两个模拟PMR和多模式数字语音调制解调器(MMDVM)。
多标准和硬件平台支持
MMDVM是一项在GPL v2下许可的开放资源软件项目,但它只用于业余和教育用途,严格禁止商业使用。这似乎与GPL的许可证不一致,但可能与数字编解码专利有关。
MMDVM固件支持以下数字模式:
- D-Star
- DMR Tier II
- System Fusion
- P25
支持的平台包括:
- Arduino Due
- STM32F407-DISCO
- STM32F446-NUCLEO
- Teensy 3.1/3.2/3.5/3.6
通过Arduino IDE,Coocox IDE,ARM GCC和Teensyduino支持。
还可以为其他STM32板构建MMDVM,如果ARM有合适的性能,外加至少有一个ADC和DAC,我们能将该软件移至其他实时平台上,。
除了中继器的使用,MMDVM还可以用来创建一个“热点”,连接到IP链路上的数字网络,并方便在移动中使用手持无线电。向它的创造者Jonathan Naylor(G4KLX)致敬,因为它创造了这么酷的软件。
调制解调器平台
我们选择围绕STM32F446 NUCLEO开发板(906-4624)构建我们的系统,因为这提供了很好的价格/性能,而且多亏了法国无线电爱好者,F5UII有一个附加屏蔽,它为两个收音机和一个LCD触摸屏提供接口。
该屏蔽提供了位于无线电RX和微控制器ADC之间的op amps,以及无线电TX和微控制器DAC。还有一个用于稳定频率的TCXO,一些基本的缓冲和级别转换,以及用于模式和PTT的指示器。
屏蔽是作为一套通孔零件供应的,并花很少的时间组装。
工具链的设置
F5UII提供的指令通过所需的几个步骤,在Windows上安装工具链。然而,由于我们使用的是Ubuntu,它更加直接。
首先,安装嵌入式ARM工具链:
$ sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
$ sudo apt-get update
$ sudo apt-get install gcc-arm-embedded
然后克隆来源,建立stlink来编辑 NUCLEO板:
$ git clone https://github.com/texane/stlink
$ cd stlink
$ make
可执行文件被复制成为 /usr/local/bin:
$ sudo cp build/Release/st-* /usr/local/bin
udev rules 被复制到执行文件, udev 重启:
$ sudo cp etc/udev/rules.d/49-stlinkv* /etc/udev/rules.d/
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
最后,如果插入 NUCLEO板 ,st-info 运行如下:
$ st-info --probe
我们应确认1 个stlink程序员已经找到
构建和安装MMDVM
现在建立MMDVM ,第一步克隆来源:
$ git clone https://github.com/g4klx/MMDVM.git
$ cd MMDVM
接下来我们需要 STM32F4 DSP 与标准的外围库, 该库可以从ST下载,也可以从F5UII下载所需文件:
$ wget https://www.f5uii.net/wp-content/uploads/2016/12/STM32F4XX_Lib.zip
$ unzip STM32F4XX_Lib.zip
配置.需要编辑存储库根中的h文件.我们设置了配置行:
#define EXTERNAL_OSC 12000000
#define STM32F4_NUCLEO_MORPHO_HEADER
#define SEND_RSSI_DATA
#define SERIAL_REPEATER
下面我们运行程序:
$ make clean
$ make nucleo
这产生了一个hex文件,我们可以在板上编辑使用:
$ st-flash
--format
ihex write
bin/outp
.hex
下一个步骤
在下一篇文章中,我们将得到相应的主机软件MMDVMHost,它在树莓Pi上运行并被连接到 NUCLEO板上。这是大多数配置将要发生的地方,并且软件将促进连接DMR网络。在另一边,我们将把屏蔽连接到两个超高频收发器,然后进行一些初始测试。