Software Definded Radio
ZynqSDR
Dem TL steht ein ZynqSDR 7020 Rev. 5 zur Verfügung.
Allgemein
Das ZynqSDR 7020 ist eine Weiterentwicklung des ADALM-Pluto SDR von Analog Devices. Der innere Aufbau ist hier sehr gut ersichtlich.
Im Gegensatz zu diesem kommt ein umfangreicherer SoC (XC7C020 statt XC7C010) sowie ein vollständig ausgebrochenes Frontend (2x RX, 2x TX) zum Einsatz. Auch sind die Eingänge für PPS und 10 MHz Referenztakt direkt nach außen geführt.
Dazu gibt es Gigabit Ethernet und einen FTDI2232, um die Bootloader- und Debug-UART-Schnittstelle sowie JTAG nach außen zu führen.
ZynqSDR 7020
- AMD/XILINX XC7Z020
- 1 GB DDR3
- AD9363
- 32 MB SPI-Flash
- Gigabit Ethernet
- Slot für SD-Karte
Features
- Einstellbarer Frequenzbereich: 325 - 3800 MHz
- Bandbreite: 20 MHz
- ~ 20 MSPS
- 12-bit ADC
Stream Bandbreite
- Ethernet: 45 MHz
- USB: 14 MHz
Tezuka Firmware
Die Tezuka Firmware erweitert den Funktionsumfang deutlich, diese Funktionen sind jedoch nicht garantiert, da sie u.a. von der Chipgüte des AD9363 abhängen.
- Einstellbarer Frequenzbereich: 70 - 6000 MHz
- Bandbreite: 20/56 MHz
Dies wird dadurch erreicht, dass der AD9363 wie ein AD9361 angesprochen wird.
- Nutzung von beiden ARM A9 Prozessorkernen
- bis zu 27,5 MSPS (per Overclock)
- 2x RX, 2x TX
Dazu ist ein Wasserfall des Spektrums direkt eingebaut, das auf dem FPGA berechnet wird. Dafür kommt Maia zum Einsatz. Der Wasserfall kann unter http://<IP>:8000/ aufgerufen werden.
SSH Login
User: root
Password: analog
Firmware Update
Aktuelles Release der Tezuka Firmware hier herunterladen. Es wird die ZIP-Datei für das LibreSDR benötigt.
a) SD Boot
Heruntergeladene Zip entpacken und den Inhalt (!) des sdimg-Ordners auf eine FAT32 formatierte SD-Karte kopieren.
Diese anschließend in das SDR stecken.
b) direktes Update des SPI-Flash
Schwieriger, nicht empfohlen.
Wenn doch gewünscht, erst die boot.frm Datei auf das Mass Storage Device kopieren und auswerfen. Das SDR aktualisiert nun den Bootloader, dies kann mehrere Minuten dauern.
Danach nochmal sowohl die boot.frm als auch die pluto.frm Datei auf das Mass Storage Device kopieren und auswerfen. Ebenfalls rund 5 min warten, bis das Update beendet ist.
Bei Problemen/gebricktem SDR: https://www.m0boy.radio/how-to-unbrick-a-pluto-sdr-without-jtag/
Setup ZynqSDR
Beim Anschließen des SDR über den OTG Port an den Rechner erscheint ein Pluto-SDR Mass Storage Device. Dies kann bis zu 30 Sekunden dauern.
Um Einstellungen vorzumehmen, muss die config.txt geändert werden.
Einstellungen config.txt
Direktverbindung über USB konfigurieren
Der oberste Block ist für die USB Netzwerkkonfiguration zur Direktverbindung mit dem PC.
[NETWORK]
hostname = pluto
ipaddr = 192.168.2.1
ipaddr_host = 192.168.2.10
netmask = 255.255.255.0
Alles außer dem Hostname sollte NICHT geändert werden!
WLAN konfigurieren
[WLAN]
ssid_wlan =
pwd_wlan =
ipaddr_wlan =
Um WLAN nutzen zu können, muss ein kompatibler WLAN-Dongle per OTG-Kabel an den USBC-OTG Port angeschlossen werden.
Ethernet Port konfigurieren
[USB_ETHERNET]
ipaddr_eth = <IP hier eintragen oder für DHCP frei lassen>
netmask_eth = <255.255.255.0 oder für DHCP frei lassen>
Unintuitiv, da legacy vom ADALM-PLUTO (Ethernet per USB-OTG Adapter).
Callsign
[MISC]
Callsign =
Customizing
https://wiki.analog.com/university/tools/pluto/users/customizing
Wichtig: Speichern, sync und umount ausführen oder das Mass Storage Device per Eject-Button auswerfen. Die Änderungen werden sonst NICHT gespeichert!
Danach startet das SDR automatisch neu.
PC Software Setup
Das ZynqSDR funktioniert softwareseitig identisch zum PlutoSDR. Sämtliche Funktionen/Software, die das PlutoSDR unterstützt, unterstützt auch das ZynqSDR. Allerdings kann teilweise nicht der volle Funktionsumfang genutzt werden, da manche Software z.B. nur 6 MHz Bandbreite zulässt.
Treiber
Es werden die IIO Treiber benötigt
- Linux: libiio
- Windows: plutosdr-m2k-drivers-win
Software Support
Getestet wurden
- SDR++ (getestet unter Windows + Linux)
- SDRConsole (V3) (getestet unter Windows)
Ideen
- Einbau weiterer Funktionalitäten in den FPGA wie z.B. Faltung
- Wireguard für Zugriff auch außerhalb des eigenen Heimnetzes: https://github.com/chili-chips-ba/wireguard-fpga
- Offene Toolchain anschauen: https://github.com/openxc7
- Nutzung der SIMD Engine der CPU (ARMv7 NEON) -> !!! ist per default im Linux Kernel deaktiviert, da Denormalized floating-point numbers are flushed to zero on ARMv7