Software Definded Radio

From Turmlabor Wiki
Jump to navigation Jump to search

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

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