switch controller firmware + per-point switching spec
Прошивка STM32 (WeAct G431CB, тот же тулчейн, что у пульта тележки), которая стоит в разрыве триггерной петли между мастером и первым слейвом и переключает выходной ключ внутри частотной точки. Положение ключа — младший бит номера стадии, а период 2 нацело делит 4 стадии, поэтому чередование не рвётся на границе точки и контроллеру достаточно инвертировать ногу на каждый цикл триггера. Переключение по СПАДУ: спад означает «оцифровка закончилась», дальше идёт окно успокоения следующей стадии (~62 мкс при dwell_us=2), которого ключу хватает с запасом, и кольцо удерживать не надо. Один потерянный фронт инвертировал бы чётность навсегда и молча поменял антенны местами, поэтому контроллер распознаёт границу точки по длине паузы (между точками к успокоению добавляется перезагрузка регистров PLL) и принудительно ставит положение A — чётность чинится на каждой точке, а не раз на развёртку. Порог берётся как минимум паузы по скользящему окну с запасом, то есть подстраивается сам; отдельный провод-маркер начала развёртки не нужен. Задержку зеркалирования проверил по Sweep.vhd: мастер стартует оцифровку по своему TRIGGER_IN с конца кольца, то есть тоже после контроллера. Задержка общая для всех приборов и сокращается в отношении «приёмник/опорник» — фазовой ошибки не вносит, только чуть удлиняет развёртку. Собирается: RAM 13.9%, Flash 20.0%. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
; Контроллер выходного ключа для multi-device LibreVNA.
|
||||
; Плата и тулчейн те же, что у пульта тележки (WeAct STM32G431CB).
|
||||
; Телеметрия — USB CDC (Serial), как в cart_firmware.
|
||||
[env:weact_g431cb]
|
||||
platform = ststm32
|
||||
board = genericSTM32G431CB
|
||||
framework = arduino
|
||||
upload_protocol = stlink
|
||||
debug_tool = stlink
|
||||
monitor_speed = 115200
|
||||
build_flags =
|
||||
-O2
|
||||
-DUSBCON
|
||||
-DUSBD_USE_CDC
|
||||
Reference in New Issue
Block a user