¿Es posible utilizar SMBus solo en PCI Express 1X?

De acuerdo con la página de Wikipedia sobre PCI Express , las ranuras PCI-e 1X tienen posiciones de 18 pines en dos carriles (por lo tanto, 36 pines) y las posiciones 5-9 representan SMBus y JTAG.

Me gustaría conectar un µC como un dispositivo SMBus (esencialmente I²C), y entiendo los requisitos adicionales del protocolo de mensajes, pero no estoy exactamente seguro de con qué pines debo estar conectado.

Puedo ver pines para SMCLK, SMDAT, TCK, TDI, TMS, TRST, TDO, WAKE, PERST, PRSNT1, PRSTN2, además de un montón de cosas específicas de PCI. Sé que los pines PRSNT deben estar en cortocircuito y que hay suministros de +12V y +3.3V para el dispositivo, pero el resto es un poco confuso. Normalmente, con I²C estaría pensando en SDA y SCL, pero los pines que veo aquí se parecen más al tipo de interfaz que esperaría de SPI, con pines de datos de entrada y salida separados y selección de dispositivo. ¿Es este el bit JTAG, y estoy destinado a estar mirando SMCLK/SMDAT?

Entonces, mi pregunta es doble:

  • ¿De qué pines debería preocuparme?
  • ¿Tengo que hacer algo más que puentear los pines PRSNT1/PRSNT2 para registrar el dispositivo? Es decir, ¿puedo ignorar con seguridad todo menos la interfaz SMBus? De hecho, ¿necesito marcar la tarjeta como presente con esos pines, o es solo para dispositivos que utilizan el bus PCI?

Disculpas si esto parece una pregunta bastante trivial: soy mucho más hábil con el software que con el hardware.

No creo que deba unir los pines PRSNT ya que no tendrá una interfaz PCI Express.
He estado tratando en vano de hacer esto también. Me parece que debido a que SMB es una parte opcional tanto del lado de la placa base como del lado periférico de la especificación PCIe, la mayoría de los fabricantes no se molestan en implementar el cableado para estos dos pines. Omitir estos rastros haría que un conjunto ya congestionado de enrutamiento de PCB fuera un poco más fácil de diseñar en los PCB. La placa base Asus que estaba tratando de usar eleva SDA y CLK a 3V3, pero nunca accede a ellos.

Respuestas (1)

SMCLK y SMDAT son las conexiones de datos y reloj SMB.

TCK, TDI, TMS, TRST y TDO son las conexiones JTAG.

Los pines PRSNT1 y PRSNT2 están ahí para decirle al host (hardware de la placa base y sistema operativo) cuántos carriles de PCIe va a utilizar. Dado que en realidad no tiene la intención de utilizar los carriles de alta velocidad, dudo que vayan a ser relevantes. No habrá controladores preexistentes para lo que está haciendo, por lo que "registrar" la placa no será muy significativo. Pero probablemente estaría bien acortarlos de todos modos, solo para que el sistema sepa que la placa está allí.

Gracias. ¿Podría también responder la segunda parte de la pregunta, por favor? es decir, ¿tengo que hacer algo más que unir los dos pines PRSNT? ¿O es eso incluso necesario?
El ancho de carril se negocia como parte del proceso de entrenamiento del enlace a nivel de protocolo: PRSNT1#/etc se utilizan para las funciones relacionadas con la conexión en caliente. Se enruta un número fijo de carriles a cada ranura, y el proceso de entrenamiento entre el periférico y el host comenzará lo más amplio posible y se entrenará hacia abajo si es necesario. Nunca he visto el uso de PRSNTx como parte del proceso; podría serlo si lo usara para controlar algunas correas de configuración, pero luego cuenta con que la tarjeta lo implemente.