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

Если читать некогда
Схемотехнически это та же плата с другой микросхемой. Балуны
TCM1-83X-1+, генераторAD9528, VCXO 122.88 МГц, преобразовательADP5054, четыре рельса с теми же делителями — всё повторено один в один.AD9371 слабее ADRV9009 по всем цифровым параметрам. Диапазон от 300 МГц вместо 75 МГц, полоса приёмника 100 МГц вместо 200, JESD204B до 6.144 Гбит/с вместо 12.288. Это принципиальные ограничения микросхемы, а не платы.
Зато у AD9371 есть то, чего нет у ADRV9009: приёмник-сниффер. Отдельный тракт с коэффициентом шума 5 дБ и диапазоном регулировки 52 дБ. На этой плате он заземлён и недоступен — самая обидная потеря, см. главу 4.
Входное сопротивление приёмника 200 Ом, а балун стоит 1:1. Это даёт около 1.9 дБ неустранимых потерь на рассогласовании против 0.5 дБ у ADRV9009. Плюс на дифференциальной стороне добавлены ещё два конденсатора по 18 пФ, которые поднимают нижнюю границу полосы.
Два отдельных входа внешнего гетеродина — для приёмника и для передатчика, каждый со своим балуном. У ADRV9009 такой вход один.
Наблюдательные входы ORX работают из коробки. Их балуны установлены, а не помечены как опциональные, как это сделано на плате ADRV9009.
Модуль отдаёт на носитель две опорные частоты для GT-трансиверов — на
GBTCLK0_M2CиGBTCLK1_M2C, и комплектный проект использует обе. Требование к носителю получается жёстче, см. главу 9.Питание только от FMC. Колодки под внешние 12 В, которая есть на плате ADRV9009, здесь нет.
Комплектного ПО больше, и оно лучше. Два готовых профиля (штатный 122.88 МСПС и «на максимум» с 6.144 Гбит/с на линию), два носителя (ZC706 и RK 7100), API Mykonos 1.5.1.3565. DMA по-прежнему нет: данные видно только в ILA.
Оглавление
Что это за модуль. Позиционирование, родство с платой ADRV9009 и с оценочными платами ADI
AD9371 против ADRV9009. Характеристики двух микросхем рядом и что из этого следует
Архитектура платы. Блок-схема, состав компонентов, карта листов, отличия от платы-сестры
Приёмные тракты RX, ORX и сниффер. Согласование на 200 Ом, лишние конденсаторы, заземлённый SnRx
Передающий тракт и внешний гетеродин. Bias-tee, фильтр, два входа внешнего LO и требование ×2
Тактирование. AD9528 с пятью выходами, вторая опора для FPGA, SYSREF
Цифровой интерфейс. Три линка JESD204B, расчёт скоростей, SPI, неразведённые GPIO
Питание. ADP5054, те же рельсы, больше доменов и ферритов, бюджет мощности
FMC-интерфейс. Распиновка, две опоры GT, VADJ, EEPROM
Носители и комплектное ПО. ZC706 и RK 7100, Mykonos, два профиля, что умеет проект FPGA
Запуск и подводные камни. Чек-лист и грабли, специфичные именно для этой платы
Итоги и выбор. Сводное сравнение и ответ на вопрос, какую из двух плат брать
На чём основан обзор
Схема —
FMC_AD9371_V1.pdf, 7 листов, Altium, дата в штампе 07.11.2024.Проекты для ZC706 —
ZC706例程: два варианта,采样率122.88M(штатный профиль) и跑满AD9371采样率(максимальная частота дискретизации), каждый из FPGA-проекта Vivado и bare-metal проекта Vitis.Проект для RIGUKE 7100 —
RK_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 |
Названия листов |
|
те же |
САПР |
Altium Designer |
Altium Designer |
Дата в штампе |
07.11.2024 |
07.09.2025 |
Генератор тактовых |
AD9528 + VCXO |
то же |
Преобразователь |
|
то же |
Балуны ВЧ |
6 × |
6 × |
Балун опоры |
|
то же |
Трансляторы уровней |
|
те же |
EEPROM |
|
|
Совпадают даже позиционные обозначения: конденсатор развязки на входе RX1 в обеих схемах называется C102 и в обеих имеет номинал 18 пФ, дроссели bias-tee в передатчике — L7…L10 по 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 |
|
Вход внешней опорной частоты |
SMA |
|
Входы приёмников RX1, RX2 |
SMA |
|
Входы наблюдательных приёмников ORX1, ORX2 |
SMA |
|
Выходы передатчиков TX1, TX2 |
Площадка GND–SIG–GND |
|
Внешний гетеродин приёмного тракта |
Площадка GND–SIG–GND |
|
Внешний гетеродин передающего тракта |
Разъём FMC HPC |
|
Всё остальное: данные, тактирование, управление, питание |
Семь 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 — вплоть до того, что листы схемы называются одинаково.

Состав компонентов
Обозначение |
Компонент |
Функция |
|---|---|---|
|
Разъём FMC HPC, 400 выводов |
Связь с носителем |
|
AD9371BBCZ, BGA 196, 12 × 12 мм |
Трансивер |
— |
AD9528, LFCSP 72 |
Генератор тактовых частот с двумя PLL |
|
|
VCXO 122.88 МГц, джиттер 75 фс |
|
|
Балун входа опорной частоты, 4.5–3000 МГц |
|
|
Балуны входов RX1, RX2 |
|
|
Балуны входов ORX1, ORX2 — установлены |
|
|
Балуны выходов TX1, TX2 |
|
|
Балуны входов внешнего гетеродина RX и TX, 3–8 ГГц |
|
|
Четырёхканальный понижающий преобразователь |
|
|
Внешние транзисторы для каналов 1 и 2 преобразователя |
|
|
Буфер индикации состояния AD9528 |
|
|
Мультиплексор линии |
|
|
Одноканальный транслятор уровней для сброса AD9528 |
|
|
Четырёхканальный транслятор уровней для SPI |
|
|
EEPROM 2 Кбит для IPMI-записи FMC |
|
Ферриты 42 Ом и 30 Ом |
Развязка рельсов |
|
43 нГн |
Дроссели bias-tee выходов передатчиков |
|
Ферриты 30 Ом (9 шт.) и 47 Ом (4 шт.) |
Развязка питающих доменов трансивера |
|
Предохранитель 2 А |
Защита по входу 12 В |
|
|
Защита от обратной полярности |
|
SMA |
Опора, RX1, RX2, ORX1, ORX2, TX1, TX2 |
|
Площадка GND–SIG–GND |
Внешний гетеродин RX и TX |
Того, что было на плате ADRV9009, здесь недостаёт в двух местах: нет SPI-флеш S25FL208K и нет колодки внешнего питания JP8. Зато добавились второй балун внешнего гетеродина и тринадцать ферритов на питающих доменах трансивера.
Карта листов схемы
Лист |
Название |
Содержание |
Где разобрано |
|---|---|---|---|
1 |
|
Входы RX1, RX2, ORX1, ORX2: балуны и согласование |
Глава 4 |
2 |
|
ВЧ-выводы трансивера, выходы TX, два входа внешнего гетеродина |
Глава 5 |
3 |
|
AD9528, VCXO, вход опоры, SYSREF, трансляторы уровней, индикация |
Глава 6 |
4 |
|
Линии JESD204B, SYNC, SPI, тактовый вход, GPIO, вспомогательный АЦП |
Глава 7 |
5 |
|
Разводка питающих выводов трансивера, ферриты, развязка |
Глава 8 |
6 |
|
ADP5054, делители обратной связи, фильтрация, вход 12 В |
Глава 8 |
7 |
|
Разъём FMC, EEPROM, развязка линий JESD204B |
Глава 9 |
Как ходит сигнал
Приём. SMA JP2 → C102 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 → четыре линии SERDIN0…SERDIN3 → деформер, интерполяция, коррекция квадратуры, ЦАП, смеситель, аттенюатор 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 |
|
перемычки 0 Ом |
Глава 4 |
Входы наблюдательного приёмника |
балуны установлены |
балуны помечены |
Глава 4 |
Приёмник-сниффер |
три входа заземлены |
в микросхеме отсутствует |
Глава 4 |
Внешний гетеродин |
два входа со своими балунами |
один вход |
Глава 5 |
Задействованных выходов AD9528 |
пять |
четыре |
Глава 6 |
Опор для GT-трансиверов на FMC |
две ( |
одна |
Глава 6, 9 |
Пар SYNC на разъёме |
три |
две |
7 |
SPI-флеш |
нет |
|
7 |
Развязка питающих доменов трансивера |
13 ферритов |
резисторы 0 Ом |
8 |
Внешнее питание 12 В |
нет |
колодка |
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 |
|
|
Вход сигнала |
Разделительный конденсатор |
|
|
Отсекает постоянную составляющую со стороны кабеля |
Балун |
|
|
Несимметричный вход → симметричный выход, 1:1 |
Ёмкость на «холодном» конце первичной обмотки |
|
|
Заземление второго вывода первички по переменному току |
Конденсатор поперёк вторичной обмотки |
|
|
Посадочное место под подстройку согласования |
Разделительные конденсаторы в плечах |
|
|
Развязка по постоянному току на дифференциальной стороне |
Конденсатор поперёк дифференциальной пары |
|
|
Второе посадочное место под подстройку |
Топология первичной стороны та же, что на плате ADRV9009: сигнал приходит на вывод 3 (PRIMARY_DOT), вывод 2 (PRIMARY) сажается на землю через C106 ∥ C107 — суммарно 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 пФ, C106 ∥ C107 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 |
|
|
Разделительный конденсатор |
|
|
Балун |
|
|
Ёмкость на «холодном» конце |
|
|
Перемычки в плечах |
|
|
Посадочные места без установки |
|
|
Два отличия от приёмного тракта, оба в лучшую сторону.
Балуны установлены. В схеме они обозначены просто 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 |
|
|
Подтягивают выводы к рельсу 1.8 В |
Развязка рельса |
|
|
Земля по переменному току для дросселей |
Разделительный конденсатор |
|
|
Отсекает постоянную составляющую |
Балун |
|
|
Симметричный вход → несимметричный выход |
Фильтр |
|
|
Широкополосное заземление «холодного» конца |
Посадочное место |
|
|
Подстройка согласования |
Разъём SMA |
|
|
Выход |
Это в точности та же цепь, что на плате 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, которое видно даже снаружи: здесь два независимых входа внешнего гетеродина.
Тракт |
Площадка |
Балун |
Конденсаторы |
Выводы трансивера |
|---|---|---|---|---|
Гетеродин приёмника |
|
|
|
|
Гетеродин передатчика |
|
|
|
|
Блоки на схеме подписаны 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 |
Куда идёт |
Назначение |
|---|---|---|---|
|
25, 26 |
|
Тактовая частота AD9371, 122.88 МГц |
|
28, 29 |
|
SYSREF для трансивера |
|
64, 65 |
|
Опора для GT-трансиверов FPGA |
|
61, 62 |
|
Вторая опора для FPGA |
|
58, 59 |
|
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 МГц |
Маркировка |
Опора PLL1 |
30.72 МГц |
|
Умножение в PLL2 |
× 30 |
|
Частота VCO PLL2 |
3686.4 МГц |
122.88 × 30 |
Делитель VCO |
÷ 3 → 1228.8 МГц |
|
Канальные делители |
÷ 10 → 122.88 МГц |
|
Обратите внимание на опору 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 |
Делитель быстрого такта |
Результат |
|---|---|---|---|---|
Штатный, |
9830.4 МГц (× 80) |
÷ 2 |
÷ 4 |
1228.8 МГц |
Максимальный, |
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 JP1 → C39 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 нФ (C58…C76) на рельсе 3V3_CLK — по одному на каждый вывод питания AD9528 с запасом.

Глава 7. Цифровой интерфейс: JESD204B, SPI, GPIO
Лист схемы: JESD_INTERFACE_GPIO.
Это самая интересная глава с точки зрения отличий от платы ADRV9009: у AD9371 не два линка JESD204B, а три, и все три на этой плате разведены.
Линии данных
Направление |
Выводы трансивера |
Цепи |
|---|---|---|
К FPGA (сериализатор) |
P6/P7, P4/P5, N5/N6, N3/N4 |
|
От FPGA (десериализатор) |
P11/P12, P13/P14, N10/N11, N12/N13 |
|
Четыре линии в каждую сторону — как у ADRV9009. Разница в потолке скорости: 6.144 Гбит/с против 12.288.
Три линка вместо двух
У ADRV9009 на плате два линка: один на передачу (деформер) и один на приём, куда сведены и основной, и наблюдательный приёмники. У AD9371 фреймеров два независимых, и каждому нужна своя линия синхронизации:
Линк |
Сторона |
Каналов (M) |
Линий (L) |
Октетов на кадр (F) |
Кадров в мультикадре (K) |
Линии |
|---|---|---|---|---|---|---|
Приём ( |
трансивер → FPGA |
4 |
2 |
4 |
32 |
0 и 1 ( |
Наблюдение ( |
трансивер → FPGA |
2 |
2 |
2 |
32 |
2 и 3 ( |
Передача ( |
FPGA → трансивер |
4 |
4 |
2 |
32 |
все четыре ( |
Значения взяты из профиля myk.c и из инициализации ядер в headless.c — и там они совпадают, что приятно: параметры F в двух местах согласованы, хотя ошибиться легко.
Соответственно на разъём FMC выведены три пары синхронизации вместо двух:
Сигнал трансивера |
Выводы |
Направление |
Пара FMC |
Что синхронизирует |
|---|---|---|---|---|
|
M13, M14 |
трансивер → FPGA |
|
Линк передачи: устройство сообщает FPGA о состоянии деформера |
|
M3, M4 |
FPGA → трансивер |
|
Линк приёма |
|
L3, L4 |
FPGA → трансивер |
|
Линк наблюдения |
Наблюдательный фреймер настроен на использование собственного входа синхронизации (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 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Так делают ради разводки: перестановка линий позволяет вести дифференциальные пары без переходов между слоями и без лишних изгибов. Компенсируется это программно, кроссбарами в фреймерах и деформере — в профиле стоят значения 0x08, 0x40 и 0xE4. Если вы пишете свой проект FPGA, эту таблицу нужно учитывать в первую очередь: перепутанные линии дают линк, который вроде бы поднимается, но выдаёт мусор в каналах.
Тактовый вход трансивера
DEV_CLK_IN± на выводах E7/E8, развязка C99/C100 по 0.1 мкФ, между цепями до конденсаторов — резистор R73 100 Ом.
Тонкость размещения та же, что на плате ADRV9009: согласующий резистор стоит до развязывающих конденсаторов, со стороны генератора, а не у приёмника. Классическая практика — наоборот. При длине линии в несколько сантиметров это несущественно, тем более что у AD9371 есть внутреннее согласование, но знать стоит.
SPI и управление

Обе микросхемы на плате висят на одной шине SPI с раздельными сигналами выбора:
Сигнал |
Выводы AD9371 |
Пара FMC |
Примечание |
|---|---|---|---|
|
K9 ( |
|
Общий для AD9371 и AD9528 |
|
J9 ( |
|
Общий |
|
J10 ( |
|
Через мультиплексор |
|
K10 ( |
|
Выбор AD9371 |
|
— |
|
Выбор AD9528 |
|
J4 |
|
Подтяжка |
|
J5 |
|
Прерывание от трансивера |
|
J6 |
|
Резистор |
|
M6 |
|
Подтяжка 10 кОм к земле |
|
M5 |
|
То же |
|
M8 |
|
То же |
|
M7 |
|
То же |
|
— |
|
Сброс AD9528 через транслятор |
|
— |
|
Запрос SYSREF |
Линии выбора двух микросхем разведены на одну пару LA09 — экономно и удобно. Обратите внимание, что уровни у двух микросхем разные: AD9371 работает от VDD_IF (то есть от VADJ), а AD9528 — от 3.3 В. Именно поэтому на плате стоят трансляторы ADG3304 (четыре канала SPI) и ADG3301 (сброс), а линии SDO двух микросхем сводятся в одну мультиплексором NC7WZ16P6X.

Все четыре линии разрешения каналов подтянуты к земле резисторами по 10 кОм. Это правильно: пока FPGA не сконфигурирована, её выводы находятся в высокоимпедансном состоянии, и без подтяжки трансивер мог бы получить случайное разрешение передачи.
Вывод RBIAS (C14) задаёт внутренний ток смещения резистором R80 14.3 кОм на землю — номинал из даташита, менять его нельзя.
Чего на плате нет
Здесь всё так же грустно, как на плате-сестре, и по тем же причинам.
Девятнадцать низковольтных GPIO не разведены. Выводы GPIO_0…GPIO_18 на схеме помечены как неподключённые. Это значит, что все функции, требующие цифровых линий трансивера — сигналы подтверждения включения каналов, пиновый режим управления наблюдательным приёмником, внешние триггеры — недоступны. Управление возможно только командами ARM-ядра через SPI.
Двенадцать трёхвольтовых GPIO не разведены. Выводы GPIO_3P3_0…GPIO_3P3_11 тоже помечены крестиками. Из практичного здесь теряется управление внешними коммутаторами: например, штатный механизм измерения КСВ в этом семействе микросхем предполагает переключение направленного ответвителя именно этими выводами.
Вспомогательный АЦП заземлён. Все четыре входа AUXADC_0…AUXADC_3 соединены вместе и посажены на AGND. Измерять внешние напряжения (например, температуру усилителя мощности) через них нельзя.
Важная оговорка: встроенный датчик температуры трансивера при этом работает. Он использует тот же блок вспомогательного АЦП, но внутренний канал, и заземление внешних входов ему не мешает. В комплектном профиле датчик сконфигурирован, и опрашивать его в своём ПО можно и нужно.
Нет SPI-флеш. На плате ADRV9009 стоял S25FL208K, здесь такой микросхемы нет вообще. Хранить на модуле профили, коэффициенты калибровок или серийный номер негде — всё это придётся держать на носителе.
Глава 8. Питание
Листы схемы: POWER_SUPPLY и POWER_DUT_CONNECTIONS .
Преобразователь, его настройка и расчёт делителей повторяют плату ADRV9009 полностью — вплоть до номиналов резисторов. Как работает ADP5054, зачем внешние транзисторы на первых двух каналах и почему выбрана частота коммутации около 850 кГц, разобрано в главе 8 обзора той платы. Здесь — рельсы, расчёт и то, что отличается.

Четыре рельса
IC1 — ADP5054ACPZ-R7, четырёхканальный понижающий преобразователь. Каналы 1 и 2 работают как контроллеры с внешними транзисторами (сборка Q1 IRF7313PBF), каналы 3 и 4 полностью интегрированные.
Напряжение обратной связи у всех каналов 0.8 В, отсюда расчёт:
Канал |
Делитель |
Расчёт |
Рельс |
Кому |
|---|---|---|---|---|
1 |
|
0.8 × (1 + 6.24/10) = 1.299 В |
|
Аналоговые домены трансивера |
2 |
|
0.8 × (1 + 6.24/10) = 1.299 В |
|
Цифровое ядро, сериализаторы |
3 |
|
0.8 × (1 + 74/24) = 3.267 В |
|
3.3 В трансивера, AD9528, VCXO |
4 |
|
0.8 × (1 + 12.5/10) = 1.800 В |
|
Аналоговая часть 1.8 В, смещение выходов TX |
Сверим с требованиями AD9371 по даташиту:
Рельс микросхемы |
Допуск |
Что подано |
|---|---|---|
|
1.267 … 1.33 В |
1.299 В ✓ |
|
1.267 … 1.33 В |
1.299 В ✓ |
|
1.14 … 1.365 В |
1.299 В ✓ |
|
1.71 … 1.89 В |
1.800 В ✓ |
|
3.135 … 3.465 В |
3.267 В ✓ |
|
1.71 … 2.625 В |
напрямую с |
Разрешения каналов заданы делителями 12 кОм / 51 кОм от входных 12 В — то же решение, что на плате-сестре: каналы включаются, когда входное напряжение поднялось достаточно высоко.
Дроссели: два XFL4020-102ME (1.0 мкГн) и два XFL4020-332ME (3.3 мкГн) — набор в точности как на плате ADRV9009.
Фильтрация на выходе каждого канала выполнена только объёмными ёмкостями, керамики мелких номиналов здесь нет — она стоит дальше, у выводов трансивера:
Рельс |
Конденсаторы |
|---|---|
|
|
|
|
|
|
|
|
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 Ом (L11…L23), и у каждой на выходе своя пара конденсаторов 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 |
Выводы |
Цепь платы |
Линия трансивера |
Развязка |
|---|---|---|---|---|
|
C6, C7 |
|
|
100 нФ |
|
A2, A3 |
|
|
100 нФ |
|
A6, A7 |
|
|
100 нФ |
|
A10, A11 |
|
|
100 нФ |
|
C2, C3 |
|
|
100 нФ |
|
A22, A23 |
|
|
100 нФ |
|
A26, A27 |
|
|
100 нФ |
|
A30, A31 |
|
|
100 нФ |
Каждая линия развязана по постоянному току конденсатором 100 нФ (C79…C98), установленным рядом с разъёмом. Размещение у края линии, а не в середине, правильно с точки зрения целостности сигнала.
Перестановка линий относительно нумерации трансивера разобрана в главе 7 — компенсируется программно, кроссбарами фреймеров.
Две опоры для гигабитных трансиверов
Вот главное отличие от платы ADRV9009 с точки зрения требований к носителю.
Пара FMC |
Выводы |
Цепь платы |
Источник |
Развязка |
Как используется в комплектном проекте |
|---|---|---|---|---|---|
|
D4, D5 |
|
AD9528 |
10 нФ ( |
Опора QPLL и вход модуля |
|
B20, B21 |
|
AD9528 |
10 нФ ( |
Опора CPLL |
Обе пары несут 122.88 МГц, и обе задействованы. Требование к носителю получается двойным:
GBTCLK1_M2Cдолжна быть разведена наMGTREFCLKквада, к которому подключены линииDP. Без этого не заработают CPLL гигабитных трансиверов.GBTCLK0_M2Cдолжна быть разведена наMGTREFCLKтого же или соседнего квада — она нужна и как опора QPLL, и как источник тактовой частоты для цифровой части.
Стандарт VITA 57.1 обе пары на разъёме HPC предусматривает, но разводят их не все носители: часто заводят только GBTCLK0, а вторую оставляют неподключённой. На плате ADRV9009 хватало одной пары, здесь нужны обе — и это стоит проверить по документации носителя до покупки.
Строго говоря, вторая опора нужна только комплектному проекту в том виде, в котором он написан. Если вы пишете свой проект, FPGA_AUX_CLK можно не использовать: тактовую частоту для цифровой части получить из выхода GT-трансивера, а QPLL либо не задействовать вовсе (на 6.144 Гбит/с достаточно CPLL), либо тактировать от той же первой опоры. Но комплектный проект в этом случае придётся переделывать.
Кстати, в файле констрейнтов комплектного проекта пара GBTCLK0_M2C помечена комментарием (NC), хотя проект её использует. Похоже на след копирования констрейнтов из другого дизайна — комментарию верить не нужно, смотрите на схему модуля и на связи в блок-дизайне.
Синхронизация и SYSREF
Сигнал |
Пара FMC |
Выводы |
Направление |
|---|---|---|---|
|
|
G36, G37 |
Модуль → FPGA |
|
|
H7, H8 |
Модуль → FPGA |
|
|
G9, G10 |
FPGA → модуль |
|
|
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 |
Выводы |
Назначение |
|---|---|---|---|
|
|
H13 |
Тактирование SPI |
|
|
H14 |
Данные в устройства |
|
|
G12 |
Данные из устройств |
|
|
D14 |
Выбор AD9371 |
|
|
D15 |
Выбор AD9528 |
|
|
H10 |
Сброс трансивера |
|
|
H11 |
Прерывание от трансивера |
|
|
D11 |
Тестовый вывод трансивера |
|
|
D17 |
Разрешение передатчика 1 |
|
|
D18 |
Разрешение приёмника 1 |
|
|
C18 |
Разрешение передатчика 2 |
|
|
C19 |
Разрешение приёмника 2 |
|
|
D26 |
Сброс AD9528 |
|
|
D27 |
Запрос импульса SYSREF |
Все линии управления идут через последовательные резисторы 0 Ом (R55…R72) — удобно для отладки: цепь можно разорвать.
Итого задействовано девять пар LA под управление и синхронизацию плюс три пары под сигналы синхронизации линков. Остальные пары LA, а также все пары HA и HB свободны — если вам нужны линии для своей периферии, разъём это позволяет.
VADJ, EEPROM и служебные контакты
VADJ разведён на все положенные стандартом контакты (G39, G40, H40, E39, F39, F40, E40 и соседние) и, как сказано в главе 8, идёт прямо на VDD_IF трансивера. 1.8 или 2.5 В, никак иначе.
Служебные контакты:
Сигнал |
Выводы |
Назначение |
|---|---|---|
|
C37, C39 и соседние |
Питание 12 В, единственный источник для платы |
|
C39, D39 и соседние |
3.3 В, на плате не используется |
|
D32 |
Дежурное питание 3.3 В, подведено к EEPROM |
|
C30 |
Шина I²C для IPMI |
|
C31 |
То же |
|
C34 |
Адресный бит EEPROM |
|
D35 |
Адресный бит EEPROM |
EEPROM IC6 — M24C02-RMN6P, 2 Кбит, питается от дежурного 3P3AUX, подтяжки шины R63/R64 по 4.7 кОм, вывод защиты записи через R62 20 кОм. Ровно та же схема, что на плате ADRV9009, и ровно с той же ловушкой:
Если EEPROM не прошита корректной IPMI-записью, носители на FPGA семейства UltraScale (например, ZCU102) не включат
VADJ. Модуль при этом будет выглядеть полностью мёртвым, хотя дело не в нём.
Носители на Zynq-7000 вроде ZC706 такой проверки не делают и просто подают заранее настроенное напряжение, поэтому с ними проблема не проявляется. Что делать, если она проявилась, — в главе 11.
Требования к носителю: сводка
Чтобы плата заработала, носитель обязан:
иметь разъём FMC HPC (LPC не подойдёт: не хватит гигабитных линий);
подавать 12 В на разъём (внешнего входа питания на модуле нет);
уметь выставить
VADJ= 1.8 или 2.5 В;развести четыре линии
DPв каждую сторону на гигабитные трансиверы, поддерживающие 6.144 Гбит/с;развести обе пары
GBTCLK0_M2CиGBTCLK1_M2Cна входыMGTREFCLK— либо потребуется переделка комплектного проекта;развести девять пар
LAпод управление и три пары под синхронизацию, из них три пары должны работать как LVDS-входы или выходы;не требовать корректной 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 |
Частоты из |
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 |
Роль |
|---|---|
|
Физический уровень: гигабитные трансиверы, CPLL и QPLL |
|
Три ядра канального уровня: приём, наблюдение, передача |
|
Формирование внутренних тактовых частот из 122.88 МГц |
|
Процессорная система Zynq, откуда идёт вся конфигурация |
|
Шина AXI и сбросы |
|
Встроенный логический анализатор |
|
Логика сбросов и разрешений |
Плюс собственные модули в 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:
Компонент |
Что это |
|---|---|
|
API Mykonos версии 1.5.1.3565 — управление AD9371 |
|
Драйвер генератора тактовых частот |
|
Слой no-OS от ADI: |
|
Обвязка: |
|
Точка входа |
Mykonos — тот же по духу API, что Talise у ADRV9009: структуры описания устройства, функции инициализации, набор калибровок, выполняемых внутренним ARM-ядром. Кто работал с одним, разберётся во втором за вечер.
Последовательность запуска в headless.c компактная и читаемая:
отключаются кэши инструкций и данных;
инициализируется платформа и GPIO через EMIO;
настраиваются регистры GPIO по AXI-Lite;
сбрасывается и инициализируется AD9528 — с проверкой результата и осмысленным сообщением про возможную причину («REF_CLK не подключён»);
поднимается запрос SYSREF;
выполняется полная инициализация AD9371 вместе с тремя линками JESD204B;
запрос SYSREF снимается;
перестраиваются гетеродины передатчика и приёмника;
задаются ослабление передатчиков и усиление приёмников;
бесконечный цикл.
Пара мест, где стоит задержаться.
Гетеродины по умолчанию выставлены на 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 дБм. В городе рядом с базовой станцией этот уровень набирается легко. Аттенюатор или фильтр перед платой обязателен.
Порядок запуска
Установите модуль на носитель, затяните крепёж. Разъём FMC на 400 выводов требует ровной посадки: перекос даёт неконтакт отдельных пар, и потом это ищется долго.
Подайте питание, убедитесь, что светодиод питания на модуле горит.
Проверьте на выводах
DEV_CLK_INналичие 122.88 МГц — они появляются до всякой настройки, AD9528 пропускает VCXO на выходы 12 и 13 сразу после подачи питания. Нет частоты — ищите рельсы3V3_CLKи3V3_VCO, а не ошибку в SPI.Загрузите битстрим и запустите bare-metal приложение.
В консоли должно появиться
AD9528_initialize successful!. Если вместо этого предупреждение проREF_CLK— см. ниже.Затем
FMC_AD9371 config successful!— значит прошли инициализация трансивера и подъём трёх линков JESD204B.Смените частоты гетеродинов: в комплектном примере они стоят на 6 ГГц.
Поднимите усиление приёмников: индекс по умолчанию 203 из диапазона 195…255, то есть почти минимум.
Смотрите отсчёты в
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 на разъёме |
пара |
пара |
Опор GT от модуля |
две (обе нужны) |
одна |
Внешнее питание 12 В |
нет |
колодка |
SPI-флеш на модуле |
нет |
есть |
Комплектных носителей |
два (ZC706, RK 7100) |
один (RK 7100) |
Комплектных профилей |
два |
один |
DMA в комплектном проекте |
нет |
нет |
Ловушка с |
есть |
есть |
Ловушка с 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% при первом пополнении.
