Mesure en transmission d'un filtre 'SAW' passe-bande 433 MHz.
Le nanoVNA est équipé d'un petit 'touchscreen' mais on peut également communiquer via le port USB (USBc). Sur Linux, on peut utiliser 'minicom -D /dev/ttyACM0', par exemple. Et sur Windows, 'putty'.
L'interface est bien conçue. CH0 mesure la réflexion (S11) et CH1, la transmission (S21) en valeur imaginaires. On définit la plage de fréquences (sweep) qui sera divisée en 101 points. On peut afficher 4 traces. Pour chaque trace, on peut choisir le canal, le type d'affichage (logmag, smith, phase), etc...
Via le port USB, on a une console série dans laquelle on peut taper des commandes et afficher les résultats. Ainsi, par exemple, on peut facilement obtenir les mesures en transmission entre 400 et 500 MHz.
ch> sweep 400000000 500000000 101 ch> data 1 -0.004106074 0.001582601 -0.004401572 0.001613250 -0.004341298 0.001819048 -0.004164417 0.001013602 -0.006044433 0.001735574 ...Un petit script PERL vite écrit, convertit les valeurs en dB :
#!/usr/bin/perl $f0 = 400.0; $f1 = 500.0; $inc = ($f1 - $f0) / 101; $df = 0; while ($line = <STDIN>) { chomp $line; ($a, $b) = split /\s/,$line; $mag = sqrt ($a*$a + $b*$b); if ($mag == 0) {$mag = 0.001;} printf("%6.2f\t%f\n", $f0 + $df, 20*log($mag)/log(10.0)); $df += $inc; }et on obtient le même graphe que l'écran du nanoVNA avec gnuplot :
gnuplot <<END set term png size 1200,800 set output 'S21-logmag.png' set title 'S21-logmag of a "NMRF FBp - 433s" filter' set xlabel 'Frequency (MHz)' set ylabel 'S21 dB' plot 'S21-logmag' with lines ENDGraphe calculé à partir des données obtenues via l'interface série.
C'est magique!
Quelques exemples pour la route :
ch> ch> help Commands: help exit info echo systime threads reset freq offset time dac saveconfig clearconfig data dump frequencies port stat sweep test touchcal touchtest pause resume cal save recall trace marker edelay ch> info Kernel: 4.0.0 Compiler: GCC 5.4.1 20160919 Architecture: ARMv6-M Core Variant: Cortex-M0 Port Info: Preemption through NMI Platform: STM32F072xB Entry Level Medium Density devices Board: NanoVNA Build time: Aug 2 2019 - 16:40:01 ch> trace 0 LOGMAG CH0 1.000000000 7.000000000 1 LOGMAG CH1 1.000000000 7.000000000 2 SMITH CH0 1.000000000 0.000000000 3 PHASE CH1 1.000000000 4.000000000 ch> trace 99 trace {0|1|2|3|all} [logmag|phase|smith|linear|delay|swr|off] [src] ch> trace 1 phase 0 ch> trace 0 LOGMAG CH0 1.000000000 7.000000000 1 PHASE CH0 1.000000000 4.000000000 2 SMITH CH0 1.000000000 0.000000000 3 PHASE CH1 1.000000000 4.000000000 ch> sweep 400000000 500000000 101 ch> sweep 420000000 440000000 101 ch> sweep 420000000 440000000 101 ch> ch> data 1 -0.004733881 0.003933506 -0.004605576 0.004513134 -0.004246967 0.003887655 -0.004040227 0.003405604 -0.003938771 0.004323835 -0.004104804 0.004129481 ...data0 pour les mesures de réflexion, data 1 pour la transmission. Après, ce sont les données de calibration.
Quelques liens
- nanoVNA User Guide 2019-07-11 (pdf)
- Forum (groups.io/g/nanovna-users) -- wiki (accessible aux inscrits)
- Vidéo de Electro Bidouilleur (Bertrand)
- Vidéo de Cyrob (Philippe Demerliac)
- Si5351A data sheet (Silicon Labs Clock Generator)
- TLV320AIC3204 data sheet (TI Audio Codec)
- SA612AD datasheet (NXP Mixer)
- STM32F072CBT6 data sheet (16KB SRAM, 128 KB FLASH, 48 MHz, USB,...)
- Firmware on GitHub