Table of Contents

Digitalizační jednotka SDR-Widget

SDR-Widget je zařízení, které umožňuje digitalizaci nízkofrekvenčního signálu z SDR přijímačů a ovládání jejich komponent (lokální oscilátor, filtrová banka, anténní přepínače) přes sběrnici I2C. Zařízení se může z hlediska operačního systému chovat buď jako klasická audio karta, nebo posílat data přes SDR specifický protokol GHPSDR. Jde o opensource projekt jehož hardware je i přes jeho velkou užitečnost nyní těžko dostupný.

Celé zařízení však lze vyrobit i z modulů stavebnice MLAB. Konkrétně jde o moduly AT32TQ14401A osazený MCU AT32UC3A3256. K němu je připojený modul adcaudio, který signál digitalizuje. Ostatní moduly, jako displej, tlačítka nebo I²C zařízení mohou být připojovány podle potřeby.

Kompilace firmware

AVR32 Toolchain

Stáhněte si z webu Atmelu balík nástrojů a header soubory např:

Rozbalte toolchain do adresáře ~/avr32-tools. A potom do tohoto adresáře na místo $HOME/avr32-tools/avr32/include vložte avr32 header soubory z druhého balíku.

Případně můžete tento krok vynechat a stáhnout si zakonzervovanou verzi AVR32 toolchain z MLAB Downloads.

wget http://home.mlab.cz/Downloads/Software/AVR32/avr32-tools_3.4.2.tar.bz2  ~/Download/

Potom pokračujeme následujícím postupem:

cd ~/Download
tar -xvzf avr32-tools_3.4.2.tar.bz2
mv avr32-tools_3.4.2 $HOME/avr32-tools
export PATH=$PATH:$HOME/avr32-tools/bin

Ještě otestujeme funkčnost a verzi toolchain pomocí:

kaklik@popelnice:~/programy/sdr-widget$ avr32-gcc --version
avr32-gcc (AVR_32_bit_GNU_Toolchain_3.4.2_435) 4.4.7
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Pokud výpis je podobný tomuto, tak můžeme pokračovat kompilací SDR-Widget.

SDR-Widget sources

git clone  https://github.com/borgestrand/sdr-widget
cd sdr-widget/
git checkout audio-widget-experimental

Následně zkompilujeme zdrojový kód následujícím příkazem

make sdr-widget

Výsledkem kompilace jsou jednak pomocné utility a pak také firmware, který nahrajeme do MCU pocí skriptu program-widget pomocí utility dfu-programmer. Viz níže.

Nahrání firmware

Pro nahrání firmware potřebujeme upravený dfu-programmer, který stáhneme následujícím postupem:

sudo apt-get install autotools-dev aclocal  
git clone https://github.com/MLAB-project/dfu-programmer-sdr-widget.git
cd dfu-programmer-sdr-widget/
./bootstrap.sh
./configure
make
sudo make install

Zkompilovanou starší verzi firmware lze stáhnout z webu googlecode. Pro MLAB aplikace se ale využívá aktualizovaná s opravenými některými chybami:

wget https://github.com/MLAB-project/sdr-widget/releases/download/bolidozor-v01/widget.elf

Před spuštěním nahrávacího sktiptu stiskneme na desce AVR32TQ tlačítka BOOT (nepopsané tlačítko, držíme do stisku a uvolnění tlačítka RESET) a RESET.

 sudo ./program-widget widget.elf

Při jakýchkoli úpravách je nejdříve potřeba spustit:

make clean

Následně je možné kompilaci spustit znovu.

Zapojení modulů MLAB SDR-Widget

Pro základní konstrukci sdr-widget jsou potřeba dva moduly.

Ty navzájem propojíme následujícím způsobem

Napájení 5V

Červená, Modrá

AT32TQ14401A/POWER +5V → ADCaudio01B/POWER +5V

I2S

Žlutá 10cm

ADCaudio01B/MCLK → AT32TQ14401A/PC04

ADCaudio01B/BCLK → AT32TQ14401A/PX28 → AT32TQ14401A/PX34

ADCaudio01B/DOUT → AT32TQ14401A/PX25

ADCaudio01B/LRCLK → AT32TQ14401A/PX26 → AT32TQ14401A/PX36

Sample rate select

ADCaudio01B/OSR0(k nápisu) → AT32TQ14401A/PB00

ADCaudio01B/OSR1(k nápisu) → AT32TQ14401A/PB01

jumper na AUDIOF0

AT32TQ14401A/JTAG2 → AT32TQ14401A/PB06

V případě připojení externího oscilátoru

Tato sekce popisuje zapojení při použití modulu ADCaudio01A taktovaného modulem CLKGEN01B. Při použití novějšího modulu ADCaudio01B, který má integrovaný oscilátor se zapojení pro většinu aplikací zjednodušuje. Připojovat externí oscilátor má smysl v případě, že potřebujete velmi stabilní vzorkovací kmitočet například pro nějaké vědecké experimenty.

Napájení 5V

Červená, Modrá

CLKGEN01B/Vcore 3,3V → ADCaudio01A/POWER +5V → AT32TQ14401A/POWER +5V

Napájení 3,3V

Oranžová, Černá

CLKGEN01B/POWER → TTLPECL01A/POWER → PIC16F87x/POWER

Rozvod hodin

SATA kabel

CLKGEN01B/CLKOUT → TTLPECL01A/PECL0

Žlutá

TTLPECL01A/TTL0 → ADCaudio01A/MCLK → AT32TQ14401A/PC04

I2C

Hnědá

USBI2C01A/SCL → CLKGEN01B/SCL

Bílá

USBI2C01A/SDA → CLKGEN01B/SDA

Modrá

USBI2C01A/I2C GND → CLKGEN01B/POWER GND

I2S

ADCaudio01A/BCLK → AT32TQ14401A/PX28 → AT32TQ14401A/PX34

ADCaudio01A/DOUT → AT32TQ14401A/PX25

ADCaudio01A/LRCLK → AT32TQ14401A/PX26 → AT32TQ14401A/PX36

Sample rate select

ADCaudio01A/OSR0(k nápisu) → AT32TQ14401A/PB00

ADCaudio01A/OSR1(k nápisu) → AT32TQ14401A/PB01

jumper na AUDIOF0

AT32TQ14401A/JTAG2 → AT32TQ14401A/PB06

Konfigurace SDR-Widget

SDR-widget může být nakonfigurován do několika provozních režimů. Změna konfigurace se provádí konfigurační utilitou WidgetControl.py. Před jejím spuštěním nainstalujeme potřebné závislosti.

sudo apt-get install python-pythoncard python-usb

Spustíme konfigurační utilitu.

~/git/sdr-widget$ sudo ./WidgetControl.py

Pro běžné použití například uvnitř stanice Bolidozoru konfiguraci nastavíme takto: WidgetControl.py

Aby se nastavení projevilo, tak je potřeba sdr-widget odpojit a znovu připojit na USB.

Reference

Testování

Zařízení je nejsnazší otestovat v režimu standardní zvukovky, kdy na vstup připojíme signálový generátor. Výstup generátoru je vhodné na symetrický vstup ADC připojovat přes trasformátor. Ten však pro tyto účely můžeme vytvořit jednoduše z feritového jádra vyndaného například ze spínaného PC zdroje. Amplituda signálu na výstupu generátoru stačí i v případě transformátoru 1:1 v řádu jednotek milivoltů.

Konstrukce měřícího transformátoru s feritovým jádrem.

Software použitý k zobrazení signálu z generátoru může být například PySDR, nebo je možné využít rovnou ghpsdr3.

Test lze provést i bez připojeného generátoru pomocí šumu, který je porozovatelný na stupu ADC. Asi nejjednodušší zobrazení je při použití gnuradia. Které nainstalujeme takto:

 sudo apt install gnuradio

Následně stáhneme testovací skript.

 svn co svn://svn.mlab.cz/MLAB/Modules/Audio/ADCaudio01B/SW/sdr-widget_test.grc 

A otevřeme testovací skript v gnuradiu:

 gnuradio-companion sdr-widget_test.grc

Po spuštění skriptu tlačítem „Play“ by vykreslené spektrum mělo vypadat přibližně následovně.

 Výstup z testování SDR-widget

Související konstrukce

Digitalizační jednotku sdr-widget lze díky svojí univerzálnosti využít v mnoha měřících projektech a detekčních sítích.

TODO