Мультиметр нашёл 3.3 В, которые сорвали SPI у beamformer ADAR1000
CN0566 полностью отсоединена, SPI ничего не передаёт, а свободный конец MISO со стороны ZC702 всё ещё показывает 3.335 В. Кто удерживает линию в HIGH, если beamformer уже физически исключён из тракта?
На Raspberry Pi та же CN0566 исправно читала и записывала scratchpad ADAR1000 и обнаруживала ADF4159. После переноса на ZC702 чтение стало стабильно возвращать ошибку. Измерение локализует высокий уровень в PMOD-тракте ZC702, но само по себе ещё не доказывает, какой элемент его создаёт.
## PMOD, в котором уже живёт преобразователь уровня
Соединение выглядело вполне обыденно: логика Zynq с уровнем 2.5 V выводится на PMOD, проходит установленный на ZC702 TXS0108E, затем приходит на собственный преобразователь уровней CN0566 и уже оттуда — к 1.8-вольтовым цифровым входам ADAR1000 и ADF4159. Однако PMOD на этой плате не является коротким прямым GPIO-трактом. Руководство AMD описывает несколько микросекунд на фронт, нагрузку около 200 pF от параллельного LED-драйвера и ориентир около 100 kHz для переключений. Частоту SPI снизили до 100 kHz, но чтение не ожило.
Самое сильное наблюдение сделали без осциллографа. На рабочей связке с Raspberry Pi idle MISO на 3.3-вольтовой стороне CN0566 составлял около 0.0006 V. В системе с ZC702 там оказалось 3.335 V. После полного отсоединения провода от CN0566 свободный конец со стороны ZC702 сохранил примерно те же 3.3 V. Значит, высокий уровень создаётся в PMOD-тракте либо около него, хотя MISO в проекте FPGA назначен входом. Включение внутренней pull-down подтяжки FPGA почти не изменило картину.
Почему вход MISO оказался подтянут к питанию
TXS0108E создан для удобного двунаправленного сопряжения без отдельного сигнала DIR, однако внутри него нет обычного жёсткого буфера направления. TI описывает pass-gate с сопротивлением порядка сотен ом, слабые динамические подтяжки и one-shot ускорители фронта. Направление определяется по переходу сигнала. Линия, которая оказывается плавающей, нагруженной кабелем, другой подтяжкой или следующим преобразователем уровня, начинает влиять на эту схему как электрический узел с ёмкостями, токами утечки и конкурирующими источниками. Datasheet прямо предупреждает о повторном срабатывании one-shot, конфликте драйверов и колебаниях при неблагоприятной нагрузке.
Это ещё не доказательство, что виноват именно TXS0108E или второй translator на CN0566. Изоляционный опыт убедительно локализует DC-подтяжку выше CN0566, но не различает внутренний pull-up преобразователя, состояние OE, ошибочную топологию PMOD, утечку либо активный выход в другой точке тракта. Для окончательного диагноза нужны одновременные осциллограммы по обе стороны обоих translators, проверка OE и измерение сопротивления MISO к шинам питания при выключенной плате.
Цифровая линия потребовала аналоговых измерений
Зато уже виден правильный порядок отладки. Если MISO, IRQ или GPIO ведёт себя мистически, сначала стоит измерить постоянное напряжение, ток и сопротивление узла, затем посмотреть форму фронтов с обеих сторон преобразователя. В этой истории мультиметр за несколько секунд обнаружил физический факт, который не могли показать настройки SPI. Для скоростного управления RF-платой вывод тоже конкретный: PMOD ZC702 с auto-direction TXS0108E и дополнительной ёмкостной нагрузкой нельзя считать прозрачным соединением для произвольного SPI; документация платы предлагает FMC для быстрого GPIO-доступа.