Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: I2c мастер на Virtex2 Pro
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
ig_f
Доброго времени суток.

Начну из далека: есть камера которая подключается к к отладочной плате c VirtexII Pro, управление - I2C. На плисине надо организовать мастера. Входной сигнал на камеру должон быть 5В, на соответствующем выводе плис - 3.3В, поэтому подключено через полевик
Нажмите для просмотра прикрепленного файла

со стороны плис внешней подтяжки к 3.3В нет.

У меня возник вопрос: как организовать двунаправленный порт?
Первый вариант

Нажмите для просмотра прикрепленного файла

Здесь SDA сигнал подается на T_1 вход. Когда буфер в Z-состоянии - на выходе 1, которая поддерживает транзистор закрытым. 0 передается переходом буфера в режим передачи. При приеме нужно поддерживать Z-состояние.

Второй вариант

Нажмите для просмотра прикрепленного файла

Тут не использована внутренняя подтяжка, транзистор открывается и запирается если на IN_2 0 и 1 соответственно. При приеме нужно переключать буфер в Z.
Никогда не использовал двунаправленные порты... да и определенные проблемы со схемотехникой имеются, так что подскажите какой вариант лучше использовать? И вообще верно ли я мыслю?

Еще бы пригодилась информация о том как схемотехнически выглядит выходной порт ПЛИС при передаче.

заранее благодарю)
XVR
Во первых - I2C порт обязан быть портом с ОК, поэтому 2й вариант сразу можно отмести. Во вторых - для согласования 3/5В I2C применяют полевые транзисторы, но не в том включении, как у вас нарисованно. Смотрите тут
Shivers
Можно организовать ОК иначе: снаружи повесить pullup на 5В, и вместо высокого уровня драйверить Z на выходе ПЛИС.

И еще, я бы проверил - 3.3в уровень может оказаться достаточным для работы с 5в периферией.
ig_f
Цитата
Во вторых - для согласования 3/5В I2C применяют полевые транзисторы, но не в том включении, как у вас нарисованно.

Эта схема не мое изобретение, а разработчиков мезонинной платы. На ней именно так транзисторы включены - все работает. Еще такое включение видел вот здесь. Если не сложно, можете пояснить отличие в функционировании вашей схемы от моей?
Что дает то, что на затворе тоже напряжение что и на стоке?
Какую роль выполняет транзистор с GREF, DREF, SREF? А то (повторюсь) с транзисторами плоховато wacko.gif .

2 Shivers

Повесить снаружи ничего нельзя - плата уже готовая, как есть). Уровень 3.3 с периферий непосредственно не работает, он лишь запирает транзистор, а стой стороны pullup 5В.
ig_f
Кстати, именно такая схема согласования (как на плате) рекомендована в I2C-BUS SPECIFICATION.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.