Easy PCI interfacing

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
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.



Re: Easy PCI interfacing
Quoted text here. Click to load it

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.

Quoted text here. Click to load it

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.

Quoted text here. Click to load it

No.

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

Re: Easy PCI interfacing
Quoted text here. Click to load it

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.



Re: Easy PCI interfacing


[...]
Quoted text here. Click to load it

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.

Re: Easy PCI interfacing

Quoted text here. Click to load it

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



Re: Easy PCI interfacing
:> 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.
We've slightly trimmed the long signature. Click to see the full one.
Re: Easy PCI interfacing

Quoted text here. Click to load it

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.

Quoted text here. Click to load it

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 ( snipped-for-privacy@physik.rwth-aachen.de)
Even if all the snow were burnt, ashes would remain.

Re: Easy PCI interfacing
Quoted text here. Click to load it


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.

Re: Easy PCI interfacing
Quoted text here. Click to load it
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




Re: Easy PCI interfacing
Quoted text here. Click to load it

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
www.amontec.com


Re: Easy PCI interfacing
Quoted text here. Click to load it

Anyway, a PCI solution will be too expensive for low volume (<100 pces)


Re: Easy PCI interfacing

Quoted text here. Click to load it

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.

Re: Easy PCI interfacing
Quoted text here. Click to load it

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
www.amontec.com


Re: Easy PCI interfacing
Quoted text here. Click to load it

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

Regards.

Re: Easy PCI interfacing

Quoted text here. Click to load it

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.

Site Timeline