У меня есть устройство ZedBoard FPGA, и я пытаюсь реализовать интерфейс I2C для связи с модулем камеры. Я использую Vivado 2014.2 и добавил в свой дизайн блок AXI IIC с тактовой частотой SCL, установленной на 90 кГц. Физические контакты SCL/SDA имеют подтягивающий резистор 10k к VCC (также пробовал 4K7). По какой-то причине мой осциллограф показывает, что на обоих контактах уже есть какой-то недопустимый сигнал, который выводится на них, когда он должен быть установлен на низком уровне, поскольку я еще не настроил фактическую связь в программном обеспечении. Также обратите внимание, что скорость этих сигналов составляет 24 МГц! По какой-то причине это частота встроенного процессора (нет, контакты НЕ перепутаны). Вот вывод осциллографа с контактами SCL/SDA:
Любая идея, почему это происходит?
Таким образом, нежелательные сигналы синхронизированы, но не полностью идентичны (хотя это может быть связано с размахом) и около 1Vpp.
Перекресток, наверное? Есть ли другой синхронизированный, но цифровой сигнал на соседнем контакте или трассе? Исчезают ли нежелательные сигналы, если вы заземлите контакты, а не оставите их плавающими при подтягивании?
Если вы не включаете модуль I2C в сборку, будут ли контакты вести себя одинаково? Если вы встроите какой-либо GPIO, подключенный к этим контактам, и установите контакты на высокий и / или низкий уровень, будет ли нежелательный сигнал накладываться на управляемый логический уровень или он исчезнет?
Кроме того, разве в блоке Zynq PS уже нет двух периферийных устройств I2C? Почему вы не используете один из них?
Мне кажется, что вы не используете контакты SCL/SDA активно. Вероятно, они настроены по умолчанию как высокоимпедансные в битовом потоке и, следовательно, просто показывают соседний тактовый шум, как предлагали другие. Похоже, что осциллограф показывает 500 мВ на деление, поэтому величина шума кажется мне большой, но это не исключает его при высоком импедансе, если ваша подтяжка не работает.
Попробуйте посмотреть в редакторе выводов/площадок устройства, чтобы убедиться, что выводы действительно включены в качестве управляемых выводов. Убедитесь, что контакты GND и питания для конкретного банка ввода-вывода, содержащего эти контакты, подключены к вашей плате и не плавают. Убедитесь, что соединения Verilog/VHDL не повреждены. В зависимости от инструментальной цепочки поставщика FPGA найдите схематический вид и отойдите от вывода ввода-вывода, чтобы убедиться, что он действительно управляется некоторыми триггерами и что сигнал en-вывода (драйвер ячейки ввода-вывода для логической «z») не является заменена константой 1.
Я уверен, что как только активные драйверы для этих контактов будут включены, шум будет полностью затмеваться сигналом.
Извините, если это слишком очевидно, но у вас есть датчики осциллографа, установленные на 10: 1 и ограничение полосы пропускания 20 МГц на «осциллографе»?
мнг
бпаркер
сосать