logo-new.gif (4383 bytes)

PMC DIO32  Opto-isolated 32-Bit I/O Module

The PMC-DIO32 is a digital I/O PMC module providing 32 bits of opto-isolated I/O.  A PLX PCI9030 device controls the PCI bus and a Xilinx SpartanXL is used to provide the on-board functionality.  The external I/O connections are selected at order time as either input, ouput or a mixture of both. The opto-coupling provides good isolation between the logic and the I/O and between channels. Programmable debouce and a watchdog are provided on-board.


Key FeaturesPMCDIO32small.gif (33220 bytes)

  • 32 bits of opto-isolated I/O 0 to 48Volt.
  • I/O factory selectable as input or outputs.
  • 2kV I/O to logic isolation
  • 1kV channel to channel isolation
  • Interrupt on change-of-state.
  • Input de-bounce period programmable between 2uS and 250uS.
  • Watchdog period programmable 125ms to 2sec.
  • Watchdog interrupt.
  • Watchdog tri-states outputs.
  • Front panel and rear I/O connections.
  • Conforms to PMC standard IEEE P1386.1/Draft 2.3 9th October 2000.
  • Conforms to PCI Local Bus Specification Revision 2.2.


pmcdio32block.gif (6580 bytes)

Block Diagram

PCI Features

The PMCDIO32 uses a PLX PCI9030 PCI interface to a 16-bit local bus on-board. The general features of the PCI9030 are:

  • PCI Local Bus Specification V2.2-compliant 32-bit, 33 MHz Bus Target Interface Device enabling PCI Burst Transfers up to 132 MB/s.
  • PCI Bus Power Management Interface Specification V1.1 compliant.
  • PCI Local Bus Specification V2.2 Vital Product Data (VPD) configuration support.
  • PCI Target Programmable Burst Management.
  • PCI Target Read Ahead mode.
  • PCI Target Delayed Read mode.
  • PCI Target Delayed Write mode.
  • Programmable Interrupt Generator/Controller.
  • Two programmable FIFOS for zero wait state burst operation.
  • Flexible Local Bus provides 32-bit Multiplexed or Non-Multiplexed Protocol for 8, 16, or 32-bit Peripheral and Memory devices.
  • Serial EEPROM interface.
  • Nine programmable General Purpose I/O (GPIOS).
  • Five programmable Local Address spaces.
  • Four programmable independent chip selects.
  • Programmable Local Bus wait states.
  • Programmable Local Read pre-fetch mechanism.
  • Local Bus can run asynchronously to the PCI Bus.
  • Two programmable Local-to-PCI interrupts.
  • Endian Byte Swapping.

Main Logic

The PMCDIO32 uses a Xilinx SpartanXL FPGA connected to the 16-bit local bus to provide the on-board logic functions as described below.

Input Register

    A 32-bit Input Register containing a latched version of the I/O pins on the logic device. The signal is de-bounced at the programmable de-bounce period.

Output Register

    A 32-bit Output Register whose contents are output to valid output pins.

Change Flags Register

    A 32-bit Change Flags Register where each bit indicates an input that has changed state since interrupt on change-of-state was enabled.

Direction Register

    An 8-bit Direction Register where each bit corresponds to a group of 8 I/O bits. If the corresponding bit is set to 1 output is enabled otherwise input is enabled.

Control and Status Register

A 16-bit Control & Status Register where the bits are used to control and monitor the status of the following functions.

  • Watchdog Output Control.
  • Watchdog Interrupt Control.
  • Global Output Control.
  • Watchdog Input Control.
  • Watchdog Enable Control
  • Watchdog Status
  • Input De-bounce Period
  • Lock Inputs Control.
  • Change-of-State Interrupt Control.
  • Change-of-State Status.

Watchdog trigger Register

An 8-bit register which must be written alternately 0 and 1 within 25% of the watchdog refresh period.

Watchdog Timer Register

    An 8-bit register defining the watchdog refresh period: 125ms; 250ms; 500ms; 1sec or 2sec.

Watchdog Status Register

An 8-bit register which indicates if the watchdog has timed out.

I/O Interfaces

Output Circuit

The opto-Isolator switches the gate of a power MOSFET.  In the on state current flow through the MOSFET is sensed and limited to 250mA over a range of 0 to 48V.  To protect the circuit during current limit situations if the voltage drop across the output is greater than about 4V the MOSFET is turned off. This protection circuit can only be reset by turning off the output or removing the output supply.

Input Circuit

The input range is 0 to 48V and a current limit circuit is used to limit the input current to about 5mA for input voltages between 12V and 48V.


The PMCDIO64 is fitted with a 93CS56 EEPROM which is supplied pre-programmed by BVM. The contents of this EEPROM are read by the PCI9030 on coming out of reset and are used to set up the control registers after reset, configuring the PCI interface configuration, PCI Device/Vendor ID's & various other board specific parameters.


The PMCDIO64 is fitted with a 18V256 EEPROM, which is supplied pre-programmed by BVM. The contents of this EEPROM are read by the SpartanXL FPGA on power up and are used to initialise the logic functions in the FPGA.


On-Board Functions

PCI9030 PCI Interface

PCI 2.2 compliant 32-bit, 33-MHz Bus Target Interface Device
PCI Target Delayed Read mode disabled
PCI Target Read Ahead mode disabled
PCI Target Delayed Write mode disabled
Programmable Interrupt Generator
Local Bus provides 32-bit non-multiplexed 16-bit peripheral access
Local Bus zero wait state
Programmable Local-to-PCI interrupt

SpartanXL FPGA

Input Register
Output Register
Change Flags Register
Direction Register
Function Register
Status & Control Register
Watchdog Trigger Register
Watchdog Timer Register
Watchdog Status Register

Local Clocks

    32.768KHz timer clock

Board Configuration

PCI Configuration
FPGA Configuration

I/O Interface
32-bits opto-isolated I/O
0 to 48V operation
I/O direction factory selectable
global output enable
2kV I/O to logic isolation
1kV I/O to I/O isolation
5mA input current limit
250mA output current limit
Short circuit protection

PMC Interface
Bus Interface: PCI 2.2 compliant
Bus Width: 32-bit
Bus Speed: 33MHz
Data Transfer: PCI 2.2 Bus Target
Interrupts: PCI INT #A
Memory Address: BIOS assigned

Operating Environment

Dimensions: 74.0mm x 149.0mm (single PMC size)
Power: +3.3V 215mA typical +5V 0mA typical, excluding external requirements
Environmental: 0 to 70 C, 95% humidity non-condensing (extended range to order)


BVM Limited can be contacted by Telephone +44 (0)1489 780144  Fax +44 (0)1489 783589
or email sales@bvmltd.co.uk
Copyright 1998-2003 BVM Limited. All rights reserved. All Trademarks acknowledged