Monday, 23 December 2019

i2c - Is it possible to only utilise SMBus on PCI Express 1X?


According to the Wikipedia page on PCI Express, the PCI-e 1X slots have 18 pin positions on two lanes (so 36 pins) and positions 5-9 represent SMBus and JTAG.


I'd like to hook up a µC as an SMBus (essentially I²C) device, and I understand the additional message protocol requirements, but am not exactly sure which pins I'm meant to be interfacing with.



I can see pins for SMCLK, SMDAT, TCK, TDI, TMS, TRST, TDO, WAKE, PERST, PRSNT1, PRSTN2, plus a bunch of PCI-specific stuff. I know that the PRSNT pins have to be shorted, and that there are +12V and +3.3V supplies for the device, but the rest is a bit confusing. Normally with I²C I'd be thinking SDA and SCL, but the pins I'm seeing here look more like the kind of interface I'd expect from SPI, with separate input and output data pins and device select. Is this the JTAG bit, and am I meant to just be looking at SMCLK/SMDAT?


So, my question is two-fold:



  • Which pins should I be concerned with?

  • Do I have to do anything more than jumper the PRSNT1/PRSNT2 pins to get the device registered? That is, can I safely ignore everything but the SMBus interface? In fact, do I even need to mark the card as present with those pins, or is it just for devices that utilise the PCI bus?


Apologies if this seems a rather trivial question - I'm much more adept with software than I am with hardware.



Answer



SMCLK and SMDAT are the SMB clock and data connections.


TCK, TDI, TMS, TRST and TDO are the JTAG connections.



The PRSNT1 and PRSNT2 pins are there to tell the host (motherboard hardware and operating system) how many lanes of the PCIe you are going to be using. Since you don't actually intend to use the high-speed lanes at all, I doubt that they're going to be relevant. There aren't going to be any pre-existing drivers for what you're doing, so "registering" the board won't be terribly meaningful. But it would probably be OK to short them anyway, just to let the system know that the board is there.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...