Лабораторная 11.15 — Свидетель runtime bridge_rx_only по стоковому TX и счётчикам RX gpreg¶
Цель¶
Определить, может ли runtime-тракт RX внутри overlay PL курса наблюдать какие-либо отсчёты, когда в качестве источника сигнала используется стоковый тракт TX AD9361 хоста.
Работа разделяет два возможных режима отказа, выглядящих одинаково в прежних журналах:
- bitstream overlay загружен корректно,
axi_gpregотвечает, но цепочка PL RX никогда не увеличиваетrx_valid_count, что бы ни управляло TX; - цепочка PL RX увеличивает
rx_valid_count, когда линию питает заведомо исправный TX хоста, но раньше была лишена данных, потому что PL TX курса тоже был сломан.
Использование стокового TX хоста как свидетеля устраняет вторую неоднозначность.
Вспомогательные термины¶
bridge_rx_only: вариант overlaybridge_txrx_mux, в котором TX привязан к константе, а в цепочку PL BPSK подключён только тракт данных RX от AD9361, что убирает PL TX как переменную.host TX: стоковый тракт DMA TX AD9361, управляемый напрямую с хоста Linux по сетевому IIO, тот же циклический пакет BPSK, что и в Lab 11.14.счётчики RX gpreg:rx_valid_countиreceived_bitsвнутриaxi_gpregпо адресу0x79040000; ненулевое значение означает, что PL-фреймер действительно обработал символы.rx_common re-init: необязательная запись в регистр общего управления RX AD9361 для повторного запуска тракта DMA перед захватом; управляется--rx-common-reinit.
Файлы¶
| Путь | Назначение |
|---|---|
blocks/block_11_integrated_sdr_project/python/lab_11_15_runtime_bridge_rx_host_tx_probe.py |
загрузить overlay bridge_rx_only, запустить стоковый TX хоста, опрашивать счётчики RX gpreg |
blocks/block_11_integrated_sdr_project/python/runtime_rx_common.py |
общий помощник принудительной повторной инициализации регистра общего управления RX |
Запуск¶
python blocks/block_11_integrated_sdr_project/python/lab_11_15_runtime_bridge_rx_host_tx_probe.py \
--bit-bin tmp/bridge_rx_only.wordswap.bit.bin \
--run-tag live_witness
Скрипт:
- загружает и устанавливает
bridge_rx_only.wordswap.bit.binчерез Linuxfpga_manager; - опрашивает ID/сигнатуру
axi_gpreg, чтобы подтвердить, что overlay жив; - настраивает стоковый тракт RX AD9361 на 915 МГц / 3,84 МС/с;
- при наличии
--rx-common-reinitпринудительно повторно инициализируетrx_common; - запускает циклический пакет BPSK из тракта TX хоста;
- опрашивает
rx_valid_countиreceived_bitsдо--poll-limitраз; - останавливает TX, восстанавливает состояние AD9361, при необходимости перезагружает;
- сохраняет JSON-файл доказательств со всеми снимками счётчиков и таймингом.
Безопасные первые настройки (значения по умолчанию в репозитории)¶
| Параметр | По умолчанию |
|---|---|
| Центральная частота | 915 МГц |
| Частота дискретизации | 3,84 МС/с |
| RF-полоса | 2 МГц |
| Ослабление TX | -50 дБ |
| Усиление RX | 35 дБ |
| Лимит опросов | 128 |
| Задержка опроса | 20 мс |
start_offset |
62 |
Как интерпретировать результат¶
rx_valid_count после TX |
Смысл |
|---|---|
| остаётся 0 | цепочка PL RX не получает отсчётов: проблема overlay или DMAC |
| растёт | цепочка PL RX жива; прежний отказ был вызван нехваткой данных PL TX |
Если rx_valid_count остаётся нулевым даже при подтверждённом пакете TX хоста, блокировщик находится внутри тракта данных RX bridge_rx_only или интерфейса AD9361→PL, а не в логике TX модема BPSK.
Доказательства, собранные 2026-06-23¶
Прогон-свидетель bridge_rx_only показал rx_valid_count = 0 и после простой перезагрузки overlay, и после попытки повторной инициализации rx_common, тогда как TX хоста в стоковом режиме был подтверждённо передающим циклический пакет BPSK. Это доказало, что сам тракт PL RX не получает отсчётов от AD9361 под runtime-overlay: независимо от того, что порождает RF-сигнал.
Следующий шаг: выяснить, корректно ли шина отсчётов AD9361 → PL (LVDS или параллельная) заново запускается после горячей перезагрузки fpga_manager.
Чек-лист отчёта¶
- Записано значение ID
axi_gpreg(подтвердить 0x4250534B). - Записаны
tx_valid_count,rx_valid_count,received_bitsпосле каждого опроса. - Отмечено, изменила ли повторная инициализация
rx_commonтраекторию счётчиков. - Приложен хвост
dmesg. - Подтверждено, что TX хоста передавал (BER = 0 по самопроверке стокового shell).
Шаблон инженерного вывода¶
Overlay runtime bridge_rx_only загружен, ID axi_gpreg = 0x____.
После ____ циклов опроса при активном стоковом TX хоста на ____ МГц
rx_valid_count = ____ и received_bits = ____.
Повторная инициализация RX common выполнялась / не выполнялась; результат она изменила / не изменила.
Вывод: тракт PL RX получает / не получает отсчёты AD9361 под runtime-overlay, потому что ______.