Uživatelské nástroje

Nástroje pro tento web

Překlady této stránky?:

cs:rmds02

Toto je starší verze dokumentu!


Radiová Meteorická Detekční Stanice RMDS02

Je novější verzí stále vyvíjeného systému rádiových stanic s cílem získání synchronizovaných vzorků signálu z více stanic. A tím umožnit výpočet dráhy meteoru. Dokumentace k předchozím verzím stanic je dostupná na stránce rmds01

Popis funkce

Měření frekvence LO

Stanice v sobě integruje konstrukci acounter, která slouží pro měření frekvence lokálního oscilátoru. Rozdíl oproti této konstrukci je v tom, že naměřená frekvence je vyčítána přes rozhraní I²C. To umožňuje firmware v modulu PIC16F87xTQ4401B, který se chová jako I2C slave zařízení. Tento MCU modul zároveň konfiguruje GPS pro vytváření 10ms impulzů každých 10s, které hradlují čítač a děličku. PIC MCU inicializuje GPS přes rozhraní RS232 1s po náběhu napájení. Pro inicializaci GPS je místo I²C použito RS232 rozhraní kvůli tomu, že v dokumentaci LEA-6S není popsaná komunikace přes I²C.

Konfigurace software

ODROID má přímou HW podporu sběrnice I²C. Proto můžeme přijímač ladit bez použití modulu usbi2c. Je ale potřeba mít v jádře nahraný modul i2c-dev.

sudo modprobe i2c-dev

Tímto způsobem se modul do jádra nahraje jenom dočasně a po rebootu bude opět chybět. Pro opakované nahrání modulu při nabootování počítače je potřeba do souboru /etc/modules přidat řádek:

i2c-dev

Software pro GPS

Pro správnou funkci stanice je potřeba, aby GPS měla fix. Což znamená, že musí být známá pozice a musí být trackovány alespoň tři družice.

Tento stav můžeme zkontrolovat z výstupu GPS. Na modulu GPS01A je USB konektor, který po připojení k počítači vytvoří virtuální modemovou linku /dev/ttyACM0 na kterou jsou periodicky posílány informace o stavu GPS. Správné označení cesty k souboru /dev/ttyACMX lze zkontrolovat z výpisu dmesg. V linuxu můžeme tento výstup trvale monitorovat pomocí programu gpsd.

sudo apt-get install gpsd gpsd-clients

Po instalaci program spustíme jako daemon a přiřadíme mu port s výstupem GPS. V našem případě /dev/ttyACM0

sudo gpsd /dev/ttyACM0

Program běží v pozadí a čte data z GPS. Na jeho výstup se podíváme některým klientem.

cgps
gpsmon

Bez grafického prostředí z příkazové řádky. Nebo

xgps

V grafickém prostředí X.

Ve všech případech by jsme měli při správné funkci GPS vidět, že z GPS padají nějaká data. Dobře je to vidět např v gpsmon, který NMEA výpisy přímo zobrazuje v textové podobě. Dále by pak GPS měla mít 3D fix a používat některé družice, což je také vidět ve výstupu klientů.

Umístění GPS antény

Pokud se stane, že GPS nemá fix nebo nevidí žádné družice. Tak je pravděpodobně problém s připojením GPS antény, nebo jejím umístěním. Je potřeba si uvědomit, že GPS signál je velice slabý (GPS družice jsou více než 20000 km nad povrchem Země), takže je potřeba aby GPS anténa měla přímý výhled na oblohu. Anténa umístěná v místnosti bez oken pravděpodobně nebude fungovat, a nebo její funkce bude velmi omezená.

Automatické ladění přijímače

Lokální oscilátor stanice se ovládá jako I²C zařízení přímo počítače. Je proto potřeba mít zprovozněný balík knihoven pro ovládání I²C zařízení. Na téže stránce je i návod na jeho instalaci. Zařízení používá pro ovládání I²C modul USBI2C01A, takže je potřeba nainstalovat jeho podporu. Pro detekční stanici stačí použít připojení modulu přes HID pomocí HIDAPI. není proto potřeba kompilovat kernel.

Nejdříve nainstalujeme potřebné softwarové nástroje:

sudo apt-get install subversion python-setuptools python-smbus cython

Dále nainstalujeme programový balík pro komunikaci na I2C

sudo easy_install pymlab

Do /etc/modules přidáme řádek

i2c-dev

přidáme uživatele „Username“, pod kterým budeme stanici provozovat, do skupiny i2c a audio

sudo useradd -G i2c Username
sudo adduser Username audio

a restartujeme počítač.

sudo reboot

Následně potřebujeme program pro nastavení frekvence lokálního oscilátoru.

git clone https://github.com/MLAB-project/station-supervisor.git
git clone https://github.com/MLAB-project/python-mlab-utils.git
cd python-mlab-utils/
sudo python setup.py develop
cd ../station-supervisor

Nyní máme staženy zdrojové soubory utility pro ladění lokálního oscilátoru a je potřeba upravit soubory frequency_config.py a případně bus_config.py podle konfigurace stanice.

Pokud je modul USBI2C01A připojen k počítači (stačí použít způsob připojení přes rozhrani HID).

sudo /frequency-guard.py

Pokud terminál se spuštěným ladícím skriptem chceme zavřít, tak je možnost jej spustit v prostředí screen.

sudo screen /frequency-guard.py
Current Freq.: 286.0787998 MHz, Req. Freq.: 286.078800 MHz, Freq diff.: -0.2 Hz, Time: 58 s

Ten musí běžet po celou dobu provozu stanice. Je proto ideální jej spustit v terminálovém okně otevřeném vedle běžícího waterfallu na stanici. Protože jeho výpis může částečně sloužit k diagnostice správného chodu lokálního oscilátoru stanice.

Ještě taky existuje skript pro ladění Si570 bez GPS: setSi570

Aby se skript nemusel spouštět s právy roota, je třeba vytvořit v adresáři /etc/udev/rules.d soubor SiliconLabs.rules s obsahem:

SUBSYSTEM=="usb", ATTRS{idVendor}=="10c4", MODE="0666"
SUBSYSTEM=="usb_device", ATTRS{idVendor}=="10c4", MODE="0666"

Aby se toto nastavení projevilo, tak se musí znovu zavolat udev. To se stane pri nové enumeraci USB zařízení.

Audio subsystém - JACK

Pro nejstabilnější jack server je výhodné použít přímo aktuální master větev z githubu. Ta má opravené některé pro ARM počítače významné chyby.

sudo apt-get install libsamplerate0-dev libasound2-dev libsndfile1-dev
git clone https://github.com/jackaudio/jack2.git
cd jack2
./waf configure  --alsa --autostart=none
./waf build 
sudo ./waf install
sudo ldconfig

Spustíme JACK server; interní zvukový adapter pro Playback, externí zvukový adapter připojený přes USB pro Capture.

jackd -r -d alsa -p 2048 -n 3 -r 48000 -P hw:0,0 -C hw:1,0

Pro kontrolu propojení aplikací spustíme

qjackctl

Ten zkompilujeme podle navodu instalace_qjackctl

Živý waterfall PySDR

Software pro zobrazení waterfall nainstalujeme podle návodu na stránce PySDR. Funkci přijímače pak můžeme zkontrolovat pomocí pysdr a programu Whistle, který generuje zvukový výstup. Celý systém lokálně přímo na odroidu spustíme těmito příkazy:

~/Bolidozor/pysdr/pysdr-waterfall -d ./detectors/meteor_echo.py -b 8192
jack_connect system:capture_1 pysdr:input_i
jack_connect system:capture_2 pysdr:input_q

Zvukový výstup Whistle

~/Bolidozor/pysdr/whistle/whistle -p freqx,-10400:kbfir,41,0,400,100:freqx,400:amplify,200
jack_connect system:capture_1 whistle:input_i
jack_connect system:capture_2 whistle:input_q
jack_connect whistle:output_i system:playback_1
jack_connect whistle:output_q system:playback_2

Detekce meteorů

Přeložíme radio-observer podle postupu na wiki stránce, nebo v README. A překopírujeme výslednou binárku radio-observer do adresáře ~/Bolidozor/. Následně překopírujeme i vzorový konfigurační soubor Bolidozor.json do složky ~/Bolidozor/nazev_stanice/ a přejmenujeme ho na nazev_stanice.json a upravíme v něm název stanice a cesty k výstupním souborům.

Dále spustíme radio-observer s námi upraveným konfiguračním souborem:

./radio-observer -c nazev_stanice.json

V okně qjackctl pak uvidíme běžící klient připojený na vstup zvukové karty. Protože radio-observer poskytuje informace o detekovaných meteorech v podobě MIDI zprávy, kterou může zobrazit program PySDR, tak ještě propojíme tyto dva programy.

jack_connect radio-observer:midi_out pysdr:input_events

Při běhu programů se občas stává, že některý spadne. Vzhledem k tomu, že jde o experimentální zařízení, tak je důležité z takového pádu mít coredump soubor, který pak lze použít k nalezení chyby. V Ubuntu je implicitně nastaven limit velikosti takového souboru na 0. To způsobuje, že soubor s obrazem paměti nevznikne, je proto potřeba limit navýšit:

 ulimit -c unlimited

Pokud máme k počítači připojeno více zvukových adaptérů, můžeme další adaptér připojit k jasku napŕíklad pomocí příkazu

jack_load -i "-d hw:0 -i0 -o2" xxx audioadapter

Tento příkaz přípojí zvukový adaptér č. 0 k jacku pod jménem xxx a bude mít dva kanály pro přehrávání. Další možnost je použít příkazy alsa_in nebo alsa_out. Je také možné spustit jack bez zvukového adaptéru, pokud vybereme zařízení dummy.

Skripty pro odesílání dat

Skripty pro odesílání dat na space.astro.cz jsou vyvíjeny jako Data uploader. Instalaci provedeme podle návodu na wiki Bolidozoru.

Skripty pak roztřídí data vytvořená radio-observerem. A uploadují je na centrální server space.astro.cz.

Automatické spuštění celého systému

Jak je vidět, tak spuštění stanice po startu systému je poměrně komplikovaný proces. Který je potřeba opakovat při každém restartu systému. Z části lze tento proces zautomatizovat následujícím skriptem. Pauzy vytvořené příkazem sleep jsou důležité pro to, aby všechny operace byly spuštěny až po dokončení inicializace v předcházejícím kroku.

 ulimit -c unlimited
~/Bolidozor/frequency_log.py&
jackd -r -d netone -i0 -I0 -o2 -O1 2>/dev/null&
sleep 3
qjackctl&
sleep 4
alsa_in -d hw:1,0 -r 48000&
sleep 3
~/Bolidozor/ZEBRAK-R1/ZEBRAK-R1&
sleep 3
jack_connect alsa_in:capture_1 system:playback_1
jack_connect alsa_in:capture_2 system:playback_2
jack_connect ZEBRAK-R1:midi_out system:playback_3

Servisní operace

Aktualizace firmware v modulu s PIC

V některých případech je potřeba pro opravu chyby nahrát novou verzi firmware do modulu PIC16F87xTQ4401B. Při této operaci se postupuje podle návodu na programování PIC. Nahrání kódu provedeme připojením programátoru picprogusb dále je potřeba pouze stáhnout aktuální verzi hex souboru a tu nahrát do MCU, což provedeme následovně:

svn co svn://svn.mlab.cz/MLAB/Designs/Measuring_instruments/RMDS02C/SW/PIC16F887/
cd PIC16F887
pk2cmd -PPIC16F887 -M -Y -W -F./main.hex

Po úspěšném zápisu a kontrole by měl v PIC být nový firmware.

Radiová Meteorická Detekční Stanice RMDS02B

Jedná se o stanici typu RMDS01 vylepšenou o synchronizaci LO.

 RMDS02B

Tato verze detekční stanice, kromě časových značek poskytuje i informaci o aktuální frekvenci lokálního oscilátoru.

Zapojení modulů stanice RMDS02B

 Zapojení stanice verze RMDS02B

Napájení 12V

žlutá/černá

SDRX01B/+12V ⇒ SDRX01B/LNA Power

Napájení 5V

červená/černá

BATPOWER04/5V POWER OUT ⇒ SDRX01B/Power +5V ⇒ CLKGEN01B/Power 5V ⇒ GPS01A/POWER IN EXT

Pokud přivedeme +5V na I2CHUB, musime osadit jumper POWER SELECT - SLAVE - ON

Žlutá/černá

BATPOWER04 +5V ⇒ SDRX01B/+12V,GND

Modrá/černá

UNIPOWER02A 5V ⇒ SDRX01B/-12V,GND

Napájení 3,3V

Oranžová/černá

CLKGEN01B/Vcore 3,3V → CLKDIV01A/POVER 3,3V → TTLPECL01A/POWER → PIC16F87x/POWER

Rozvod VF hodin

SATA kabely

10cm CLKGEN01B/CLKOUT → CLKDIV01A/CLK IN

10cm CLKDIV01A/QB → TTLPECL01A/PECL0 20cm CLKDIV01A/QA → SDRX01B/LO INPUT

Vydělené hodiny

bílá

TTLPECL01A/TTL0 → PIC16F87x/RC0

Ovládání předděličky CLKDIV01A

Modul předděličky CLKDIV01A snižuje vstupní frekvenci digitálního signálu z lokálního oscilátoru přijímače. Výstupem předděličky je frekvence, která je již přímo měřitelná čítačem v PIC. Aby nedošlo při dělení ke ztrátě některých impulzů lokálního oscilátoru, tak jsou z předděličky po každém měření vyčítány i její interní stavy.

šedá

CLKDIV01A/MR# → PIC16F87x/RE2

CLKDIV01A/SEL B0 → PIC16F87x/RE1

CLKDIV01A/SEL B1 → PIC16F87x/RE0

PPS

Signál PPS je v přijímači využit pro přenos přesného času.

GPS01A/TIMEPULSE → CLKDIV01A/EN# → PIC16F87x/RB0

I2C

I²C je digitální sběrnice, která se v přijímači používá na shromažďování servisních dat a ladění přijímače.

USBI2C01A/SDA → CLKGEN01B/SDA → PIC16F87x/RC4

USBI2C01A/SCL → CLKGEN01B/SCL → PIC16F87x/RC3

Ovládání GPS přijímače

Tento signál se používá na počáteční nastavení GPS při startu napájení. Konfigurace je do GPS nahrána přibližně 1s po zapnutí napájení modulu s MCU PIC.

GPS01A/RXD → PIC16F87x/RC6

Zapojení jumperů na USBI2C01A a GPS01A

Pro servisní účely je možné zapojit jumpery i jinak než je zobrazeno na následujících obrázcích.

USBI2C01A GPS01A

Jumper LED ON na GPS01A je možné připojit kablíkem k PIC. Potom bude LED sloužit k indikaci stavu firmware v modulu s PIC (tato vlastnost je implementována ve firmware pro PIC od verze 3741).

PIC16F87x/RB3 → GPS01A/LED ON (vývod blíž k LED)

Pokud v takovém případě funguje správně ladění stanice, bliká zelená LED na GPS01A přijímači s periodou 0,5 Hz a střídou 1:1, přičemž každý šestý puls má jinou střídu (blikání indikuje správnou funkci FW a změna střídy indikuje, že od GPS přichází signál PPS).

Pokud na GPS přijímači ponecháme jumper LED ON, bliká zelená LED s periodou 10 s. Délka svitu je 10 ms. Pokud zelená led v tomto případě bliká s periodou 1 Hz, je nutné stisknout tlačítko RESET na desce PIC16F87x, aby došlo k inicializaci GPS přijímače.

Upgrade RMDS01B na verzi RMDS02B

Tato stanice vznikne z verze RMDS01B přidáním modulu CLKDIV01A a výměnou firmwaru v modulu pic16f87xtq44

Nový firmware stáhneme pomocí

svn checkout svn://svn.mlab.cz/MLAB/Designs/Measuring_instruments/RMDS02C/SW/PIC16F887

Ve vzniklé složce najdeme .hex soubor a do PICu ho nahrajeme postupem pic_programming.

Radiová Meteorická Detekční Stanice RMDS02C

Verze stanice s nízkospotřebovým staničním počítačem založeným na architektuře ARM.

Zapojení modulů stanice RMDS02C

Napájení 12V

Žlutá/černá

SDRX01B/+12V,GND ⇒ UNIPOWER02A

Modrá/černá

SDRX01B/-12V,GND ⇒ UNIPOWER02A

žlutá/Černá

SDRX01B/+12V ⇒ SDRX01B/LNA Power (libovolný jeden ze čtyř vnitřních pinů)

Napájení 5V

červená/černá

UNIPOWER02A/5V POWER OUT ⇒ SDRX01B/Power +5V ⇒ CLKGEN01B/Power 5V ⇒ GPS01A/POWER IN EXT

Napájení 3,3V

Oranžová/černá

CLKGEN01B/Vcore 3,3V → CLKDIV01A/POVER 3,3V → TTLPECL01A/POWER → PIC16F87x/POWER

Rozvod VF hodin

SATA kabely

10cm CLKGEN01B/CLKOUT → CLKDIV01A/CLK IN

10cm CLKDIV01A/QB → TTLPECL01A/PECL0 20cm CLKDIV01A/QA → SDRX01B/LO INPUT

Vydělené hodiny

bílá (10cm)

TTLPECL01A/TTL0 → PIC16F87x/RC0

Ovládání předděličky

šedá (10cm)

CLKDIV01A/MR# → PIC16F87x/RE2

CLKDIV01A/SEL B0 → PIC16F87x/RE1

CLKDIV01A/SEL B1 → PIC16F87x/RE0

PPS

zelená (10cm)

GPS01A/TIMEPULSE → CLKDIV01A/EN# → PIC16F87x/RB0

Ovládání GPS přijímače

bílá (10cm)

GPS01A/RXD → PIC16F87x/RC6

I2C

Viz Pripojeni I2C

ODROID-U3/SCL → I2CHUB02A/MASTER I2C/SCL

ODROID-U3/SDA → I2CHUB02A/MASTER I2C/SDA

I2CHUB02A/3/SDA → PIC16F87x/RC4

I2CHUB02A/3/SCL → PIC16F87x/RC3

I2CHUB02A/5/SDA → CLKGEN01B/SDA

I2CHUB02A/5/SCL → CLKGEN01B/SCL

Napájení 1,8 V

ODROID-U3/1.8V → I2CHUB02A/POWER SELECTMASTER/prostřední pin

Kontrola zapojení

Po zapojení stanice je potřeba zkontrolovat funkci všech subsystémů. Nejčastější problém bývá se zapojením I²C.

Pokud máme nějaké potíže s I2C, použijeme I²C diagnostické nástroje podle MLAB návodu.

Správné obsazení I²C sběrnice po zapojení stanice má vypadat takto:

odroid@odroid:~/Bolidozor$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- 51 -- -- -- 55 -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: 70 -- -- -- -- -- -- -- 

0x70 je modul I2Chub, 0x51 je měřící PIC, 0x55 je modul CLKGEN.

Nejdříve se ale musí namapovat I2CHUB tak, aby byly přístupné všechny zařízení na sběrnici. To se stane při alespoň jednom spuštění frequency_log.py nebo postupem zapis.

Radiová Meteorická Detekční Stanice RMDS02D

Tato stanice vznikne z verze RMDS02C přidáním AD převodníku sdr-widget, výměnou odroidu za verzi odroid-u3 a úpravou napájení přidáním měniče 12V/5V.

Stanice RMDS02D

Radio meteor detection station block schematics

Napájení 12V

Žlutá/černá (10cm)

UNIPOWER02A OUT ⇒ BATPOWER04C/INPUT

žlutá/Černá (10cm)

UNIPOWER02A OUT ⇒ SDRX01B/LNA Power (libovolný jeden ze čtyř vnitřních pinů)

Napájení +5V

červená/černá

BATPOWER04/5V POWER OUT ⇒(15cm) SDRX01B/Power, BATPOWER04/5V POWER OUT ⇒(10cm) CLKGEN01B/Power 5V Použít 4 pinový plastovy konektor na BATPOWER a napájení na něm rozdělit.

BATPOWER04/5V POWER OUT ⇒(20cm) I2CHUB02B

I2CHUB02B POWER IN ⇒(10cm) ODROID-U3 +5V Breakout frame power

AT32TQ14401A/POWER +5V → ADCaudio01A/POWER +5V

(10cm) SDRX01B/Power +5V ⇒ SDRX01B/Analog Power +12V

Napájení -5V

modrá/černá

(10cm) UNIPOWER02A -5V ⇒ SDRX01B/Analog Power -12V

Napájení 3,3V

Oranžová/černá (10cm)

CLKGEN01B/Vcore 3,3V → CLKDIV01A/POVER 3,3V

CLKDIV01A/POVER 3,3V → TTLPECL01A/POWER

Oranžová/černá (20cm)

CLKGEN01B/Vcore 3,3V → PIC16F87x/POWER

Napájení 1,8 V

10cm.

ODROID-U3/1.8V → I2CHUB02A/POWER SELECTMASTER/prostřední pin

Rozvod VF hodin

SATA kabely

10cm CLKGEN01B/CLKOUT → CLKDIV01A/CLK IN

10cm CLKDIV01A/QB → TTLPECL01A/PECL0

20cm CLKDIV01A/QA → SDRX01B/LO INPUT

Vydělené hodiny

bílá (10cm)

TTLPECL01A/TTL0 → PIC16F87x/RC0

Ovládání předděličky

šedá(10cm)

CLKDIV01A/MR# → PIC16F87x/RE2

CLKDIV01A/SEL B0 → PIC16F87x/RE1

CLKDIV01A/SEL B1 → PIC16F87x/RE0

PPS

zelená (10cm)

GPS01A/TIMEPULSE → CLKDIV01A/EN# GPS01A/TIMEPULSE → PIC16F87x/RB0

Ovládání GPS přijímače

bílá(10cm)

GPS01A/RXD → PIC16F87x/RC6

I2C

Bílá(SDA), černá(GND), SCL(hnědá) 10cm

Viz Pripojeni I2C

ODROID-U3/SCL GPIO199 → I2CHUB02B/MASTER I2C/SCL

ODROID-U3/SDA GPIO200→ I2CHUB02B/MASTER I2C/SDA

Bílá(SDA), černá(GND), SCL(hnědá) 20cm

I2CHUB02B/6/SDA → PIC16F87x/RC4

I2CHUB02B/6/SCL → PIC16F87x/RC3

I2CHUB02B/5/SDA → CLKGEN01B/SDA

I2CHUB02B/5/SCL → CLKGEN01B/SCL

Blok SDR-widget

Rozvod hodin

Žlutá 10cm

ADCaudio01B/MCLK → AT32TQ14401A/PC04

I2S

Fialová 10cm

ADCaudio01B/BCLK → AT32TQ14401A/PX28 → AT32TQ14401A/PX34

ADCaudio01B/DOUT → AT32TQ14401A/PX25

ADCaudio01B/LRCLK → AT32TQ14401A/PX26 → AT32TQ14401A/PX36

Sample rate select

Hnědá 15cm

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

Šedá 15cm

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

jumper na AUDIOF0

Modrá 10cm

AT32TQ14401A/JTAG2 → AT32TQ14401A/PB06

Nastavení SDR-widget

cs/rmds02.1485800782.txt.gz · Poslední úprava: 2017/01/30 18:26 (upraveno mimo DokuWiki)