Leon Borre Zaccaria 1st Generation CPU Repair

From PinWiki
Jump to navigation Jump to search

Zaccaria CPU type 1B 1110/1 repair.

First generation, Earth Wind and Fire, Hot Wheels, Future World, House of Diamonds, Winter Sports, Shooting the Rapids, Fire Mountain, Space Shuttle, Star God, Locomotion.

Swash4.gif

I'd like to start by thanking D. Gersic from the U.S.A. David tried out this repair method and reported positive results and made several corrections for the English translation. You should visit his site, as a lot of technical information about Zaccaria is collected there, and it was the only website on which I found some technical information. David's website is here... Pinaqua.gif

The test program consists of two parts. At startup all outputs will go up and down in rhythm, between 5 and 0 volt. Next you switch over to the memory test. If something is wrong then the test will continue to run the memory test. If both memory chips are ok, the test will automatically continue the "input test". Meanwhile a "control LED" is blinking rapidly. We shall connect the input pins at connectors CN9 ( there are 8) one by one to ground, and every time the cpu stops blinking and goes " out", at the moment we release the input pin the LED restarts blinking . It was necessary to test the inputs, as this board does not use PIA's for in- and output. One last remark, the memory chip IC21 is not included in the memory test, this is impossible, as the data is being written through the databus, but reading does not happen through here. So the test program can write but not read IC21. Read-out is going directly towards the output pins, so we test this memory in the output section of the test.

Zaccaria uses a Signetics 2650 CPU. This IC is one of the very first generation of CPUs. Back then it was "very good" to have CPUs with many and versatile instruction sets. This unfortunately made CPUs very complicated. Later things have changed and it became better to use simpler ICs like RISC processors (Reduced Instruction set) which means less instructions but faster processors. As I always want to keep the test program as simple as possible, it should just indicate which major parts have a problem. The selftests on modern pinball machines are very nice, but they assume that the cpu works perfectly, or you won't be able to start it. So this introduction explain that a test program by my hand, will make use of simple things like a single LED as a " go / no go " indicator and most signals can be checked with a universal voltmeter, so everyone can use it. A more complicated test which uses the displays I'd never make as it requires the cpu to work, and if it does, it wouldn't be on the test-bench.

Swash1.gif

This is the Zaccaria cpu board... You can find schematics here... Pinaqua.gif

Cpuzac.jpg

Swash1.gif

Connecting the CPU.

Our only indicator is a"control LED" connected at pin 40 of the CPU chip (IC 12) The "control LED" is as in my other tests, a LED in series with a resistor of 470 ohm with 2 mini hooks, these are practical to connect the control LED at pin 40 and 5 volts . At first use check the control LED by hooking it up to 5 volts (red hook) and touch ground with the other hook (green) the LED should light up if not change the two LED connetions.

Eled.jpg Ledopg.jpg

This is how the control LED looks like, the flat side is the (-) side of the LED. Create two of these because we need one to be permanently attached to pin40 and one to test all outputs.

Testled.jpg

A better method to control the outputs is to use a led-strip. The strip consists of a appropriated connector from wich each pin is connected to a led in serie with a 470 ohm resristors the common of the resistors is via the red wire connted to 12 volts.

Swash1.gif

Here is the connected cpu board, ready to be tested.

Cpuklaar.jpg

Power is connected to CN7. 5 volt at pins 5 and 6 and ground at pin 2 and pin 4. ATTENTION, disconnect during test condenser C4. ( normaly at pin 6 comes -5 volt as we apply 5 volts ,the condenser is wrongly polarised, therefore this deconnection ) A wire runs from 5 volts to pin1 of the CPU chip. The control LED is connected to pin 40 of the cpu, and the ( ) side to 5volt , taken from the diode (D4 upperside).

Swash1.gif

Start.

You can find the test program here, it should be burnt to a 2716 type EPROM.

Download test program... Pinaqua.gif ... with memory test

Download test program... Pinaqua.gif .. without memory test

Remarque !! If you have downloaded the test program before 1/2/2004 you have an old type test program, this test program will not work on board type 1B1110/1a . If you are not shure what you have , print out the test program file, among a lot of garbage you will find lisible text , if you have a new test eprom it will be clearly marked the test is suited for 1B1110, 1B1110/0, 1B1110/1 and 1B1110/1a , and also you have to find ZAC9, this is the right new test eprom you need !!! If you have an old type this ZAC 9 is not mentioned.

NEW: there is also the version without memory test , here you jump after the output test directly to the input test . This test program was developped on demand of another pinball-fan .

Zaccaria uses in these CPU boards the very old EPROMs type 2708. These EPROMs need no less than 3 different voltages 5,-5 and 12 volts. Still I was able to use a handy 2716 EPROM as the test EPROM. We connect 5 volts at pin 6 and pin 5 of CN7, and ground at pin 4 and pin2 of CN7. ( disconnect C4 during test) For the games using a 2708 in ROM1 as Futur World, Shooting the rapids and Wintersports., we have to undo one jumper J4 and place J3 in place... This is the reason the test EPROM should be used when the board is on the bench connected to a seperated 5 volt source . Never use the test EPROM when the CPU board is in the pinball!!

Swash1.gif

We only need one voltage, 5 volts. This is connected to CN7 to pin 5, and 6 . The (-) or ground is connected to pin 2 and pin 4. ( Disconnect C4 during test ) The control LED goes to pin 40 (IC12) and the ( ) side of the control LED to 5 volts. Finally connect 5 volts to pin 1 of the CPU chip (IC12) using a mini hook.

When the test program is launched, the "control LED" will slowly start blinking after about four seconds. If the LED does not blink then go to the last part of this document (test does not start).

Output test:

Now check the outputs which you find on connector CN 8,9,10 and 11, use the schematics to find the pin numbers. On the schematic these connectors are marked; "Contacts", "Data", "Address", "Selections to display's", and "Selections to driver board". But is is easier to check the outputs at the pins of the different output chips (3081) these are IC 38, 40, 35, 34 and 41. Still, another problem arises; as the output is multiplexsed by the test program among all 32 output pins, the pulse is very weak, and the output flash at the connected LED will be nearly invisible, also the output chips type 3081 have what is called "open collectors" and they need to draw some current to work properly.

The solution for these problems is the following:

Use a separate 12 volt source and an extra control LED. The (-) side of this 12 volt source goes to ground or (-) of the 5 volt source. The ( ) side of the extra control LED is connected to the 12 volts, and the loose end of the extra control LED (the (-) side) is used to touch and view the status of all of the output pins. The extra higher voltage is just what we need to make the small flashes on the outputs visible (they are at some output pins still weak but always visible). The outputs will light the extra control LED in an slightly other rythm as the control LED connected at pin 40.

This is how this connection is made:

Eouttestled.jpg

Swash1.gif

Should there be an output signal missing then suspect the output IC first. If all outputs of the same IC are missing then it is for sure the IC (3081) is bad. You check higher up in the chain using the schematic IC38 get his signals from IC30, IC40 get it from IC30, IC31 and IC27, IC35 gets it from IC32, IC34 gets it from IC18, IC43 and IC33. and at last IC41 get it from IC26 and IC27. Follow the way until you find out where the signal is missing. In most cases it will be the first in line, the output IC 3081 that is bad.

Some outputs at IC34 are coming from the memory chip IC21, this RAM memory is not tested in the normal memory test so it can still be bad, remember that.

Now we have checked all possibilities and any errors in the outputs should have been found.

Swash1.gif

Testing the selection signals.

When i launched the new test version ( 1/2/2004 ) i also added this test. All selection signals come fom IC11 , output pins are, 1,2,3,4,6,7, 14 and 15. During the output test you will see at a certain moment a signal at every output pin. This signal is weak, very good visible using a scope, or a electronic probe, with a universal voltmeter you will find about 0,1 volt at every output pin , this 0,1volt coming up suddenly and disappears afther a second or two ... except pin 3 which selects the test eprom there it will be about 3 to 4 volts. The selection signals now pass IC6 or IC 9 and arrive on the pin 20 of the game roms , there you have to find a negative tension varying suddenly from -0,6 to -0,7 volt..again easely dedectable with a electonic probe or a scope.

Control of the game rom sockets 2,3,4 and 5.

All these sockets receive the same signals, the only exception is pin 20 the CS signal ( selection ) This is one of the possible reasons why a " tested good " board still does not work if the game roms are present... If the CS signal is missing or bad by a bad select ( IC11) output ,or a broken IC6 or IC9 the pin 20 can be " in the air" or negative in BOTH cases the game rom will be selected and disturb the good working of the game rom working correctly at the same time... This will not longer be possible if we did pass the selection test described above... Althougt we can use this behavoir in a positive way ( the rom being selected with the pin 20 " in the air" ) We use the test eprom and bend slightly pin 20 upwards.. and now place the game rom in ALL of the other game rom sockets one afther another. ( see photo ) . The test will start up normally in all sockets IF ALL other signals ( 23 of them ) are ok on that socket!! This is a ideal way to test all game sockets!! Afther this we are 100% shure all game rom sockets are ok. Only once on 50times the test will refuse to start, just put off and on again and the test will for shure start now...

Pootuit.jpg

Test eprom in socket 2 pin 20 not connected...

Corrosie.jpg

It are mostly sockets 4 and 5 situated right under the battery that will suffer from battery corrosion...For that reason on this board socket 4 has been replaced. It is always a delicat operation to resolder these sockets, runs are easely broken or come lose.. By placing the test eprom in each socket ( minus pin 20 ) and run the test like that is the best way to see if all connections to the socket are ok !!

Swash1.gif

Memory test.

To start the memory test disconnect the mini hook at pin 1 of the CPU. If something is wrong with the memory chips the control LED will stop blinking and stay "on" or "off". If the blinking continous but at a fast rythm then the memory ICs are ok and you are in the input test now. If the memory test is ok, skip the next paragraph and go to "Input test"

If the LED stays "on" or " off" there is something wrong with the memory ICs. The test continues to run the memory test all the time now. You can verify that the memory test is running by measuring the signal at pin 19 of one of the memory chips IC7 or IC8. You will find that there is a 4 volts pulsing signal, meaning the memory test is running. Other signals measured at the memory chips are:

Pin 1 to 7 = Address lines = between 1 and 2 volts

Pin 9 to 16 = Data lines = 2 to 3 volts

Pin 17,19 and 20 = 4 volts

Pin 18 = 0.5 volts

Pin 22 = 5 volts

If the selection at pin 19 is missing that can be only be the "select" output at IC11, pin 6 or the driver behind this IC9 pin 9 (in), or pin 8 (out). NOTE: the selction signal at pin 19 of the memory chips has to pulse that is why you find 4 volts , if ever you find 5 volt that is bad too...probably no pulsing signal.

If the incoming signals are ok, then it is likely in most cases that the memory chip itself is bad. The test cannot see which of the two is bad. But always try to replace the IC7 first, this 5101 is weaker than IC8, a 2101.

Swash1.gif

Input test.

Ok, now you've passed the memory test and the control LED should blink quickly. The test checks all input pins and when one is connected to ground, the LED stops blinking and goes "out". All inputs are to be found on CN9 pins 10,11,12,13,14,15,16 and 17. Connect these one by one to ground to check if the LED responds by going out. The inputs have only one chip between the input pin and the data bus, so if there is an input that is bad it can only be IC10 or IC25 that is the cause.

This is the end of the test program. If everything tests well, it's sure the board will start without errors, but remember the power board voltages ,and also test the driver board , a test for the different types of driver boards can be found here on my site. Another difficult issue are the game ROMs, very few EPROM programmers can handle these 2708 type EPROMS, again a method to read these 2708 game roms with a ordinairy eprom programmer set on 2716 ,a common setting available on all eprom programmers , is to find on the site here. If you have more questions about the test program then email me.

Swash1.gif

The test does not start.

The test does not need a lot to blink the test LED. Only 4 ICs have to be ok. These are the cpu chip, your program EPROM and the selection of the test EPROM, which is IC11 and IC6, the cpu itself needs the clock signal from IC19. These 4 ICs are enough to start. Most of the time you'll find a short on the data or address bus which is caused by a problem in another connected IC, but that can be a lot of ICs. First check the signals on the CPU chip, if these are ok, then measure the resistance on the data and address bus, if this is too low or somewhere near 0 then look for the short or partial short there. You'll have to trace this using the layout on the board, and cutting data or address lines until you can detect from which part exactly the short comes. If the CPU is working and you see one or more address lines moving, then the error will be in the selection (only 2 ICs).

What do we find on the processor...

First check if you have the clock signals on pin 38 (1.5 volt). If not, go to the source of this clock, IC19. This chip makes the clock signal. Release in a way you like pin 10 of IC19 and check if the clock signal is there now on this pin 10. If yes the CPU chip is bad. If still nothing the IC19 itself is bad. If the clock signals are present then check power supply, 5 on pin 39, and 0 volt on pin 16. Try a manual reset to see that the 0 volt goes to 5 volt. You can make a manual reset by grounding pin 8 of CN9. Again there can be only two suspect: IC23 or IC41. With both signals present then the cpu should do something. Check if there are Address or Data bus signals present, if there are none then the CPU chip may be bad, if there are some then there is probably a short in an Address or Data bus or a connected IC.

Stop the (badly running) test, remove the cpu from its socket, and measure the address and data lines with an ohm meter, negative lead at ground!! You should find these values:

Address lines of pins 2,3,4,8,9,10,11,12,13 and 14 = 15Kohm up to 20Kohm

Address lines of pins 5,6 and 19 = very high more than 100Kohms.

Databus lines = all 8 = around 10 Kohms

If this is ok then there's only the selection circuit of the test EPROM chip left. These are ICs 11 and 6. First check pins 10, 11, and 12 of IC12 (CPU) with a logic probe to see if there are signals present. After that there's only IC11. Are there signals at pin 10, 11, 12 and 13? If so, then there must be something at pin 3, otherwise IC11 is bad. The signal now only passes IC6 to select the test EPROM. This concludes our test and you should have found something which stopped the CPU. Success!!

Addition: Somethimes one can still be misled. I had a CPU board that had a non working "sense" pin, it behaved if there was always a "0 volt" on the input. EFFECT: At start-up the test got into one cycle of the output test (1 blink) and stayed "on" This is "normal" as the test started immediatly with the memory test, and I had a bad memory chip, the tests LED did stay "ON" all the time; just as foreseen in the test procedure. Of couse for me as i did not know the memory test was already started by the "sense" pin 1 at "0" it seemed like after one blink the test program got "stuck". Just this example to say one must always be aware of misleading "symptoms" of a simple defect. By the way you can have this effect if IC40 is bad and gives a steady 0 volt at ouput pin 14 pin forcing the "sense"pin at 0 volt.

Swash1.gif

Another ( better ) method...

If the test does not start up, the best way to control the working of the address lines and the selection signals is as follows.. We force the databus bits 6 and 7 to "high" bits 0 through 5 to "low". This gives us a constant NOP operation. During a NOP operation the only thing that happens is that the program counter will "read" the next address.. where again it find the NOP.. resulting in the continous incrementing of the address.. Look now if possible with a scope at all address pins from A13 to A0, the signal you see will always double in frequency from the highgest to the lower address line...A13 being the lowest frequens. Using a logic tester , all address bus signals A0 to A13 have to show a signal.. This way we are sure no lines on the addressbus are shorted..If there is one shorted to ground the signal will be missing , if shorted to each other there will be no " clear" signal, if shorted to 5 again no signal but constant "high" of course.Before whe perform the pull up first check continuety of all the address, and data lines from the CPU to the rom socket 1.

A safe method to pull up and down the databus is to connect the databus signals using a 33 ohm resistor to 5 or to ground. I insert one side of the resistors directly into the socket of the rom.. The other lead is connected to ground or to 5 . ( see photo's... )

Enkelresdatb.jpg

Two 33 ohm resistors connected to 5 volt and five 33 ohm resistors connected to ground..Ready to plug in a rom socket at the pins of the databus.

Resdatab.jpg

The resistors plugged in the socket of the rom..The two that are connected to 5 come in pin 16 and 17 these being databus DB6 and DB7 , the five others into pins 9,10,11,13,14,15. Databus DB 0 to 5 .

Voldatbus.jpg

The complete test set-up. NO roms used only 7 resistors forcing the databus..

As all addresses are coming up the selection address of each rom and each ram is at a certain moment present , so control also the presence of the selection signals at U7 pin 17, U8 Pin 17and the five game roms at pin 20. All these selection signals coming from the results of the address signal combinations of U11... So if missing all selections U11 is bad, if missing one or more but not all, U11 still can be bad OR one of the inverters ( U6, U9 ) can be bad, OR a short at the pin 20 that is missing the signal. I strongly recommend to use a scope or a electronic probe to control the data and address line and selection signals.

Swash1.gif

Final Thoughts...

I have made a very in dept study of this CPU board. I have discovered that Zaccaria made a very good and simple board. Intentionally they used the 2650 IC by Signetics, taking advantage of the input and output instructions and didn't have to use the then "expensive" special input and output ICs like PIA or RIOTS. Memory was used sparingly (it was also expensive) and interrupts are used a lot, which make it very difficult to analyse the existing programs, but makes it possible to work very flexibly. A disadvantage is the almost straight coupling of the input circuits with the data bus, an error on this will almost always result in a blocked cpu. This has been prevented by "inverting" the signals, you need a 0 to signal an input instead of a 1 as it done in most cases. If input pins are shorted to ground, no harm done, it looks like a permanent closure of a switch. Also the selection circuits are simple and effective with a minimum of parts. Disadvantage are the output line drivers (type 3081) and their "open collector" technology. Be very careful with the output pins, never put 5 volts at an output pin !!On the other hand a short to ground is harmless.The copper runs on the Zaccaria boards tend to come off when desoldering!!! Be VERY carefull when you desolder things!! Cut off the bad part and desolder the remains of the pins or wires.

Swash1.gif

Extra deluxe user panel.

For those who might repair Zaccaria CPU board several times, (should be easy now!) I created a board containing all we need to perform the tests. Here you see it.

Pcaf.jpg

You see at the upper side of the photo the connector for the CN7 of the CPU board, both banana pins, to connect at the 5 volt source. At the left the mini hooks to connect at pin 1 and 40 of the CPU chip. On the board at the lower side, the push button to start the memory test; the yellow and black connector holes to connect the 12 volt source at output test. In the blue connector hole you put a test lead to touch the different output pins one by one. If the output is ok the LED under this blue connector will light up in rythm with the control LED.

Swash1.gif

Construction.

The way things are connected on the little board

Printschem.jpg

What do you need.

Griefzac.jpg

Two minihooks, two LEDs and their 470 ohm resistors, connection lead, a 6 pin connector, connectorstrip at 90� fitting to CN9, three female connector plugs (yellow and black not on photo), a small piece of universal mounting board, and two banana plugs.

Swash1.gif

First thing to do is solder the connector strip at the underside of the panel.

Pcmetpin.jpg

Some pins of CN9 must be accesable, they are the inputs, and should be grounded during input test. They are pins 10 to 17

Pcmetgat.jpg

Drilling the holes. Don't forget the push button is a normally closed type.

Pcopplaat.jpg

The panel mounted on the CPU ready to pass the test, and repair the board. No wires hanging about!!

The panel is plugged in at CN9, the mini hooks at pin 1 and 40. The power connected at CN7. The test EPROM in place. To start the memory test , just push the button, push it long enought until the LED stop blinking or start blinking rapidly.

ATTENTION !! Do not forget to disconnect C4 during test!!

Swash1.gif

Extra memory test.

Swash1.gif

When executing the memory test the memory is tested only once if ok we go directly to the input test.

During repairs we had a few cases where afther putting the working board back in the machine , afther a while there where memory failures..Therefore and on demand of David Gersic, i made an extra memory test eprom.

This test will run continously the memory test and during the test the test led connected at pin 40 will blink, if there is a memory failure the led will stop blinking and stay "on". We can start the test by putting this extra test eprom in socket 1 and power up the CPU board , we can leave the board now if we want for hours to see if when warming up the memory chip stays ok.

Find the extra memory test eprom image here ... Pinaqua.gif Burn it in a 2716

Swash1.gif

Extra hints

During repairs i had several cases where the cpu board was running fine using the test eprom on the bench, but once in the machine it did not work at all or properly.. Several reasons are possible , i would like to give some of the main reasons to avoid some extended searching...

REMEMBER.

1) A Zaccaria board will run badly or behave starnge , not allowing credits to register, blocking when a coin is introduced and so on if you do not re- introduce the complete settings from 6 to 26... So ALWAYS start by the settings of ALL the features , if the setting is what it should be when looking it up, change it anyway and reset it at the value you want, when you see 19 as setting that can be 519 as you see only the two last digits on the credit display!! . How to do it look at the operators handbook, you will find about all of them on the IPD or Tilt.it .com

2) During test the only game rom socket used was the first one !! There can be bad connections in the other sockets, so use a meter to see if all pins of all game roms are well connected in the socket rom!

3) Always test ALL input and output signals as foreseen in the test description..

I did have some "easy" repairs, the start test was passing ok, only the memory test was not , just plug in a new ram and there it was both test where ok.. I did not bader to test the in/outputs ....( WRONG!!) A bad input prevented the use of the test button in the coin door , i could not start any test and as the settings where completely wrong the machine was not working at all...

4) Test the action of the reset button situated left on the cpu board. Use a ohm meter to see if it really works. When not working you cannot get into the features settings and again there you are , the machine will pass the "normal" tests , being display test, all lamp test, coil test and it is impossible to go to the settings options.( I call the push button on the cpu board the "reset" button, in reality it does not perform a reset, by causes a jump in the game program, leading to the part where the " settings " can be performed )

5) Now we did connect the driver board and the displays , if there is something seriously wrong on one of these boards, this can disturb the CPU.

Try to pass in test mode ( pushing the button at the inside of the coin door) with the the display connector disconnected, you will still see the all lamp and coil test, if the displays where the cpu preventing working, Or try disconnecting the driver board , you will still see the test on the display's , disconnect CN9 you still can enter the test phase by the test button. This way you can get around a bad driver board ,display board or other external cause the blocks the cpu.

6 )Check the game rom images.

7) Check the jumper setting , certainly if you have 2716 or 2732 game roms instead off the original 2708's, control the modification to do at CN1.

8) Have a battery installed on the board , otherwise the " settings "will be bad every time you switch "on " the machine.!..

Althought it is possible to work without a battery, you have to " set " the settings and afther setting 26 , the machine will come automaticly in play mode. But when the machine is switched of the settings are gone , and you need to repeat the settings every time the machine is switched on again.. ( Another way to work without a battery, is to use the default setting board ( 1B1149 ) , althought you can use that only on a few machines , on this little board are dipswitches to set , refer to the machines operators handbook to use this. )

When putting the machine "on" and you have alternating 66666/ 999999 in the display's this means you have a memory that is not filled with the right settings or if a battery is present this battery is not good or not charged.

9) Read these " Extra hints" every time you have a repair , probably i will add some more points in the future.