Технический разбор FMC-модуля на трансивере Analog Devices AD9371 — младшего родственника платы, разобранной в обзоре FMC_ADRV9009. Платы сделаны одним разработчиком по одному шаблону: те же семь листов схемы с теми же названиями, тот же генератор тактовых частот, тот же преобразователь питания, те же балуныи почти те же позиционные обозначения. Отличается микросхема — и вместе с ней меняется больше, чем кажется на первый взгляд.

Эта статья написана как продолжение того обзора. Там, где решения совпадают дословно, я не пересказываю их второй раз, а даю ссылку на соответствующую главу и разбираю только разницу. Читать можно и отдельно, но смысла будет больше, если тот обзор уже прочитан.

Если читать некогда

  1. Схемотехнически это та же плата с другой микросхемой. Балуны TCM1-83X-1+, генератор AD9528, VCXO 122.88 МГц, преобразователь ADP5054, четыре рельса с теми же делителями — всё повторено один в один.

  2. AD9371 слабее ADRV9009 по всем цифровым параметрам. Диапазон от 300 МГц вместо 75 МГц, полоса приёмника 100 МГц вместо 200, JESD204B до 6.144 Гбит/с вместо 12.288. Это принципиальные ограничения микросхемы, а не платы.

  3. Зато у AD9371 есть то, чего нет у ADRV9009: приёмник-сниффер. Отдельный тракт с коэффициентом шума 5 дБ и диапазоном регулировки 52 дБ. На этой плате он заземлён и недоступен — самая обидная потеря, см. главу 4.

  4. Входное сопротивление приёмника 200 Ом, а балун стоит 1:1. Это даёт около 1.9 дБ неустранимых потерь на рассогласовании против 0.5 дБ у ADRV9009. Плюс на дифференциальной стороне добавлены ещё два конденсатора по 18 пФ, которые поднимают нижнюю границу полосы.

  5. Два отдельных входа внешнего гетеродина — для приёмника и для передатчика, каждый со своим балуном. У ADRV9009 такой вход один.

  6. Наблюдательные входы ORX работают из коробки. Их балуны установлены, а не помечены как опциональные, как это сделано на плате ADRV9009.

  7. Модуль отдаёт на носитель две опорные частоты для GT-трансиверов — на GBTCLK0_M2C и GBTCLK1_M2C, и комплектный проект использует обе. Требование к носителю получается жёстче, см. главу 9.

  8. Питание только от FMC. Колодки под внешние 12 В, которая есть на плате ADRV9009, здесь нет.

  9. Комплектного ПО больше, и оно лучше. Два готовых профиля (штатный 122.88 МСПС и «на максимум» с 6.144 Гбит/с на линию), два носителя (ZC706 и RK 7100), API Mykonos 1.5.1.3565. DMA по-прежнему нет: данные видно только в ILA.

Оглавление

  1. Что это за модуль. Позиционирование, родство с платой ADRV9009 и с оценочными платами ADI

  2. AD9371 против ADRV9009. Характеристики двух микросхем рядом и что из этого следует

  3. Архитектура платы. Блок-схема, состав компонентов, карта листов, отличия от платы-сестры

  4. Приёмные тракты RX, ORX и сниффер. Согласование на 200 Ом, лишние конденсаторы, заземлённый SnRx

  5. Передающий тракт и внешний гетеродин. Bias-tee, фильтр, два входа внешнего LO и требование ×2

  6. Тактирование. AD9528 с пятью выходами, вторая опора для FPGA, SYSREF

  7. Цифровой интерфейс. Три линка JESD204B, расчёт скоростей, SPI, неразведённые GPIO

  8. Питание. ADP5054, те же рельсы, больше доменов и ферритов, бюджет мощности

  9. FMC-интерфейс. Распиновка, две опоры GT, VADJ, EEPROM

  10. Носители и комплектное ПО. ZC706 и RK 7100, Mykonos, два профиля, что умеет проект FPGA

  11. Запуск и подводные камни. Чек-лист и грабли, специфичные именно для этой платы

  12. Итоги и выбор. Сводное сравнение и ответ на вопрос, какую из двух плат брать

На чём основан обзор

  • СхемаFMC_AD9371_V1.pdf, 7 листов, Altium, дата в штампе 07.11.2024.

  • Проекты для ZC706ZC706例程: два варианта, 采样率122.88M (штатный профиль) и 跑满AD9371采样率 (максимальная частота дискретизации), каждый из FPGA-проекта Vivado и bare-metal проекта Vitis.

  • Проект для RIGUKE 7100RK_7100例程, тот же набор.

  • API — Mykonos 1.5.1.3565 в составе bare-metal проекта, драйверы no-OS от ADI.

Параметры микросхем сверены с документацией Analog Devices:

Распиновка FMC перекрёстно проверена по двум независимым источникам: по схеме модуля и по файлу констрейнтов комплектного проекта Vivado. Где они расходятся, это отмечено в тексте.

Оговорки

Схема приложена продавцом и описывает ревизию V1. Ваша плата может отличаться номиналами и наличием отдельных компонентов — перед подачей питания сверяйтесь с реальной платой. Отдельно это касается заземления сниффера и установки балунов ORX: именно эти места на платах-клонах меняются от ревизии к ревизии.


Глава 1. Что это за модуль

Одним предложением

FMC_AD9371 — это плата расширения стандарта FMC (VITA 57.1, разъём HPC), на которой стоит широкополосный трансивер Analog Devices AD9371 со всей необходимой обвязкой: генератором тактовых частот, преобразователем питания, балунами и SMA-разъёмами. Своего вычислителя на плате нет: ни FPGA, ни процессора, ни USB. Без платы-носителя и написанного вами кода она не делает ничего.

Да, ровно то же самое можно сказать что и про FMC_ADRV9009. Платы очень похожи.

Приведу несколько фото:

Инженерная версия AD80414BBCZ:

Родство с платой ADRV9009

Схемы двух модулей совпадают структурно и в большой части — буквально:

Признак

FMC_AD9371

FMC_ADRV9009

Число листов схемы

7

7

Названия листов

RF_RX_ORX_INPUTS, RF_TX_OUT_EXT_LO_IN, CLOCK_GENERATION, JESD_INTERFACE_GPIO, POWER_DUT_CONNECTIONS, POWER_SUPPLY, FMC_FPGA_CONNECTIONS

те же

САПР

Altium Designer

Altium Designer

Дата в штампе

07.11.2024

07.09.2025

Генератор тактовых

AD9528 + VCXO ABLJO-V-122.880MHZ-T2

то же

Преобразователь

ADP5054ACPZ-R7, четыре канала

то же

Балуны ВЧ

6 × TCM1-83X-1+

6 × TCM1-83X-1+

Балун опоры

MABA-007159-000000

то же

Трансляторы уровней

ADG3304, ADG3301, NC7WV125, NC7WZ16

те же

EEPROM

M24C02-RMN6P

M24C02-RMN6P

Совпадают даже позиционные обозначения: конденсатор развязки на входе RX1 в обеих схемах называется C102 и в обеих имеет номинал 18 пФ, дроссели bias-tee в передатчике — L7L10 по 43 нГн, петлевой фильтр PLL1 — C41 180 пФ и R37 10.2 кОм. Это один и тот же проект, в который подставили другую микросхему.

Практическое следствие: всё, что написано в обзоре платы ADRV9009 про тактирование, питание и организацию FMC, применимо здесь почти без правок. Поэтому соответствующие главы этого обзора короткие и сосредоточены на разнице.

Родство с платами ADI

AD9371 у Analog Devices живёт на оценочных платах семейства ADRV9371-*/PCBZ. Как и в случае ADRV9009, вариантов два: узкополосный, оптимизированный под конкретный диапазон, и широкополосный с суффиксом W, где входы и выходы согласованы «в среднем по всему диапазону». Этот модуль — клон именно широкополосного варианта, и по нему сразу видно почему: балун TCM1-83X-1+ на 10–8000 МГц одним компонентом закрывает весь диапазон перестройки, а платить за это приходится качеством согласования на любой конкретной частоте.

Важное отличие от ситуации с ADRV9009: у AD9371 входное сопротивление приёмника 200 Ом дифференциально, а балун стоит 1:1. То есть широкополосность здесь оплачена дороже, чем на плате-сестре, где вход был 100-омным. Подробный расчёт — в главе 4.

Заодно из родства с платами ADI следует главное практическое удобство: вся инфраструктура ADI применима. HDL-проекты ad9371_* из репозитория analogdevicesinc/hdl, драйверы Linux в подсистеме IIO, утилита Transceiver Evaluation Software для Windows, генератор профилей — всё это рассчитано на ту же микросхему и то же окружение (AD9528 + 122.88 МГц), которое стоит на модуле.

Что физически есть на плате

Внешне набор портов богаче, чем у платы ADRV9009:

Порт

Обозначение

Назначение

SMA

JP1

Вход внешней опорной частоты

SMA

JP2, JP3

Входы приёмников RX1, RX2

SMA

JP4, JP5

Входы наблюдательных приёмников ORX1, ORX2

SMA

JP6, JP7

Выходы передатчиков TX1, TX2

Площадка GND–SIG–GND

RF1

Внешний гетеродин приёмного тракта

Площадка GND–SIG–GND

RF2

Внешний гетеродин передающего тракта

Разъём FMC HPC

U1

Всё остальное: данные, тактирование, управление, питание

Семь SMA плюс две площадки под коаксиал. У платы ADRV9009 на этом месте семь SMA, одна площадка под внешний гетеродин и колодка JP8 для внешних 12 В. Здесь колодки нет: питание только через FMC.

И одна потеря, которую по внешнему виду не заметишь: три входа приёмника-сниффера у AD9371 на этой плате не выведены никуда — они посажены на землю прямо у микросхемы. Отдельный приёмный тракт с коэффициентом шума 5 дБ, самое интересное, что есть в AD9371 и чего нет в ADRV9009, на этой плате недоступно.

Кому эта плата нужна

Сценарии те же, что у платы-родственницы, с поправкой на характеристики:

Разработка цифровой части и отладка алгоритмов. Основной сценарий. Нужен источник реальных отсчётов с эфира и возможность что-то излучить, а не образцовые ВЧ-характеристики. Здесь плата хороша: полосы 100 МГц на приём и 250 МГц синтеза передатчика хватает почти для любой учебной и исследовательской задачи.

Изучение JESD204B. Пожалуй, лучший вариант из двух. AD9371 требует трёх линков (приём, наблюдение, передача) с разными параметрами F, и комплектный проект их все поднимает. Разобравшись здесь, вы разберётесь где угодно.

Приём в диапазоне от 300 МГц. Ниже 300 МГц микросхема просто не настраивается — это не ограничение платы, а граница диапазона AD9371. Если вам нужны УКВ-диапазоны, авиационная связь или что-то ниже, эту плату можно не рассматривать вообще: перепайка конденсаторов, которая на плате ADRV9009 открывала низ, здесь не поможет.

Экономия. AD9371 старше и, как правило, ощутимо дешевле. Если задача не требует полосы больше 100 МГц и частот ниже 300 МГц, разница в цене может оказаться решающей.

Чего от платы ждать не надо

Готового SDR. Как и у платы-родственницы: нужен носитель, нужен FPGA-проект, нужен драйвер, нужен ваш код.

Мощности. Максимум на выходе передатчика — 7 дБм при нулевом ослаблении, и это на входе балуна, до потерь в цепях платы. Для любой реальной передачи нужен внешний усилитель.

Чувствительности без внешнего МШУ. Коэффициент шума приёмника 12–18 дБ по даташиту, плюс потери во входной цепи платы, которые здесь больше, чем у ADRV9009. Для приёма слабых сигналов малошумящий усилитель обязателен.

Сниффера. Он есть в микросхеме, но не на этой плате.


Глава 2. AD9371 против ADRV9009

Обе платы схемотехнически почти одинаковы, поэтому выбор между ними — это выбор микросхемы. Здесь параметры двух трансиверов рядом, а дальше разбор того, какие различия действительно меняют дело.

Значения AD9371 — из даташита Rev. B. Значения ADRV9009 — из главы 2 обзора той платы.

Главная таблица

Параметр

AD9371

ADRV9009

Диапазон перестройки

300 … 6000 МГц

75 … 6000 МГц

Передатчиков

2

2

Приёмников

2

2

Наблюдательный приёмник

2 входа

2 входа

Приёмник-сниффер

3 входа, отдельный тракт

нет

Полоса приёмника

8 … 100 МГц

до 200 МГц

Полоса синтеза передатчика

до 250 МГц

до 450 МГц

Полоса большого сигнала передатчика

100 МГц

200 МГц

Полоса наблюдательного приёмника

250 МГц

до 450 МГц

Полоса сниффера

20 МГц (300 … 4000 МГц)

JESD204B, скорость на линию

614.4 … 6144 Мбит/с

до 12288 Мбит/с

Линий JESD204B

4 на передачу + 4 на приём и наблюдение

столько же

Шаг перестройки гетеродина

2.3 Гц

доли герца

Вход внешнего гетеродина

два: отдельно RX и TX, 600 … 8000 МГц, вход на 2× частоты

один

Тактовая частота устройства

10 … 320 МГц

10 … 500 МГц

Вспомогательные преобразователи

АЦП 12 бит, ЦАП 10 бит

АЦП 12 бит

Корпус

BGA 196 выводов, 12 × 12 мм

BGA 196 выводов, 14 × 14 мм

Максимальная температура кристалла

110 °C

110 °C

Потребление

2.70 Вт (приём) … 4.86 Вт (FDD со всем включённым)

больше, см. соответствующую главу в предыдущем обзоре

Три строки в этой таблице определяют выбор: диапазон снизу, полоса и скорость JESD204B. Всё остальное — детали.

Приёмный тракт

Значения на выводах микросхемы, без вычета потерь в цепях платы, при максимальном усилении.

Параметр

700 МГц

2600 МГц

3500 МГц

5500 МГц

Коэффициент шума

12 дБ

13.5 дБ

14 дБ

18 дБ

IIP3

22 дБм

22 дБм

20 дБм

20 дБм

IIP2

65 дБм

65 дБм

65 дБм

57 дБм

Утечка гетеродина на вход

−65 дБм

−65 дБм

−62 дБм

−62 дБм

Развязка RX1–RX2

60 дБ

60 дБ

60 дБ

60 дБ

Развязка TX→RX (свой канал)

68 дБ

68 дБ

62 дБ

60 дБ

Плюс параметры, не зависящие от частоты:

  • диапазон регулировки усиления 30 дБ с шагом 0.5 дБ;

  • подавление "зеркала" 75 дБ при активной QEC;

  • подавление зоны наложения 75 дБ за счёт цифровых фильтров;

  • неравномерность в полосе ±0.5 дБ на 100 МГц и ±0.2 дБ на любом участке 20 МГц после компенсации программируемым FIR;

  • максимальный полезный уровень на входе −14 дБм для непрерывного сигнала при нулевом ослаблении;

  • внутриполосные паразитные составляющие −95 дБм, не более одной на каждые 10 МГц;

  • входное сопротивление 200 Ом дифференциально.

Последняя строка — самое важное отличие от ADRV9009, где вход 100-омный. Балун на плате в обоих случаях один и тот же, 1:1, и его вторичная обмотка видит 50 Ом. Значит на AD9371 рассогласование получается вдвое хуже: коэффициент отражения 0.6 против 0.33, КСВ 4 против 2, неустранимые потери 1.9 дБ против 0.5 дБ. Прибавьте к коэффициенту шума 12–18 дБ ещё почти два децибела, и станет понятно, что без внешнего МШУ эта плата слышит хуже. Подробный разбор входной цепи — в главе 4.

По коэффициенту шума разница между микросхемами невелика: 12 дБ у AD9371 против 11.5–12 дБ у ADRV9009 на низких частотах. Расходятся они на верхнем краю: 18 дБ против 15.2 дБ на 5.5 ГГц. То есть на 5–6 ГГц AD9371 заметно хуже слышит.

Передающий тракт

Параметр

700 МГц

2600 МГц

3500 МГц

5500 МГц

Максимальная выходная мощность

7 дБм

7 дБм

6 дБм

4 дБм

OIP3

27 дБм

27 дБм

25 дБм

25 дБм

ACLR, четыре несущих UMTS

−64 дБ

−64 дБ

−63 дБ

−61 дБ

Подавление зеркала (QEC активна)

65 дБ

65 дБ

65 дБ

50 дБ

Утечка несущей после калибровки

−81 дБFS

−81 дБFS

−81 дБFS

−75 дБFS

EVM на LTE 20 МГц

−45 дБ

−39 дБ

−38.5 дБ

−37.5 дБ

Развязка TX1–TX2

70 дБ

65 дБ

65 дБ

65 дБ

Внутриполосный шум передатчика −155 дБFS/Гц. Выходное сопротивление 50 Ом дифференциально — и вот здесь, в отличие от приёмника, балун 1:1 стоит совершенно правильно: 50 Ом с обеих сторон, рассогласования нет.

Регулировка мощности: диапазон 0…42 дБ с шагом 0.05 дБ, но с оговоркой, которую стоит прочитать дважды. В даташите прямо сказано: за пределами первых 20 дБ ослабления растёт время калибровки и деградируют характеристики QEC и подавления утечки гетеродина. То есть паспортные −81 дБFS утечки и 65 дБ подавления зеркала — это про первые 20 дБ регулировки, дальше будет хуже. У ADRV9009 та же логика, только диапазон в обзоре указан как 0…32 дБ.

Практический вывод для передатчика тот же, что и для платы-сестры: 7 дБм — это 5 мВт, ни одна реальная задача передачи так не решается, нужен внешний усилитель.

Наблюдательный приёмник

Параметр

Значение

Диапазон центральных частот

300 … 6000 МГц

Полоса

250 МГц

Диапазон регулировки усиления

0 … 18 дБ, шаг 1 дБ

Максимальный полезный уровень

−13 дБм

Отношение сигнал/шум

60 дБ (59 дБ на 5.5 ГГц)

IIP3

22 дБм до 2.6 ГГц, 18 дБм выше

Подавление зеркала

65 дБ после тональной калибровки

Подавление зоны наложения

60 дБ

Развязка TX→ORX

70 дБ на всех частотах

Входное сопротивление

200 Ом дифференциально

Диапазон регулировки всего 18 дБ против 30 дБ у ADRV9009 — наблюдательный приёмник AD9371 рассчитан ровно на свою задачу: смотреть на выход усилителя мощности через направленный ответвитель, где уровень известен заранее.

Приёмник-сниффер: то, чего нет у ADRV9009

Это отдельный, четвёртый приёмный тракт, и по параметрам он совсем не похож на остальные:

Параметр

Значение

Диапазон центральных частот

300 … 4000 МГц

Полоса

20 МГц

Диапазон регулировки усиления

0 … 52 дБ, шаг 1 дБ

Коэффициент шума

5 дБ (700 и 2600 МГц), 7 дБ (3500 МГц)

Максимальный полезный уровень

−26 дБм

IIP3

1 дБм

IIP2

45 дБм

Подавление зеркала

75 дБ после тональной калибровки

Входное сопротивление

400 Ом дифференциально

Число входов

3, мультиплексируются

Коэффициент шума 5 дБ — это на семь децибел лучше основного приёмника, то есть по чувствительности сниффер превосходит его больше чем в пять раз по мощности. Ценой узкой полосы (20 МГц), низкой линейности (IIP3 всего 1 дБм) и потолка по частоте в 4 ГГц. Задумано это для мониторинга занятости диапазонов, но по сути в микросхеме сидит готовый чувствительный узкополосный приёмник с тремя переключаемыми входами и регулировкой на 52 дБ.

Для радиолюбительских и исследовательских задач это самая интересная часть AD9371. И именно она на этой плате недоступна: все три дифференциальных входа заземлены. Разбор — в главе 4.

Гетеродин и фазовый шум

Отстройка

700 МГц

2600 МГц

3500 МГц

5500 МГц

10 кГц

−104 дБн/Гц

−93 дБн/Гц

−91 дБн/Гц

−98 дБн/Гц

100 кГц

−107 дБн/Гц

−97 дБн/Гц

−97 дБн/Гц

−100 дБн/Гц

1 МГц

−133 дБн/Гц

−123 дБн/Гц

−123 дБн/Гц

−110 дБн/Гц

Интегральный шум, 1 кГц … 100 МГц

0.20 °скз

0.49 °скз

0.55 °скз

0.75 °скз

Чистота спектра гетеродина −80 дБн без учёта спуров целочисленных границ. Про эти спуры стоит помнить отдельно: у дробных синтезаторов вблизи частот, кратных частоте фазового детектора, характеристики локально проваливаются, и в даташите они из общей цифры честно исключены.

Значения фазового шума полезно сравнить с тем, что даёт тактовая подсистема платы. VCXO ABLJO-V-122.880MHZ-T2 имеет интегральный джиттер 75 фс, AD9528 добавляет до 160 фс на выходе — и это заметно чище, чем внутренний синтезатор трансивера на высоких частотах. То есть тактовая часть платы не является узким местом, ограничение сидит в самой микросхеме.

Внешний гетеродин: важная деталь

Оба входа внешнего гетеродина (RX_EXTLO и TX_EXTLO) принимают 600…8000 МГц, и частота должна быть удвоенной относительно нужного гетеродина. Внутри стоит делитель на два, так устроены все трансиверы этого семейства.

Отсюда два следствия. Первое: внешним гетеродином можно закрыть диапазон настройки 300…4000 МГц, выше упираемся в предел 8 ГГц по входу. Второе: балун HHM1595A1, который стоит на плате, работает от 3 до 8 ГГц, то есть реально доступный диапазон настройки через внешний гетеродин — примерно 1.5…4 ГГц. Требуемый уровень на входе 0…6 дБм, типично 3 дБм.

Любопытно, что на плате ADRV9009 тот же балун я критиковал за узость. Здесь он подходит лучше: у AD9371 верхняя граница по внешнему гетеродину и так 8 ГГц, ровно как у балуна.

Что из различий важно на практике

Диапазон снизу — важно и неисправимо. 300 МГц против 75 МГц. Если задача лежит ниже, вопрос закрыт: никакая перепайка не поможет, микросхема просто не настраивается.

Полоса — важно, если вы знаете зачем. 100 МГц против 200 МГц на приём. Для отладки алгоритмов, приёма связных сигналов и учебных задач 100 МГц более чем достаточно; 200 МГц нужны для широкополосных измерений и многоканальных систем.

Скорость JESD204B — важно для проекта FPGA. 6.144 Гбит/с против 12.288. Меньшая скорость проще в разводке и мягче к GT-трансиверам носителя, зато ограничивает суммарный поток данных. При максимальном профиле AD9371 упирается в потолок обеих линий, см. главу 7.

Сниффер — важно, но на этой плате не реализовано. Обидно, но факт.

Разница по коэффициенту шума и мощности — почти не важно. Один-два децибела на фоне потерь входной цепи платы и обязательного внешнего МШУ ничего не решают.


Глава 3. Архитектура платы

Что на плате есть

Функционально модуль состоит из пяти блоков: ВЧ-фронтенд, трансивер, тактовая подсистема, питание и интерфейс FMC. Ровно так же, как плата ADRV9009 — вплоть до того, что листы схемы называются одинаково.

Состав компонентов

Обозначение

Компонент

Функция

U1

Разъём FMC HPC, 400 выводов

Связь с носителем

U2

AD9371BBCZ, BGA 196, 12 × 12 мм

Трансивер

AD9528, LFCSP 72

Генератор тактовых частот с двумя PLL

Y1

ABLJO-V-122.880MHZ-T2

VCXO 122.88 МГц, джиттер 75 фс

T1

MABA-007159-000000

Балун входа опорной частоты, 4.5–3000 МГц

T2, T3

TCM1-83X-1+

Балуны входов RX1, RX2

T4, T5

TCM1-83X-1+

Балуны входов ORX1, ORX2 — установлены

T6, T8

TCM1-83X-1+

Балуны выходов TX1, TX2

T7, T9

HHM1595A1

Балуны входов внешнего гетеродина RX и TX, 3–8 ГГц

IC1

ADP5054ACPZ-R7

Четырёхканальный понижающий преобразователь

Q1

IRF7313PBF

Внешние транзисторы для каналов 1 и 2 преобразователя

IC2

NC7WV125K8X

Буфер индикации состояния AD9528

IC3

NC7WZ16P6X

Мультиплексор линии SPI_DOUT

IC4

ADG3301BKSZ

Одноканальный транслятор уровней для сброса AD9528

IC5

ADG3304SRU-EP-RL7

Четырёхканальный транслятор уровней для SPI

IC6

M24C02-RMN6P

EEPROM 2 Кбит для IPMI-записи FMC

L5, L6

Ферриты 42 Ом и 30 Ом

Развязка рельсов 3V3_CLK и 3V3_VCO

L7L10

43 нГн

Дроссели bias-tee выходов передатчиков

L11L23

Ферриты 30 Ом (9 шт.) и 47 Ом (4 шт.)

Развязка питающих доменов трансивера

F1

Предохранитель 2 А

Защита по входу 12 В

D1

SS34

Защита от обратной полярности

JP1JP7

SMA

Опора, RX1, RX2, ORX1, ORX2, TX1, TX2

RF1, RF2

Площадка GND–SIG–GND

Внешний гетеродин RX и TX

Того, что было на плате ADRV9009, здесь недостаёт в двух местах: нет SPI-флеш S25FL208K и нет колодки внешнего питания JP8. Зато добавились второй балун внешнего гетеродина и тринадцать ферритов на питающих доменах трансивера.

Карта листов схемы

Лист

Название

Содержание

Где разобрано

1

RF_RX_ORX_INPUTS

Входы RX1, RX2, ORX1, ORX2: балуны и согласование

Глава 4

2

RF_TX_OUT_EXT_LO_IN

ВЧ-выводы трансивера, выходы TX, два входа внешнего гетеродина

Глава 5

3

CLOCK_GENERATION

AD9528, VCXO, вход опоры, SYSREF, трансляторы уровней, индикация

Глава 6

4

JESD_INTERFACE_GPIO

Линии JESD204B, SYNC, SPI, тактовый вход, GPIO, вспомогательный АЦП

Глава 7

5

POWER_DUT_CONNECTIONS

Разводка питающих выводов трансивера, ферриты, развязка

Глава 8

6

POWER_SUPPLY

ADP5054, делители обратной связи, фильтрация, вход 12 В

Глава 8

7

FMC_FPGA_CONNECTIONS

Разъём FMC, EEPROM, развязка линий JESD204B

Глава 9

Как ходит сигнал

Приём. SMA JP2C102 18 пФ → балун T2 превращает несимметричный сигнал в симметричный → C101 и C105 по 18 пФ в каждом плече → дифференциальная пара RX1_P/RX1_N → выводы A9/A10 микросхемы. Внутри: смеситель с гетеродином от RX PLL, фильтр базовой полосы, Σ-Δ АЦП, цифровые фильтры с программируемым FIR, коррекция квадратуры и постоянной составляющей, упаковка в кадры JESD204B → SERDOUT0/SERDOUT1 → две линии разъёма FMC → GT-приёмники FPGA.

Наблюдение. То же самое, но от JP4/JP5 через T4/T5 и перемычки 0 Ом на входы ORX1/ORX2 (A12/A13 и A2/A3), а на выходе — свой фреймер, работающий на линиях SERDOUT2/SERDOUT3.

Передача. GT-передатчики FPGA → четыре линии SERDIN0SERDIN3 → деформер, интерполяция, коррекция квадратуры, ЦАП, смеситель, аттенюатор 0…42 дБ → дифференциальная пара TX1_P/TX1_N (выводы H14/J14) → дроссели 43 нГн задают постоянную составляющую от рельса 1.8 В → C126 18 пФ → балун T6 → фильтр из четырёх конденсаторов → SMA JP6.

Тактирование. VCXO 122.88 МГц → AD9528 → пять выходов: тактовая частота и SYSREF на трансивер, опора GT, вспомогательная опора и SYSREF на FPGA.

Чем эта плата отличается от FMC_ADRV9009

Сводка отличий, каждое разобрано в своей главе:

Что

FMC_AD9371

FMC_ADRV9009

Глава

Разделительные конденсаторы на дифференциальной стороне RX

C101, C105, C108, C112 по 18 пФ

перемычки 0 Ом

Глава 4

Входы наблюдательного приёмника

балуны установлены

балуны помечены /NC

Глава 4

Приёмник-сниффер

три входа заземлены

в микросхеме отсутствует

Глава 4

Внешний гетеродин

два входа со своими балунами

один вход

Глава 5

Задействованных выходов AD9528

пять

четыре

Глава 6

Опор для GT-трансиверов на FMC

две (GBTCLK0 и GBTCLK1)

одна

Глава 6, 9

Пар SYNC на разъёме

три

две

7

SPI-флеш

нет

S25FL208K

7

Развязка питающих доменов трансивера

13 ферритов

резисторы 0 Ом

8

Внешнее питание 12 В

нет

колодка JP8

8

Комплектных носителей

два (ZC706 и RK 7100)

один (RK 7100)

10

Комплектных профилей

два (122.88 и максимальный)

один

10

Совпадает всё остальное: балуны, номиналы входных цепей, дроссели bias-tee, фильтр передатчика, VCXO, схема входа опорной частоты, трансляторы уровней, преобразователь питания с теми же делителями, EEPROM, схема защиты по входу 12 В.

Глава 4. Приёмные тракты: RX, ORX и сниффер

Лист схемы: RF_RX_ORX_INPUTS, плюс ВЧ-выводы трансивера на листе 2.

Цепь приёмника

Элемент

RX1

RX2

Что делает

Разъём SMA

JP2

JP3

Вход сигнала

Разделительный конденсатор

C102 18 пФ

C109 18 пФ

Отсекает постоянную составляющую со стороны кабеля

Балун

T2 TCM1-83X-1+

T3 TCM1-83X-1+

Несимметричный вход → симметричный выход, 1:1

Ёмкость на «холодном» конце первичной обмотки

C106 27 пФ ∥ C107 10 пФ

C113 27 пФ ∥ C114 10 пФ

Заземление второго вывода первички по переменному току

Конденсатор поперёк вторичной обмотки

C104, не установлен

C111, не установлен

Посадочное место под подстройку согласования

Разделительные конденсаторы в плечах

C101, C105 по 18 пФ

C108, C112 по 18 пФ

Развязка по постоянному току на дифференциальной стороне

Конденсатор поперёк дифференциальной пары

C103, не установлен

C110, не установлен

Второе посадочное место под подстройку

Топология первичной стороны та же, что на плате ADRV9009: сигнал приходит на вывод 3 (PRIMARY_DOT), вывод 2 (PRIMARY) сажается на землю через C106C107 — суммарно 37 пФ, выводы 1 и 6 заземлены.

А вот дальше — единственное существенное отличие входной цепи. Там, где на плате ADRV9009 стояли перемычки 0 Ом (R62, R97), здесь установлены конденсаторы по 18 пФ в каждом плече дифференциальной пары.

Похоже, это как раз страховка от того свойства балуна, о котором легко забыть: TCM1-83X-1+ — трансформатор на линиях передачи, и развязки по постоянному току он не даёт. У приёмных входов AD9371 есть собственное смещение, и если постоянный путь от них до земли останется открытым, смещение уйдёт. На плате ADRV9009 эту роль выполнял единственный конденсатор C102 со стороны кабеля; здесь добавили явную развязку прямо у микросхемы. Решение аккуратнее, но не бесплатное — оно съедает часть полосы снизу.

Согласование: почему здесь хуже, чем у ADRV9009

Входное сопротивление приёмника AD9371 — 200 Ом дифференциально. Балун стоит с коэффициентом трансформации 1:1, то есть его вторичная обмотка отдаёт те же 50 Ом, что пришли с кабеля. Несогласованность 50 против 200 Ом даёт коэффициент отражения 0.6, КСВ 4 и неустранимые потери:

Потери = −10·lg(1 − 0.6²) = 1.94 дБ

Для сравнения: у ADRV9009 вход 100-омный, там тот же балун даёт коэффициент отражения 0.33, КСВ 2 и потери 0.5 дБ. Разница почти полтора децибела, и деться от неё некуда — это плата за широкополосность в сочетании с балуном 1:1.

Теперь посчитаем, что добавляют конденсаторы. В сигнальном контуре последовательно оказываются три ёмкости: C102 18 пФ, C106C107 37 пФ и пара C101/C105, которая для дифференциального сигнала эквивалентна одной ёмкости 9 пФ. Суммарно:

1/C = 1/18 + 1/37 + 1/9  →  C ≈ 5.2 пФ

При суммарном активном сопротивлении контура 250 Ом (50 Ом источника плюс 200 Ом нагрузки) получаем:

Частота

XC при 5.2 пФ

Потери на ёмкостях

Всего с рассогласованием

300 МГц

103 Ом

0.68 дБ

2.6 дБ

400 МГц

77 Ом

0.40 дБ

2.3 дБ

500 МГц

62 Ом

0.26 дБ

2.2 дБ

700 МГц

44 Ом

0.13 дБ

2.1 дБ

1 ГГц

31 Ом

0.07 дБ

2.0 дБ

2 ГГц и выше

≤ 15 Ом

≤ 0.02 дБ

1.9 дБ

И вот здесь неожиданный вывод: выбор номиналов оказался разумным. Нижняя граница диапазона AD9371 — 300 МГц, и на этой частоте конденсаторы отнимают всего 0.7 дБ. Ниже они бы душили сигнал, но ниже микросхема и не работает. На плате ADRV9009 та же цепь была проблемой именно потому, что микросхема умеет настраиваться на 75 МГц, а цепь — нет. Здесь такого расхождения нет.

Добавьте вносимые потери самого балуна (0.95–1.65 дБ по даташиту Mini-Circuits) — и получите полную картину входной цепи: около 4 дБ на 300 МГц и около 3 дБ в середине диапазона. При коэффициенте шума приёмника 12 дБ эффективный шум системы получается порядка 15–16 дБ.

Оговорка та же, что и в обзоре платы-сестры: расчёт упрощённый. Балун считается идеальным трансформатором, входное сопротивление — чисто активным (в реальности комплексное и частотно-зависимое), паразитные параметры монтажа и собственные резонансы конденсаторов не учтены. Порядок величин расчёт передаёт верно, точные цифры получаются только измерением S11 — и это, кстати, ровно тот случай, где измерение стоит своих усилий.

Наблюдательные входы ORX: здесь всё лучше

Элемент

ORX1

ORX2

Разъём SMA

JP4

JP5

Разделительный конденсатор

C115 18 пФ

C120 18 пФ

Балун

T4 TCM1-83X-1+

T5 TCM1-83X-1+

Ёмкость на «холодном» конце

C118 27 пФ ∥ C119 10 пФ

C123 27 пФ ∥ C124 10 пФ

Перемычки в плечах

R81, R82 — 0 Ом

R83, R84 — 0 Ом

Посадочные места без установки

C116, C117

C121, C122

Два отличия от приёмного тракта, оба в лучшую сторону.

Балуны установлены. В схеме они обозначены просто TCM1-83X-1+, без пометки /NC. На плате ADRV9009 позиции T4/T5 были помечены как опциональные, и наблюдательные входы там могли физически не работать — это была одна из главных ловушек при запуске. Здесь такой проблемы нет: тракт замкнут по документации. Осмотреть плату всё равно стоит, но ожидание другое.

В плечах перемычки, а не конденсаторы. Значит суммарная последовательная ёмкость складывается только из 18 пФ и 37 пФ, то есть 12.1 пФ вместо 5.2 пФ. На 300 МГц это 0.13 дБ вместо 0.68 дБ — наблюдательный тракт снизу ровнее основного.

Входное сопротивление ORX тоже 200 Ом, так что 1.9 дБ рассогласования никуда не деваются и здесь.

Приёмник-сниффер: заземлён

Вот главная потеря этой платы.

У AD9371 есть четвёртый приёмный тракт — сниффер, с тремя мультиплексируемыми дифференциальными входами на выводах SNRXA± (E4/D4), SNRXB± (E3/D3) и SNRXC± (E2/D2). Его параметры разобраны в главе 2: коэффициент шума 5 дБ, диапазон регулировки усиления 52 дБ, подавление зеркала 75 дБ, полоса 20 МГц, диапазон настройки 300–4000 МГц.

На листе 2 видно, что все шесть выводов соединены вместе и посажены на AGND. Ни балунов, ни разъёмов, ни даже посадочных мест — сниффер на этой плате не выведен вообще.

С точки зрения оценочной платы для базовой станции это логично: сниффер там нужен для мониторинга занятости диапазонов, а на оценочной плате его подключают под конкретную задачу. Но по факту самый чувствительный приёмник микросхемы недоступен, и это ощутимо: 5 дБ шума против 12 дБ у основного тракта — разница, за которую в других задачах ставят внешний МШУ.

Можно ли что-то сделать? Практически нет. Выводы находятся под корпусом BGA с шагом 0.8 мм и разведены к земляному полигону — вытащить их наружу без перепроектирования платы невозможно. Единственное, что здесь остаётся: помнить, что в комплектном ПО сниффер сконфигурирован (в профиле myk.c стоит MYK_ORX1_ORX2 | MYK_SNRXA_B_C, и профиль сниффера на 20 МГц с частотой IQ 30.72 МСПС создаётся полностью), и не удивляться, что при переключении на него в захваченных данных окажется шум.

Посадочные места под подстройку

Как и на плате-сестре, разработчик оставил задел. У каждого приёмного входа есть по два неустановленных конденсатора: один поперёк вторичной обмотки балуна (C104, C111, C116, C121), второй поперёк дифференциальной пары после развязки (C103, C110, C117, C122).

Если вы хотите подстроить согласование под конкретный диапазон, места готовы. С 200-омным входом и 50-омным балуном простор для улучшения тут больше, чем на плате ADRV9009: полтора-два децибела реально отыграть в узкой полосе, поставив в эти позиции подходящие ёмкости. Но без анализатора цепей это гадание, а с 200-омной нагрузкой ещё и не самое простое: нужно либо согласующее звено, либо замена балуна на трансформатор с коэффициентом 1:4.

Замена балуна — единственный радикальный путь. Если вам нужен один узкий диапазон и максимум чувствительности, TCM1-83X-1+ меняется на трансформатор 50 → 200 Ом (у Mini-Circuits это, например, семейство TC4-1W и родственные), и полтора-два децибела возвращаются. Ценой того самого «широкополосно и в среднем», за которое эта плата и куплена.

Мелочи

На листе 1 четыре блока подписаны RX1 INPUT, RX2 INPUT, ORX1 INPUT и снова ORX1 INPUT. Последний, где стоят JP5, T5 и цепи ORX2_P/ORX2_N, — это, разумеется, ORX2. Та же опечатка, что и на плате ADRV9009: лист скопировали вместе с ошибкой. Безвредно, но показательно — подписям в этой документации доверять меньше, чем цепям.


Глава 5. Передающий тракт и внешний гетеродин

Лист схемы: RF_TX_OUT_EXT_LO_IN.

Элемент

TX1

TX2

Что делает

Дроссели bias-tee

L7, L8 по 43 нГн

L9, L10 по 43 нГн

Подтягивают выводы к рельсу 1.8 В

Развязка рельса

C125, C132 по 100 нФ

C133, C142 по 100 нФ

Земля по переменному току для дросселей

Разделительный конденсатор

C126 18 пФ

C136 18 пФ

Отсекает постоянную составляющую

Балун

T6 TCM1-83X-1+

T8 TCM1-83X-1+

Симметричный вход → несимметричный выход

Фильтр

C128 75 пФ, C129 27 пФ, C130 10 пФ, C131 51 пФ

C138 75 пФ, C139 27 пФ, C140 10 пФ, C141 51 пФ

Широкополосное заземление «холодного» конца

Посадочное место

C127, не установлен

C137, не установлен

Подстройка согласования

Разъём SMA

JP6

JP7

Выход

Это в точности та же цепь, что на плате ADRV9009 — те же номиналы, те же обозначения. Логика тоже не изменилась: выходной каскад передатчика токовый, напряжение на выводах обеспечивает внешняя цепь, поэтому оба плеча дифференциального выхода подтянуты дросселями 43 нГн к рельсу VOUT4_1V8. Для постоянного тока дроссель — почти закоротка, для ВЧ — высокий импеданс.

Набор из четырёх конденсаторов разных номиналов (75, 27, 10 и 51 пФ) на «холодном» конце первичной обмотки — приём для широкополосного заземления: у каждого конденсатора своя частота собственного резонанса, и вместе они держат низкий импеданс в диапазоне намного шире, чем любой из них по отдельности. Именно тот случай, где параллельное включение нескольких номиналов оправдано, в отличие от попыток «улучшить» цепь одной большой ёмкостью.

Здесь согласование правильное

В отличие от приёмника, выходное сопротивление передатчика AD9371 — 50 Ом дифференциально. Балун 1:1 отдаёт в кабель те же 50 Ом. Рассогласования нет, и полтора-два децибела, которые теряются на входе приёмника, на выходе передатчика не теряются.

Отсюда практический ориентир: паспортные 7 дБм при нулевом ослаблении измерены на выводах микросхемы, и на разъёме JP6 от них останется примерно 7 дБм минус вносимые потери балуна (1–1.7 дБ) и потери в разделительном конденсаторе — то есть порядка 5–6 дБм на середине диапазона. Что, собственно, и подтверждают реальные измерения выхода платы ADRV9009, где на 300 МГц получилось около −9 дБм при ослаблении, заданном программно.

Два входа внешнего гетеродина

Вот функциональное отличие от платы ADRV9009, которое видно даже снаружи: здесь два независимых входа внешнего гетеродина.

Тракт

Площадка

Балун

Конденсаторы

Выводы трансивера

Гетеродин приёмника

RF1

T7 HHM1595A1

C134, C135 по 100 пФ

RX_EXTLO±, B7/B8

Гетеродин передатчика

RF2

T9 HHM1595A1

C143, C144 по 100 пФ

TX_EXTLO±, E11/E12

Блоки на схеме подписаны RX EXT LO IN/OUT и TX EXT LO IN/OUT, и слово OUT там не случайно: в даташите оба вывода описаны как двунаправленные. То есть эти порты можно использовать не только чтобы подать внешний гетеродин, но и чтобы вывести внутренний — например, чтобы синхронизировать по гетеродину несколько плат.

Разъёмы здесь не SMA, а посадочные площадки GND–SIG–GND под пайку коаксиала. Если внешний гетеродин вам нужен, разъём придётся ставить самому.

Требование, которое легко пропустить

Частота на входе внешнего гетеродина должна быть удвоенной относительно желаемой частоты гетеродина: внутри стоит делитель на два. В даташите диапазон входа указан как 600–8000 МГц, отсюда доступный диапазон настройки через внешний гетеродин — 300–4000 МГц. Требуемый уровень 0…6 дБм, типично 3 дБм.

Это же требование зашито в API: в структуре настроек приёмника и передатчика есть поле, которое так и подписано — Internal LO = 0, external LO*2 = 1. В комплектном профиле оба поля стоят в нуле, то есть используются внутренние синтезаторы.

Балун HHM1595A1 работает в диапазоне 3–8 ГГц. Совместив это с требованием удвоения, получаем реально доступный диапазон настройки 1.5–4 ГГц при работе от внешнего гетеродина. Ниже 1.5 ГГц балун начнёт заметно портить сигнал, выше 4 ГГц упираемся в предел 8 ГГц по входу микросхемы.

Здесь стоит отметить, что для AD9371 этот балун подобран удачнее, чем для ADRV9009: у AD9371 верхняя граница по внешнему гетеродину и так 8 ГГц, ровно как у балуна, так что балун не отрезает ничего лишнего сверху.

Что можно сделать с этим трактом

Добавить фильтр или усилитель. Проще всего снаружи, перед SMA: тогда паять на плате ничего не нужно. Максимум 7 дБм на выходе всё равно требует внешнего усилителя для любой практической задачи, и правильное место для фильтра — между усилителем и антенной.

Подстроить согласование. Позиции C127/C137 свободны. Но в отличие от приёмника, здесь выигрывать почти нечего: тракт уже согласован, а балун и так широкополосный.

Вывести внешний гетеродин. Установить разъёмы на RF1/RF2 и использовать порты как выходы — если нужна синхронизация нескольких плат по гетеродину или измерение фазового шума синтезатора напрямую.

Проверить, что дроссели не мешают на нижнем краю. Дроссели 43 нГн на 300 МГц имеют реактивность около 81 Ом, что заметно шунтирует 50-омную нагрузку. На плате ADRV9009 это было слабым местом на 75 МГц; здесь, при нижней границе 300 МГц, ситуация терпимая, но пара десятых децибела на нижнем краю на этом теряется.


Глава 6. Тактирование

Лист схемы: CLOCK_GENERATION

Тактовая подсистема повторена с платы ADRV9009 практически дословно: тот же AD9528, тот же VCXO ABLJO-V-122.880MHZ-T2, тот же балун MABA-007159-000000 на входе опоры, те же трансляторы уровней, тот же петлевой фильтр на C41 180 пФ и R37 10.2 кОм. Зачем нужна отдельная микросхема тактирования, как работает двухкаскадная архитектура AD9528 и почему PLL1 с узкой петлёй позволяет привязаться к внешнему стандарту, не испортив фазовый шум, — всё это подробно разобрано в главе 6 обзора платы ADRV9009, и повторять я не буду.

Здесь — только то, что отличается, и то, что специфично для AD9371.

Пять выходов вместо четырёх

Главное отличие. На плате ADRV9009 задействованы четыре выхода AD9528, здесь — пять:

Выход

Выводы AD9528

Куда идёт

Назначение

OUT13

25, 26

DEV_CLK_IN± → выводы E7/E8 трансивера

Тактовая частота AD9371, 122.88 МГц

OUT12

28, 29

SYSREF_IN± → выводы K3/K4 трансивера

SYSREF для трансивера

OUT1

64, 65

FPGA_REF_CLK± → пара GBTCLK1_M2C разъёма FMC

Опора для GT-трансиверов FPGA

OUT2

61, 62

FPGA_AUX_CLK± → пара GBTCLK0_M2C разъёма FMC

Вторая опора для FPGA

OUT3

58, 59

FPGA_SYSREF± → пара LA33 разъёма FMC

SYSREF для FPGA

Выход OUT0 (выводы 67, 68) не используется, остальные восемь помечены на схеме крестиками.

Появление FPGA_AUX_CLK — не случайно. В комплектном проекте Vivado эта частота используется дважды: как опора для QPLL гигабитных трансиверов и как источник для модуля Clocking Wizard, из которого получаются все внутренние тактовые частоты цифровой части. Первая опора, FPGA_REF_CLK, при этом идёт на CPLL. То есть обе опоры реально работают, и носитель обязан развести на MGTREFCLK обе пары — GBTCLK0_M2C и GBTCLK1_M2C. Это заметно жёстче, чем требование платы ADRV9009, где хватало одной пары. Подробнее про последствия — в главе 9.

Все выходы настроены на одну частоту. В комплектном коде инициализации AD9528 массив выходных частот заполнен значением 122.88 МГц по всем четырнадцати каналам, а канальные делители — значением 10. Выходы 3 и 12 в массиве режимов помечены значением 2, то есть работают как SYSREF, — что независимо подтверждает распиновку из таблицы выше.

Расчёт частот

Тактовая цепочка та же, что на плате-сестре:

Этап

Значение

Откуда известно

Частота VCXO

122.88 МГц

Маркировка ABLJO-V-122.880MHZ-T2

Опора PLL1

30.72 МГц

refA_Frequency_Hz в myk_ad9528init.c

Умножение в PLL2

× 30

clockPll2Settings

Частота VCO PLL2

3686.4 МГц

122.88 × 30

Делитель VCO

÷ 3 → 1228.8 МГц

clockPll2Settings

Канальные делители

÷ 10 → 122.88 МГц

outFrequency_Hz и делители в clockOutputSettings

Обратите внимание на опору 30.72 МГц: если вы подадите на JP1 привычные 10 МГц от рубидиевого или GPS-стандарта, делители PLL1 придётся пересчитать. Иначе PLL1 не захватится, и генератор останется в режиме удержания, где частота определяется только собственной точностью VCXO (±40 ппм со всеми эффектами). Ровно та же ловушка, что на плате ADRV9009, и с тем же комментарием в коде.

Что делает AD9371 с этими 122.88 МГц

Здесь начинается специфика микросхемы. Тактовая частота устройства по даташиту допускается в диапазоне 10–320 МГц (у ADRV9009 верхняя граница 500 МГц), уровень 0.3–2.0 В размаха с развязкой по постоянному току. Внутри стоит свой PLL, и в комплектных профилях он настроен двумя разными способами:

Профиль

VCO тактового PLL

Делитель VCO

Делитель быстрого такта

Результат

Штатный, 采样率122.88M

9830.4 МГц (× 80)

÷ 2

÷ 4

1228.8 МГц

Максимальный, 跑满AD9371采样率

6144 МГц (× 50)

÷ 1

÷ 4

1536 МГц

Из этой частоты получаются частоты IQ: 1228.8 ÷ 10 = 122.88 МСПС в штатном профиле, 1536 ÷ 10 = 153.6 МСПС для приёмника и 1536 ÷ 5 = 307.2 МСПС для передатчика в максимальном. Всё сходится без остатка, и именно поэтому вторая конфигурация выжимает из микросхемы предельные 6.144 Гбит/с на линию JESD204B — см. главу 7.

Полезное следствие: переключение между профилями не требует менять настройки AD9528. Файл инициализации генератора в двух комплектах проектов совпадает побайтно — вся разница только внутри трансивера и в проекте FPGA.

SYSREF: как запрашивается

SYSREF формирует встроенный в AD9528 генератор. В комплектной конфигурации он настроен на непрерывный режим с внутренним источником, а запрос импульса возможен двумя путями: по SPI и аппаратно, сигналом на вывод SYSREF_REQ (вывод 57), который через транслятор уровней приходит с разъёма FMC по паре LA26_N. Резистор R36 10 кОм подтягивает эту линию к земле, чтобы при неинициализированном выводе FPGA запрос не срабатывал случайно.

Комплектный bare-metal код использует аппаратный путь, и делает это в интересном порядке: сначала запрос SYSREF поднимается, потом выполняется полная инициализация AD9371 вместе с поднятием линков JESD204B, и только затем запрос снимается:

no_os_gpio_direction_output(gpio_ad9528_sysref_req, 1);
mykError = ad9371_initial(&mykDevice, jesd_array, jesd_phy_addr);
no_os_gpio_direction_output(gpio_ad9528_sysref_req, 0);

Логика понятна: пока идёт установление линков, SYSREF нужен непрерывно, чтобы счётчики кадров на обеих сторонах сбросились синхронно; после этого он больше не требуется и его убирают, чтобы не сыпать импульсы в работающую систему. Если вы будете переписывать инициализацию, этот порядок стоит сохранить — потеря детерминированной задержки при работающем на вид линке обычно объясняется именно тем, что SYSREF пришёл не тогда, когда нужно.

Хитрость с запуском осталась

AD9528 при включении питания пропускает сигнал VCXO напрямую на выходы 12 и 13 — ещё до какой-либо настройки по SPI. А на этой плате, как и на плате ADRV9009, к OUT12 и OUT13 подключены именно SYSREF и тактовая частота трансивера. То есть сразу после подачи питания AD9371 получает 122.88 МГц на DEV_CLK_IN, без чего не запустилось бы его внутреннее ядро и не прошли бы калибровки.

Практический вывод для отладки тот же: если после подачи питания на выводах DEV_CLK_IN нет 122.88 МГц, проблема не в настройке по SPI. Ищите питание генератора (рельс 3V3_CLK), питание VCXO (3V3_VCO) или сигнал сброса.

Вход опорной частоты и заготовки

Цепь опоры повторяет плату-сестру: SMA JP1C39 100 нФ → балун T1 MABA-007159-000000 (4.5–3000 МГц) → набор посадочных мест под термирование (24.9, 49.9 и 100 Ом, большинство помечены NC) → развязывающие конденсаторы C38/C40 100 нФ → входы REFA генератора. Установлены два дифференциальных резистора по 100 Ом. Вход REFB и вывод выбора опоры не задействованы — переключение между двумя опорами на плате не реализовано.

Сохранилась и заготовка под одноконтурный режим: конденсаторы C42 и C50 (100 нФ, NC) соединяют цепи REF_CLK_P/REF_CLK_N с входами VCXO_IN. Если их установить и снять перемычки R44/R45, внешняя опора пойдёт прямо на вход PLL2, минуя VCXO. Смысл тот же: если у вас есть генератор чище 75 фс, характеристики системы можно поднять выше штатных.

Мелкое расхождение с платой ADRV9009: конденсатор C48 0.33 мкФ в цепи управляющего напряжения VCXO здесь помечен как 0.33uF/NC, то есть по документации может отсутствовать. Он фильтрует управляющее напряжение от шума, и если PLL1 у вас захватывается, но фазовый шум вблизи несущей выглядит хуже ожидаемого, эту позицию стоит проверить глазами.

Индикация и развязка питания

Два светодиода на выходах STATUS_0 и STATUS_1 генератора через буфер NC7WV125K8X и резисторы 330 Ом — быстрый способ увидеть, захватились ли петли, не подключая ничего к SPI.

Блок развязки питания генератора подписан FILER (та же опечатка вместо FILTER, что и на плате-сестре) и содержит конденсатор C57 1 мкФ плюс девятнадцать конденсаторов по 100 нФ (C58C76) на рельсе 3V3_CLK — по одному на каждый вывод питания AD9528 с запасом.


Глава 7. Цифровой интерфейс: JESD204B, SPI, GPIO

Лист схемы: JESD_INTERFACE_GPIO.

Это самая интересная глава с точки зрения отличий от платы ADRV9009: у AD9371 не два линка JESD204B, а три, и все три на этой плате разведены.

Линии данных

Направление

Выводы трансивера

Цепи

К FPGA (сериализатор)

P6/P7, P4/P5, N5/N6, N3/N4

SERDOUT0SERDOUT3

От FPGA (десериализатор)

P11/P12, P13/P14, N10/N11, N12/N13

SERDIN0SERDIN3

Четыре линии в каждую сторону — как у ADRV9009. Разница в потолке скорости: 6.144 Гбит/с против 12.288.

Три линка вместо двух

У ADRV9009 на плате два линка: один на передачу (деформер) и один на приём, куда сведены и основной, и наблюдательный приёмники. У AD9371 фреймеров два независимых, и каждому нужна своя линия синхронизации:

Линк

Сторона

Каналов (M)

Линий (L)

Октетов на кадр (F)

Кадров в мультикадре (K)

Линии

Приём (rxFramer)

трансивер → FPGA

4

2

4

32

0 и 1 (0x03)

Наблюдение (obsRxFramer)

трансивер → FPGA

2

2

2

32

2 и 3 (0x0C)

Передача (deframer)

FPGA → трансивер

4

4

2

32

все четыре (0x0F)

Значения взяты из профиля myk.c и из инициализации ядер в headless.c — и там они совпадают, что приятно: параметры F в двух местах согласованы, хотя ошибиться легко.

Соответственно на разъём FMC выведены три пары синхронизации вместо двух:

Сигнал трансивера

Выводы

Направление

Пара FMC

Что синхронизирует

SYNCOUTB0±

M13, M14

трансивер → FPGA

LA02 (H7/H8)

Линк передачи: устройство сообщает FPGA о состоянии деформера

SYNCINB0±

M3, M4

FPGA → трансивер

LA03 (G9/G10)

Линк приёма

SYNCINB1±

L3, L4

FPGA → трансивер

LA25 (G27/G28)

Линк наблюдения

Наблюдательный фреймер настроен на использование собственного входа синхронизации (OBSRX_SYNCB), а не общего с приёмным, — за это в профиле отвечает отдельное поле. Именно поэтому нужна третья пара.

Все три пары и SYSREF по стандарту LVDS. У AD9371 на этих входах есть внутреннее согласование 100 Ом, включаемое программно, — это стоит держать в голове, если в констрейнтах FPGA вы включите ещё и DIFF_TERM: два согласования параллельно дадут 50 Ом и вдвое меньшую амплитуду. На плате ADRV9009 эта ловушка усугублялась резистором R34 на самой плате; здесь дополнительных резисторов на парах синхронизации нет, так что конфликт возможен только между внутренним согласованием микросхемы и настройкой FPGA.

Расчёт скоростей линий

Скорость линии считается так:

Скорость = M × N' × (10/8) × Fs / L

где M — число преобразователей в линке, N' = 16 бит на отсчёт, 10/8 — накладные расходы кодирования 8b/10b, Fs — частота IQ, L — число линий.

Штатный профиль (частота IQ 122.88 МСПС):

Линк

Расчёт

Скорость

Приём

4 × 16 × 1.25 × 122.88 / 2

4915.2 Мбит/с

Наблюдение

2 × 16 × 1.25 × 122.88 / 2

2457.6 Мбит/с, но передаётся с передискретизацией на скорости приёмного линка

Передача

4 × 16 × 1.25 × 122.88 / 4

2457.6 Мбит/с

Максимальный профиль (приём 153.6 МСПС, передача 307.2 МСПС):

Линк

Расчёт

Скорость

Приём

4 × 16 × 1.25 × 153.6 / 2

6144 Мбит/с

Передача

4 × 16 × 1.25 × 307.2 / 4

6144 Мбит/с

Обе цифры — ровно паспортный предел AD9371. Отсюда и название комплектного проекта: 跑满 означает «выжать до предела». Проверить расчёт можно прямо в проекте Vivado: в настройках ядра jesd204_phy штатного проекта стоят 2.4576 и 4.9152 Гбит/с, в максимальном — 6.144 в обе стороны.

Про наблюдательный линк отдельно: в его настройках включён режим передискретизации вместо повторения битов. Это значит, что фреймер наблюдения гонит свои две линии с той же скоростью, что и приёмный, дублируя отсчёты, — так проще для FPGA, потому что все четыре линии работают на одной скорости и обслуживаются одним квадом GT с одинаковыми настройками.

Перепутанные линии — это нормально

Соответствие линий трансивера линиям разъёма FMC на этой плате сознательно перемешано:

Линия трансивера

Цепь платы

Пара FMC

SERDOUT0

OUT0

DP1_M2C

SERDOUT1

OUT1

DP2_M2C

SERDOUT2

OUT2

DP0_M2C

SERDOUT3

OUT3

DP3_M2C

SERDIN0

IN0

DP2_C2M

SERDIN1

IN1

DP0_C2M

SERDIN2

IN2

DP3_C2M

SERDIN3

IN3

DP1_C2M

Так делают ради разводки: перестановка линий позволяет вести дифференциальные пары без переходов между слоями и без лишних изгибов. Компенсируется это программно, кроссбарами в фреймерах и деформере — в профиле стоят значения 0x08, 0x40 и 0xE4. Если вы пишете свой проект FPGA, эту таблицу нужно учитывать в первую очередь: перепутанные линии дают линк, который вроде бы поднимается, но выдаёт мусор в каналах.

Тактовый вход трансивера

DEV_CLK_IN± на выводах E7/E8, развязка C99/C100 по 0.1 мкФ, между цепями до конденсаторов — резистор R73 100 Ом.

Тонкость размещения та же, что на плате ADRV9009: согласующий резистор стоит до развязывающих конденсаторов, со стороны генератора, а не у приёмника. Классическая практика — наоборот. При длине линии в несколько сантиметров это несущественно, тем более что у AD9371 есть внутреннее согласование, но знать стоит.

SPI и управление

Обе микросхемы на плате висят на одной шине SPI с раздельными сигналами выбора:

Сигнал

Выводы AD9371

Пара FMC

Примечание

SPI_CLK

K9 (SCLK)

LA07_P (H13)

Общий для AD9371 и AD9528

SPI_DIN

J9 (SDIO)

LA07_N (H14)

Общий

SPI_DOUT

J10 (SDO)

LA08_P (G12)

Через мультиплексор IC3

SPI_CS0

K10 (CSB)

LA09_P (D14)

Выбор AD9371

SPI_CS1

LA09_N (D15)

Выбор AD9528

RESETB

J4

LA04_P (H10)

Подтяжка R74 10 кОм к VDD_IF

GP_INTERRUPT

J5

LA04_N (H11)

Прерывание от трансивера

TEST

J6

LA05_P (D11)

Резистор R79 1 кОм на землю

TX1_ENABLE

M6

LA13_P (D17)

Подтяжка 10 кОм к земле

RX1_ENABLE

M5

LA13_N (D18)

То же

TX2_ENABLE

M8

LA14_P (C18)

То же

RX2_ENABLE

M7

LA14_N (C19)

То же

CLK_RESETB

LA26_P (D26)

Сброс AD9528 через транслятор

SYSREF_REQ

LA26_N (D27)

Запрос SYSREF

Линии выбора двух микросхем разведены на одну пару LA09 — экономно и удобно. Обратите внимание, что уровни у двух микросхем разные: AD9371 работает от VDD_IF (то есть от VADJ), а AD9528 — от 3.3 В. Именно поэтому на плате стоят трансляторы ADG3304 (четыре канала SPI) и ADG3301 (сброс), а линии SDO двух микросхем сводятся в одну мультиплексором NC7WZ16P6X.

Все четыре линии разрешения каналов подтянуты к земле резисторами по 10 кОм. Это правильно: пока FPGA не сконфигурирована, её выводы находятся в высокоимпедансном состоянии, и без подтяжки трансивер мог бы получить случайное разрешение передачи.

Вывод RBIAS (C14) задаёт внутренний ток смещения резистором R80 14.3 кОм на землю — номинал из даташита, менять его нельзя.

Чего на плате нет

Здесь всё так же грустно, как на плате-сестре, и по тем же причинам.

Девятнадцать низковольтных GPIO не разведены. Выводы GPIO_0GPIO_18 на схеме помечены как неподключённые. Это значит, что все функции, требующие цифровых линий трансивера — сигналы подтверждения включения каналов, пиновый режим управления наблюдательным приёмником, внешние триггеры — недоступны. Управление возможно только командами ARM-ядра через SPI.

Двенадцать трёхвольтовых GPIO не разведены. Выводы GPIO_3P3_0GPIO_3P3_11 тоже помечены крестиками. Из практичного здесь теряется управление внешними коммутаторами: например, штатный механизм измерения КСВ в этом семействе микросхем предполагает переключение направленного ответвителя именно этими выводами.

Вспомогательный АЦП заземлён. Все четыре входа AUXADC_0AUXADC_3 соединены вместе и посажены на AGND. Измерять внешние напряжения (например, температуру усилителя мощности) через них нельзя.

Важная оговорка: встроенный датчик температуры трансивера при этом работает. Он использует тот же блок вспомогательного АЦП, но внутренний канал, и заземление внешних входов ему не мешает. В комплектном профиле датчик сконфигурирован, и опрашивать его в своём ПО можно и нужно.

Нет SPI-флеш. На плате ADRV9009 стоял S25FL208K, здесь такой микросхемы нет вообще. Хранить на модуле профили, коэффициенты калибровок или серийный номер негде — всё это придётся держать на носителе.


Глава 8. Питание

Листы схемы: POWER_SUPPLY и POWER_DUT_CONNECTIONS .

Преобразователь, его настройка и расчёт делителей повторяют плату ADRV9009 полностью — вплоть до номиналов резисторов. Как работает ADP5054, зачем внешние транзисторы на первых двух каналах и почему выбрана частота коммутации около 850 кГц, разобрано в главе 8 обзора той платы. Здесь — рельсы, расчёт и то, что отличается.

Четыре рельса

IC1ADP5054ACPZ-R7, четырёхканальный понижающий преобразователь. Каналы 1 и 2 работают как контроллеры с внешними транзисторами (сборка Q1 IRF7313PBF), каналы 3 и 4 полностью интегрированные.

Напряжение обратной связи у всех каналов 0.8 В, отсюда расчёт:

Канал

Делитель

Расчёт

Рельс

Кому

1

R2 6.24 кОм / R1 10 кОм

0.8 × (1 + 6.24/10) = 1.299 В

VOUT1_1V3_ANLG

Аналоговые домены трансивера

2

R7 6.24 кОм / R6 10 кОм

0.8 × (1 + 6.24/10) = 1.299 В

VOUT2_1V3_DIG

Цифровое ядро, сериализаторы

3

R10 74 кОм / R9 24 кОм

0.8 × (1 + 74/24) = 3.267 В

VOUT3_3V3

3.3 В трансивера, AD9528, VCXO

4

R12 12.5 кОм / R11 10 кОм

0.8 × (1 + 12.5/10) = 1.800 В

VOUT4_1V8

Аналоговая часть 1.8 В, смещение выходов TX

Сверим с требованиями AD9371 по даташиту:

Рельс микросхемы

Допуск

Что подано

VDDA_1P3 (все аналоговые домены)

1.267 … 1.33 В

1.299 В ✓

VDIG

1.267 … 1.33 В

1.299 В ✓

VDDA_SER, VDDA_DES, JESD_VTT_DES

1.14 … 1.365 В

1.299 В ✓

VDDA_1P8

1.71 … 1.89 В

1.800 В ✓

VDDA_3P3

3.135 … 3.465 В

3.267 В ✓

VDD_IF

1.71 … 2.625 В

напрямую с VADJ

Разрешения каналов заданы делителями 12 кОм / 51 кОм от входных 12 В — то же решение, что на плате-сестре: каналы включаются, когда входное напряжение поднялось достаточно высоко.

Дроссели: два XFL4020-102ME (1.0 мкГн) и два XFL4020-332ME (3.3 мкГн) — набор в точности как на плате ADRV9009.

Фильтрация на выходе каждого канала выполнена только объёмными ёмкостями, керамики мелких номиналов здесь нет — она стоит дальше, у выводов трансивера:

Рельс

Конденсаторы

VOUT1_1V3_ANLG

C2 100 мкФ, C3 47 мкФ, C4 47 мкФ, C5 10 мкФ

VOUT2_1V3_DIG

C11, C12, C13 по 47 мкФ

VOUT3_3V3

C15 100 мкФ, C16 47 мкФ, C17 47 мкФ

VOUT4_1V8

C21 100 мкФ, C22 47 мкФ, C23 47 мкФ

VDD_IF: та же ловушка, что и на плате-сестре

VDD_IF не формируется на плате. Он приходит с разъёма FMC как VADJ и попадает на трансивер через резистор R15 0 Ом с конденсатором C26 47 мкФ.

По даташиту AD9371 допустимый диапазон VDD_IF — от 1.71 до 2.625 В, номинально 1.8 или 2.5 В. Значит:

VADJ на носителе должен быть выставлен в 1.8 или 2.5 В. Значение 3.3 В выведет трансивер из строя — оно попадёт прямо на вывод VDD_IF, минуя всякую защиту.

Никакого ограничителя, стабилизатора или хотя бы диода в этой цепи нет, и это осознанное решение разработчика: VADJ по стандарту VITA 57.1 и должен быть настраиваемым, а настраивает его носитель. Проверять нужно до подачи питания. Как это делается на конкретных платах — в главе 9 и главе 11.

Развязка доменов: здесь заметно серьёзнее

А вот тут плата отличается от ADRV9009 существенно. У AD9371 очень много раздельных питающих выводов — отдельные домены для каждого синтезатора, каждого VCO и каждого стабилизатора:

VDDA_BB, VDDA_CLK, VDDA_CLKSYNTH, VDDA_CALPLL, VDDA_RXRF, VDDA_RXLO, VDDA_RXSYNTH, VDDA_RXVCO, VDDA_RXTX, VDDA_TXLO, VDDA_TXSYNTH, VDDA_TXVCO, VDDA_SNRXSYNTH, VDDA_SNRXVCO, VDDA_SER_1/2, VDDA_DES, JESD_VTT_DES, VDIG_1/2, VCLK_VCO_LDO, VRX_VCO_LDO, VSNRX_VCO_LDO, VTX_VCO_LDO.

На плате ADRV9009 домены разделялись резисторами 0 Ом. Здесь установлены тринадцать ферритовых бусин — девять по 30 Ом и четыре по 47 Ом (L11L23), и у каждой на выходе своя пара конденсаторов 1 мкФ и 0.1 мкФ. Плюс объёмные ёмкости 100 мкФ на входах рельсов.

Разница осмысленная. Феррит на 30–47 Ом (на частоте 100 МГц) даёт реальную развязку по высокой частоте: шум, который цифровое ядро или сериализаторы наводят в рельс, не проходит в домен синтезатора, где он превратился бы в фазовый шум гетеродина. Резистор 0 Ом такой развязки не даёт вообще. Учитывая, что у AD9371 отдельные домены выведены как раз для VCO и синтезаторов, ферриты здесь на своём месте — и это, пожалуй, лучшее схемотехническое решение этой платы по сравнению с платой-сестрой.

Обратная сторона: феррит вместе с конденсаторами образует LC-контур, и на частоте резонанса импеданс может оказаться выше, чем без феррита. С 1 мкФ и типичной индуктивностью бусины резонанс попадает в район сотен килогерц — далеко от рабочих частот, так что здесь это не проблема.

Отдельно развязаны рельсы тактовой части: 3V3_CLK через феррит L5 42 Ом, 3V3_VCO через L6 30 Ом. Так же, как на плате ADRV9009.

Бюджет мощности

По даташиту AD9371 потребляет:

Режим

Потребление

Только приём, два канала, 100 МГц, 122.88 МСПС

2.70 Вт

Только передача, два канала, ослабление 0 дБ

3.70 Вт

Только передача, ослабление 15 дБ

3.11 Вт

FDD: 2 приёмника + 2 передатчика + наблюдение, ослабление 0 дБ

4.86 Вт

То же при ослаблении 15 дБ

4.27 Вт

К этому добавляется остальная плата. Оценочно: AD9528 с пятью активными выходами — порядка 1 Вт, VCXO при токе до 30 мА от 3.3 В — около 0.1 Вт, трансляторы уровней и индикация — единицы милливатт. Итого на рельсах в тяжёлом режиме получается около 6 Вт, а с учётом КПД преобразователя порядка 90 % — около 6.5–7 Вт от входных 12 В, то есть чуть больше полуампера.

Предохранитель F1 на 2 А оставляет трёхкратный запас. Ограничение по стандарту VITA 57.1 для 12 В на разъёме FMC — 1 А на носителе, так что и здесь запас есть.

Полезно отметить, что ослабление передатчика заметно влияет на потребление: разница между 0 и 15 дБ — почти 0.6 Вт. Если у вас плата греется, а полная мощность передатчика не нужна, простое увеличение ослабления снимет часть тепла.

Тепло

Корпус 12 × 12 мм, 196 выводов, максимальная температура кристалла 110 °C. Почти 5 Вт в таком корпусе — это плотность мощности, которая требует внимания. Плата, как и её сестра, рассчитана на работу в открытом виде и при комнатной температуре без обдува работает.

Но: у AD9371 корпус меньше, чем у ADRV9009 (12 × 12 против 14 × 14 мм), а потребление того же порядка. Значит удельная нагрузка выше, и обдув здесь нужен раньше. В закрытом корпусе он обязателен.

Признаки перегрева проявятся не как отказ, а как уход калибровок и деградация характеристик: подрастёт утечка гетеродина, ухудшится подавление зеркала, поплывёт EVM. Поэтому встроенный датчик температуры стоит опрашивать постоянно — он доступен через вспомогательный АЦП и в комплектном профиле уже сконфигурирован.

Вход 12 В: только с FMC

Схема входа: FMCA_VCC_12P0V → предохранитель F1 2 А → диод SS34 → цепь 12 В, плюс светодиод питания через резистор 2 кОм.

Диод защищает от обратной полярности. Но, в отличие от платы ADRV9009, здесь нет колодки для внешнего питания. На той плате была колодка JP8, подключённая после диода, и это давало второй способ питания — важный, если носитель не выдаёт 12 В по FMC (а такие есть, особенно среди недорогих плат и переходников).

Здесь такого варианта нет: если носитель не даёт 12 В на разъёме, плата не заработает, и придётся подпаиваться проводом. Мелочь, но при выборе носителя её нужно учитывать — см. главу 9.


Глава 9. FMC-интерфейс

Лист схемы: FMC_FPGA_CONNECTIONS.

Разъём U1 — FMC HPC по стандарту VITA 57.1, 400 выводов. Организация та же, что на плате ADRV9009: гигабитные линии на дифференциальных парах DP, тактовые сигналы на выделенных парах GBTCLK, управление на парах LA, питание и служебные сигналы на своих контактах. Общая часть разобрана в главе 9 обзора той платы.

Распиновка ниже проверена по двум источникам: по схеме модуля и по файлу констрейнтов комплектного проекта Vivado для ZC706. Они согласуются.

Гигабитные линии

Пара FMC

Выводы

Цепь платы

Линия трансивера

Развязка

DP0_M2C

C6, C7

OUT2

SERDOUT2

100 нФ

DP1_M2C

A2, A3

OUT0

SERDOUT0

100 нФ

DP2_M2C

A6, A7

OUT1

SERDOUT1

100 нФ

DP3_M2C

A10, A11

OUT3

SERDOUT3

100 нФ

DP0_C2M

C2, C3

IN1

SERDIN1

100 нФ

DP1_C2M

A22, A23

IN3

SERDIN3

100 нФ

DP2_C2M

A26, A27

IN0

SERDIN0

100 нФ

DP3_C2M

A30, A31

IN2

SERDIN2

100 нФ

Каждая линия развязана по постоянному току конденсатором 100 нФ (C79C98), установленным рядом с разъёмом. Размещение у края линии, а не в середине, правильно с точки зрения целостности сигнала.

Перестановка линий относительно нумерации трансивера разобрана в главе 7 — компенсируется программно, кроссбарами фреймеров.

Две опоры для гигабитных трансиверов

Вот главное отличие от платы ADRV9009 с точки зрения требований к носителю.

Пара FMC

Выводы

Цепь платы

Источник

Развязка

Как используется в комплектном проекте

GBTCLK0_M2C

D4, D5

FPGA_AUX_CLK

AD9528 OUT2

10 нФ (C82, C85)

Опора QPLL и вход модуля Clocking Wizard

GBTCLK1_M2C

B20, B21

FPGA_REF_CLK

AD9528 OUT1

10 нФ (C91, C93)

Опора CPLL

Обе пары несут 122.88 МГц, и обе задействованы. Требование к носителю получается двойным:

  1. GBTCLK1_M2C должна быть разведена на MGTREFCLK квада, к которому подключены линии DP. Без этого не заработают CPLL гигабитных трансиверов.

  2. GBTCLK0_M2C должна быть разведена на MGTREFCLK того же или соседнего квада — она нужна и как опора QPLL, и как источник тактовой частоты для цифровой части.

Стандарт VITA 57.1 обе пары на разъёме HPC предусматривает, но разводят их не все носители: часто заводят только GBTCLK0, а вторую оставляют неподключённой. На плате ADRV9009 хватало одной пары, здесь нужны обе — и это стоит проверить по документации носителя до покупки.

Строго говоря, вторая опора нужна только комплектному проекту в том виде, в котором он написан. Если вы пишете свой проект, FPGA_AUX_CLK можно не использовать: тактовую частоту для цифровой части получить из выхода GT-трансивера, а QPLL либо не задействовать вовсе (на 6.144 Гбит/с достаточно CPLL), либо тактировать от той же первой опоры. Но комплектный проект в этом случае придётся переделывать.

Кстати, в файле констрейнтов комплектного проекта пара GBTCLK0_M2C помечена комментарием (NC), хотя проект её использует. Похоже на след копирования констрейнтов из другого дизайна — комментарию верить не нужно, смотрите на схему модуля и на связи в блок-дизайне.

Синхронизация и SYSREF

Сигнал

Пара FMC

Выводы

Направление

FPGA_SYSREF

LA33

G36, G37

Модуль → FPGA

SYNCOUTB0 (tx_sync)

LA02

H7, H8

Модуль → FPGA

SYNCINB0 (rx_sync)

LA03

G9, G10

FPGA → модуль

SYNCINB1 (rx_os_sync)

LA25

G27, G28

FPGA → модуль

Здесь есть деталь, на которую стоит посмотреть внимательно. SYSREF выведен на пару LA33, которая не относится к тактовым. В стандарте VITA 57.1 тактовыми (clock capable) на разъёме HPC являются пары LA00_CC, LA01_CC, LA17_CC и LA18_CC — только они гарантированно попадают на выводы FPGA, способные работать источником тактового сигнала. На плате ADRV9009 SYSREF был заведён именно на LA00_CC, что правильнее.

Практических последствий два. Первое: SYSREF нельзя подать на глобальную тактовую сеть FPGA — его придётся защёлкивать в домене тактовой частоты ядра JESD204B. Впрочем, ровно так с ним и работают штатные ядра, так что схема рабочая. Второе, более важное: временные соотношения между SYSREF и тактовой частотой придётся закрывать констрейнтами и проверять статическим анализом, а не полагаться на выделенные тактовые ресурсы. В комплектном проекте для этой пары стоит LVDS_25 с включённым DIFF_TERM — и вот здесь помните про внутреннее согласование самой микросхемы, о котором сказано в главе 7.

Управление

Сигнал

Пара FMC

Выводы

Назначение

SPI_CLK

LA07_P

H13

Тактирование SPI

SPI_DIN

LA07_N

H14

Данные в устройства

SPI_DOUT

LA08_P

G12

Данные из устройств

SPI_CS0

LA09_P

D14

Выбор AD9371

SPI_CS1

LA09_N

D15

Выбор AD9528

RESETB

LA04_P

H10

Сброс трансивера

GP_INTERRUPT

LA04_N

H11

Прерывание от трансивера

TEST

LA05_P

D11

Тестовый вывод трансивера

TX1_ENABLE

LA13_P

D17

Разрешение передатчика 1

RX1_ENABLE

LA13_N

D18

Разрешение приёмника 1

TX2_ENABLE

LA14_P

C18

Разрешение передатчика 2

RX2_ENABLE

LA14_N

C19

Разрешение приёмника 2

FMC_CLK_RESETB

LA26_P

D26

Сброс AD9528

FMC_SYSREF_REQUEST

LA26_N

D27

Запрос импульса SYSREF

Все линии управления идут через последовательные резисторы 0 Ом (R55R72) — удобно для отладки: цепь можно разорвать.

Итого задействовано девять пар LA под управление и синхронизацию плюс три пары под сигналы синхронизации линков. Остальные пары LA, а также все пары HA и HB свободны — если вам нужны линии для своей периферии, разъём это позволяет.

VADJ, EEPROM и служебные контакты

VADJ разведён на все положенные стандартом контакты (G39, G40, H40, E39, F39, F40, E40 и соседние) и, как сказано в главе 8, идёт прямо на VDD_IF трансивера. 1.8 или 2.5 В, никак иначе.

Служебные контакты:

Сигнал

Выводы

Назначение

FMCA_VCC_12P0V

C37, C39 и соседние

Питание 12 В, единственный источник для платы

FMCA_VCC_3P3V

C39, D39 и соседние

3.3 В, на плате не используется

3P3AUX

D32

Дежурное питание 3.3 В, подведено к EEPROM

FMCA_SCL

C30

Шина I²C для IPMI

FMCA_SDA

C31

То же

EPROM_A0

C34

Адресный бит EEPROM

EPROM_A1

D35

Адресный бит EEPROM

EEPROM IC6M24C02-RMN6P, 2 Кбит, питается от дежурного 3P3AUX, подтяжки шины R63/R64 по 4.7 кОм, вывод защиты записи через R62 20 кОм. Ровно та же схема, что на плате ADRV9009, и ровно с той же ловушкой:

Если EEPROM не прошита корректной IPMI-записью, носители на FPGA семейства UltraScale (например, ZCU102) не включат VADJ. Модуль при этом будет выглядеть полностью мёртвым, хотя дело не в нём.

Носители на Zynq-7000 вроде ZC706 такой проверки не делают и просто подают заранее настроенное напряжение, поэтому с ними проблема не проявляется. Что делать, если она проявилась, — в главе 11.

Требования к носителю: сводка

Чтобы плата заработала, носитель обязан:

  1. иметь разъём FMC HPC (LPC не подойдёт: не хватит гигабитных линий);

  2. подавать 12 В на разъём (внешнего входа питания на модуле нет);

  3. уметь выставить VADJ = 1.8 или 2.5 В;

  4. развести четыре линии DP в каждую сторону на гигабитные трансиверы, поддерживающие 6.144 Гбит/с;

  5. развести обе пары GBTCLK0_M2C и GBTCLK1_M2C на входы MGTREFCLK — либо потребуется переделка комплектного проекта;

  6. развести девять пар LA под управление и три пары под синхронизацию, из них три пары должны работать как LVDS-входы или выходы;

  7. не требовать корректной IPMI-записи в EEPROM либо позволять её обойти.

Пункты 5 и 2 — новые по сравнению с платой ADRV9009, и оба сужают выбор.


Глава 10. Носители и комплектное ПО

Комплект ПО у этой платы богаче, чем у платы ADRV9009: два носителя вместо одного и два готовых профиля вместо одного.

Что лежит в комплекте

ZC706例程/
  采样率122.88M/              штатный профиль
    FMC_AD9371_JESD204B_PL_DEFAULT/    проект Vivado
    FMC_AD9371_JESD204B_PS_DEFAULT/    проект Vitis
  跑满AD9371采样率/           максимальная частота дискретизации
    FMC_AD9371_JESD204B_PL_MAX/
    FMC_AD9371_JESD204B_PS_MAX/
RK_7100例程/
  跑满AD9371采样率/           только максимальный профиль
    FMC_AD9371_JESD204B_PL_MAX/
    FMC_AD9371_JESD204B_PS_MAX/
  BOOT.bin                    готовый образ загрузки
硬件资料/
  FMC_AD9371_V1.pdf           схема

Два носителя: Xilinx ZC706 (Zynq-7000, XC7Z045) и RIGUKE RK 7100 (Zynq-7000, XC7Z100) — тот же носитель, что шёл с платой ADRV9009. Для RK 7100 приложен готовый BOOT.bin, то есть плату можно запустить, не открывая Vivado вообще.

Наличие проекта под ZC706 — важное практическое преимущество. ZC706 — эталонный носитель Analog Devices: под неё есть официальные HDL-проекты, готовые образы Linux и работает Windows-утилита Transceiver Evaluation Software. Если вы берёте эту плату, ZC706 — самый предсказуемый путь.

Два профиля

Разница между комплектами 采样率122.88M и 跑满AD9371采样率 целиком сидит в двух местах: в профиле трансивера и в настройках проекта FPGA. Файл инициализации AD9528 в двух вариантах совпадает побайтно.

Параметр

Штатный профиль

Максимальный профиль

Тактовая частота устройства

122.88 МГц

122.88 МГц

VCO тактового PLL

9830.4 МГц, делитель 2

6144 МГц, делитель 1

Приёмник

100 МГц, IQ 122.88 МСПС

100 МГц, IQ 153.6 МСПС

Наблюдательный

100 МГц, IQ 122.88 МСПС

100 МГц, IQ 153.6 МСПС, полоса фильтра 225 МГц

Передатчик

20/100 МГц, IQ 122.88 МСПС

100/250 МГц, IQ 307.2 МСПС

Сниффер

20 МГц, IQ 30.72 МСПС

без изменений

Скорость линий приёма

4.9152 Гбит/с

6.144 Гбит/с

Скорость линий передачи

2.4576 Гбит/с

6.144 Гбит/с

Число коэффициентов FIR передатчика

32

16

Частоты из Clocking Wizard

61.44 / 122.88 / 122.88 / 153.6 МГц

153.6 / 153.6 / 307.2 / 153.6 МГц

Максимальный профиль выжимает из микросхемы паспортный предел по интерфейсу в обе стороны. Заметьте, чем это оплачено: у передатчика FIR-фильтр укорочен с 32 до 16 коэффициентов, потому что на частоте 307.2 МСПС на фильтрацию остаётся вдвое меньше такта. То есть возможность компенсировать неравномерность тракта программируемым фильтром в максимальном профиле хуже.

Практический совет: начинать со штатного профиля. Он мягче к разводке носителя, требует вдвое меньшей скорости на линиях передачи и оставляет более длинный фильтр. Максимальный профиль имеет смысл, когда вам действительно нужна полоса передатчика 250 МГц или частота IQ выше 122.88 МСПС.

Проект FPGA

Модули в блок-дизайне:

IP

Роль

jesd204_phy 4.0

Физический уровень: гигабитные трансиверы, CPLL и QPLL

jesd204 7.2 × 3

Три ядра канального уровня: приём, наблюдение, передача

clk_wiz 6.0

Формирование внутренних тактовых частот из 122.88 МГц

processing_system7

Процессорная система Zynq, откуда идёт вся конфигурация

smartconnect, proc_sys_reset

Шина AXI и сбросы

system_ila

Встроенный логический анализатор

util_vector_logic

Логика сбросов и разрешений

Плюс собственные модули в src/: транспортный уровень jesd204_transport_layer.v, мост up_axi.v для доступа процессора к регистрам, axi_lite_drv.v и буферы ad_iobuf.v.

Организация та же, что у проекта платы ADRV9009, и с тем же главным ограничением:

DMA в проекте нет. Принятые отсчёты распаковываются транспортным уровнем в сигналы rx1_idata, rx1_qdata, rx2_idata, rx2_qdata — и на этом всё. Посмотреть их можно только в system_ila. Контур передачи данных в память DDR придётся делать самому либо переходить на HDL-проекты от ADI.

Для отладки линков этого достаточно: ILA показывает, поднялся ли линк, идут ли отсчёты, похожи ли они на сигнал. Для любой практической задачи — нет.

Ещё одно место, на которое стоит посмотреть, если будете переделывать проект: тактовый сигнал fpga_gc_clk, из которого Clocking Wizard делает все внутренние частоты, берётся с выхода O буфера IBUFDS_GTE2 через обычный BUFG. Штатный путь для такого — выход ODIV2, а он в проекте оставлен неподключённым. Собирается, работает, но при переносе на другое семейство FPGA это первое, что придётся переписать.

Bare-metal и Mykonos

Проект Vitis построен на официальном API Analog Devices:

Компонент

Что это

mykonos/

API Mykonos версии 1.5.1.3565 — управление AD9371

ad9528/

Драйвер генератора тактовых частот

drivers/

Слой no-OS от ADI: xilinx_spi, xilinx_gpio, аллокатор, задержки

ad9371/

Обвязка: myk.c (профиль), jesd_core.c, jesd_phy.c, rf_config.c, change_rfpll.c

src/headless.c

Точка входа

Mykonos — тот же по духу API, что Talise у ADRV9009: структуры описания устройства, функции инициализации, набор калибровок, выполняемых внутренним ARM-ядром. Кто работал с одним, разберётся во втором за вечер.

Последовательность запуска в headless.c компактная и читаемая:

  1. отключаются кэши инструкций и данных;

  2. инициализируется платформа и GPIO через EMIO;

  3. настраиваются регистры GPIO по AXI-Lite;

  4. сбрасывается и инициализируется AD9528 — с проверкой результата и осмысленным сообщением про возможную причину («REF_CLK не подключён»);

  5. поднимается запрос SYSREF;

  6. выполняется полная инициализация AD9371 вместе с тремя линками JESD204B;

  7. запрос SYSREF снимается;

  8. перестраиваются гетеродины передатчика и приёмника;

  9. задаются ослабление передатчиков и усиление приёмников;

  10. бесконечный цикл.

Пара мест, где стоит задержаться.

Гетеродины по умолчанию выставлены на 6 ГГц. В коде прямо:

uint64_t tx_freq = 6000e6;
uint64_t rx_freq = 6000e6;

Это верхняя граница диапазона микросхемы, где и коэффициент шума худший (18 дБ), и мощность передатчика минимальная (4 дБм), и подавление зеркала у передатчика падает до 50 дБ. Если вы запустите комплектный пример «как есть» и удивитесь, что ничего не слышно, — вот причина. Первое, что стоит поменять, это две строки выше.

Начальные значения усиления. Ослабление передатчиков 10 дБ (10000 в милидецибелах), усиление приёмников задано индексом 8 + 195. Индекс 195 — минимум таблицы усиления AD9371, 255 — максимум, так что 203 это почти минимальное усиление. Для приёма слабых сигналов индекс нужно поднимать к 255.

Альтернативы комплектному ПО

HDL и Linux от ADI. В репозитории analogdevicesinc/hdl есть проекты ad9371_* под ZC706 и другие носители, с полноценным контуром DMA. В analogdevicesinc/linux — драйверы в подсистеме IIO. Это тот путь, который стоит выбрать, если нужна работа с данными, а не только отладка линков. Плата к этому пригодна: микросхема, генератор тактовых частот и их частоты совпадают с оценочными платами ADI.

Одно место придётся проверить — распиновку. Официальные проекты ADI рассчитаны на распиновку оценочной платы ADRV9371-W/PCBZ, а у этого модуля она своя: перестановка линий DP, SYSREF на паре LA33, две опоры GBTCLK. Констрейнты нужно будет привести в соответствие со главой 9.

Отдельно предупреждение про GPIO: в комплектном файле констрейнтов объявлены девятнадцать линий ad9371_gpio[18:0] на парах LA12, LA15, LA16, LA18, LA19, LA20, LA21, LA22, LA29. На модуле эти линии не разведены — выводы GPIO трансивера помечены в схеме как неподключённые. Констрейнты явно унаследованы от проекта ADI для оценочной платы. Никакого вреда от этого нет, но не потратьте день на отладку GPIO, которых физически нет.

Transceiver Evaluation Software. Windows-утилита ADI, которая умеет поднимать линк, показывать спектр, менять профили и генерировать новые. Работает через ZC706 с SD-образом от ADI. Для AD9371 это самый быстрый способ увидеть спектр, не написав ни строки кода, и заодно — удобный генератор профилей: файлы, которые она создаёт, подставляются в bare-metal проект вместо myk.c.

Свой профиль. Если вам нужна полоса меньше 100 МГц (а обычно нужна — 100 МГц это много данных), профиль генерируется отдельно, и под него меняются частоты в Clocking Wizard, настройки трёх ядер JESD204B и скорости линий. Работа не разовая: изменение профиля затрагивает всю цепочку от трансивера до транспортного уровня.


Глава 11. Запуск и подводные камни

Порядок действий и типовые ошибки. Часть граблей совпадает с платой ADRV9009 — там они разобраны в главе 12, здесь я их повторяю кратко и добавляю специфичные для этой платы.

До подачи питания

Проверьте VADJ на носителе. Единственная ошибка, которая гарантированно убивает плату. Допустимо 1.8 или 2.5 В, 3.3 В попадает прямо на вывод VDD_IF трансивера. На ZC706 напряжение задаётся перемычками J17/J18/J19 и по умолчанию с завода стоит правильное значение — но проверить нужно вольтметром на контактах разъёма до установки модуля.

Проверьте, что носитель разводит обе пары GBTCLK. Комплектный проект использует и GBTCLK0_M2C, и GBTCLK1_M2C. Смотрите схему носителя: обе пары должны идти на входы MGTREFCLK.

Проверьте, что носитель подаёт 12 В на FMC. Внешнего входа питания на модуле нет.

Осмотрите плату. Установлены ли балуны на позициях T4/T5 (наблюдательные входы)? По схеме они должны быть, но ревизии клонов различаются. Заодно посмотрите на позиции C101, C105, C108, C112 — конденсаторы по 18 пФ в плечах приёмных пар, о которых речь в главе 4.

Не подключайте антенну напрямую. Максимальный полезный уровень на входе приёмника −14 дБм, у наблюдательного −13 дБм. В городе рядом с базовой станцией этот уровень набирается легко. Аттенюатор или фильтр перед платой обязателен.

Порядок запуска

  1. Установите модуль на носитель, затяните крепёж. Разъём FMC на 400 выводов требует ровной посадки: перекос даёт неконтакт отдельных пар, и потом это ищется долго.

  2. Подайте питание, убедитесь, что светодиод питания на модуле горит.

  3. Проверьте на выводах DEV_CLK_IN наличие 122.88 МГц — они появляются до всякой настройки, AD9528 пропускает VCXO на выходы 12 и 13 сразу после подачи питания. Нет частоты — ищите рельсы 3V3_CLK и 3V3_VCO, а не ошибку в SPI.

  4. Загрузите битстрим и запустите bare-metal приложение.

  5. В консоли должно появиться AD9528_initialize successful!. Если вместо этого предупреждение про REF_CLK — см. ниже.

  6. Затем FMC_AD9371 config successful! — значит прошли инициализация трансивера и подъём трёх линков JESD204B.

  7. Смените частоты гетеродинов: в комплектном примере они стоят на 6 ГГц.

  8. Поднимите усиление приёмников: индекс по умолчанию 203 из диапазона 195…255, то есть почти минимум.

  9. Смотрите отсчёты в system_ila.

Грабли

VADJ 3.3 В

Симптом. Плата больше не работает никогда.

Причина. VADJ идёт напрямую на VDD_IF, допустимый максимум 2.625 В.

Решение. Только профилактика. Мерить до установки.

Носитель не включает VADJ

Симптом. Модуль полностью мёртв, светодиод питания не горит либо горит, но по SPI никто не отвечает.

Причина. Носители на FPGA семейства UltraScale перед включением VADJ читают IPMI-запись из EEPROM модуля. Если EEPROM не прошита, питание интерфейса не включается.

Решение. Прошить EEPROM корректной записью либо перевести носитель в режим, где VADJ задаётся вручную. На платах Zynq-7000 вроде ZC706 проблема не возникает: там напряжение просто подаётся по настройке.

Предупреждение про REF_CLK при инициализации AD9528

Симптом. В консоли WARNING: AD9528_initialize() issues. Possible cause: REF_CLK not connected.

Причина. PLL1 не захватился. Либо на JP1 ничего не подано, либо подана не та частота: комплектный код настроен на опору 30.72 МГц.

Решение. Либо подать 30.72 МГц, либо пересчитать делители PLL1 под свою опору, либо сознательно работать без внешней опоры. Важно: в последнем случае генератор останется в режиме удержания и тактовые частоты будут, но их точность определяется только VCXO (±40 ппм), а детерминированная задержка JESD204B станет неповторяемой между запусками.

Линк поднимается, но данные — мусор в каналах

Симптом. Ядра JESD204B сообщают о синхронизации, счётчики ошибок молчат, но отсчёты не похожи на сигнал или каналы перепутаны.

Причина. Перестановка линий DP между трансивером и разъёмом, разобранная в главе 7. Кроссбары фреймеров и деформера в профиле настроены под неё; если вы писали свой проект или меняли констрейнты, соответствие могло сломаться.

Решение. Сверить таблицу линий из главы 9 с констрейнтами и значениями кроссбаров в профиле.

Линк на максимальном профиле нестабилен

Симптом. На штатном профиле всё работает, на максимальном линк то поднимается, то нет, счётчики ошибок растут.

Причина. 6.144 Гбит/с — предел микросхемы и заметная нагрузка на тракт: разъём FMC, переходные отверстия, качество опоры.

Решение. Начните со штатного профиля и убедитесь, что всё работает на 4.9152 и 2.4576 Гбит/с. Если максимальный профиль нужен, проверьте настройки эквалайзера десериализатора (в профиле стоит значение 1 из диапазона 0…4), амплитуду сериализатора (22 из 31) и предэмфазис (4 из 7) — эти три параметра и предназначены для подгонки под конкретный тракт.

Детерминированная задержка не повторяется

Симптом. Линки поднимаются, данные идут, но задержка от запуска к запуску меняется.

Причина. Проблемы с SYSREF. На этой плате он выведен на пару LA33, которая не относится к тактовым, поэтому его защёлкивание целиком зависит от ваших констрейнтов. Второй возможный источник — конфликт согласования: у AD9371 есть внутреннее согласование 100 Ом на входах LVDS, и если в констрейнтах FPGA дополнительно включён DIFF_TERM, амплитуда падает вдвое.

Решение. Проверить временные соотношения SYSREF относительно тактовой частоты ядра, проверить порядок подачи SYSREF (в комплектном коде запрос поднимается до инициализации и снимается после — этот порядок нужно сохранять), при подозрении на амплитуду посмотреть сигнал осциллографом.

Наблюдательный приёмник молчит

Симптом. ORX сконфигурирован, но данных нет.

Причина. В отличие от платы ADRV9009, балуны здесь по схеме установлены, так что дело скорее в другом: наблюдательный приёмник по умолчанию выключен. В профиле стоит OBS_RXOFF — канал, в который трансивер входит при включении радио.

Решение. Явно выбрать канал наблюдения функциями API после включения радио.

Сниффер выдаёт шум

Симптом. Переключились на приёмник-сниффер, получили шум.

Причина. Все три его входа на плате заземлены, см. главу 4. При этом в профиле он полностью сконфигурирован, так что программно всё выглядит рабочим.

Решение. Отсутствует. Сниффер на этой плате недоступен.

GPIO не работают

Симптом. Пытаетесь управлять внешним устройством через ad9371_gpio — ничего не происходит.

Причина. Девятнадцать низковольтных и двенадцать трёхвольтовых GPIO трансивера на модуле не разведены. Констрейнты, которые их объявляют, унаследованы от проекта ADI для оценочной платы.

Решение. Взять управление на FPGA, использовав свободные пары LA разъёма.

Слабый сигнал на приёме

Симптом. Сигнал есть, но уровень ниже ожидаемого на несколько децибел.

Причина. Складываются три вещи: коэффициент шума микросхемы 12–18 дБ, рассогласование 50/200 Ом на входе (около 1.9 дБ) и потери в балуне (1–1.7 дБ). Плюс, возможно, низкий индекс усиления.

Решение. Поднять индекс усиления к 255, поставить внешний МШУ. Если нужен один узкий диапазон — заменить балун на трансформатор 50 → 200 Ом, см. главу 4.

Плата греется

Симптом. Корпус трансивера горячий, характеристики плывут со временем.

Причина. До 4.9 Вт в корпусе 12 × 12 мм.

Решение. Обдув. Плюс: увеличить ослабление передатчика, если полная мощность не нужна (разница между 0 и 15 дБ ослабления — почти 0.6 Вт), и опрашивать встроенный датчик температуры, который работает несмотря на заземлённые внешние входы вспомогательного АЦП.

Нужны частоты ниже 300 МГц

Симптом. Гетеродин не настраивается ниже 300 МГц.

Причина. Это граница диапазона AD9371.

Решение. Отсутствует. Никакая перепайка не поможет — нужна другая микросхема. Если задача лежит в УКВ-диапазонах, смотрите на плату с ADRV9009, у которой нижняя граница 75 МГц.


Глава 12. Итоги и выбор

Что это в итоге

FMC_AD9371 — аккуратно воспроизведённая копия широкополосной оценочной платы Analog Devices на трансивере AD9371, сделанная тем же разработчиком и по тому же шаблону, что FMC_ADRV9009. Схема повторяет референсный дизайн покомпонентно, следует рекомендациям даташита и содержит осмысленные инженерные решения. Грубых ошибок в ней нет.

Сильные стороны

Схемотехника без ошибок и с улучшениями. Все рельсы попадают в допуски даташита с запасом, номиналы входных цепей выбраны под фактический диапазон микросхемы, развязка питания сделана лучше, чем на плате-сестре: тринадцать ферритовых бусин на питающих доменах трансивера вместо резисторов 0 Ом. Для микросхемы, где отдельные домены выведены как раз под VCO и синтезаторы, это правильное решение.

Наблюдательные входы работают из коробки. Балуны T4/T5 установлены, а не помечены как опциональные. Одной из главных ловушек платы ADRV9009 здесь нет.

Явная развязка по постоянному току на дифференциальной стороне приёмников. Конденсаторы в плечах закрывают то, чего балун на линиях передачи не делает, и на нижней границе диапазона (300 МГц) стоят всего 0.7 дБ.

Два входа внешнего гетеродина. Отдельно для приёмного и передающего тракта, оба двунаправленные. Балун HHM1595A1 для AD9371 подобран удачно: его 3–8 ГГц ровно соответствуют пределу входа микросхемы с учётом требования удвоенной частоты.

Комплект ПО богаче. Два носителя (ZC706 и RK 7100), два готовых профиля, готовый BOOT.bin, API Mykonos 1.5.1.3565, три работающих линка JESD204B. Наличие проекта под ZC706 — эталонный носитель ADI — заметно упрощает жизнь.

Совместимость с инфраструктурой ADI. HDL-проекты, драйверы IIO, утилита Transceiver Evaluation Software, генератор профилей — всё применимо, с поправкой на распиновку.

Слабые стороны

Сниффер заземлён. Самое обидное. Четвёртый приёмный тракт с коэффициентом шума 5 дБ, регулировкой 52 дБ и подавлением зеркала 75 дБ — единственное, чем AD9371 объективно превосходит ADRV9009, — на этой плате недоступен. Три дифференциальных входа посажены на землю под корпусом BGA, исправить нельзя.

Согласование приёмного тракта. Вход 200 Ом, балун 1:1 — около 1.9 дБ неустранимых потерь против 0.5 дБ у платы ADRV9009. Вместе с потерями балуна входная цепь съедает около 3 дБ в середине диапазона и около 4 дБ на нижнем краю.

Требуются обе опоры GBTCLK. Комплектный проект использует и GBTCLK0_M2C, и GBTCLK1_M2C. Носителей, где разведены обе пары, меньше, чем тех, где разведена одна.

Питание только от FMC. Колодки внешних 12 В, которая есть на плате-сестре, здесь нет. Если носитель не выдаёт 12 В по разъёму, остаётся только паяльник.

SYSREF на паре, не относящейся к тактовым. LA33 вместо LA00_CC. Работать будет, но временные соотношения придётся закрывать констрейнтами, а не выделенными тактовыми ресурсами.

Нет GPIO, нет вспомогательного АЦП, нет SPI-флеш. Девятнадцать низковольтных и двенадцать трёхвольтовых GPIO не разведены, четыре входа вспомогательного АЦП заземлены, микросхемы флеш-памяти нет вообще. Управлять внешним усилителем и мерить его температуру придётся средствами FPGA.

В комплектном проекте нет DMA. Отсчёты видны только в ILA. Для отладки линков достаточно, для работы с данными — нет.

Диапазон снизу ограничен 300 МГц. Ограничение микросхемы, не платы. Ниже — только другая плата.

Сравнение с FMC_ADRV9009

Критерий

FMC_AD9371

FMC_ADRV9009

Диапазон перестройки

300 … 6000 МГц

75 … 6000 МГц

Полоса приёмника

100 МГц

200 МГц

Полоса передатчика (синтез)

250 МГц

450 МГц

Приёмник-сниффер в микросхеме

есть

нет

Приёмник-сниффер доступен на плате

нет

Согласование входа приёмника

200 Ом, потери ≈ 1.9 дБ

100 Ом, потери ≈ 0.5 дБ

Наблюдательные входы

балуны установлены

балуны опциональны

Развязка по постоянному току у приёмника

конденсаторы в плечах

только со стороны кабеля

Входов внешнего гетеродина

два

один

Развязка питающих доменов

13 ферритов

резисторы 0 Ом

Скорость JESD204B на линию

6.144 Гбит/с

12.288 Гбит/с

Линков JESD204B

три

два

SYSREF на разъёме

пара LA33

пара LA00_CC

Опор GT от модуля

две (обе нужны)

одна

Внешнее питание 12 В

нет

колодка JP8

SPI-флеш на модуле

нет

есть

Комплектных носителей

два (ZC706, RK 7100)

один (RK 7100)

Комплектных профилей

два

один

DMA в комплектном проекте

нет

нет

Ловушка с VADJ 3.3 В

есть

есть

Ловушка с IPMI EEPROM

есть

есть

Итог сравнения простой: микросхема лучше у ADRV9009, плата аккуратнее у AD9371. Схемотехнических улучшений на плате AD9371 больше, но они не компенсируют разницу в характеристиках самой микросхемы.

Какую брать

Берите AD9371, если:

  • рабочие частоты выше 300 МГц и полосы 100 МГц достаточно;

  • нужен носитель ZC706 и путь по официальной документации ADI с минимумом сюрпризов;

  • вы изучаете JESD204B: три линка с разными параметрами — лучший учебный материал;

  • разница в цене существенна.

Берите ADRV9009, если:

  • нужны частоты ниже 300 МГц: УКВ, авиационная связь, любительские диапазоны;

  • нужна полоса больше 100 МГц;

  • нужна возможность питать модуль отдельно от носителя;

  • нужен запас по скорости интерфейса.

Не берите ни ту, ни другую, если вам нужен готовый SDR. Ни одна из них не работает без носителя, FPGA-проекта и вашего кода, а объём работы до первого полезного результата измеряется неделями.

Что бы я поправил в следующей ревизии

Список короткий, и он не про ошибки, а про упущенные возможности.

Вывести сниффер. Хотя бы один из трёх входов, хотя бы на площадку под коаксиал. Это дало бы плате уникальную способность, которой нет ни у ADRV9009, ни у большинства аналогов: чувствительный узкополосный приёмник с коэффициентом шума 5 дБ рядом с широкополосным трактом.

Поставить балун 1:4 на приёмные входы или хотя бы предусмотреть согласующее звено. Полтора-два децибела на входе приёмника — это ровно та величина, за которую в других местах платят внешним МШУ.

Перенести SYSREF на пару LA00_CC. Ничего не стоит при разводке и снимает вопросы с временными соотношениями.

Вернуть колодку внешнего питания. На плате-сестре она есть, и это реально выручает с носителями, которые не дают 12 В по FMC.

Вывести хотя бы часть GPIO и один канал вспомогательного АЦП. Пара контактных площадок дала бы возможность управлять внешним усилителем и мерить его температуру.

Обойтись одной опорой GBTCLK в комплектном проекте. Вторая опора действительно расширяет возможности, но использовать её как обязательную в примере — значит без нужды сузить список пригодных носителей. Достаточно было взять тактовую частоту для цифровой части из выхода GT-трансивера.

Общий вывод

Плата делает то, для чего предназначена: даёт реальные отсчёты с эфира и возможность что-то излучить, чтобы разрабатывать цифровую часть, пока своё железо не готово. В этой роли она хороша, а комплект ПО с двумя носителями и двумя профилями делает старт легче, чем у платы-сестры.

Но два ограничения нужно принять заранее и не рассчитывать их обойти: ниже 300 МГц эта плата не работает, а сниффера на ней нет. Если ни то, ни другое вам не мешает — это разумная покупка.


Размещайте облачную инфраструктуру и масштабируйте сервисы с надежным облачным провайдером Beget.
Эксклюзивно для читателей Хабра мы даем бонус 10% при первом пополнении.

Воспользоваться

Комментарии (0)