Ist es möglich, SMBus nur auf PCI Express 1X zu verwenden?

Laut der Wikipedia-Seite zu PCI Express haben die PCI-e 1X-Steckplätze 18 Pin-Positionen auf zwei Lanes (also 36 Pins) und die Positionen 5-9 repräsentieren SMBus und JTAG.

Ich möchte einen µC als SMBus-Gerät (im Wesentlichen I²C) anschließen und verstehe die zusätzlichen Nachrichtenprotokollanforderungen, bin mir aber nicht genau sicher, mit welchen Pins ich verbunden werden soll.

Ich kann Pins für SMCLK, SMDAT, TCK, TDI, TMS, TRST, TDO, WAKE, PERST, PRSNT1, PRSTN2 sowie eine Reihe von PCI-spezifischen Dingen sehen. Ich weiß, dass die PRSNT-Pins kurzgeschlossen werden müssen und dass es +12-V- und +3,3-V-Versorgungen für das Gerät gibt, aber der Rest ist etwas verwirrend. Normalerweise würde ich bei I²C an SDA und SCL denken, aber die Pins, die ich hier sehe, sehen eher aus wie die Art von Schnittstelle, die ich von SPI erwarten würde, mit separaten Eingangs- und Ausgangsdaten-Pins und Geräteauswahl. Ist das das JTAG-Bit, und soll ich mir nur SMCLK/SMDAT ansehen?

Meine Frage ist also zweigeteilt:

  • Um welche Pins muss ich mich kümmern?
  • Muss ich mehr tun, als die Pins PRSNT1/PRSNT2 zu überbrücken, um das Gerät zu registrieren? Das heißt, kann ich alles außer der SMBus-Schnittstelle ignorieren? Muss ich die Karte überhaupt mit diesen Pins als vorhanden markieren, oder gilt das nur für Geräte, die den PCI-Bus verwenden?

Entschuldigung, wenn dies eine ziemlich triviale Frage zu sein scheint - ich bin mit Software viel besser vertraut als mit Hardware.

Ich denke nicht, dass Sie die PRSNT-Pins zusammenbinden sollten, da Sie keine PCI Express-Schnittstelle haben werden.
Ich habe mich auch vergeblich darum bemüht. Mir scheint, dass sich die meisten Hersteller nicht darum kümmern, die Verkabelung für diese beiden Pins zu implementieren, da SMB ein optionaler Bestandteil sowohl der Motherboard- als auch der Peripherieseite der PCIe-Spezifikation ist. Das Weglassen dieser Leiterbahnen würde es ein wenig einfacher machen, einen bereits überfüllten Satz von PCB-Routing auf den PCBs anzuordnen. Das Asus-Motherboard, das ich verwenden wollte, zieht sowohl SDA als auch CLK hoch auf 3V3, greift aber nie darauf zu.

Antworten (1)

SMCLK und SMDAT sind die SMB-Takt- und Datenverbindungen.

TCK, TDI, TMS, TRST und TDO sind die JTAG-Verbindungen.

Die PRSNT1- und PRSNT2-Pins teilen dem Host (Motherboard-Hardware und Betriebssystem) mit, wie viele PCIe-Lanes Sie verwenden werden. Da Sie eigentlich gar nicht beabsichtigen, die Hochgeschwindigkeitsspuren zu benutzen, bezweifle ich, dass sie relevant sein werden. Es wird keine bereits vorhandenen Treiber für das geben, was Sie tun, daher ist das "Registrieren" des Boards nicht besonders aussagekräftig. Aber es wäre wahrscheinlich in Ordnung, sie trotzdem kurzzuschließen, nur um das System wissen zu lassen, dass das Board da ist.

Vielen Dank. Könntest du bitte auch den zweiten Teil der Frage beantworten? dh muss ich mehr tun, als nur die beiden PRSNT-Stifte zusammenzubinden? Oder ist das überhaupt nötig?
Die Spurbreite wird als Teil des Verbindungstrainingsprozesses auf Protokollebene ausgehandelt – PRSNT1#/etc werden für Hot-Plug-bezogene Funktionen verwendet. Eine feste Anzahl von Bahnen wird zu jedem Slot geleitet, und der Trainingsprozess zwischen Peripherie und Host beginnt so weit wie möglich und trainiert bei Bedarf nach unten. Ich habe noch nie gesehen, dass PRSNTx als Teil des Prozesses verwendet wurde – es könnte sein, dass Sie damit einige Konfigurationsbänder steuern, aber dann verlassen Sie sich darauf, dass die Karte es implementiert.