Files
radar_system/device_firmware/multi_libreVNA_firmware/reproduce/install_windows
AyzenandClaude Opus 5 dfb285ab93 add windows install/build scripts for per-point switching
Скрипты, которыми правки ставятся в дерево LibreVNA на сборочной машине и
собирается прошивка MCU мастера её штатным тулчейном (STM32CubeIDE 1.17.0,
gcc 12.3.1). Оригиналы шести изменённых файлов сохраняются в backup_original,
так что откат — обратный xcopy.

Проверено на месте: все 7 файлов легли побайтово (сверил sha256 каждого),
прошивка мастера собралась, эталон предыдущей прошивки остался цел в
extracted/master_stm32.bin.

Битстрим FPGA этими скриптами не собирается — нужна ISE 14.7 в виртуалке,
процедура описана в README.txt и per_point_switching.md.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 12:48:52 +03:00
..

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Переключение стимула внутри частотной точки — что собрать
=========================================================

Матрица 4x4 за одну развёртку: каждый порт мастера измеряется на каждой частоте
дважды, с двумя положениями выходного ключа. Подробное описание —
device_firmware/per_point_switching.md в репозитории.

ЧТО ЗДЕСЬ
---------
  files\                 7 изменённых файлов дерева LibreVNA
  install.cmd            бэкап оригиналов + установка + сборка MCU
  build_mcu.cmd          только сборка MCU (если правки уже стоят)
  backup_original\       появится после install.cmd — оригиналы для отката
  SHA256_new.txt         хеши установленных файлов для проверки

Изменены: FPGA/VNA/{Sweep,SPIConfig,top}.vhd,
          Software/VNA_embedded/Application/VNA.cpp,
          Software/VNA_embedded/Application/Drivers/FPGA/FPGA.{cpp,hpp}
Добавлен: FPGA/VNA/Test_Sweep.vhd (тестбенч, в проект ISE не входит)

ВАЖНО: ПЕРЕПРОШИВАТЬ НАДО ТОЛЬКО МАСТЕР
---------------------------------------
Слейвы остаются как есть. Хост выставляет им обе порт-стадии в 7, а стоковое
сравнение "stage_cnt = порт-стадия" при счётчике 0..3 с семёркой не совпадает
никогда — то есть слейв не излучает и без доработки, а четыре стадии на точку
отрабатывает по тому же полю STAGES, что и раньше.

Значит slave-битстрим пересобирать не нужно, а он побайтово невоспроизводим.

ШАГ 1. Установка правок и сборка MCU
------------------------------------
    install.cmd

Собирается мастер тулчейном STM32CubeIDE 1.17.0 (gcc 12.3.1).
Результат: ...\reproduce\LibreVNA\Software\VNA_embedded\build\VNA_embedded.bin

ШАГ 2. Битстрим FPGA мастера (Xilinx ISE 14.7)
----------------------------------------------
1. Папка FPGA уже скопирована в C:\shared\LibreVNA\FPGA (внутри гостя это
   /home/ise/shared/LibreVNA/FPGA).
2. В ISE открыть VNA.xise — проект МАСТЕРА. Не VNA_external_lo_slave.xise.
3. Process -> Generate Programming File.
4. Забрать top.bin СРАЗУ и переименовать в top_master.bin: оба проекта пишут в
   один и тот же файл, и следующая сборка его затрёт. Именно так был потерян
   исходный мастер-битстрим.
5. Положить top_master.bin в ...\reproduce\LibreVNA\FPGA\VNA\

Битстрим невоспроизводим побайтово (place & route недетерминирован плюс
timestamp внутри), так что новый файл будет отличаться от старого при любом
исходе — это нормально.

ШАГ 3. Упаковка .vnafw
----------------------
    cd %USERPROFILE%\Documents\radar_system\device_firmware\reproduce\LibreVNA
    python AssembleFirmware.py --bitstream FPGA\VNA\top_master.bin ^
        --mcu Software\VNA_embedded\build\VNA_embedded.bin ^
        --output ..\combined_per_point_switching.vnafw

Имя намеренно новое: НЕ перезаписывайте combined.vnafw, пока не проверите всё на
железе — это ваш путь отката.

ШАГ 4. Заливка
--------------
LibreVNA-GUI: Device -> Firmware Update, скормить .vnafw целиком.

ШАГ 5. Проверка
---------------
1. Сначала СТАРЫЙ режим (stimulus_switch_positions: 1) — должен работать ровно
   как раньше. Только потом включать переключение.
2. Осциллографом на контроллере ключа: PB2 — положение ключа, PB5 — импульс на
   каждое исправление чётности (в норме молчит). На одной частоте должно быть
   четыре стадии и два периода A B A B.
3. По USB CDC контроллера, остановив развёртку: parity corrections : 0 и
   stages per point : 4.

ОТКАТ
-----
    xcopy /s /y backup_original\* ^
        "%USERPROFILE%\Documents\radar_system\device_firmware\reproduce\LibreVNA\"
и залить обратно старый combined.vnafw.