PC104P-SIO4BX User Manual, Revision: 0
General Standards Corporation
8302A Whitesburg Drive Huntsville, AL 35802, Phone: (256) 880-8787
APPENDIX A: PROGRAMMABLE OSCILLATOR PROGRAMMING
The 4 on-baord clock frequencies are supplies via a Cypress Semiconductor CY22393 Programmable Clock
Generator. 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 – it is provided for documentation purposes. Please contact GSC for help in setting up the on-
board oscillator.
The CY22393 contains several internal address which contain the programming information. GSC has mirrored this
data internal to the FPGA to allow the user to simply setup the data in the FPGA RAM and then command the on-
board logic to program the clock chip. This isolates the user from the hardware serial interface to the chip. For
detailed CY22393 programming details, please refer to the Cypress Semiconductor CY22393 dat sheet.
The GSC CLOCK RAM is accessed through 2 registers at local offset 0x00A0 (Address Reg) and 0x00A4 (Data
Reg). The user simply sets the RAM Address register to the appropriate offset, then reads or writes the the RAM
data. The Programmable Osc Control/Status register allows the user to program the CY22393 or setup the clock
post-dividers.
The GSC Local Programmable Clock Registers are defined as follows:
0x00A0 – RAM Address Register
Defines the internal CLOCK RAM address to read/write
0x00A4 – RAM Data Register
Provides access to the CLOCK RAM pointed to by the RAM Addr Register.
0x00A8 – Programmable Osc Control/Status Register
Provides control to write the contents of the CLOCK RAM to the CY22393 and setup additional post-
dividers for the input clocks.
Control Word (Write Only)
D0
Program Oscillator
1 = Program contents of CLOCK RAM to CY22393.
Automatically resets to 0.
D1
Measure Channel 1 Clock
D2
Measure Channel 2 Clock
D3
Measure Channel 3 Clock
D4
Measure Channel 4 Clock
D5
Reserved (Unused)
D6
Status Word Readback Control
0 => Status Word D31-D8 == Measured Channel Value
1 => Status Word D31-D8 == Control Word D23-D0
D7
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
D15-D12
Channel 2 Post-Divider
D19-D16
Channel 3 Post-Divider
D23-D20
Channel 4 Post-Divider
D31-D24
Reserved (Unused)