Charnwood Dynamics Ltd. Hardware Specification Quad UART Board Rev 2 (DD2396)

advertisement
Charnwood Dynamics Ltd.
Hardware Specification
Quad UART Board Rev 2 (DD2396)
Daughter Board Rev 2 (DD2395)
Version
Date
Author
: 0.0
: 26/02/2003
: Simon Hole
Confidential - Charnwood Dynamics Ltd.
1
Table of Contents
1.0 Introduction
2.0 cPCI Interface
3.0 RS-422 Serial Drive
4.0 Xilinx Timing Generation
5.0 Coda Interface
6.0 Miscellaneous
Appendix
3
4
5
6
9
12
13
Confidential - Charnwood Dynamics Ltd.
2
1.0 Introduction
The document is the hardware specification for the Charnwood Dynamics, CompactPCI Quad
UART board used in the Coda CX1 Active-Hub. This is essentially a PCI Quad UART with
two Coda connectors, mounted with a daughter board with another two Coda connectors on.
This gives a total of four 26-way Coda CX1 connectors on the front panel, with four power
switches, four power LEDs and two Sync In/Sync Out sockets.
A Xilinx XCR3064 EPLD is used as a Coda Master timing generator, specifically for the ISS
project for MIT. The PCB size is CompactPCI Eurocard 160 x 100 mm.
The Quad UART board is part of the Active-Hub unit, which runs an embedded Linux on a
PowerPC board. This system is designed to run in real-time, with four Coda CX1s operating in
master comms mode, streaming data into the Quad UART board at 5 Mbps per Coda.
Please refer to the component data sheets for accurate and up-to-date information. In addition
refer to the schematic diagram to understand how all the components are connected together.
Please refer to the latest parts list for up-to-date component values.
Please refer to the Abel source code for the Xilinx XCR3064 EPLD, for the definition of the
EPLD part.
The board has the following key features:










3U CompactPCI PCB format (160 x 100 mm).
5V PCI design (blue) with slave interface.
Four UART channels operating at 5 Mbps.
Four Coda CX1 connectors.
RS-422 serial comms signals.
Xilinx EPLD for Master Sync generation.
+12V fused power to supply four Coda CX1s.
Strobe Output supported.
Sync Input and Output.
+3.3V logic power and +12.0V Coda power.
Confidential - Charnwood Dynamics Ltd.
3
2.0 cPCI Interface
An Oxford Semiconductor OX16PCI954 Quad UART chip (U1, TQFP160) is used as the
interface to the PCI bus. This is an integrated monolithic chip, containing a PCI interface and
four high-performance UARTs. The part interfaces directly to the PCI bus via 10R series
resistors on all the signal lines except the clock.
A 93C46 SEEPROM (U2, SO-8) can be programmed with addition PCI configuration data for
the OX16PCI954. This is done under Windows 98.
The OX16PCI954 chip has the following key features:







OX16PCI954 Integrated PCI and Quad UARTs.
5V PCI Slave Interface.
PCI 2.2 Compliant
PCI Power Management 1.0 compliant.
SEEPROM for additional PCI device configuration.
160 pin TQFP package.
5.0V powered.
A 20.0 MHz oscillator (OSC1, SM) drives the common UART clock to give a maximum data
rate of 5 Mbps. Each UART has the following serial line signals:




TX
RX
CTS
RTS
The OX16PCI954 is configured to operate as four UART and an 8-bit local bus. The Xilinx
EPLD is configured off this local bus.
Four IO lines from the OX16PCI954 MIO8, MIO9, MIO10 and MIO11 are used to apply
individual resets to each of the Coda CX1s.
Please refer to the OX16PCI954 data sheet for additional information on this powerful device.
Confidential - Charnwood Dynamics Ltd.
4
3.0 RS-422 Serial Drive
The RX, TX, RTS and CTS signal are TTL level and are converted to RS-422 drive by eight
MAX3490E (SO-8) RS-422 transceivers. The MAX3490E contains a Transmitter and a
Receiver, which can operate to 12 Mbps and have 15 kV ESD protection.
The RX and CTS receiver RS-422 inputs are each terminated by a 120R 0.5W resistor (2010)
to suit the characteristic impedance of the Coda cable.
The RX, TX, RTS and CTS RS-422 signals from each UART all connect to their CODA
connectors (J1, J2, J3 and J4).
Confidential - Charnwood Dynamics Ltd.
5
4.0 Xilinx Timing Generation
A Xilinx XCR3064 EPLD (U3, TQFP44) is interfaced to the 8-bit local bus of the OX16PCI954
Quad UART. This is bridged off the cPCI bus and is I/O mapped onto the Data/Address bus.
The Xilinx EPLD is driven off a 12.000 MHz SM crystal oscillator (50 ppm), to generate the
Coda Sync timing sequence. Essentially, a 19-bit counter is used, which allows a minimum
EPOCH sample frequencies of 23 Hz. This allows the Coda to sample at 25 and 30 Hz, which
are the Television/film frame rates.
The EPLD also controls the Sync source of Interrupt, which can interrupt the cPCI bus.
The EPOCH sample rate generation is given by the following equation:
Timer Value = 12000000 / Epoch Sample Rate
The Epoch Sample Rate can be in the range of 23 to 800 Hz. The 19-bit counter sets the
lower limit and the upper limit is set by the Coda CX1 hardware.
4.1 Control Register Definition
The XCR3064 has an 8-bit interface to the backplane, so it can be configured. It has an 8-bit
control registers, which is define as follows:
CTRL0
0
1
Interrupt Control
Disable Interrupt
Enable External SYNC Interrupt
CTRL1
0
1
Interrupt Control
Disable Interrupt
Enable Internal SYNC Generator Interrupt
CTRL2
0
1
Counter Control
Disable the 19 bit Counter/Timer
Enable the 19 bit Counter/Timer
Note: this bit is not currently used.
CTRL3
0
1
Strobe Unit Control
Disable External STROBE Units
Enable External STROBE Units
CTRL4
0
1
Internal SYNC Generator Control
Disable Internal SYNC Generator
Enable Internal SYNC Generator
CTRL5
0
1
Coda SYNC Input Control
Disable Coda SYNC Input
Enable Coda SYNC Input
CTRL6
0
External SYNC Input Control
Disable External SYNC Input
Confidential - Charnwood Dynamics Ltd.
6
1
Enable External SYNC Input
CTRL7
0
1
External SYNC Polarity Control
External SYNC Input active-low (default)
External SYNC Input active-high
On a Reset the Control Register bits are all set to zero.
4.2 Status Register Definition
This is similar to the Control Register and is defined as follows:
Status Bit
0
1
2
3
4
5
6
7
Definition
Same as Control Register
Same as Control Register
Same as Control Register
Same as Control Register
Same as Control Register
Same as Control Register
Same as Control Register
Same as Control Register
4.3 Address Decode
4.3 Backplane Address Decode:
A2
0
0
0
0
1
1
1
1
A1
0
0
1
1
0
0
1
1
A0
0
1
0
1
0
1
0
1
RD*
1
1
1
1
1
1
1
1
WR*
0
0
0
0
0
0
0
0
Address Decode
Control Register 7..0
Timer Register Byte 0 (LSB)
Timer Register Byte 1
Timer Register Byte 2 (MSB)
-
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Status Register 7..0
Interrupt Status Register 2..1
-
4.4 JTAG
The Xilinx XCR3064 EPLD uses a JTAG header (HD8) for programming.
The JTAG header is a 10-way (2x5) double row header defined as follows:
Pin
1
2
3
Function
0V
TCK
0V
Confidential - Charnwood Dynamics Ltd.
7
4
5
6
7
8
9
10
TMS
0V
TDI
0V
TDO
No Pin (key)
No Connect
Confidential - Charnwood Dynamics Ltd.
8
5.0 Coda Interface
5.1 Strobe Circuit
The purpose of the strobe circuit is to combine the four StrobeIn* inputs from the Codas and
to output the combined signal to a header to drive and external Strobe Unit. The four RS-422
StrobeIn* inputs are each terminated by a 120R resistor, which has bias resistors to ensure
the StrobeIn* signal is always de-asserted.
These are converted to TTL by four MAX3490E (U15, U17, U19 and U21) and are combined
by a 74LV08 AND gate (U24, SO-14). If any of the StrobeIn* signals are asserted then the
combine StrobeIn* will also assert. The StrobeIn* signal is passed through the EPLD to enable
or disable it and is output as the StrobeOut* signal.
The StrobeOut* signal is then converted back to RS-422 by a MAX3490E (U21) and put out
on HD5. An external Strobe Unit can then be driven off this connector.
HD5 and HD6 Strobe Headers
Pin
1
2
3
4
Function
Strobe+
Strobe+12V
0V
5.2 Sync Circuit
The SyncIn* input circuit operates in a similar way to the Strobe input circuit by combining the
four SyncIn* inputs from the four Codas. In addition is allows a Master Sync generated by the
Xilinx EPLD to be output to all Codas.
The four RS-422 Sync* inputs are each terminated by a 120R resistor, which has bias
resistors to ensure the SyncIn* signal is always de-asserted.
These are converted to TTL by four MAX3490E (U14, U16, U18 and U20) and are combined
by a 74LV08 AND gate (U23, SO-14). If any of the SyncIn* signals are asserted then the
combine SyncIn* will also assert. The SyncIn* signal is passed through the EPLD to multiplex
it with the Internal/External Sync and is output as the SyncOut* signal.
The SyncOut* signal is then converted back to four RS-422 signals by four MAX3490Es (U14,
U16, U18 and U20) and output to the four Coda connectors. An addition MAX3490E (U19)
drives the SyncOut* signal to the external Sync Input/Output header.
The external Sync input is a RS-422 active-low Sync input to synchronise Codas from an
external source of timing. This is passed to two monostables, to give a short pulse of 500ns,
which is used as the cleaned up Sync pulse and a long pulse of 50ms, which is used to drive
an LED and to indicate the presence of an external Sync pulses. The long pulse can be used
for to control a Sync Multiplexor, to allow a switch to internal Sync source should the external
Sync fail.
HD7 External Sync Input/Output
Confidential - Charnwood Dynamics Ltd.
9
Pin
1
2
3
4
5
Function
SyncOut+
SyncOutExtSyncIn+
ExtSyncIn0V
This header must be wired to its Sync In and Sync Out LEMO connector on the Front Panel.
5.3 Coda Power
An onboard header HD9 connects the +12V power to the board and onto the four Codas.
Each Coda can take a maximum of 1.2A so a total of 4.8A maximum could be required. The
Compact PCI connector has a rating of 1.0A for the 12V pin, so this cannot be used. A lead
from the PSU is required to apply power to HD9.
HD9 External +12V Power Header
Pin
1
2
3
4
5
6
Function
+12V
+12V
+12V
0V
0V
0V
The +12V power is applied to four 4-way SIL headers HD1, HD2, HD3 and HD4. Pins 1 and 2
go to the Coda power switch. Pins 3 and 4 go to the LED (+12V LED). The LED is on a cable
loopback, so if a cable is not connected then the LED will not light when the power is switched
on.
HD1, HD2, HD3 and HD4 Coda Power Header
Pin
1
2
3
4
Function
Power Switch (+12V)
Power Switch
LED+
LED-
The +12V to each Coda is passed through a 1.6A PolySwitch fuses F1, F2, F3 and F4 (SM,
1812).
This header must be wired to its switch and LED on the Front Panel.
5.4 Coda USB
Each Coda connector has a 4 way SIL header, which corresponds to a similar header on the
SHARC processor board. This was originally designated USB for the ISS project, but are now
used as two Spare signal pairs.
HD1A, HD2A, HD3A and HD4A USB headers
Confidential - Charnwood Dynamics Ltd.
10
Pin
1
2
3
4
Function
USB+ (Spare1+)
USB- (Spare1-)
USB Power+ (Spare2+)
USB Power- (Spare2-)
Confidential - Charnwood Dynamics Ltd.
11
6.0 Miscellaneous
6.1 Environmental
The board will be designed using commercial grade components (0 to +70 C) and will
operate within the Active-Hub unit in an ambient temperature of 0 to +55 C.
The Active-Hub unit must protect the board from mechanical shock, vibration, thermal
stresses and humidity.
6.2 EMC
The board will be designed for EMC compliance. Input/output signals will be filtered and
power supplies will have high-frequency decoupling. Ground plane management will be
implemented.
6.3 Components
All surface components will be used wherever possible (except connectors). Discrete
resistors and non-polarised capacitors will be 0805 size due to the high board density. Larger
sized resistors will be used where greater power dissipation is required.
Components will be mounted on the component (upper) side of the PCB.
All components will be commercial grade (0 to +70 C) and semiconductors will be in plastic
packages. The use of IC sockets will be avoided.
6.4 PCB
The PCB will have 4 layers, with inner Ground and Power planes. Tracking will be 8 thou
tracking and 8 thou gap.
The Ground plane will be solid with no splits in it. However, there will be a split in the Power
plane, so the UART components and tracking will be over the +5V power plane. The
remaining digital components and tracking will be over the +3.3V digital power plane.
The silkscreen will be labelled ‘CHARNWOOD DYNAMICS LTD’.
6.5 Connectors
The Coda CX1 connectors are four 26-way High-Density D connectors (J1-J4), which connect
to four Coda CX1 units. Two Lemo sockets are used for the RS-422 External SyncIn and
SyncOut signals. See the Appendix for the connector pin outs.
Confidential - Charnwood Dynamics Ltd.
12
APPENDIX
Connector Pin Outs
J1, J2, J3 and J4 – Coda CX1 Connectors
26-way High-Density D Socket
Pin No.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Function
VIN+ (+12V nominally)
TXRX+
CTSVIN- (0V)
SYNC OUTSYNC IN+
USB2/SPARE2
VIN- (0V)
Chassis/Earth
VIN- (0V)
TX+
RTSCTS+
STROBE OUTSYNC OUT+
USB4/SPARE4
USB1/SPARE1
VIN- (0V)
VIN+ (+12V nominally)
RXRTS+
RESET IN*
STROBE OUT+
SYNC INUSB3/SPARE3
HD1, HD2, HD3 and HD4 Coda Power Header
4-way SIL Header
Pin
1
2
3
4
Function
Power Switch (+12V)
Power Switch
LED+
LED-
HD1A, HD2A, HD3A and HD4A USB headers
4-way SIL Header
Pin
1
2
3
4
Function
USB+ (Spare1+)
USB- (Spare1-)
USB Power+ (Spare2+)
USB Power- (Spare2-)
HD5 and HD6 Strobe Headers
4-way SIL Header
Confidential - Charnwood Dynamics Ltd.
13
Pin
1
2
3
4
Function
Strobe+
Strobe+12V
0V
HD7 External Sync Input/Output
5-way SIL Header
Pin
1
2
3
4
5
Function
SyncOut+
SyncOutExtSyncIn+
ExtSyncIn0V
HD8 – JTAG Connector
10-way (2x5) Header
Pin
1
2
3
4
5
6
7
8
9
10
Function
0V
TCK
0V
TMS
0V
TDI
0V
TDO
No Pin (key)
No Connect
HD9 External +12V Power Header
6-way SIL Header with Friction Lock
Pin
1
2
3
4
5
6
Function
+12V
+12V
+12V
0V
0V
0V
Confidential - Charnwood Dynamics Ltd.
14
Xilinx XCR3064 ABEL Source Code
MODULE Decoder
TITLE 'CoolRunner_cPCI_QuadUart_Board'
// CoolRunner CPLD on the cPCI Quad UART Board.
// This is the Master Timing Generator for a slave CX1 Coda.
//
// XCR3064XL
XCR3064XL using WebPACK ISE.
//
//*******************************************************************
//
// Local Bus Address Decode
// A0, A1, A2, A3 Address Bus & D0-D7 Data Bus
// A4, A5, A6, A7 Not Connected
//
// Local Bus ADDRESS:
// 0x0000 = Control/Status Register.
// 0x0001 = Interrupt Status Register.
// 0x0002 = TBD.
// 0x0003 = TBD.
// 0x0004 = Timer Byte 0 (LSB)
// 0x0005 = Timer Byte 1
// 0x0006 = Timer Byte 2 (MSB)
// 0x0007 = TBD
//
//*******************************************************************
//
// 29/06/2001 Created.
// 10/09/2001 Modified to the PCB pinout, to include SYNC generation
//
capabilty, with Sync and Strobe inputs. Support for
//
180 Hz mode required.
//
Require 60, 100, 120, 180, 200, 400 & 800 Hz EPOCH rates
// 26/09/2001 Address Map added.
// 27/09/2001 Programmable 24-bit Timer added for sample rate generation.
//
// 05/12/2001 Ported to the cPCI design on the OX16PCI954 local bus.
//
This has an 8 bit data bus.
// 02/01/2002 Use a 19 bit counter to reduce the number of nodes.
//
This will give a 23 Hz Min. EPOCH Rate.
// 18/02/2002 cPCI Quad UART board is now in PCB CAD. Pinout reflects
//
the schematic.
// 16/02/2002 MIO0 to MIO3 made Active-High. OXPROM adjusted for active//
high INTs.
// 29/04/2002
bug-fix: DATA8.OE was active-low, made active-high.
// 30/04/2002 MIO0 will support Ext. Sync Input and
//
MIO1 will support Int. Sync Generator PCI Interrupts.
//
These must be latched. CTRL0 & CTRL1 are Int. enable bits.
//
//
Do not write 0 to the Timer registers as this will cause
//
an infinitely wide SYNC pulse.
//
//
May need to condition the External Sync Input, due to the
//
wired-OR nature of PCI interrupts. Using EXT_SYNC_SHORT#,
//
to prevent this.
//
//***********************************************************************
// RESET = all ZERO:
//
// CTRL0 = 0 : Disable Interrupt.
//
= 1 : Enable External Sync input Interrupt.
// CTRL1 = 0 : Disable Interrupt.
//
= 1 : Enable Internal Sync Generator Interrupt.
// CTRL2 = 0 : Disable the 19 bit Counter/Timer
// Not currently used
//
= 1 : Enable the 19 bit Counter/Timer
// Not currently used
// CTRL3 = 0 : Disable External STROBE Units
//
= 1 : Enable External STROBE Units
// CTRL4 = 0 : Disable Internal SYNC Generator
//
= 1 : Enable Internal SYNC Generator
// CTRL5 = 0 : Disable Ext CODA SYNC Input
//
= 1 : Enable Ext CODA SYNC Input
// CTRL6 = 0 : Disable Ext SYNC Input
//
= 1 : Enable Ext SYNC Input
// CTRL7 = 0 : Ext SYNC Input : active-low (default)
//
= 1 : Ext SYNC Input : active-high
//
//***********************************************************************
// PIN Definitions
// Local Bus Signals
nRST
PIN 38;
// : Active-Low
Confidential - Charnwood Dynamics Ltd.
15
nCS0
nRD
nWR
A0
A1
A2
A3
D0
D1
D2
D3
D4
D5
D6
D7
PIN
PIN
PIN
PIN
PIN
PIN
PIN
PIN
PIN
PIN
PIN
PIN
PIN
PIN
PIN
39;
37;
35;
21;
22;
23;
27;
20;
19;
18;
15;
14;
13;
12;
11;
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
Active-Low
Active-Low
Active-Low
D0
D1
D2
D3
D4
D5
D6
D7
// CODA SYNC Signals - ANDed together externally.
CLK12
PIN 40;
// 12 MHz Clock input
nCODA_SYNC_IN PIN 44;
// CODA SYNC IN: Active-Low
EXT_SYNC_IN
PIN 3;
// EXT_SYNC_IN: Active Low or High
nEXT_SYNC_OUT PIN 5 istype 'com'; // EXT_SYNC_OUT: Active-Low (to mono
stable)
nEXT_SYNC_SHORT
PIN 6;
// EXT_SYNC: Active-Low (from mono
stable)
EXT_SYNC_LONG PIN 8;
// EXT_SYNC: Active-High (from mono
stable)
// High when External Sync Present.
// Bit 0 in Control/Status Register.
nSYNC
PIN 10 istype 'com'; // SYNC: Active-Low
// CODA STROBE Signals.
nSTROBE_IN
PIN 43;
nSTROBE_OUT
PIN 42 istype 'com';
Units
// Interrupt Signals to OX16PCI954
MIO0
PIN 34 istype
MIO1
PIN 33 istype
MIO2
PIN 31 istype
MIO3
PIN 30 istype
// NODE Definitions
CTRL7..CTRL0
Q18..Q0
INT_SYNC1
INT_SYNC2
INT_SYNC3
nSYNC_GEN
TIMA7..TIMA0
TIMB7..TIMB0
TIMC2..TIMC0
LOAD
LOAD1
EXT_SYNC_INT
INT_SYNC_INT
EXT_SYNC1
EXT_SYNC2
NODE
NODE
NODE
NODE
NODE
NODE
NODE
NODE
NODE
NODE
NODE
NODE
NODE
NODE
NODE
// SET Declaration
CONTROL
TIMERA
TIMERB
TIMERC
TIMER
=
=
=
=
=
DATAB8
DATAB3
COUNTER
istype
istype
istype
istype
istype
istype
istype
istype
istype
istype
istype
istype
istype
istype
istype
'com';
'com';
'com';
'com';
// STROBE IN: Active-Low
// STROBE OUT: Active-Low to Ext Strobe
//
//
//
//
Active-High
Active-High
Active-High
Active-High
'reg, buffer';
'reg, buffer';
'reg, buffer';
'reg, buffer';
'reg, buffer';
'buffer';
'reg, buffer';
'reg, buffer';
'reg, buffer';
'buffer';
'buffer';
'reg, buffer';
'reg, buffer';
'reg, buffer';
'reg, buffer';
[CTRL7..CTRL0];
[TIMA7..TIMA0];
[TIMB7..TIMB0];
[TIMC2..TIMC0];
[TIMERC, TIMERB, TIMERA];
= [D7..D0];
= [D2..D0];
= [Q18..Q0];
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
8-bit Control Register
19-bit Counter
Internal SYNC FF1
Internal SYNC FF2
Internal SYNC FF3
Internal SYNC Generator Output
//
//
//
//
//
8-bit Control Reg.
8-bit Timer Reg.
8-bit Timer Reg.
3-bit Timer Reg.
19-bit Timer Reg.
Pre-Load the Timer/Counter
Counter Load Signal
PCI Interrupt Latch bit
PCI Interrupt Latch bit
Ext Sync Synchronisation FF
Ext Sync Synchronisation FF
// 8-bit Data Bus D0->D7
// 4-bit Data Bus D0->D3
// 19-bit Counter
//***********************************************************************
EQUATIONS
// SYNC Generation (active-low)
nSYNC
= !((!nSYNC_GEN
& CTRL4) #
(!nCODA_SYNC_IN
& CTRL5) #
(!nEXT_SYNC_SHORT & CTRL6));
nEXT_SYNC_OUT = !((!EXT_SYNC_IN & !CTRL7) #
monostable)
( EXT_SYNC_IN & CTRL7));
monostable)
// Internal SYNC Generator
// CODA SYNC input
// External SYNC input (500 ns)
// EXT_SYNC: Active-Low (to
// EXT_SYNC: Active-High (to
Confidential - Charnwood Dynamics Ltd.
16
// Enable the External STROBE Units
nSTROBE_OUT = !(!nSTROBE_IN & CTRL3);
// cPCI IRQ Generation
high
// 30.04.2002
MIO0
= EXT_SYNC_INT & CTRL0;
MIO1
= INT_SYNC_INT & CTRL1;
MIO2
= 0;
MIO3
= 0;
// MIO0 -> MIO3 are driven active// EXT SYNC input PCI Interrupt.
// INT SYNC Gen PCI Interrupt.
//
//
// Reading the following two Interrupt Status Registers will clear them!
// They are SET whether or not the actual interrupts are enabled.
EXT_SYNC_INT.D
= 0;
EXT_SYNC_INT.CLK = !(nRST & !nCS0 & !nRD & !A3 & !A2 & !A1 & A0);
1, Bit 0
EXT_SYNC_INT.PR = !nEXT_SYNC_SHORT;
// Active-low
EXT_SYNC_INT.AR = !nRST;
INT_SYNC_INT.D
INT_SYNC_INT.CLK
1, Bit 1
INT_SYNC_INT.PR
INT_SYNC_INT.AR
// Control Reg Decode
CONTROL.D
CONTROL.CLK
0
CONTROL.AR
// 30.04.2002
//
DATAB8
DATAB8
= 0;
= !(nRST & !nCS0 & !nRD & !A3 & !A2 & !A1 & A0);
= INT_SYNC1;
= !nRST;
// Address
// Address
// Active-high
- Address = 0x0000
= [D7..D0];
= !(nRST & !nCS0 & !nWR & !A3 & !A2 & !A1 & !A0);
// Address
= !nRST;
= [CTRL7..CTRL2, 0, EXT_SYNC_LONG];
= [CTRL7..CTRL0] & !A0 #
// Address 0
[CTRL7..CTRL2, INT_SYNC_INT, EXT_SYNC_INT] & A0; // Address
1
// 29.04.2002
//
DATAB8.OE
DATAB8.OE
= !(nRST & !nCS0 & !nRD & !A3 & !A2 & !A1 & !A0);
= (nRST & !nCS0 & !nRD & !A3 & !A2 & !A1);
// Address 0 & 1
// Timer Register Decode Address = 0x0004, 0x0005, & 0x0006
TIMERA.D
= DATAB8;
TIMERA.CLK
= !(nRST & !nCS0 & !nWR & !A3 & A2 & !A1 & !A0); // Address 4
//
TIMERA.AR
= !nRST;
TIMERB.D
= DATAB8;
TIMERB.CLK
= !(nRST & !nCS0 & !nWR & !A3 & A2 & !A1 & A0); // Address 5
//
TIMERB.AR
= !nRST;
TIMERC.D
= DATAB3;
TIMERC.CLK
= !(nRST & !nCS0 & !nWR & !A3 & A2 & A1 & !A0); // Address 6
//
TIMERC.AR
= !nRST;
TIMERC.PR
= !nRST;
// Force a non-zero value into the Timer
Register
// Internal SYNC Generator
//////////////////////////
// Master 20-bit Counter/Timer.
//
COUNTER.D
=
((COUNTER - 1) & !LOAD1 & CTRL2) #
COUNTER.D
=
((COUNTER - 1) & !LOAD1) #
(TIMER
& LOAD1);
//
COUNTER.CLK =
COUNTER.AR =
// Enable the Counter
CLK12;
!nRST;
// Counter LOAD signal
LOAD1 = LOAD # (!EXT_SYNC2 & CTRL6);
// Syncronise the Ext. Sync Input to CLK12
EXT_SYNC1.D = nEXT_SYNC_SHORT;
EXT_SYNC2.D = EXT_SYNC1;
// Active-low
EXT_SYNC1.CLK = CLK12;
EXT_SYNC2.CLK = CLK12;
// SYNC Generator (Counter Reset) - Stretch the SYNC pulse to 250 ns (3 clocks)
LOAD
= (COUNTER == 0);
INT_SYNC1.D = LOAD;
INT_SYNC2.D = INT_SYNC1;
INT_SYNC3.D = INT_SYNC2;
Confidential - Charnwood Dynamics Ltd.
17
INT_SYNC1.CLK = CLK12;
INT_SYNC2.CLK = CLK12;
INT_SYNC3.CLK = CLK12;
nSYNC_GEN = !(INT_SYNC1 # INT_SYNC2 # INT_SYNC3);
// Active Low
END
Confidential - Charnwood Dynamics Ltd.
18
Download