1. Purpose and Scope
The CL-GD5428 is a VGA controller with a 32-bit BitBLT engine, a
programmable dual-frequency synthesizer, and an integrated 24-bit
palette DAC. It drives 2 MiB of its own display memory and produces
analog RGB with separate horizontal and vertical sync. This board
operates it in ISA bus mode, which uses asynchronous
MEMR*, MEMW*, IOR*, and
IOW* strobes with an IOCHRDY wait output.
The local-bus modes require a synchronous 386 or 486 protocol with
ADS# and RDYRTN#, which the MC68EC000 does
not produce.
The Memory Map owns the host-memory
window and I/O slot 3.
Bus and Address Decode owns
VGA_MEM_n, IO3_n, the completion tree, and
timeout behavior. The
Clock and Reset design owns
PERIPH_RESET_n. The
MC68901 MFP owns GPIP2 and the interrupt
vector. This page owns the address translation, bus adapter, wait
handling, display memory, configuration EEPROM, dedicated clock, reset
polarity, and analog output.
Mode setting, palette loading, BitBLT programming, and the hardware cursor belong to firmware. This page defines what the hardware makes reachable and the rules firmware must obey to reach it.
Signal names ending in _n, and names written with a
leading slash, are active low. Cirrus Logic writes its own active-low
names with a trailing asterisk, and this page keeps that spelling for
controller pins. Logic uses +5 V. Every IC family selected here
existed before 1994. The CL-GD5428 has no DIP version and mounts
directly to the motherboard, as do the four display-memory DRAMs.
2. Architecture
MC68EC000 CL-GD5428 (ISA bus mode)
D15..D8 <--------------------------> SD7..SD0
D7..D0 <--------------------------> SD15..SD8
A23..A17 -------------------------> LA23..LA17
A16..A1 -------------------------> SA16..SA1
UDS_n ----------------------------> SA0
LDS_n ----------------------------> SBHE*
VGA_MEM_n, IO3_n, R/W ------------> adapter
AS_n, UDS_n, LDS_n ---------------> adapter
VGA_CLK_14 --> U_VGA_SEQ ---------> BALE, MEMR*, MEMW*, IOR*, IOW*
IOCHRDY --> U_VGA_SYNC -----------> wait hold
adapter completion ---------------> VGA_DTACK_n
PERIPH_RESET_n --> inverter ------> RESET
+5 V ---> REFRESH*, TWR*, EDCLK*
GND ---> AEN
Y_VGA_CLK 14.31818 MHz --> R_VGA_CLK --> OSC
--> U_VGA_INV_B --> VGA_CLK_14
CL-GD5428 four 256K x 16 DRAMs
RAS*, OE* as RAS1* ---------------> bank 0 and bank 1 RAS*
CAS* as WE* ----------------------> all four WE*
WE3..WE0* as CAS3..CAS0* ---------> upper and lower CAS* of each device
MA8..MA0 -------------------------> ADDR8..ADDR0
MD31..MD16 -----------------------> bank data, planes 2 and 3
MD15..MD0 -----------------------> bank data, planes 0 and 1
MD28, MD25 --> 6.8 kohm pull-downs --> configuration straps
CL-GD5428 output and storage
RED, GREEN, BLUE --> 150 ohm --> pi filter --> DE-15 pins 1, 2, 3
HSYNC ----------------------------------------> DE-15 pin 13
VSYNC ----------------------------------------> DE-15 pin 14
+-> MC68901 GPIP2
IREF <-- Q_VGA_IREF collector, 6.6 mA sink
EECS, ESYNC*, EVIDEO*, EEDI ------------------> U_VGA_CFG NM93C46N
The adapter runs from the same 14.31818 MHz reference the controller
uses for its internal synthesizer. One shift register produces the
address-latch pulse, the command strobe, and the completion instant.
Display-memory cycles additionally wait for IOCHRDY,
which the controller drives low while a display-memory transfer is
still in progress.
3. Bus Interface
| Motherboard signal | Connection | Function |
|---|---|---|
D15..D8 |
CL-GD5428 SD7..SD0 |
Carries the even byte of every transfer. |
D7..D0 |
CL-GD5428 SD15..SD8 |
Carries the odd byte of every transfer. |
A23..A17 |
CL-GD5428 LA23..LA17 |
Upper address, latched on the falling BALE edge. |
A16..A1 |
CL-GD5428 SA16..SA1 |
Lower address, held valid throughout the cycle. |
UDS_n |
CL-GD5428 SA0 |
Supplies the byte address bit the MC68EC000 does not drive. |
LDS_n |
CL-GD5428 SBHE* |
Selects the controller's upper byte lane. |
R/W |
U_VGA_INV, U_VGA_AND_A | Selects a read or write strobe. |
AS_n |
U_VGA_INV, U_VGA_SEQ clear | Holds adapter state and completion through the bus cycle. |
VGA_MEM_n |
U_VGA_AND_A, U_VGA_INV | Selects the host-memory window. |
IO3_n |
U_VGA_AND_A, U_VGA_INV | Selects I/O slot 3. |
VGA_DTACK_n |
U_VGA_NAND_B | Returns a completed transfer to the acknowledgement tree. |
Byte Lanes
The CL-GD5428 orders bytes little-endian and the MC68EC000 orders them
big-endian, so the two 8-bit halves of the data bus cross. CPU
D15..D8 carries the even byte, which the controller
expects on SD7..SD0. CPU D7..D0 carries the
odd byte, which the controller expects on SD15..SD8.
The byte enables cross with the data. The controller decodes width and
alignment from SBHE* and SA0, and the two
MC68EC000 data strobes supply both directly with no gates.
CL-GD5428 SA0 = UDS_n
CL-GD5428 SBHE* = LDS_n
| MC68EC000 access | UDS_n |
LDS_n |
SBHE*, SA0 |
Controller transfer |
|---|---|---|---|---|
| Byte at an even address | 0 | 1 | 1, 0 | Lower byte on SD7..SD0 |
| Byte at an odd address | 1 | 0 | 0, 1 | Upper byte on SD15..SD8 |
| Word at an even address | 0 | 0 | 0, 0 | 16-bit transfer on SD15..SD0 |
A byte at MC68EC000 address N therefore reaches
controller byte address N. No address arithmetic and no
software byte swapping are needed at either aperture.
Cycle Qualification
VGA_MEM_n and IO3_n already include
NORMAL_CYCLE_n, so neither asserts during a CPU-space
cycle. The adapter adds the requirement that at least one byte strobe
is active.
VGA_DS_n = UDS_n AND LDS_n
VGA_SEL_n = VGA_MEM_n AND IO3_n
VGA_CYCLE = NOT (VGA_SEL_n OR VGA_DS_n)
On a write the MC68EC000 asserts its data strobes one clock after
AS_n, so VGA_CYCLE starts one clock later
than on a read. The adapter measures every interval from
VGA_CYCLE, so the write data is already valid when the
command strobe asserts.
4. Address Apertures
Because the address path passes through unchanged, the controller sees the processor's own address. Firmware places the controller's linear display-memory aperture at the same place the memory map already reserves for it, and the two agree without translation hardware.
Host-Memory Window
SR7[7:4] selects which 1 MiB segment of the 16 MiB
address space the controller claims, comparing the field against
address bits 23 through 20. Setting GRB[5] extends the
claim to a 2 MiB range aligned on a 2 MiB boundary, and
SR7[4] becomes a don't care. Programming
SR7[7:4] to 1000 with
GRB[5] = 1 makes the controller claim
$800000-$9FFFFF, which is exactly
REGION4 and exactly the 2 MiB of installed display
memory.
The window is fully populated. There is no aliased region and no unmapped region inside it. The controller's own address decode answers every access the motherboard forwards.
SR7 resets to $00, which configures a
standard VGA responding at $0A0000-$0BFFFF. That range is
DRAM bank 0 on this board and is never presented to the controller, so
between reset and the firmware write that sets SR7[7:4],
the controller claims nothing in the host window. Reads there return
the floating bus and writes are discarded. The firmware contract in
section 12 makes enabling linear addressing a precondition for using
the window.
Register Window
The controller decodes SA15..SA0 for I/O accesses and
ignores LA23..LA17 and SA16. Slot 3 begins
at $E60000, so the low 16 address bits of any access in
$E60000-$E6FFFF are the VGA I/O port number, and the
straight-through address path delivers them with no multiplexer.
VGA I/O port P appears at MC68EC000 byte address $E60000 + P
| Address | Port | Function |
|---|---|---|
$E60094 |
94 |
POS 94, port 102 access control. |
$E60102 |
102 |
POS102 register. |
$E603B4, $E603B5 |
3B4, 3B5 |
CRT controller index and data, monochrome addressing. |
$E603BA |
3BA |
Feature control on write, input status register 1 on read, monochrome addressing. |
$E603C0, $E603C1 |
3C0, 3C1 |
Attribute controller index and data. |
$E603C2 |
3C2 |
Miscellaneous output on write, input status register 0 on read. |
$E603C3 |
3C3 |
Motherboard sleep. |
$E603C4, $E603C5 |
3C4, 3C5 |
Sequencer index and data, including every SR extension register. |
$E603C6-$E603C9 |
3C6-3C9 |
Palette DAC pixel mask, hidden DAC register, read and write pixel address, and pixel data. |
$E603CA, $E603CC |
3CA, 3CC |
Feature control and miscellaneous output readback. |
$E603CE, $E603CF |
3CE, 3CF |
Graphics controller index and data, including every GR extension register. |
$E603D4, $E603D5 |
3D4, 3D5 |
CRT controller index and data, color addressing. |
$E603DA |
3DA |
Feature control on write, input status register 1 on read, color addressing. |
$E646E8 |
46E8 |
Adapter sleep. CF[3] is strapped high, so this
address holds the video system sleep register.
|
Every port sits in the first 64 KiB of the slot. A16
is not decoded, so the port map repeats once in the upper half of the
slot, and firmware uses the copy listed above. Accesses to slot 3
addresses that no port claims receive completion from the adapter and
transfer nothing useful, which matches how an unclaimed ISA I/O
address behaves.
Aperture Summary
| Range | Size | Select | Contents |
|---|---|---|---|
$800000-$9FFFFF |
2 MiB | VGA_MEM_n |
Linear display memory, byte for byte. |
$E60000-$E7FFFF |
128 KiB | IO3_n |
VGA I/O ports at their native numbers, repeating once above
$E70000.
|
VGA_MEM_SEL = NOT VGA_MEM_n
VGA_IO_SEL = NOT IO3_n
5. Bus Adapter and Wait Handling
U_VGA_SEQ is a CD74HCT164E clocked by VGA_CLK_14. Its
active-low clear connects to VGA_AS_ACTIVE, so all stages
hold at zero whenever AS_n is high. Both serial inputs
connect to VGA_CYCLE, so shifting begins only after the
address, the select, and a byte strobe are all present.
| Stage | Elapsed | Action |
|---|---|---|
| Before QA | 0 |
BALE high, controller address latch transparent.
|
| QA | 69.8 ns |
BALE falls and latches LA23..LA17.
|
| QB | 139.7 ns |
The selected command strobe asserts.
VGA_READY reaches the idle-high state carried in
from the pull-up.
|
| QC | 209.5 ns |
First synchronizer stage samples IOCHRDY, which the
controller has already driven for at least 41.8 ns.
|
| QD | 279.3 ns |
The controller's IOCHRDY level reaches
VGA_READY.
|
| QE | 349.2 ns |
Register cycles complete. Display-memory cycles complete if
VGA_READY is high, and otherwise wait.
|
AS_n rises |
End of cycle | Strobes negate, the shift register clears, and completion releases. |
Address Latch Enable
The controller latches LA23..LA17 on the falling
BALE edge and needs 20 ns of setup, 20 ns of hold, and a
20 ns pulse. Driving BALE from the first shift stage
gives one full clock period, 69.8 ns, for each of the three.
VGA_BALE = NOT QA
Command Strobes
The strobes assert one clock after BALE falls, which
keeps the ISA address phase and command phase in the order the
controller expects.
VGA_RW_n = NOT R/W
VGA_RD = QB AND R/W
VGA_WR = QB AND VGA_RW_n
VGA_MEMR_n = NOT (VGA_RD AND VGA_MEM_SEL)
VGA_MEMW_n = NOT (VGA_WR AND VGA_MEM_SEL)
VGA_IOR_n = NOT (VGA_RD AND VGA_IO_SEL)
VGA_IOW_n = NOT (VGA_WR AND VGA_IO_SEL)
VGA_MEM_SEL and VGA_IO_SEL both fall when
AS_n rises, because their sources include
NORMAL_CYCLE_n. Every strobe therefore negates at the end
of the processor cycle without a separate release term. The MC68EC000
holds write data past AS_n negation, which covers the
controller's 10 ns data hold from IOW* or
MEMW* going inactive.
Wait Handling
IOCHRDY is a three-state output. On a display-memory read
the controller drives it low within 28 ns of MEMR* and
raises it when the data is ready. On a display-memory write it drives
it high immediately if the write buffer has space, and low until space
appears if it does not. It is never driven during I/O cycles, and it
floats between cycles. R_VGA_RDY, 1 kohm to +5 V, defines the floating
state and keeps the rising edge inside one clock period at the
expected trace capacitance.
U_VGA_SYNC is an SN74HCT74N used as a two-stage synchronizer on
VGA_CLK_14. Both active-low clears connect to
VGA_CYCLE, so the pair starts from zero at each new
cycle. The first stage samples IOCHRDY, the second stage
samples the first, and the second stage output is
VGA_READY.
U_VGA_SYNC stage 1 D = IOCHRDY
U_VGA_SYNC stage 2 D = stage 1 Q
VGA_READY = U_VGA_SYNC stage 2 Q
The first sample that can see a controller-driven level happens at QC, one clock period after the strobe asserted at QB. The controller guarantees the level within 28 ns, leaving 41.8 ns of setup, far beyond the SN74HCT74N requirement. The synchronizer therefore never samples a transition, and no completion decision rests on a metastable resolution.
Waiting two stages costs two clock periods after
IOCHRDY rises. A display-memory read whose data is ready
before QC completes at QE with no added wait.
Completion
VGA_AS_ACTIVE = NOT AS_n
VGA_QE_MEM = QE AND VGA_MEM_SEL
VGA_MEM_DONE = VGA_QE_MEM AND VGA_READY
VGA_IO_DONE = QE AND VGA_IO_SEL
VGA_ACK_READY = VGA_MEM_DONE OR VGA_IO_DONE
VGA_DTACK_n = NOT (VGA_AS_ACTIVE AND VGA_ACK_READY)
Both paths complete at QE so that they share one timing reference and neither races the synchronizer.
Gating completion with VGA_AS_ACTIVE holds
VGA_DTACK_n low if the processor releases its data
strobes before AS_n, and releases it from
AS_n through two gates.
A display-memory read can wait as long as the controller needs, and the wait length depends on the video mode and on contention with screen refresh. The motherboard timeout of at least 51.1 us is the backstop.
Static Host Inputs
| Pin | Connection | Reason |
|---|---|---|
AEN |
Ground | A high level makes the controller ignore I/O cycles. This board has no DMA. |
REFRESH* |
+5 V | A low level makes the controller ignore memory reads. It refreshes display memory itself. |
TWR* |
10 kohm to +5 V |
A low level during a rising RESET enters pin scan
mode and disables most outputs.
|
EDCLK* |
10 kohm to +5 V | Keeps DCLK an output. |
IOCS16*, MCS16*, 0WS
|
Open | Open-collector ISA sizing and wait-state outputs with no consumer here. |
EROM*, IRQ |
Open |
No BIOS ROM is fitted, and vertical retrace reaches the MFP
through VSYNC.
|
6. Configuration Straps
The controller latches configuration register CF1 from
MD30..MD16 on the falling edge of RESET.
Internal 250 kohm pull-ups make every bit read as one, and a 6.8 kohm
external pull-down makes a bit read as zero. The memory data pins are
forced high impedance while RESET is active so the
pull-downs win, and the display-memory DRAMs cannot drive them because
the controller holds its own RAS* and
CAS* outputs inactive.
This design needs two zeros, so it installs two resistors.
| Reference | Pin | CF bit | Selects |
|---|---|---|---|
R_VGA_CF12 |
MD28, pin 100 |
CF[12] = 0 |
CAS3..CAS0* with a single WE*, which
the TRM prefers over multiple write enables.
|
R_VGA_CF9 |
MD25, pin 104 |
CF[9] = 0 |
41.16477 MHz MCLK together with CF[10] = 1. |
| CF bits | Memory data pins | Value | Meaning |
|---|---|---|---|
14, 7, 5 |
MD30, MD23, MD21 |
111 |
ISA bus interface. |
13 |
MD29 |
1 |
Symmetric DRAM addressing, nine rows and nine columns. |
12 |
MD28 |
0 |
WE3..WE0* become CAS3..CAS0* and
CAS* becomes WE*.
|
11 |
MD27 |
1 |
Standard six-MCLK RAS* cycle. |
10, 9 |
MD26, MD25 |
10 |
41.16477 MHz MCLK. |
8, 6 |
MD24, MD22 |
11 |
BIOS ROM size and width. Both are unused because no BIOS ROM is
fitted and EROM* is unconnected.
|
4 |
MD20 |
1 |
Internal MCLK oscillator; pin 157 is an unconnected output. |
3 |
MD19 |
1 |
Port 46E8 holds the video system sleep register.
|
2, 1, 0, 15 |
MD18, MD17, MD16,
MD31
|
1 |
Reserved, zero-wait disabled, and two CL-GD5425-only bits. |
CF[1] stays high, disabling 0WS*. That pin
exists to shorten ISA host cycles and this adapter derives its own
timing, so leaving it disabled removes one output that would otherwise
need a pull-up.
7. Display Memory
The controller drives a 32-bit display-memory bus and supports 256K x 4, 512K x 8, and 256K x 16 organizations up to 2 MiB. It presents nine address lines in the symmetric configurations, so a 1M x 4 device such as the TMS44400 used for main memory cannot be wired as display memory.
Four 256K x 16 dual-CAS* devices give the full 2 MiB in four packages
and fill the host window exactly. Each device must have separate lower
and upper column-address strobes, one write enable, one output enable,
nine symmetric address inputs, and a 70 ns row access time. The
HM514260CJ7 is the specified device; the TRM
characterizes it in its own 70 ns DRAM table.
| DRAM input | U_VGA_VRAM0 | U_VGA_VRAM1 | U_VGA_VRAM2 | U_VGA_VRAM3 |
|---|---|---|---|---|
RAS* |
RAS*, pin 142 |
RAS*, pin 142 |
OE*, pin 141 |
OE*, pin 141 |
LCAS* |
WE2*, pin 116 |
WE0*, pin 138 |
WE2*, pin 116 |
WE0*, pin 138 |
UCAS* |
WE3*, pin 106 |
WE1*, pin 127 |
WE3*, pin 106 |
WE1*, pin 127 |
WE* |
CAS*, pin 139 |
|||
OE* |
Ground | |||
ADDR8..ADDR0 |
MA8..MA0, pins 145 to 153 |
|||
| Data | MD31..MD16 |
MD15..MD0 |
MD31..MD16 |
MD15..MD0 |
| Planes | 2, 3 | 0, 1 | 2, 3 | 0, 1 |
With CF[12] low the controller renames three pin groups.
WE3..WE0* become CAS3..CAS0*,
CAS* becomes WE*, and
OE* becomes RAS1*. Each DRAM output enable
ties to ground, because the controller gates reads with the column
strobes. MA9, pin 143, has no function in this
configuration and is left open.
The controller refreshes display memory from its internal counter. No
motherboard refresh signal reaches it, and REFRESH* stays
high.
MCLK Selection
Strapping 41.16477 MHz gives a 24.29 ns memory clock. The TRM's standard-RAS* formulas resolve to the times below, all of which exceed what a 70 ns device requires.
| Parameter | Formula | Available | Required at 70 ns |
|---|---|---|---|
tRCD, RAS* to CAS* |
2.5m - 2 |
58.7 ns | 20 ns |
tRAC, data from RAS* |
4m - 1 |
96.2 ns | 70 ns |
tRP, RAS* precharge |
2.5m - 2 |
58.7 ns | 50 ns |
tRAS, RAS* pulse width |
3.5m |
85.0 ns | 70 ns |
tRC, random cycle |
6m |
145.8 ns | 130 ns |
The remaining column and write parameters fall between the 41.2 MHz
and 43.0 MHz columns of TRM table B19-1, and every one of them clears
the 70 ns requirements in table B19-4. The next faster strap, 44.74431
MHz, brings tRC down to 134.1 ns against a 130 ns
requirement and is not used.
Firmware may reprogram MCLK through SR1F[5:0]. Doing so
overrides the strap and moves every number in the table above, so
firmware that changes MCLK owns the resulting DRAM timing.
8. Clock and Reset
Dedicated Reference Oscillator
Y_VGA_CLK is a packaged 14.31818 MHz clock oscillator. Any oscillator
meeting the specification below is acceptable. The Epson SG-615 series
is the reference part and the source of the output levels checked
below; the ECS ECS-100AX-143 is an equivalent alternative
if the Epson part cannot be sourced. Its output reaches CL-GD5428
OSC, pin 159, through R_VGA_CLK, a 33 ohm source-series
resistor, and reaches U_VGA_INV_B for the adapter clock. Oscillator
enable is tied high. XTAL, pin 158, is left open because
no crystal is fitted.
| Parameter | Requirement | Reason |
|---|---|---|
| Nominal frequency | 14.31818 MHz |
CL-GD5428 OSC reference and the adapter clock
source.
|
| Frequency tolerance | +/-100 ppm or tighter, over 0 to 70 C | The controller requires 14.31818 MHz within 0.01 percent. |
| Symmetry | 40 to 60 percent | The controller requires 50 percent plus or minus 10 percent. |
| Output | 5 V CMOS; VOH at least 4.6 V, VOL at most 0.4 V, into 50 pF | Drives OSC, pin 159, and U_VGA_INV_B. |
| Supply | +5 V, 25 mA maximum | Board supply budget. |
| Package | Through-hole full-can DIP oscillator with an enable pin, tied high | Footprint is fixed at layout; no crystal load network. |
The controller requires 14.31818 MHz within 0.01 percent at a duty cycle of 50 percent plus or minus 10 percent. The tolerance above, 100 parts per million, is 0.01 percent, and the symmetry limit above is 40 to 60 percent. Both parameters meet the requirement with no margin, so both appear on the assembled-board measurement list. An oscillator with a tighter tolerance or symmetry than the minimum specified is preferred where one is available.
The OPL3 uses a separate oscillator at the same frequency and to the same specification. Sharing one oscillator would put the video PLL reference and the audio master clock on the same net, so each subsystem keeps its own.
Y_VGA_CLK
|
+-- R_VGA_CLK --> CL-GD5428 OSC, pin 159
|
+-- U_VGA_INV_B stage 1 --> stage 2 --> VGA_CLK_14
|
+-- U_VGA_SEQ CP
+-- U_VGA_SYNC both CP inputs
Two cascaded inverters give a non-inverting buffered copy. No motherboard clock net gains a load, so the clock distribution budget is unchanged.
Synthesizer Filters
The internal dual-frequency synthesizer needs one loop filter per
clock. The CL-GD5428 is an N-WELL device, so the video filter returns
to AVSS1 rather than AVDD1.
| Network | Pins | Components |
|---|---|---|
| Video clock supply | AVDD1, pin 66 |
33 ohms from +5 V, bypassed with 10 uF and 0.1 uF to
AVSS1.
|
| Video clock filter | VFILTER, pin 65 |
75 ohms in series with 2.2 uF, and 0.1 uF in shunt, both
returned to AVSS1, pin 64.
|
| Memory clock supply | AVDD4, pin 154 |
33 ohms from +5 V, bypassed with 10 uF to
AVSS4.
|
| Memory clock filter | MFILTER, pin 155 |
75 ohms in series with 2.2 uF, and 0.1 uF in shunt, both
returned to AVSS4, pin 156.
|
TRM appendix B17 gives the video filter values for an N-WELL device
and notes that the 2.2 uF capacitor's polarity is reversed relative to
the P-WELL arrangement. The data book requires the same pi topology at
MFILTER but the copy of the ISA adapter schematic in the
manual is withheld, so the memory filter here repeats the
characterized video filter values. Measured MCLK jitter at the DRAM
strobes is on the acceptance list.
Reset
The controller's RESET input, pin 41, is active high. One
U_VGA_INV_B channel inverts PERIPH_RESET_n, which places
the video subsystem in the peripheral reset domain alongside the MFP,
MIDI, OPL3, RTC, and floppy. A processor RESET instruction therefore
clears the controller and re-latches CF1 from the strap resistors, and
firmware must set the video mode again afterwards.
VGA_RESET = NOT PERIPH_RESET_n
RESET must stay high for at least 12 MCLK periods, 291.5
ns at the strapped frequency, and firmware must not issue the first
IOW* until 12 MCLK periods after it falls. A processor
RESET instruction supplies about 12.4 us through the peripheral reset
domain, and the power-on and manual reset pulses are far longer, so
the pulse width is met by more than four orders of magnitude.
PERIPH_RESET_n is an open-collector net with a 1 kohm
pull-up, so its release edge is RC-limited. The floppy controller
takes the same signal through the same kind of plain inverter, and the
release-edge check in
Clock and Reset covers this input
as well.
The controller's memory data pins float during reset so the CF1 pull-downs can be read. Straps need 2 ns of setup and 25 ns of hold around the falling edge, which static resistors satisfy.
9. Configuration EEPROM
U_VGA_CFG is an NM93C46N, a 1 Kbit serial EEPROM organized as 64
sixteen-bit words. It holds monitor timing and configuration data that
must survive power-off. The controller reaches it through
SR8, and the interface exists only in ISA bus mode.
| EEPROM pin | Connection | Controlled by |
|---|---|---|
CS, pin 1 |
CL-GD5428 EECS, pin 74 |
SR8[0] |
SK, pin 2 |
CL-GD5428 ESYNC*, pin 95 |
SR8[2] when SR8[4] = 1 |
DI, pin 3 |
CL-GD5428 EVIDEO*, pin 94 |
SR8[3] when SR8[4] = 1 |
DO, pin 4 |
CL-GD5428 EEDI, pin 73 |
Read at SR8[7] when SR8[1] = 1 |
GND, pin 5 |
Ground | Fixed |
ORG, pin 6 |
+5 V | Selects 64 x 16 organization |
VCC, pin 8 |
+5 V with a 0.1 uF bypass | Fixed |
ESYNC* and EVIDEO* are bidirectional. They
are inputs during normal operation and become outputs carrying the
serial clock and serial data when firmware sets SR8[4].
They therefore take 10 kohm pull-ups, R_VGA_ESYNC and R_VGA_EVIDEO,
rather than a hard tie to +5 V. The pull-ups draw 0.5 mA against a 12
mA sink rating.
SR8[5] latches the levels present on those two pins
before SR8[4] turns them into outputs, and the latched
levels keep driving HSYNC, VSYNC,
BLANK*, and P7..P0. Sync therefore continues
uninterrupted while firmware talks to the EEPROM, and the MFP keeps
receiving vertical retrace edges. Firmware that omits
SR8[5] will blank the display.
R_VGA_EEDI, 10 kohm to +5 V, defines EEDI while the
EEPROM output is high impedance. SR8[0] resets to zero,
so chip select is low and the device ignores the pulled-up clock and
data lines until firmware drives them.
The device needs 1 us of data setup and hold around each rising serial clock edge, 2 us of clock high and low time, 2 us before output data is valid, and 10 us after the last bit of a write. Firmware supplies all of these as software delays; no hardware sequencer is involved.
10. Video Output and Monitor Connector
DAC Reference
The palette DAC draws its full-scale reference through
IREF, pin 78. Full-scale output current follows
If = (63 / 30) x IREF. The reference design draws 6.7 mA,
loads each analog output with 150 ohms on the board, and relies on the
monitor's own 75 ohm termination for an effective 50 ohms.
D_VGA_REF is a TL431 wired as a shunt reference with its reference pin
tied to its cathode, giving 2.495 V. R_VGA_REF supplies it with 1.5
kohms from +5 V, drawing 1.67 mA, and C_VGA_REF is a 0.1 uF bypass at
the cathode. Q_VGA_IREF is a 2N3904 with its base at that node, its
emitter to ground through R_VGA_IREF, and its collector on
IREF.
R_VGA_IREF = 270 ohms, 1 percent
IREF = (2.495 - Vbe) / 270 = 6.6 mA at Vbe = 0.7 V
If = 2.1 x 6.6 mA = 13.9 mA
Vpeak = 13.9 mA x 50 ohms = 0.69 V
Peak white lands 10 mV below the 0.7 V VGA level. The residual error follows the transistor's base-emitter voltage, so R_VGA_IREF is the single component to adjust if a measured white level needs correcting.
Analog Filtering
Each of RED, GREEN, and BLUE
takes a 150 ohm resistor to analog ground placed at the controller
pin, then a pi filter of two 47 pF capacitors around a ferrite bead on
the way to the connector. The source resistor sits as close to the
controller as the layout allows so the analog output sees no
unterminated stub.
Monitor Connector
J_VGA is a DE-15 receptacle at the board edge. The CL-GD5428 has no DDC engine, so the display data channel and monitor identification pins are unconnected.
The recommended part is the Amphenol L77HDE15SD1CH4FVGA,
a right-angle through-hole high-density DE-15 receptacle with board
locks. Any DE-15 receptacle with the same footprint and the pinout
below is acceptable.
| Pin | Signal | Direction at motherboard |
|---|---|---|
| 1 | RED |
Analog output |
| 2 | GREEN |
Analog output |
| 3 | BLUE |
Analog output |
| 4, 9, 11, 12, 15 | Not connected | None |
| 5, 10 | Ground | Return |
| 6 | Red return | Return |
| 7 | Green return | Return |
| 8 | Blue return | Return |
| 13 | HSYNC |
Output |
| 14 | VSYNC |
Output |
Sync polarity is programmable through the miscellaneous output register, and firmware sets it to match the mode it selects.
Unused Video Pins
No VESA feature connector is provided. P7..P0,
DCLK, BLANK*, and OVRW are left
open. EVIDEO* and EDCLK* stay high through
their pull-ups, so P7..P0 and DCLK
remain outputs and drive nothing.
11. Interrupts
VSYNC, pin 68, connects to the monitor and to MC68901
GPIP2. The MFP senses a programmed edge, so a push-pull source needs
no inverter and no pull-up. Both edges occur once per frame, and
firmware chooses one through the MFP active-edge register. The MFP
assigns vector $42. See
MC68901 MFP and
Interrupts.
VSYNC is high impedance whenever ESYNC* is
low. R_VGA_ESYNC holds ESYNC* high, and the
SR8[5] latch keeps the internal enable high while the pin
drives the configuration EEPROM clock, so the pin is an output at all
times after reset.
The controller also has an IRQ output on pin 52 that
asserts at the start of the bottom border under
CR11 control. It duplicates what
VSYNC already provides and would need a second GPIP
input, so it has no board connection.
12. Firmware Contract
The bit-level register descriptions are in the technical reference manual. This section states only what the hardware requires.
-
Wait at least 292 ns after
PERIPH_RESET_nreleases before the first register write. Any reset path on this board exceeds that by a wide margin. -
Unlock the extension registers by writing
$12toSR6at$E603C4and$E603C5. The extension registers are inaccessible until this is done. -
Set
GRB[5]to 1 for a 2 MiB address range, setGRB[0]to 0 so offset register 0 is always selected, and setSR7[7:4]to1000. Only after this does the controller answer accesses in$800000-$9FFFFF. - Set the video mode, CRTC timing, sync polarity, clock synthesizer numerators and denominators, palette, and any BitBLT or hardware cursor state. All of it is firmware's responsibility because the machine has no x86 video BIOS to run.
- Repeat every step above after each processor RESET instruction. The controller sits in the peripheral reset domain and loses all state.
- Read and write registers at odd or even byte addresses freely. The byte-lane crossing is symmetric and the address of a byte is the same on both sides of the bus.
-
A 16-bit write to an index port is permitted. The controller expects
the index on
SD7..SD0and the data onSD15..SD8, which after the lane crossing means a MC68EC000 word whose high byte is the index and whose low byte is the data. -
Set
SR8[5]before settingSR8[4]when using the configuration EEPROM, and clear them in the reverse order afterwards. Skipping the latch step blanks the display and stops the vertical retrace interrupt. -
Preserve
SR8[6]across every write toSR8. It also controlsMCS16*. -
Own the display-memory timing if
SR1F[5:0]is used to change MCLK away from the strapped 41.16477 MHz.
13. Package and Pin Maps
CL-GD5428 Host Interface
| Pin | Signal | Connection |
|---|---|---|
| 2 | EROM* |
Open |
| 3, 4, 5, 6, 8, 9, 10, 11 | SD15..SD8 |
CPU D7..D0, in that order |
| 13, 14 | MEMW*, MEMR* |
VGA_MEMW_n, VGA_MEMR_n |
| 15 to 21 | LA17..LA23 |
CPU A17..A23, in that order |
| 22, 23 | IOCS16*, MCS16* |
Open |
| 24 | SBHE* |
CPU LDS_n |
| 25 | BALE |
VGA_BALE |
| 27 | SA0 |
CPU UDS_n |
| 28 to 39, 42 to 45 | SA1..SA16 |
CPU A1..A16, in that order |
| 41 | RESET |
VGA_RESET |
| 46 | AEN |
Ground |
| 47 | IOCHRDY |
U_VGA_SYNC stage 1 D, with R_VGA_RDY to +5 V |
| 48 | REFRESH* |
+5 V |
| 49, 50 | IOR*, IOW* |
VGA_IOR_n, VGA_IOW_n |
| 51, 52 | 0WS, IRQ |
Open |
| 54, 55, 56, 57, 59, 60, 62, 63 | SD0..SD7 |
CPU D8..D15, in that order |
CL-GD5428 Video, Clock, and Serial Pins
| Pin | Signal | Connection |
|---|---|---|
| 64, 65, 66 |
AVSS1, VFILTER, AVDD1
|
Video clock filter and supply network |
| 67 | TWR* |
R_VGA_TWR, 10 kohm to +5 V |
| 68 | VSYNC |
J_VGA pin 14 and MC68901 GPIP2 |
| 69 | HSYNC |
J_VGA pin 13 |
| 70, 72 | AVSS2, AVDD2 |
DAC ground and supply |
| 71 | OVRW |
Open |
| 73 | EEDI |
U_VGA_CFG DO, with R_VGA_EEDI to +5 V |
| 74 | EECS |
U_VGA_CFG CS |
| 75, 76, 77 | BLUE, GREEN, RED |
150 ohms to analog ground, then a pi filter to J_VGA |
| 78 | IREF |
Q_VGA_IREF collector |
| 79, 82 to 84, 86 to 89 | P0..P7 |
Open |
| 85, 90 | AVDD3, AVSS3 |
DAC supply and ground |
| 92, 93 | DCLK, BLANK* |
Open |
| 94 | EVIDEO* |
U_VGA_CFG DI, with R_VGA_EVIDEO to +5 V |
| 95 | ESYNC* |
U_VGA_CFG SK, with R_VGA_ESYNC to +5 V |
| 96 | EDCLK* |
R_VGA_EDCLK, 10 kohm to +5 V |
| 154, 155, 156 |
AVDD4, MFILTER, AVSS4
|
Memory clock filter and supply network |
| 157 | MCLK |
Open; an output because CF[4] is high |
| 158 | XTAL |
Open; no crystal fitted |
| 159 | OSC |
R_VGA_CLK from Y_VGA_CLK |
CL-GD5428 Display-Memory Pins
| Pin | Signal | Connection |
|---|---|---|
| 97 to 100, 102 to 105, 108 to 115, 117 to 119 | MD31..MD13 |
DRAM data. R_VGA_CF12 pulls down pin 100 and R_VGA_CF9 pulls down pin 104. |
| 106, 116, 127, 138 |
WE3*, WE2*, WE1*,
WE0*
|
Column strobes CAS3..CAS0* because
CF[12] is low
|
| 122 to 126, 129 to 136 | MD12..MD0 |
DRAM data |
| 139 | CAS* |
DRAM WE* because CF[12] is low |
| 141 | OE* |
DRAM bank 1 RAS* because CF[12] is low
|
| 142 | RAS* |
DRAM bank 0 RAS* |
| 143 | MA9 |
Open |
| 145 to 153 | MA8..MA0 |
DRAM ADDR8..ADDR0, in that order |
CL-GD5428 Power and Ground
| Group | Pins | Connection |
|---|---|---|
VDD7..VDD1 |
1, 26, 58, 81, 107, 121, 140 | +5 V, each with its own 0.1 uF bypass at the pin |
VSS13..VSS1 |
7, 12, 40, 53, 61, 80, 91, 101, 120, 128, 137, 144, 160 | Ground plane, each pin connected directly |
AVDD3, AVDD2 |
85, 72 | +5 V, each with a 0.1 uF bypass at the pin |
AVDD4, AVDD1 |
154, 66 | +5 V through 33 ohms with 10 uF and 0.1 uF bypasses |
AVSS4, AVSS3, AVSS2,
AVSS1
|
156, 90, 70, 64 | Ground |
TRM appendix B10 suggests feeding the logic supply through two 1 ohm resistors in parallel for extra latch-up margin. At the rated 260 mA that pair drops 130 mV, which would leave 4.62 V at the device when the rail sits at its 4.75 V minimum, below the controller's own 4.75 V floor. The logic supply therefore connects directly and relies on per-pin bypassing and the internal latch-up protection instead.
Adapter Packages
| Reference | Device | Gate use |
|---|---|---|
U_VGA_INV |
SN74F04N |
VGA_RW_n, VGA_MEM_SEL,
VGA_IO_SEL, VGA_AS_ACTIVE, two spare
inputs to ground
|
U_VGA_INV_B |
SN74F04N |
VGA_BALE, VGA_RESET, two cascaded
clock-buffer stages, two spare inputs to ground
|
U_VGA_OR |
SN74F32N | VGA_ACK_READY, three spare gates |
U_VGA_AND_A |
SN74F08N |
VGA_DS_n, VGA_SEL_n,
VGA_RD, VGA_WR
|
U_VGA_AND_B |
SN74F08N |
VGA_QE_MEM, VGA_MEM_DONE,
VGA_IO_DONE, one spare gate
|
U_VGA_NOR |
SN74F02N | VGA_CYCLE, three spare gates |
U_VGA_NAND |
SN74F00N |
VGA_MEMR_n, VGA_MEMW_n,
VGA_IOR_n, VGA_IOW_n
|
U_VGA_NAND_B |
SN74F00N | VGA_DTACK_n, three spare gates |
U_VGA_SEQ |
CD74HCT164E |
Serial inputs A and B to VGA_CYCLE, clear to
VGA_AS_ACTIVE, clock VGA_CLK_14,
outputs QA, QB, and QE used
|
U_VGA_SYNC |
SN74HCT74N |
Two-stage IOCHRDY synchronizer, both clears to
VGA_CYCLE, both presets to +5 V
|
Every spare gate input ties to ground and every spare output is left open.
14. Timing and Electrical Checks
VGA_CLK_14 has a 69.83 ns period. The strapped MCLK has a
24.29 ns period. Every adapter interval below is a whole number of
VGA_CLK_14 periods measured from the first rising edge
after VGA_CYCLE asserts.
| Requirement | Controller limit | Adapter value |
|---|---|---|
BALE pulse width |
20 ns minimum | 69.8 ns |
LA23..LA17 and SBHE* setup to falling
BALE
|
20 ns minimum | 69.8 ns and longer, since the address precedes AS_n |
LA23..LA17 and SBHE* hold from falling
BALE
|
20 ns minimum | Held to the end of the processor cycle |
Address and SBHE* setup to any command |
5 ns minimum | 139.7 ns |
IOR* pulse width |
70 ns minimum | 209.5 ns plus the processor's response to /DTACK |
IOW* pulse width |
40 ns minimum | 209.5 ns plus the processor's response to /DTACK |
MEMW* pulse width |
3 MCLK, 72.9 ns | 209.5 ns plus the processor's response to /DTACK |
Data delay from IOR* active |
60 ns maximum | 209.5 ns available before completion |
Data delay from IOCHRDY active |
15 ns maximum | Two synchronizer clocks, 139.7 ns |
IOW* inactive to any command active |
80 ns minimum | 239.5 ns, from one processor clock of AS_n high plus two adapter clocks |
MEMW* inactive to next MEMW* |
3 MCLK, 72.9 ns | 239.5 ns |
Data hold from IOW* inactive |
10 ns minimum | The MC68EC000 holds write data past AS_n negation into the next cycle |
MEMR* or MEMW* active to
IOCHRDY low
|
28 ns maximum | 69.8 ns before the first synchronizer sample, leaving 41.8 ns of setup |
RESET pulse width |
12 MCLK, 291.5 ns | About 12.4 us from a processor RESET instruction |
RESET low to first IOW* |
12 MCLK, 291.5 ns | Firmware contract item 1 |
| CF1 strap setup and hold around falling RESET | 2 ns and 25 ns | Static resistors |
Completion Release
The MC68EC000FN10 requires /DTACK to negate within 110 ns
of AS_n or the data strobes negating.
VGA_DTACK_n releases through one SN74F04N inverter and
one SN74F00N NAND driven directly from AS_n, so the path
is two FAST gate delays and does not wait for the shift register to
clear.
U_VGA_INV SN74F04, tPHL 5.3 ns maximum
U_VGA_NAND_B SN74F00, tPLH 6.0 ns maximum
group SN74F21, tPLH 5.3 ns maximum
final SN74F21, tPLH 5.3 ns maximum
timeout-mask SN74F32, tPLH 6.6 ns maximum
------------------------------------------------
component total 28.5 ns
MC68EC000 limit 110.0 ns
board allowance 81.5 ns
Cycle Length
Completion arrives 349.2 ns after VGA_CYCLE asserts.
VGA_CYCLE is not phase-aligned with
VGA_CLK_14, so the first clock edge falls anywhere in one
period and completion lands between 349.2 ns and 419.0 ns after the
qualifying strobe.
The MC68EC000 tests /DTACK at the falling edge of S4 and
again once per clock period after that, needing 20 ns of setup. At 10
MHz the decision points fall 80, 180, 280, 380, and 480 ns after
AS_n. A register access therefore takes three or four
wait states, for a 500 to 600 ns cycle. Confirm the count on the
assembled board.
A display-memory access adds however long the controller holds
IOCHRDY low, which depends on the video mode and on
contention with screen refresh, plus two synchronizer clocks. The
motherboard's minimum 51.1 us timeout bounds it.
Loading
The CL-GD5428 specifies 10 pF maximum input and output capacitance. It
adds one input to each of A23..A1, UDS_n,
and LDS_n, and one bidirectional pin to each of
D15..D0. Its SD15..SD8 pins carry internal
pull-ups, which appear on CPU D7..D0 after the lane
crossing. Recount the address, data, AS_n, and
data-strobe capacitance with these loads included when the board is
routed.
| Driver to receiver | Driver VOH / VOL | Receiver VIH / VIL |
|---|---|---|
| MC68EC000 to CL-GD5428 | 4.00 V / 0.50 V | 2.0 V / 0.8 V |
| CL-GD5428 to MC68EC000 or FAST | 2.40 V at 400 uA / 0.50 V at 4 mA | 2.0 V / 0.8 V |
| FAST to CL-GD5428 | 2.5 V / 0.5 V | 2.0 V / 0.8 V |
Y_VGA_CLK to CL-GD5428 OSC |
4.6 V / 0.4 V | 2.0 V / 0.8 V |
CL-GD5428 VSYNC to MC68901 GPIP2 |
2.40 V / 0.50 V | 2.0 V / 0.8 V |
The controller-to-processor high margin is 0.40 V at its rated 400 uA source current, matching the firmware ROM case. Include every disabled output, receiver, and pull resistor when calculating load on the shared data bus.
Supply Current
The CL-GD5428 draws 260 mA at an 80 MHz video clock and a 50 MHz memory clock, and dissipates up to 1.5 W. Four 256K x 16 DRAMs, one 14.31818 MHz oscillator at up to 25 mA, and ten logic packages add to that. Fold the total into the board supply budget before layout.
15. Parts Added
| Reference | Part | Function |
|---|---|---|
U_VGA |
CL-GD5428-80QC-A | VGA controller, 160-pin PQFP. |
U_VGA_VRAM0..3 |
4 x HM514260CJ7 |
256K x 16 FPM DRAM with separate lower and upper
CAS*, one WE*, one OE*,
nine symmetric address inputs, and 70 ns row access. 2 MiB
total.
|
U_VGA_CFG |
NM93C46N | Configuration EEPROM, 64 x 16, 8-pin PDIP. |
Y_VGA_CLK |
14.31818 MHz packaged oscillator, +/-100 ppm; Epson SG-615
series or ECS ECS-100AX-143
|
Dedicated synthesizer reference. |
U_VGA_SEQ |
CD74HCT164E | Adapter sequencer. |
U_VGA_SYNC |
SN74HCT74N | IOCHRDY synchronizer. |
U_VGA_INV, U_VGA_INV_B |
2 x SN74F04N | Select inversion, BALE, reset polarity, clock buffer. |
U_VGA_OR |
SN74F32N | Completion combination. |
U_VGA_AND_A, U_VGA_AND_B |
2 x SN74F08N | Cycle, direction, and completion terms. |
U_VGA_NOR |
SN74F02N | Cycle qualification. |
U_VGA_NAND, U_VGA_NAND_B |
2 x SN74F00N | Command strobes and completion. |
Q_VGA_IREF |
2N3904 | DAC reference current sink. |
D_VGA_REF |
TL431 | 2.495 V shunt reference for the current sink. |
| Reference | Value | Function |
|---|---|---|
J_VGA |
DE-15 receptacle; recommended part Amphenol
L77HDE15SD1CH4FVGA
|
Monitor output at the board edge. |
R_VGA_CLK |
33 ohms | Oscillator source-series termination. |
R_VGA_CF12, R_VGA_CF9 |
2 x 6.8 kohms | CF1 straps on MD28 and MD25. |
R_VGA_RDY |
1 kohm | IOCHRDY pull-up. |
R_VGA_TWR, R_VGA_EDCLK,
R_VGA_ESYNC, R_VGA_EVIDEO,
R_VGA_EEDI
|
5 x 10 kohms | Test-mode defeat, dot-clock direction, and the three configuration EEPROM lines. |
R_VGA_REF |
1.5 kohms | TL431 cathode current, 1.67 mA. |
R_VGA_IREF |
270 ohms, 1 percent | Sets the 6.6 mA DAC reference. |
R_VGA_RED and two more |
3 x 150 ohms | Analog output source loads at the controller pins. |
R_VGA_AVDD1, R_VGA_AVDD4 |
2 x 33 ohms | Synthesizer supply filters. |
R_VGA_VFILT, R_VGA_MFILT |
2 x 75 ohms | Synthesizer loop filter series resistors. |
| Loop filter capacitors | 2 x 2.2 uF, 2 x 0.1 uF |
Video and memory loop filters, returned to
AVSS1 and AVSS4.
|
| Synthesizer supply capacitors | 2 x 10 uF, 1 x 0.1 uF | AVDD1 and AVDD4 bypassing. |
| Analog pi filters | 6 x 47 pF, 3 ferrite beads | RGB emission filtering between the controller and J_VGA. |
C_VGA_REF |
0.1 uF | TL431 cathode bypass. |
| Digital bypass capacitors | 7 x 0.1 uF at U_VGA, plus one per other package | Supply decoupling. |
16. Board Layout
- Place the CL-GD5428 160-pin PQFP footprint and the four DRAM footprints on the board. Mark pin 1 on copper and silkscreen for each.
- Follow the TRM placement order of controller, then display memory, keeping the display-memory bus short and matched across the four devices.
-
Keep
OSCat pin 159 andRESETat pin 41 as short as the layout allows, and route them away from the display-memory bus. - Place R_VGA_CLK at the oscillator output and Y_VGA_CLK beside the controller.
-
Place the
VFILTERandMFILTERnetworks against pins 65 and 155, with the series resistor and the input capacitor closest to the pin. Lay out the video filter so it accepts either N-WELL or P-WELL capacitor polarity, and populate the N-WELL arrangement. - Place the two 6.8 kohm CF1 straps at controller pins 100 and 104, away from DRAM data stubs.
- Place the 150 ohm source resistors against controller pins 75, 76, and 77, then the pi filters, then J_VGA.
- Isolate the connector chassis ground plane from digital ground and join it only at the J_VGA mounting holes.
- Keep the IREF reference circuit and its bypass away from the display-memory bus and the DAC outputs.
- Choose the J_VGA board-edge position and the exact receptacle part, and label the connector.
-
Give each of the seven
VDDpins its own 0.1 uF bypass at the pin and connect all thirteenVSSpins directly to the ground plane. -
Isolate
RESETandIOCHRDYfrom the high-speed data lines with a ground trace. -
Measure
VGA_CLK_14at controller pin 159 and confirm frequency within 100 parts per million and duty cycle between 40 and 60 percent, both of which sit exactly at the controller's limit. -
Measure
BALE, all four command strobes,IOCHRDY, andVGA_DTACK_nat their receiving pins. Keep the routedVGA_DTACK_nrelease contribution below 81.5 ns. - Measure MCLK jitter and all four DRAM strobes at the DRAM pins, since the memory loop filter values are inferred from the video filter.
- Include the CL-GD5428 in the address, data, and data-strobe capacitance budgets.
- Add the video subsystem to the +5 V supply budget, including the 260 mA controller rating.
- Measure peak white at J_VGA pins 1, 2, and 3 with a monitor connected and adjust R_VGA_IREF if it falls outside 0.7 V by more than the monitor tolerates.
17. Assembled-System Acceptance
-
With the board reset and no firmware writes, confirm
VGA_RESETfollowsPERIPH_RESET_nand thatMD28andMD25sit below 0.8 V whileRESETfalls. -
Read
CR27, the ID register, through$E603D4and$E603D5and confirm the controller answers. -
Write and read back a scratch pad register,
SR9at$E603C4and$E603C5, after unlocking withSR6 = $12. Confirm the byte survives. -
Confirm a read of
$800000before linear addressing is enabled returns without asserting/BERR, then enableGRB[5]andSR7[7:4]and confirm the same address now stores and returns a written pattern. -
Write a unique byte to the first and last address of each 256 KiB
block across
$800000-$9FFFFFand read them all back. Every location must be distinct, which proves the full 2 MiB is present and unaliased. -
Write a word to display memory and read back both bytes
individually. Confirm the even byte matches
D15..D8of the word and the odd byte matchesD7..D0. -
Capture
IOCHRDYandVGA_DTACK_nduring a display-memory read and confirm completion follows the risingIOCHRDYedge by two adapter clocks. -
Confirm
VGA_DTACK_nreleases within 110 ns ofAS_nrising. - Write a configuration EEPROM word and read it back after a power cycle. Confirm the display stays lit and the MFP keeps receiving GPIP2 edges throughout the transfer.
- Enable the vertical retrace interrupt at the MFP and count edges on GPIP2. The rate must match the programmed vertical frequency.
- Issue a processor RESET instruction and confirm the controller blanks, re-latches CF1, and comes back after firmware repeats its initialization.
- Display a full-screen white field and measure the analog outputs at the connector with a monitor attached.
- Run the board for an hour at the highest mode firmware supports and confirm the display memory still passes the pattern test.
18. Internal Signal Reference
| Signal | Active level | Meaning |
|---|---|---|
VGA_ACK_READY |
High | Either completion term is satisfied. |
VGA_AS_ACTIVE |
High | Inverted AS_n; holds adapter state. |
VGA_BALE |
High | Controller address latch transparent; falls at QA. |
VGA_CLK_14 |
Clock | Buffered 14.31818 MHz adapter clock. |
VGA_CYCLE |
High | A selected video access with at least one byte strobe active. |
VGA_DS_n |
Low | At least one MC68EC000 data strobe is active. |
VGA_DTACK_n |
Low |
Completion into the U_DTACK_A acknowledgement
stage.
|
VGA_IO_DONE |
High | Register access has reached QE. |
VGA_IO_SEL |
High | Inverted IO3_n. |
VGA_IOR_n, VGA_IOW_n |
Low | Controller I/O read and write strobes. |
VGA_MEM_DONE |
High | Display-memory access has reached QE with ready high. |
VGA_MEM_SEL |
High | Inverted VGA_MEM_n. |
VGA_MEMR_n, VGA_MEMW_n |
Low | Controller memory read and write strobes. |
VGA_QE_MEM |
High | Display-memory access has reached QE. |
VGA_RD, VGA_WR |
High | Strobe phase reached with the matching direction. |
VGA_READY |
High | Synchronized IOCHRDY. |
VGA_RESET |
High | Controller reset; inverted peripheral reset. |
VGA_RW_n |
High on write | Inverted R/W. |
VGA_SEL_n |
Low |
Either VGA_MEM_n or IO3_n is active.
|
19. Sources
- Cirrus Logic, CL-GD542X True Color VGA Family Preliminary Data Book, version 7.0. Pin diagram and descriptions, ISA host timing, configuration register CF1, DC specifications, reset timing, and the VGA register port map.
-
Cirrus Logic,
CL-GD542X Technical Reference Manual. Extension register definitions for
SR6,SR7,SR8,SR1F, andGRB; appendix B1 for the ISA reference design and the IREF circuit; appendix B7 for display-memory configurations; appendix B8 and B19 for MCLK selection and DRAM timing; appendix B10 for layout; appendix B15 for the configuration EEPROM; and appendix B17 for the N-WELL video clock filter. - Epson, SG-615, SG-531, and SG-51 Series. Reference oscillator; frequency tolerance, symmetry, output levels, and load conditions.
- Texas Instruments, TL431 Precision Programmable Reference. Reference voltage and minimum cathode current for the DAC current sink.
- Texas Instruments, CD74HCT164, SN74HCT74, and the local FAST logic data sheets (F00, F02, F04, F08, F32). Adapter pinouts, thresholds, and propagation delays.
-
Motorola,
M68000 User's Manual. Byte-lane selection, read and write cycle timing, and
/DTACKnegation requirements.