Странные сигналы I2C, испускаемые FPGA

У меня есть устройство ZedBoard FPGA, и я пытаюсь реализовать интерфейс I2C для связи с модулем камеры. Я использую Vivado 2014.2 и добавил в свой дизайн блок AXI IIC с тактовой частотой SCL, установленной на 90 кГц. Физические контакты SCL/SDA имеют подтягивающий резистор 10k к VCC (также пробовал 4K7). По какой-то причине мой осциллограф показывает, что на обоих контактах уже есть какой-то недопустимый сигнал, который выводится на них, когда он должен быть установлен на низком уровне, поскольку я еще не настроил фактическую связь в программном обеспечении. Также обратите внимание, что скорость этих сигналов составляет 24 МГц! По какой-то причине это частота встроенного процессора (нет, контакты НЕ перепутаны). Вот вывод осциллографа с контактами SCL/SDA:

Фото

Любая идея, почему это происходит?

Нужен ли блоку I2C какой-либо начальный шаг сброса/настройки?
Нет, сигнал должен быть ровным, пока я не скажу ему записать в регистр.
Какова амплитуда (v от пика до пика) отображаемых сигналов?

Ответы (3)

Таким образом, нежелательные сигналы синхронизированы, но не полностью идентичны (хотя это может быть связано с размахом) и около 1Vpp.

Перекресток, наверное? Есть ли другой синхронизированный, но цифровой сигнал на соседнем контакте или трассе? Исчезают ли нежелательные сигналы, если вы заземлите контакты, а не оставите их плавающими при подтягивании?

Если вы не включаете модуль I2C в сборку, будут ли контакты вести себя одинаково? Если вы встроите какой-либо GPIO, подключенный к этим контактам, и установите контакты на высокий и / или низкий уровень, будет ли нежелательный сигнал накладываться на управляемый логический уровень или он исчезнет?

Кроме того, разве в блоке Zynq PS уже нет двух периферийных устройств I2C? Почему вы не используете один из них?

Да, есть контакт синхронизации 24 МГц рядом с линиями SCL/SDA на том же разъеме PMOD, который является главным входом синхронизации для модуля камеры (с использованием выхода PS FCLK). Я не пробовал заземлять контакты... вы имеете в виду подключение контакта SCL непосредственно к земле без подтягивающего или прицельного щупа? Пины не ведут себя без модуля. Даже с блоком I2C это происходит только после загрузки PS (то есть при включении FCLK). Я попробую ваше предложение GPIO ... как мне это исправить, если это перекрестные помехи? Да, у PS уже есть I2C, просто я еще не пробовал.
К сожалению, часы имеют свойство течь. Если бы вы могли сделать это дифференцированным, это очень помогло бы. В качестве альтернативы может помочь снаббер - небольшой резистор, включенный последовательно с крошечной крышкой (скажем, 68R + 10pF) на землю, помещенный на приемном конце тактовой линии. Повторно заземляя контакты, я имею в виду заземление их либо с помощью куска провода, либо путем программирования логики их привода для вывода 0; в любом случае я бы оставил подтягивания на месте. Кроме того, если это коммерческий модуль, предназначенный для подключения к ZedBoard и вызывающий проблемы, пытались ли вы спросить поставщика?
Хм, у вас есть ссылка, которая объясняет, как/почему они протекают? К сожалению, камера не поддерживает дифференциальные часы и не предназначена для ZedBoard, но вот она: goo.gl/5OEpGa . Будет ли фактором тот факт, что разъем PMOD, который я использую, настроен как дифференциальный? Поможет ли физический перенос прохудившихся часов на другой контакт/разъем (и/или использование PS I2C)?
«Утечка» (не очень техническое, но точное описание поведения) характерна для сигналов с высокой скоростью нарастания и более заметна, если они часто повторяются и регулярны; часы являются хорошим примером. Если часы не могут быть дифференциальными, то переместите их на другой контакт и поместите дорожки заземления по обе стороны от него (например, сделав соответствующие выводы выводами и установив на них низкий уровень), плюс демпфер, о котором я упоминал, чтобы уменьшить скорость нарастания, должен помогите много.
Я попытался переместить проблемный тактовый вывод 24 МГц «XCLK» в другой PMOD и поместить вокруг него дорожки заземления, что, возможно, немного помогло: i.imgur.com/uOTKeBA.jpg , но подключение SCL к земле по-прежнему показывает ту же картину, что и XCLK. контакт, только с очень низким напряжением: i.imgur.com/8Vfvwbx.jpg Я пытался использовать блок PS I2C, но сигнал все еще выглядит таким же, хотя я действительно могу теперь читать регистры, но данные, которые я возвращаю, повреждены.

Мне кажется, что вы не используете контакты SCL/SDA активно. Вероятно, они настроены по умолчанию как высокоимпедансные в битовом потоке и, следовательно, просто показывают соседний тактовый шум, как предлагали другие. Похоже, что осциллограф показывает 500 мВ на деление, поэтому величина шума кажется мне большой, но это не исключает его при высоком импедансе, если ваша подтяжка не работает.

Попробуйте посмотреть в редакторе выводов/площадок устройства, чтобы убедиться, что выводы действительно включены в качестве управляемых выводов. Убедитесь, что контакты GND и питания для конкретного банка ввода-вывода, содержащего эти контакты, подключены к вашей плате и не плавают. Убедитесь, что соединения Verilog/VHDL не повреждены. В зависимости от инструментальной цепочки поставщика FPGA найдите схематический вид и отойдите от вывода ввода-вывода, чтобы убедиться, что он действительно управляется некоторыми триггерами и что сигнал en-вывода (драйвер ячейки ввода-вывода для логической «z») не является заменена константой 1.

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

Блок AXI IIC настроен на активное управление контактами, и я могу сказать, что он это делает, я просто все еще вижу шум ... gnd / vcc из того же разъема pmod подключены, и нет На данный момент нет никакого HDL-кода ... не знаю, как отследить триггер, но каким-то образом я заставил его «работать», используя встроенный контроллер zynq I2C, хотя шум все еще присутствует (но не так сильно).

Извините, если это слишком очевидно, но у вас есть датчики осциллографа, установленные на 10: 1 и ограничение полосы пропускания 20 МГц на «осциллографе»?

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