From b2b3e765bdcb68974eba22747814892407a594a5 Mon Sep 17 00:00:00 2001 From: Buke Hu Date: Fri, 16 Jan 2026 17:11:56 +0800 Subject: [PATCH] Almazny/Mirny: test using TinySA (#67) Reviewed-on: https://git.m-labs.hk/sinara-hw/assembly/pulls/67 Co-authored-by: Buke Hu Co-committed-by: Buke Hu --- src/hw/mirny_almazny.md | 42 ++++++++++++++++++ ...ny_1100M_TinySA_20db_att_sinara_tester.png | Bin 0 -> 3760 bytes src/img/tinysa_7GHz_almazny_sinara_tester.png | Bin 0 -> 4070 bytes 3 files changed, 42 insertions(+) create mode 100644 src/img/mirny_1100M_TinySA_20db_att_sinara_tester.png create mode 100644 src/img/tinysa_7GHz_almazny_sinara_tester.png diff --git a/src/hw/mirny_almazny.md b/src/hw/mirny_almazny.md index 890ddc2..1e04816 100644 --- a/src/hw/mirny_almazny.md +++ b/src/hw/mirny_almazny.md @@ -101,6 +101,19 @@ mirny0_ch3 info: {'f_outA': 1300000000.0, 'f_outB': 10400000000, 'output_divider After running `artiq_sinara_tester`: +1. (Recommended) Attach a 20 dB attenuator (any that support the frequency range) to the TinySA Ultra "RF" port. +2. Connect the TinySA Ultra's "RF" port (with attenuator) to the Mirny channel 0 output SMA port. +3. Turn on the TinySA Ultra and set it to "Spectrum Analyzer" mode. +4. Set the frequency range to cover the expected output (e.g., 800 MHz to 2 GHz). +5. If the marker is not on the peak, click "Marker"->"Search Marker"->"Peak Search" to find the peak signal. +6. Repeat 2-5 for other channels + +Expected output: + +![Mirny TinySA example](../img/mirny_1100M_TinySA_20db_att_sinara_tester.png) + +Alternatively, you can use GQRX with HackRF: + 1. Install gqrx `nix-shell -p gqrx` 2. Connect HackRF One via USB cable only 3. Run gqrx and choose `HackRF HackRF One...` @@ -112,6 +125,35 @@ After running `artiq_sinara_tester`: ![Mirny GQRX example](../img/mirny_gqrx.png) +### With Almazny (ARTIQ 8+) +```text +*** Testing Almaznys (v1.2+). +Initializing Mirny CPLDs... +mirny0_cpld... +...done +Frequencies: +mirny0_ch0 7000MHz +mirny0_ch1 7100MHz +mirny0_ch2 7200MHz +mirny0_ch3 7300MHz +RF ON, attenuators are tested. Press ENTER when done. + +``` + +After running `artiq_sinara_tester` with Almazny installed, use TinySA Ultra to check the frequencies, similar to the [Without Almazny](#Without-Almazny) section: + +1. (Recommended) Attach a 20 dB attenuator ([BW-S20W5+](https://www.minicircuits.com/WebStore/dashboard.html?model=BW-S20W5%2B)) to the TinySA Ultra "RF" port. +2. Connect the TinySA Ultra's "RF" port (with attenuator) to the Almazny channel 0 output SMA port. +3. Turn on the TinySA Ultra and set it to "Spectrum Analyzer" mode. +4. Set the frequency range to cover the expected output (e.g., 6.8 GHz to 7.5 GHz). +5. If the marker is not on the peak, click "Marker"->"Search Marker"->"Peak Search" to find the peak signal. +6. Repeat 2-5 for other channels + +Expected output: The output amplitude will sweep due to attenuator testing, but the frequencies should remain stable. + +![Almazny TinySA example](../img/tinysa_7GHz_almazny_sinara_tester.png) + + ### With Almazny (ARTIQ 7) At first, `artiq_sinara_tester` will prompt you for testing Mirnies as the would be without Almazny. diff --git a/src/img/mirny_1100M_TinySA_20db_att_sinara_tester.png b/src/img/mirny_1100M_TinySA_20db_att_sinara_tester.png new file mode 100644 index 0000000000000000000000000000000000000000..88f395b4d5c47888ba1e1ab47a98519ea9dc9b46 GIT binary patch literal 3760 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 literal 0 HcmV?d00001 diff --git a/src/img/tinysa_7GHz_almazny_sinara_tester.png b/src/img/tinysa_7GHz_almazny_sinara_tester.png new file mode 100644 index 0000000000000000000000000000000000000000..7635e0e469a663f674511e9327deb02d16bf1992 GIT binary patch literal 4070 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 Y<`&@Ab4g7Z)NyC