Можно ли использовать SMBus только на PCI Express 1X?

9

Согласно странице Википедии на PCI Express , слоты PCI-e 1X имеют 18 позиций контактов на двух линиях (таким образом, 36 контактов), а позиции 5-9 представляют SMBus и JTAG.

Я хотел бы подключить микроконтроллер в качестве устройства SMBus (в основном I²C), и я понимаю дополнительные требования к протоколу сообщений, но не совсем уверен, с какими контактами я должен взаимодействовать.

Я вижу контакты для SMCLK, SMDAT, TCK, TDI, TMS, TRST, TDO, WAKE, PERST, PRSNT1, PRSTN2, а также связку PCI-специфических вещей. Я знаю, что контакты PRSNT должны быть закорочены, и что для устройства предусмотрены источники питания +12 В и + 3,3 В. Но остальное немного сбивает с толку. Обычно с I²C я думал бы о SDA и SCL, но контакты, которые я здесь вижу, больше похожи на тот интерфейс, который я ожидал от SPI, с отдельными входными и выходными контактами данных и выбором устройства. Это бит JTAG, и я просто хочу посмотреть на SMCLK / SMDAT?

Итак, мой вопрос состоит из двух частей:

  • С какими контактами я должен быть связан?
  • Нужно ли делать что-то большее, чем перемычка контактов PRSNT1 / PRSNT2, чтобы зарегистрировать устройство? То есть можно ли безопасно игнорировать все, кроме интерфейса SMBus? Фактически, мне даже нужно пометить карту как имеющуюся на этих выводах, или это только для устройств, которые используют шину PCI?

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

многочлен
источник
Я не думаю, что вы должны связывать контакты PRSNT вместе, так как у вас не будет интерфейса PCI Express.
Pedro_Uno
3
Я тщетно пытался сделать это тоже. Мне кажется, что, поскольку SMB является необязательной частью как со стороны материнской платы, так и с периферийной стороны спецификации PCIe, большинство производителей не удосуживаются реализовать разводку для этих двух выводов. Пропуск этих следов сделает уже перегруженный набор маршрутизации на печатной плате немного проще для размещения на печатных платах. Материнская плата Asus, которую я пытался использовать, поднимает SDA и CLK до 3V3, но никогда не обращается к ним.
Wossname

Ответы:

7

SMCLK и SMDAT - это тактовые импульсы SMB и соединения для передачи данных.

TCK, TDI, TMS, TRST и TDO являются соединениями JTAG.

Контакты PRSNT1 и PRSNT2 предназначены для того, чтобы сообщить хосту (аппаратная часть и операционная система материнской платы), сколько линий PCIe вы собираетесь использовать. Поскольку вы вообще не собираетесь использовать высокоскоростные полосы, я сомневаюсь, что они будут актуальны. Там не будет каких-либо уже существующих драйверов для того, что вы делаете, так что «регистрация» платы не будет ужасно значимым. Но в любом случае, возможно, было бы неплохо их закорочить, просто чтобы система знала, что плата есть.

Дэйв Твид
источник
Спасибо. Не могли бы вы также ответить на вторую часть вопроса? то есть я должен сделать что-то большее, чем просто связать два контакта PRSNT вместе? Или это даже необходимо?
Полином
Ширина полосы согласовывается как часть процесса обучения канала на уровне протокола - PRSNT1 # / etc используются для функций, связанных с «горячей» заменой. Фиксированное количество дорожек направляется в каждый слот, и процесс обучения между периферийным устройством и хостом начнется как можно шире и будет проходить вниз при необходимости. Я никогда не видел, чтобы PRSNTx использовался как часть процесса - это может быть, если вы используете его для управления некоторыми конфигурационными лентами, но тогда вы рассчитываете на карту, реализующую его.
Крунал Десаи