1. This forum section is a read-only archive which contains old newsgroup posts. If you wish to post a query, please do so in one of our main forum sections (here). This way you will get a faster, better response from the members on Motherboard Point.

Build your own add-on board for PCI bus

Discussion in 'Embedded' started by Guest, Apr 23, 2004.

  1. Guest

    Guest Guest

    Is there any "simple step-by-step guide to PCI bus interfacing" like
    documentation+example circuit showing how one can build his/her own add-on
    board for PCI bus?
     
    Guest, Apr 23, 2004
    #1
    1. Advertisements

  2. Guest

    John Larkin Guest

    PLX has a nice bunch of general-purpose PCI interface chips, plus lots
    of appnotes and eval boards. But PCI can be a little nasty, first
    time.

    http://www.plxtech.com/products/io_accelerators/default.asp

    Lately, for test systems, we've been buying motherboards that have
    both PCI and ISA slots ($10!), a CPU chip, and a nice rackmount
    enclosure ($70 maybe). ISA interfacing is a jillion times easier.

    Has anybody ever done a PCI interface made out of just standard logic
    chips? *That* would be a challenge!


    John
     
    John Larkin, Apr 23, 2004
    #2
    1. Advertisements

  3. Guest

    Leon Heller Guest

    An FPGA or a large CPLD would be quite feasible.

    Leon
     
    Leon Heller, Apr 23, 2004
    #3
  4. Guest

    Ingo Cyliax Guest

    PCI is not for the faint of heart. You would have to use either
    a pre-existing PCI interface chip (PLX or equiv.), or an FPGA/CPLD
    which has PCI compatible IO pins. In either case you have to
    define what your interface looks like, and deal with providing
    information for enumeration. I have designed from scratch target
    and master implementations in FPGA using the PCI specification.
    They finally worked, but it took some time and involved a fair
    amount of time with a logic and bus analyzer to figure out what
    is going on.

    In addition you will have to deal with device drivers. I don't
    know what OS you are considering. In Linux it's pretty easy to
    find a card and write a kernel module to map it into IO/address
    space, so you can talk to it via an application program. Never
    tried in Windows, I explored it, but it looked daunting.

    In many cases, you are probably better off starting with a generic
    digital/analog PCI IO board and programming it at a higher level;
    the card's vendor will usually supply you with a device driver.

    I guess in the end, it depends on what you want to do and how
    many you need to build, etc... I.e. are you considering PCI
    because of connectivity, throughput, etc...

    Alternate interfaces, which are a bit more friendly to develop
    with.

    ISAbus - this is pretty easy. Lot's of examples and you can use
    simple TTL/CMOS logic chips to implement. You can access via user
    program under Windows 98/DOS and Linux, without writing a low
    level driver. PC104, PCMCIA and CompactFlash are all form factor
    adaptation of ISA bus. PCMCIA/CompactFlahs is more complex to
    implent.

    USB - easier than PCI. there are inteface chips available which
    make it trivial to design with. E.g. TPD245BM is a USB to parallel
    FIFO interface, which looks like a VCOM under windows.

    See ya, -ingo
     
    Ingo Cyliax, Apr 23, 2004
    #4
  5. Guest

    John Larkin Guest

    We do a lot of our test software under DOS, in PowerBasic mostly, so
    we can directly access the hardware without driver overhead. We have
    written a couple of utilities that make BIOS calls to locate the PCI
    devices in config space and then drag them down into "real" memory
    below 1M so we can thrash the hardware directly. Klugy, but fast.

    John
     
    John Larkin, Apr 23, 2004
    #5
  6. Guest

    krw Guest

    I didn't find PCI terribly hard the first time out, though I let PLX do
    all the hard stuff too. ;-) The only screw-up I made was the length of
    the clock trace. It "worked" anyway (I wasn't going into production so
    it got left as is).
    No question. ISA is a piece of cake.
    It can be done in an FPGA, but it needs to be one designed with PCI in
    mind (some can, some can't). There are cores available for some FPGAs.
    I used the PLX chip (9054) in front of my FPGA as a bridge. I didn't
    see any reason to use expensive FPGA logic and pins to do what was
    cheap (and working) in a fairly cheap PLX chip. PCI simply can't be
    done, and meet specs anyway, with "standard logic" chips.

    I highly recommend "PCI System Architecture" by Shanley/Anderson
    (MindShare) for anyone contemplating tackling a PCI project. (ISBN 0-
    201-30974-2). It's also available on the web ($20, IIRC) at
    http://www.mindshare.com/
     
    krw, Apr 24, 2004
    #6
  7. Guest

    cpex Guest

    On a related note. How difficult would it be to control a single pci device
    with a microcontroller?

    I am asking this because I want to add 802.11 to a project I am working on.
    I only need a very small subset of 802.11 functionality. I dont need to send
    tcp/ip packets just get some network statistics (signal strengths and such).
    And as I am on a shoe string budget (computer interfacing project for
    university) dont want to shell out for some 802.11 developers kit.

    Josiah
     
    cpex, Apr 25, 2004
    #7
  8. Guest

    KR Williams Guest

    If you can get ahold of an FPGA with PCI I/O, it shouldn't be too
    tough to interface to a target-only device. You're talking about
    all the development overhead of an FPGA though.
    Perhaps you could use a cast-out laptop from EBay?
     
    KR Williams, Apr 25, 2004
    #8
  9. Guest

    Guest Guest

    Guest, Apr 26, 2004
    #9
  10. Guest

    Ingo Cyliax Guest

    implementing a single port PCI host adapter that talks to one card
    is easier than implementing a target controller that has to talk
    to various host adapters and OSes. You do not have to implement
    all of the xfer modes and worry about enumerting devices, or
    interrupts etc... I don't know if any of the miniPCI/PCI WLAN cards
    require bus mastering or not.

    If you want a simple WLAN interface for WiFi consider PRISM chipset
    based PCMCIA/CF cards. They will run in 8bit mode, require few
    address lines and don't require DMA to read/write to them. The hardware
    interface is quite trivial and software isn't too bad. There are
    Linux drivers.

    ZWorld/RabbitSemiconductor has a devkit which is reasonably cheap,
    and provides hardware, a WiFi card and software drivers. One of the
    sample application does what you describe, it scans for hosts and
    reads out signals/noise figures.

    See ya, -ingo

    Sr. Application Engineer, ZWorld Inc.

     
    Ingo Cyliax, Apr 26, 2004
    #10
  11. Guest

    Zak Guest

    If you get an old card (PCMCIA, not Cardbus) it behaves more or less as
    an ISA card.


    Thomas
     
    Zak, Apr 26, 2004
    #11
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.