In closed loop system such as a computer, because of the interdependence of numerous component parts, fault diagnosis is not necessarily straight-forward. In addition, because of the high speed cyclic operation, interpretation of any waveforms on control, data and address lines as being valid depends to a large extent on practical experience of the system. There are however, certain checks with valid waveforms and levels that can be carried out before substituting any integrated circuits. Experience has shown that the best method of initially checking waveforms and levels can be to compare with the same point in a known serviceable board. The following pages provide a basic fault-finding procedure and furnish a list of possible faults along with suggested ways of curing them.
With a densely populated board such as the ZX SPECTRUM, as careful physical examination of the board can sometimes indicate an obvious fault. Burnt-out discrete components or an overheated track show up immediately, as do the attentions of an enthusiastic amateur. Bearing in mind the latter, short circuits caused by hairline solder `splatter` can be of several ohms resistance and can cause some very misleading fault symptoms.
Providing first principles are adhered to and a common-sense approach is adopted, it will be found after a short space of time that fixing a faulty Spectrum is very much a routine operation.
Power Supply Unit
The unstabilised external power supply unit is a source of some problems. The design is such that, at minimum input voltage (215 ac) and 1.4A output, the voltage through should not be less than 7.0V; at maximum input voltage (265 ac) and 600mA output. the voltage peak should be less than 14V.
At switch-on the computer should automatically `initialise` and produce a clear screen with the statement
(C)1982 Sinclair Research Ltd
displayed in the lower left section of the screen. This indicates that most of the system is working. If the Spectrum does not initialise, carry out the following basic checks.
Basic Checks. It is difficult to be specific in a fault-finding guide because of the large variety of fault conditions which can occur, but the following procedure, starting with a table of checks set out in order of priority, will however isolate the major fault area.
|Voltage regualtor input||+ve side of C50||+9V dc +/- 2.0V. At less than +7V the regulator will not function correctly.|
|Voltage regulator output||+ve side of C34||+5V dc +/- 0.25V - no discernable ripple.|
|On-board power supply outputs:
+12VA(to IC14 only)
|IC6 pin 9
IC6 pin 1
IC6 pin 8
LT end of C52
|+5V dc +/- 0.25V - no discernable ripple
|Clock pulses||IC1 pin 32
TR3 base and collector IC2 pin 6
|14MHz squarewave at +5V amplitude.|
|Address and data lines (following through to relevant ICs)||RT side of R17-R23
RT side of R1-R8
|Waveform of amplitude 3.5V|
If these tests prove satisfactory check IC1 pin 14, IC2 pin 11 and IC5 pin 28 for +5V. Also check for ground at IC1 pin 40, IC2 pin 29 and IC5 pin 14. If all is still satisfactory at this point and IC1 is the plug-in-type, replace IC1. If replacement of IC1 does not cure the fault, check the address and data lines of IC1, IC2 and IC5 for active data.
It is possible that one of the Z80A or RAM control lines has become faulty therefore, comparing with a known serviceable board if possible, check the waveforms at the following points at origin and destination:
|Pin 16 - INT||Pin 17 - NMI|
|Pin 20 - IOREQ||Pin 24 - WAIT|
|Pin - 19 - MREQ||Pin 25 - BUS/REQ|
|Pin 21 - RD||Pin 26 - RESET|
|Pin 22 - WR|
|Pin 4 - RAS||Pin 3 - WRITE|
|Pin 15 - CAS|
If no fault has been found and the computer still has not initialised, the fault could lie in the RAM. If the computer is a 48k machine the 32k of expansion RAM can be isolated. An easy way of doing this, assuming that the ICs are not fitted into sockets, is to remove the +5V from IC25. This is probably best done by very carefully cutting the track to IC25 pin 16. If this operation clears the fault condition, the expansion RAM will have to be further isolated. In either instance the point has been reached where it is necessary to start replacing ICs.
Where the fault persists after isolating the 32k expansion RAM it would be necessary to start changing individual ICs in the order of IC13 to IC6 (RAM), IC1 (ULA), IC2 (Z80A). After each change of IC the unit must be powered up to check for correct initialisation.
A method of fault-finding that can be used on both 16k and 48k versions is to make a `test IC` device. This may be done by using an IC test clip, to which is attached a serviceable IC (of the relevant type eg 4116 or 4532), to bridge across each suspect IC in turn. This method is not guaranteed to work but can often save a lot of time unnecessarily changing suspect ICs.
Where a Spectrum has initialised correctly but a RAM memory fault is suspected, it is possible to find the faulty address and relate it to a faulty IC by carrying out the following procedure:
Key in the instruction:
PRINT PEEK 23732 + PEEK 23733 * 256
The value printed should be:
(a) for a 48k unit - 65535
(b) for a 16k unit - 32767
The value printed in each instance is the last valid memory location, and in a serviceable unit would be as set out above. Therefore, if a different value, n, is printed the faulty location will be n+1. If the value returned is less than 32767 the fault lies in the original 16k of RAM. The following example illustrates the method of relating a faulty location to a fauly IC.
Example. If a 48k Spectrum is giving a memory of 25.25k key in the following instruction:
PRINT PEEK 23732 + PEEK 23733 * 256
Assume the answer displayed is 43200, therefore the faulty location is 43201 (stops at last valid location). Key-in:
POKE 43201,85 : PRINT PEEK 43201 (=answer A)
If answer A is 85, key-in:
POKE 43201,170 : PRINT PEEK 43201 (=answer B)
If answer B is anything other than 170 look up in following table which IC to change (eg if answer B is 234 change IC21). Similarly, if answer A is other than 85 refer to the table to find the faulty IC.
|Data 85||Data 170||Size of||Error||Faulty RAM location if:||Faulty RAM location if:|
|IC6-IC13||IC15-IC22||Error||Bit||< 32767||> 32767|
If there is more than one faulty RAM location the first fault identified will have to be repaired before it is possible to proceed.
The keyboard is connected horizontally in eight blocks of five keys and vertically in five blocks of eight keys. The diagram below shows the configuration. It follows that is any block of five keys fail the fault is with KB2 circuitry or the 8-way membrane, and that if any block of eight keys fail the fault is with KB1 circuitry or the 5-way membrane.
Electronic mail to firstname.lastname@example.org