PC104P-SIO4BX User Manual, Revision: 0
General Standards Corporation
8302A Whitesburg Drive Huntsville, AL 35802, Phone: (256) 880-8787
The AuxC clock is a single auxiliary input or output clock. As an output, this clock can be set to the programmable
clock frequency as a reference clock. As an input, this clock can be used as the clock source for the USC clocks
(USC_RxC and USC_TxC) or the Cable TxC clock. If the signal is set as an output (TxAuxC), the RxAuxC input is
simply the feedback of the TxAuxC. If the TxAuxC source is set to “Tristate”, the AuxC signal will be input only.
In asynchronous mode, the clock does not need to be transmitted with the data. Therefore, the USC Clock pins will
be used for the input baud rate clock. Since the USC_RxC and USC_TxC pins have identical functions, the
USC_RxC and USC_TxC pins may be used interchangeably. The async baud rate clock will be 16x / 32x / or 64x
the actual baud rate due to the async oversampling. This oversample rate is set in the USC Channel Mode Register
when async mode is selected. The simplest method will be to program the channel programmable clock to be
16/32/64 times the desired baudrate and use this clock as the source for the USC_TxC / USC_RxC pin. Section
2.1.11 describes how to program the Pin Source Register to set USC_TxC or USC_RxC = Programmable Clock.
The USC should be programmed such that USC_TxC / USC_RxC is an input (in the USC I/O Control Register), and
the USC baudrate generator will be bypassed completely. If both Rx and Tx are operating at the same baud rate, the
same USC clock pin can be used for both the transmit and receive clocks.
For synchronous modes, the clock is transmitted and received on the cable along with the data. This can present a
problem since the USC only has two clock pins. Since one clock is necessary for receive clock and the other is
necessary for the transmit clock, there is no clock pin available for an input to the USC baud rate generators. The
on-board programmable clocks provide a solution for this situation. By using the programmable oscillator and the
programmable clock post-divider, the on-board programmable clock can usually be set directly to the desired
transmit baud rate. The USC_TxC pin and the Cable TxC are both set equal to the Programmable Clock in the Pin
Source Register. The USC_RxC pin is used for the receive clock from the cable interface, so it will be set to the
cable RxC in the Pin Source Register. Since the FPGA will source both USC clocks, they must be programmed as
inputs in the USC I/O Control Register.
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).
3.6
Programmable Oscillator / Programmable Clocks
The On-Board Programmable Oscillator provides each channel with a unique programmable clock source using a
Cypress Semiconductor CY22393 Programmable Clock generator. 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. As these routines are written in C
on a windows based PC, they may need to be ported for user specific applications. Contact GSC for help in porting
these routines.
The default clock configuration at power-up for the programmable clock on all channels is 20MHz.
See Appendix A for more detailed information concerning programming the on-board clock frequencies.