Easy PCI interfacing

Feb 01, 2004 14 Replies

Is there a simple method to interface to the PCI bus to be able to control something with a few bits like SPI or I2C, I think there is some form of serial bus running around a mother board to do heat and fan monitoring, does this come out on the PCI connector?



Search the internet but seems to of little help. Thought it might be discussed somewhere out there before.



Thanks for your help. Richard.


Not really. It'd hardly make much sense, anyway: it'd be like interfacing a 40-ton truck engine to drive a 40 millimeter PC cooling fan.

On *some* of them there is, but that's not guaranteed by anything. It's typically I2C, but called the System Management Bus, or "SMB" for short.

No.

Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de) Even if all the snow were burnt, ashes would remain.

Here's some ways to get some I/O off of a motherboard that doesn't entail PCI

  1. There are a couple neat USB chips that let you access I/O ports on them.
  2. Use a USB to serial chip, set the serial port to the highest possible baudrate, hang a CPLD on the serial I/O and deserialize the data. We played around with this and were able to latch an "address" and "data" byte in a few microseconds. The beauty of this arrangement is that you can use the standard USB/serial drivers and not have to muck with windows.
  3. Use the secondary IDE connector. Trivial to latch or read a few bytes and it's all 5v ttl.
  4. Use the parallel printer port.

I would not recommend using a serial port and they are going away quickly. I suppose the parallel printer port will be next.

Hans-Bernhard Broeker wrote: : The Mind Factory INC wrote: :> Is there a simple method to interface to the PCI bus to be able to control :> something with a few bits like SPI or I2C, : : Not really. It'd hardly make much sense, anyway: it'd be like : interfacing a 40-ton truck engine to drive a 40 millimeter PC cooling : fan.

Not necessarily. It would make sence if the PCI bridge would fan out to a general purpose, low frequency, classic strobe line controlled bus that could accommodate multiple expansion cards. No wait - that's what the south bridge was all about, wasn't it?

Jokes aside, there is truth to this. The Wintel PC is rapidly becoming useless for embedded tinkering and interfacing. Which is ironic as it is exactly this property that made it popular in the first place despite all its flaws (actually, the PC used to be nothing but a collection of flaws.)

Even if the PC continued to maintain the ISA bus it would be to no avail. Apart from the many flaws in the ISA bus itself, the device driver model of the Windows line of operation systems are by now totally inaccesible to hardware geeks. The linux is still barely within reach, but I expect that to change as well.

I only see one way out: Ethernet. Reasonable simple to implement on the target, both hardware and software (protocol) wise, the biggest benefit is the accessibility directly from userland on desktop OSes. But I suppose that if hardware geeks really started to use this opportunity to bypass the desktop OS at large, this 'hole' will eventually be plugged, citing OS architectual benefits and streamlining...

:> I think there is some form of serial bus running around a mother :> board to do heat and fan monitoring, : : On *some* of them there is, but that's not guaranteed by anything. : It's typically I2C, but called the System Management Bus, or "SMB" for : short. : :> does this come out on the PCI connector? : : No.

But it *does* come out on the DD-/SDRAM DIMM connectors.

****************************************************** Never ever underestimate the power of human stupidity. -Robert Anson Heinlein GeirFRS@INVALID.and.so.forth ******************************************************

No, that's about salvaging investments made in ISA components over to the PCI era.

Today, you'ld probably have to use one of those USB ports. It's troublesome news from an embedded systems point-of-view, but these days, if you want to attach something to a generic customer's PC you don't control yourself, your only reliable choices are USB or a network interface (Eth, WLAN, modem).

Either that, or you get the customer to buy a USB-to-whatever interface and live with its quirks.

I wouldn't bet on that being a usable SMB line, though. Connecting anything but a DIMM's I2C-based SPD EEPROM to those line is more likely to confuse the BIOS endlessly, than do you any good.

Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de) Even if all the snow were burnt, ashes would remain.

While this is partially true, there are tool kits that provide low-level I/O access to I/O devices from user applications (or just hack the PORTIO sample in the Windows DDK). And most data acquisition/DIO/PIO type boards come with, or have available, device drivers that allow straight-forward access from applications.

Directly interfacing to the PCI bus is certainly non-trivial, which is why there are several dozen interface chips you can buy. Several (PLX

905x, for example) of which have "ISA" modes with which they emulate an ISA bus out their back side.

Jim Stewart wrote: [...]

The reason the parallel port has not gone away yet is all the parallel dongles out there. You can think of the parallel port as the 'dongle port', and expect it to be around for quite a while longer.

Good point. I suspect departmental printservers/ printers will continue to have parallel ports for awhile as well.

There is also a driver called DirectIO, which unlock the IOports (by manipulating the IO map in the task segment or so. Very practical, but use at your own peril, as all IO protection is removed.

Wim

Hi Richard,

A suitable solution will be to use Chameleon POD (smart parallel port dongle). The POD only is EUR 129.-

Our POD is used for JTAG interface emulating (Raven Wiggler ByteBlaster Xilinx Cable III ...). It is based on reprogrammable logic (CPLD), with onboard 32MHz osc., and a true 1284 transciever. You can customize the parallel port as you want. We have successfully dev. a I2C MASTER CONTROLLER on it.

Our I2C MASTER CONTROLLER can drive a true 100kHz or 400KHz I2C frequency, but can be up to 1.2MByte baudrate using EPP mode of the parallel port ;-)

We have our own Windows drivers and can provide you the help for Linux integration. Also on any windows, you can use portmon driver.

Many poeple forget the EPP mode of the parallel port provide a better datarate than the USB 2.0 (12MHz) when we you have to control a non 'packetable' application like a small I"C Controller or SPI controller.

We have a nice PCI solution based on FPGA. We have both PCI Slave core and Win/Linux drivers.

For USB solution, check the new FTDI Chip, FT2232 ... your will be enable to remote an small ISA based bus. -> but you will be in very low speeds: 60kbits second :-(

Let me know, for more details.

Laurent Gauch

formatting link

Anyway, a PCI solution will be too expensive for low volume (

"Amontec Team, Laurent Gauch" wrote in news: snipped-for-privacy@amontecDELETEALLCAPS.com:

12 Mbps is the USB 1.1 "full" speed. USB 2.0 adds "high" speed of 480 Mbps. For comparison, PCI is 132 Mbps. Firewire is 400, 800, and 1200 Mbps.

"The Mind Factory INC" wrote in news:qdbTb.2872$ snipped-for-privacy@news20.bellglobal.com:

Perhaps more importantly, how much speed and do you need and how much latency can you tolerate? If not much, a USB widget can probably do that.

But your 12Mbps is the theorical baudrate. USB 1.1 can be up to 11Mbps only if your have a very 'packetable' application like read/write files.

Do not forget the USB is a transport layer of your application ... the communication layer of your application will be provided by your host processor with all the OS lentacy troubles !

Laurent

formatting link

PCI (at 33MHZ) is 132 MBytes/s not Mbits/s. Or around 4Gb/s.

Regards.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required