Quad channel multi-protocol
serial controller
with deep transmit and receive fifos
and multiprotocol transceivers (37 pages)
Summary of Contents for General Standards Corporation PCI66-SIO4B
Page 1
PCI66-SIO4B User’s Manual Quad Channel Multi-Protocol Serial Controller With Deep Transmit and Receive FIFOs and RS-422/RS-485 Transceivers RS-422/RS-485 General Standards Corporation 8302A Whitesburg Drive Huntsville, AL 35802 Phone: (256) 880-8787 Fax: (256) 880-8788 URL: www.generalstandards.com E-mail: techsupport@generalstandards.com Rev 0...
Page 2
General Standards Corporation does not assume any liability arising out of the application or use of any product or circuit described herein, nor is any license conveyed under any patent right of any rights of others.
Transmitter FIFO 66MHz 32 bit Interface Control Logic Prog Figure 1-1 Block Diagram of PCI66-SIO4B Four Independent Multi-Protocol Serial Channels Synchronous Serial Data Rates up to 10 Mbits/sec Asynchronous Serial Data Rates up to 1 Mbit/sec ...
Z16C30 Universal Serial Controller The PCI66-SI04B is designed around the Z16C30 Universal Serial Controller (USC). The Z16C30 is a dual channel multi-protocol serial controller which may be software configured to satisfy a wide variety of serial communications applications. The USC supports most common asynchronous and synchronous serial protocols. The USC provides many advanced features, including: ...
General Purpose IO Since some signals may not be used in all applications, the SIO4B provides the flexibility to remap unused signals to be used as general purpose IO. For example, this would allow support for an application requiring DTR/DSR signals to be implemented on an unused DCD or TxAuxC signals.
CHAPTER 2: LOCAL SPACE REGISTERS Register Map The SIO4B is accessed through three sets of registers – PCI Registers, USC Registers, and GSC Firmware Registers. The GSC Firmware Registers and USC Registers are referred to as Local Space Registers and are described below. The PCI registers are discussed in Chapter 3.
2.1.2 Board Control: Local Offset 0x0004 The Board Control Register defines the general control functions for the board. Board Reset 1 = Reset all Local Registers and FIFOs to their default values Notes: This bit will automatically clear to 0 following the board reset. Board Reset will NOT reset programmable oscillator.
2.1.3 Board Status: Local Offset 0x0008 The Board Status Register gives general overall status for a board. The Board Jumpers (D1:D0) are physical jumpers which can be used to distinguish between boards if multiple SIO4 boards are present in a system. D31:D9 RESERVED 0 = Standard...
2.1.6 Channel RX Almost Flags: Local Offset 0x0014 / 0x0024 / 0x0034 / 0x0044 The Rx Almost Flag Registers are used to set the Almost Full and Almost Empty Flags for the transmit FIFOs. The Almost Full/Empty Flags may be read as status bits in the Channel Control/Status Register, and are also edge- triggered interrupt sources to the Interrupt Register.
D7:0 Channel Control Bits Reset USC (Pulsed) ‘1’ = Reset USC chip Notes: This value will automatically clear to ‘0’. Following a USC Reset, the next access to the USC must be a write of 0x00 to Local Offset 0x100 (Ch1/2) or Local Offset 0x300 (Ch3/4).
2.1.10 Interrupt Registers There are 32 on-board interrupt sources (in addition to USC interrupts and PLX interrupts) which may be individually enabled. Four interrupt registers control the on-board interrupts – Interrupt Control, Interrupt Status, Interrupt Edge/Level, and Interrupt Hi/Lo. The 32 Interrupt sources are: IRQ # Source Default Level...
2.1.10.1 Interrupt Control: Local Offset 0x0060 The Interrupt Control register individually enables each interrupt source. A ‘1’ enables each interrupt source; a ‘0’ disables. An interrupt source must be enabled for an interrupt to be generated. 2.1.10.2 Interrupt Status/Clear: Local Offset 0x0064 The Interrupt Status Register shows the status of each respective interrupt source.
2.1.11 Channel Pin Source: Local Offset 0x0080 / 0x0084 / 0x0088 / 0x008C The Channel Pin Source Register configures the Output source for the Clocks, Data, RTS, and DCD outputs. Transceiver Termination Loopback DCE/DTE Transceiver Protocol Mode Enable Disable Enable Mode TxAuxC Unused...
Page 18
D21:19 Cable TxD Output Control Allows TxD output to be used as a general purpose output. TxD Source USC_TxD Output ‘0’ Output ‘1’ Differential Biphase Mark Differential Biphase Space Level Differential Biphase Level D18:17 Cable TxAuxC Output Control Defines the Clock Source for the TxAuxC signal to the IO connector. TxAuxC Source Tristate On-board Programmable Clock...
Page 19
D10:9 USC_CTS Direction Setup Defines the CTS direction for the USC CTS pin. Notes: If CTS is used as GPIO, set this field to ‘00’ and set Pin Source Register D14:D13 for output / Pin Status Register D2 for input. ...
D2:0 USC_TxC Source Defines the Clock Source for the USC_TxC pin. Since this signal is bidirectional (it may be used as either an input or output to the USC), the clock source must agree with the USC Clock setup (USC IO Control Reg D2:0) to ensure the signal is not being driven by both the USC and the FPGA.
2.1.15 FIFO Size Register: Local Offset 0x00E0 / 0x00E4 / 0x00E8 / 0x00EC The FIFO Size Registers display the sizes of the installed data FIFOs. This value is calculated at power-up This value, along with the FIFO Count Registers, may be used to determine the amount of data which can be safely transferred without over-running (or under-running) the FIFOs.
Universal Serial Controller Registers The internal registers of the Zilog Z16C30 Universal Serial Controller (USC) are memory mapped into Local Address space. It is beyond the scope of this manual to provide comprehensive USC programming information. For detailed programming information, please refer to the Zilog High Speed Communication Controller Product Specifications Databook for the Z16C30 and the Zilog Z16C30USC User’s Manual.
2.2.3 USC Data Transfer Although the Z16C30 USC contains 32 byte internal FIFOs for data transfer, these are typically not used on the SIO4B. Since the SIO4B has much deeper external FIFOs (or internal FPGA FIFOs), the internal USC FIFOs are setup to immediately transfer data to/from the external FIFOs.
2.2.4 USC Register Memory Map To access the USC in 8-bit mode, the driver is required to access the upper and lower bytes of each register independently. The odd address byte will access the upper byte of each register (D15-D8), and the even address byte will access the lower byte (D7-D0).
CHAPTER 3: PROGRAMMING Introduction This section addresses common programming questions when developing an application for the SIO4. General Standards has developed software libraries to simplify application development. These libraries handle many of the low-level issues described below, including Resets, FIFO programming, and DMA. These libraries may default the board to a “standard”...
The Almost Flag value represents the number of bytes from each respective “end” of the FIFO. The Almost Empty value represents the number of bytes from empty, and the Almost Full value represents the number of bytes from full (NOT the number of bytes from empty). For example, the default value of “0x0007 0007” in the FIFO Almost Register means that the Almost Empty Flag will indicate when the FIFO holds 7 bytes or fewer.
Programmable Oscillator / Programmable Clocks Two On-Board Programmable Oscillators provide each channel with a unique programmable clock source using Cypress Semiconductor CY22393 Programmable Clock generators. In order to program the oscillator, it is necessary to calculate and program values for different clock frequencies. General Standards has developed routines to calculate the necessary values for a given setup and program the clock generator.
The preceding suggestions should work for most applications. The default Pin Source Register value should set the clocks to work with both scenarios – USC TxC pin = Programmable Clock, USC RxC Pin = Cable RxC, Cable TxC = Programmable Clock. (For async, use USC TxC is input clock). DCE/DTE Mode As all signals are bidirectional, the DCE or DTE mode will set the direction for each signal.
General Purpose IO Unused signals at the cable may be used for general purpose IO. The Pin Source and Pin Status Registers provide for simple IO control of all the cable interface signals. For outputs, the output value is set using the appropriate field in the Pin Source Register.
CHAPTER 4: PCI INTERFACE PCI Interface Registers The PCI interface is handled by a PCI9056 I/O Accelerator from PLX Technology. The PCI interface is compliant with the 5V, 66MHz 32-bit PCI Specification 2.2. The PCI9056 provides dual DMA controllers for fast data transfers to and from the on-board FIFOs.
4.1.2 Local Configuration Registers The Local Configuration registers give information on the Local side implementation. These include the required memory size. The SI04B memory size is initialized to 4k Bytes. All other Local Registers initialize to the default values described in the PCI9056 Manual. 4.1.3 Runtime Registers The Runtime registers consist of mailbox registers, doorbell registers, and a general-purpose control register.
CHAPTER 5: HARDWARE CONFIGURATION Board Layout The following figure is a drawing of the physical components of the PCI66-SI04B: 7.45" 6.9" FPGA PCI Bridge Figure 5-1: Board Layout Board ID Jumper J4 Jumper J4 allows the user to set the Board ID in the GSC Board Status Register (See Section 2.1.3). This is useful to uniquely identify a board if more than one SI04B card is in a system.
Termination Resistors The PCI66-SIO4B board is designed with socketed external parallel termination. The external termination resistors are 8 pin SIPs. There are 8 termination SIPs – RP5, RP6, RP10, RP11, RP16, RP17, RP20, and RP21. The external parallel resistors are for RS422/RS485 termination. This board is shipped with 120 Ohm external termination resistors.
(quotes@generalstandards.com). Interface Cable General Standards Corporation can provide an interface cable for the SI04B board. This standard cable is a twisted pair cable for increased noise immunity. Several standard cable lengths are offered, or the cable length can be custom ordered to the user’s needs. Versions of the cable are available with connectors on both ends, or the cable may be ordered with a single connector to allow the user to adapt the other end for a specific application.
APPENDIX A: PROGRAMMABLE OSCILLATOR PROGRAMMING The 4 on-baord clock frequencies are supplies via two Cypress Semiconductor CY22393 Programmable Clock Generatosr. In order to change the clock frequencies, this chip must be reprogrammed. This document supplies the information necessary to reprogram the on-board clock frequencies. GSC has developed routines to calculate and program the on-board oscillator for a given set of frequencies, so it should not be necessary for the user need the following information –...
Page 38
Measure Channel 3 Clock Measure Channel 4 Clock Reserved (Unused) Status Word Readback Control 0 => Status Word D31-D8 == Measured Channel Value 1 => Status Word D31-D8 == Control Word D23-D0 Post-divider set 0 = Ignore D23-D8 during Command Word Write 1 = Set Channel Post-Dividers from D23-D8 during Command Word Write D11-D8 Channel 1 Post-Divider...
Page 39
The Internal RAM is defined as follows: RAM Address 0x08–0x57 correspond directly to the CY22393 registers. Address Description Default Value 0x00 – 0x05 Reserved (Unused) 0x00 0x06 Reserved 0xD2 0x07 Reserved 0x08 0x08 ClkA Divisor (Setup0) 0x01 0x09 ClkA Divisor (Setup1) 0x01 0x0A ClkB Divisor (Setup0)
Need help?
Do you have a question about the PCI66-SIO4B and is the answer not in the manual?
Questions and answers