Software Definded Radio: Difference between revisions

From Turmlabor Wiki
Jump to navigation Jump to search
(Created page Software Defined Radio)
 
(Added Information about NEON SIMD Engine)
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Projekt]]
= ZynqSDR =
= ZynqSDR =
Dem TL steht ein ZynqSDR 7020 zur Verfügung.   
Dem TL steht ein ZynqSDR 7020 Rev. 5 zur Verfügung.   


== Allgemein ==
== Allgemein ==
Das ZynqSDR 7020 ist eine Weiterentwicklung des [https://wiki.analog.com/university/tools/pluto/users ADALM-Pluto SDR] von Analog Devices. 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.
Das ZynqSDR 7020 ist eine Weiterentwicklung des [https://wiki.analog.com/university/tools/pluto/users ADALM-Pluto SDR] von Analog Devices. Der innere Aufbau ist [https://wiki.analog.com/_media/adiplutoworkshop_grcon2019.pdf 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.
Dazu gibt es Gigabit Ethernet und einen FTDI2232, um die Bootloader- und Debug-UART-Schnittstelle sowie JTAG nach außen zu führen.
Line 12: Line 15:
* 1 GB DDR3
* 1 GB DDR3
* [https://www.analog.com/media/en/technical-documentation/data-sheets/ad9363.pdf AD9363]
* [https://www.analog.com/media/en/technical-documentation/data-sheets/ad9363.pdf AD9363]
* 32 MB SPI-Flash
* Gigabit Ethernet
* Gigabit Ethernet
* Slot für SD-Karte


== Features ==
=== Features ===
 
* Einstellbarer Frequenzbereich: 325 - 3800 MHz  
* Einstellbarer Frequenzbereich: 325 - 3800 MHz  
* Bandbreite: 20 MHz
* Bandbreite: 20 MHz
Line 41: Line 45:


====== SSH Login ======
====== SSH Login ======
<blockquote>User: root
<blockquote>
User: root
 
Password: analog
</blockquote>
 
=== Firmware Update ===
Aktuelles Release der Tezuka Firmware [https://github.com/F5OEO/tezuka_fw/releases 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.


Password: analog</blockquote>
Bei Problemen/gebricktem SDR: https://www.m0boy.radio/how-to-unbrick-a-pluto-sdr-without-jtag/


== Setup ZynqSDR ==
== Setup ZynqSDR ==
Line 75: Line 98:
<blockquote>[USB_ETHERNET]
<blockquote>[USB_ETHERNET]


ipaddr_eth = '''<IP hier eintragen oder für DHCP frei lassen>'''
ipaddr_eth = <IP hier eintragen oder für DHCP frei lassen>
 
netmask_eth = <255.255.255.0 oder für DHCP frei lassen> </blockquote>Unintuitiv, da legacy vom ADALM-PLUTO (Ethernet per USB-OTG Adapter).
netmask_eth = <255.255.255.0 oder für DHCP frei lassen> </blockquote>Unintuitiv, da legacy vom ADALM-PLUTO (Ethernet per USB-OTG Adapter).  


====== Callsign ======
====== Callsign ======
Line 89: Line 111:
https://wiki.analog.com/university/tools/pluto/users/customizing
https://wiki.analog.com/university/tools/pluto/users/customizing


=== Wichtig: Speichern, <code>sync</code> and <code>umount</code> ausführen oder das Mass Storage Device per Eject-Button auswerfen. Die Änderungen werden sonst nicht gespeichert! ===
 
 
'''<u>Wichtig:</u>''' Speichern, <code>sync</code> und <code>umount</code> ausführen oder das Mass Storage Device per Eject-Button auswerfen. Die Änderungen werden sonst '''NICHT''' gespeichert!
 
Danach startet das SDR automatisch neu.
Danach startet das SDR automatisch neu.


Line 112: Line 137:
* Wireguard für Zugriff auch außerhalb des eigenen Heimnetzes: https://github.com/chili-chips-ba/wireguard-fpga
* 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
* 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''

Latest revision as of 15:00, 3 February 2026

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