(Topic ID: 206901)

Data East MPU won't load EPROM


By Opiate

1 year ago



Topic Stats

  • 31 posts
  • 4 Pinsiders participating
  • Latest reply 1 year ago by CactusJack
  • Topic is favorited by 6 Pinsiders

You

Linked Games

Topic index (key posts)

3 key posts have been marked in this topic

Post #22 What is the function of a CPU? Posted by CactusJack (1 year ago)

Post #26 Description of a "NOP" CPU, a tool for troubleshooting. Posted by CactusJack (1 year ago)

Post #29 More about a "NOP" CPU. Posted by CactusJack (1 year ago)


Topic indices are generated from key posts and maintained by Pinside Editors. For more information, or to become an editor yourself read this post!

#1 1 year ago

Working on the CPU of a Star Wars DE. Have it set up on the bench with +5v and GND and I get all three LEDs (Blanking, 5v & PIA) lit and staying lit.
I've read somewhere that this means one of the PIAs is bad.

What I don't understand is whether I use Leon's Test EPROM, the Star Wars EPROM or just no EPROM at all, there's no difference over the board. This is why I think the CPU isn't loading the EPROM. I've checked all the connections from the schematic between the CPU, the address buffers and the EPROM and there's continuity everywhere it should be.

I'm guessing one of the smaller chips might be the cause. Is there a way to check if a chip is malfunctioning without removing it from the board?

#2 1 year ago

Well, for some you can look up the datasheet for the chip, and see if all the signals out match correctly to the inputs. But that would take ages. If you're not getting anything from Leon's, you need to go back to basics. How is your chip socket for your Eprom? Do you have your jumpers right? Is your processor running? Do you have a known good processor to replace it with for testing?

#3 1 year ago
Quoted from CadillacMusic:

Well, for some you can look up the datasheet for the chip, and see if all the signals out match correctly to the inputs. But that would take ages. If you're not getting anything from Leon's, you need to go back to basics. How is your chip socket for your Eprom? Do you have your jumpers right? Is your processor running? Do you have a known good processor to replace it with for testing?

Hey thanks for the reply.

I just pulled the address line buffer chips (6C & 6D) and the 5E chip and popped them into a TL866 tester. They passed the logic test in that :/

The chip socket has been replaced with a new one and theres continuity between every pin in it and where each needs to connect to. The jumpers are over J5 and J3 (which i believe is correct for the 27C512 EPROM. The CPU was not working originally, but have since replaced it before I got to this poin and according to Leon's guide, all the pins are giving the correct readings.

Ben

#4 1 year ago

How's your clock signal? What voltages do you have on pins 39, 37, and 5?

#5 1 year ago
Quoted from CadillacMusic:

How's your clock signal? What voltages do you have on pins 39, 37, and 5?

Clock pin 39 pulses low on 3.4v , pin 37 pulses with 2.5v and pin 5 pulses with 4.3v

#6 1 year ago

I pulled and socketed some chips earlier today and since then the blanking light now does not turn on at all, which I think is progress?
So now it's just the PIA and 5v LEDs which light and stay lit, blanking LED is completely unlit.

#7 1 year ago

Which chips did you socket?

#8 1 year ago

The ones I put in the tester which i mentioned earlier, 6C, 6D and also 5E

#9 1 year ago

Wow. How's pin 40? Behaving correctly?

#10 1 year ago

okay since my last reply, blanking LED has started coming on again :/

Pin 40 of the CPU reads low with the logic probe and about 4v with the DMM

#11 1 year ago

Why would 4v read low with the probe? If it's like 4.5v that's normal. But the whole blanking being on and off is very strange. Something isn't making a good connection somewhere.

#12 1 year ago

well with the DMM it's 4.5v and with the logic probe it just says Low (which I'm guessing means its a GND pin). I was trying to work out what's up with the blanking issue and noticed there is a short between pins 28 and 29 on all the PIAs and pins 16 and 17 on the EPROM and RAM and also pins 6 and 7 on chip 5E. That's because in the circuit diagram PIA pin 28, EPROM/RAM pin 16 and 5E pin 6 are supposed to be connected and the same is true for pins 29, 17 and 7 on the PIAs, EPROM/RAM and 5E chip, respectively. I've been checking the traces and cant see any stray solder. The short is still there when I take out the EPROM, RAM and 5E chip so it must be one of the PIAs. Is it possible for a PIA to short two legs internally?

Ben

#13 1 year ago

Sure, it's possible. It's sure not supposed to have two data lines tied together. I don't like your logic probe, though. 4.5 is high in anybody's book.

Edit: Before you start cutting legs on your PIAs, take a look at the resistor bank, RA4. Those can short as well.

#14 1 year ago

hmm the logic probe has 3 lights: red 'HI', green 'LOW' and a yellow 'PULSE'. I connect it to the +5v and GND then touch the pin and the green light is lit.

I'm pretty sure the CPU is fine as its brand new. The last one wasn't working. Is there a specific PIA which would stop the code from the EPROM from running? Would be nice to have one to start with. I didn't really understand how to test the legs of the PIA from Leon's guide. All of my input legs are stuck on High except for the lowest PIA are stuck on low.

#15 1 year ago

Okay fixed the short. Still three lit LEDs :/

#16 1 year ago

Oops! Pin 40 actually reads High, you are right

#17 1 year ago
Quoted from CadillacMusic:

the whole blanking being on and off is very strange. Something isn't making a good connection somewhere.

Turns out the 555 chip wasn't in properly so now the Blanking LED never lights.

Quoted from CadillacMusic:

I don't like your logic probe, though. 4.5 is high in anybody's book.
Edit: Before you start cutting legs on your PIAs, take a look at the resistor bank, RA4. Those can short as well.

Oops! Pin 40 actually reads High, you are right

#18 1 year ago

Well, that makes me feel better about your meter, at least I want to clarify: Do pins 28 and 29 have continuity to each other? I feel like you weren't the clearest in your description there.

#19 1 year ago

Yes pins 28 and 29 had continuity, but that was a stray solder splash which has been fixed. Still hasn't solved the 2 red lights.

pins 2, 6 and 40 of the CPU are 5v not 4v, is that a problem?

pin 39 is less than 2 volts (1.88v), pin 5 is 4.3v, which is different to what Leon's guide suggests.

The data Lines (pins 26 - 33) are 5 volts (2 volts higher than they should be). With pins 33 and 31 at 4v. If I take out the chip at 5E (or put in the EPROM), pins 29 and 32 remain at 5 volts with the rest returning to 4volts.

Pin 20 on the EPROM is almost 3v (not sure if that's correct)

Pin 23 on all PIAs are about 4 volts except for the PIA 5F which is almost 5v. Changed the PIA, no difference.

#20 1 year ago

That's actually fantastic news. Pins 28 and 29 being together was bad juju. Pin 2, 40, and 6 being 5v is fine. There's no program, so the data lines won't be altering high and low, they're fine. The other ones are hard to tell without a scope. When you put your data probe on them, do they pulse? Or are they steady state? I don't suppose you have anything that can check the frequency of your clock, do you?

#21 1 year ago

aw that's good to hear especially after losing my mind over this slowly haha

Yes they all pulse with the probe. I have an oscilloscope but had difficulty using as I have no idea what to do

Also I noticed that the CPU gets a little bit hot after some time. Is that normal?

Am I right in thinking that the problem with the board is that the CPU isn't loading the program?

#22 1 year ago
Quoted from Opiate:

Am I right in thinking that the problem with the board is that the CPU isn't loading the program?

The CPU doesn't actually "load" the program (like what a PC or Home Video Game system would do). Instead, it actually "reads" instructions one byte at a time to create a simple operation to perform. Chain all these instructions together and you have a program. So, when it comes to accessing anything out on the Address and Data bus, each device must respond at its assigned addressing and NOT be allowed to do anything to the data bus (where the information transfers occur) that might corrupt the data being transmitted by another device. So if something is either loading down, or pulling high an Address pin (outputs from CPU) or a Data Bus Line (bi-directional information coming from and going to the CPU), it can prevent the CPU from running a sensible program. It could be running some kind of a program (or just locking up), just not the sequence of events it should be doing.

The Blanking circuit is put in for this kind of protection. If the program doesn't seem to be doing things its supposed to every so often, the Blanking circuit steps in and turns every thing off that could suffer if it were stuck on in some way (Lamp Matrix, Solenoid drivers, Plasma Display).

#23 1 year ago
Quoted from CactusJack:

The CPU doesn't actually "load" the program (like what a PC or Home Video Game system would do). Instead, it actually "reads" instructions one byte at a time to create a simple operation to perform. Chain all these instructions together and you have a program. So, when it comes to accessing anything out on the Address and Data bus, each device must respond at its assigned addressing and NOT be allowed to do anything to the data bus (where the information transfers occur) that might corrupt the data being transmitted by another device. So if something is either loading down, or pulling high an Address pin (outputs from CPU) or a Data Bus Line (bi-directional information coming from and going to the CPU), it can prevent the CPU from running a sensible program. It could be running some kind of a program (or just locking up), just not the sequence of events it should be doing.
The Blanking circuit is put in for this kind of protection. If the program doesn't seem to be doing things its supposed to every so often, the Blanking circuit steps in and turns every thing off that could suffer if it were stuck on in some way (Lamp Matrix, Solenoid drivers, Plasma Display).

Hey Cactus Jack thanks for the input!
So are you saying that in my case, something else could be corrupting the data bus which is causing the blanking circuit to kick in and prevent the CPU from reading bytes? Would this cause the blanking LED to light? (my blanking LED does not light)

From Leon's guide, I've learned the address pins are pins 9 to 25, except pin 21 and on my board these are all about 2.5v.
So does the fact that the voltages for the data pins (26 to 33) are 4v-5v mean that something else is pulling up the voltage and thus causing this corruption?

Thanks again!

#24 1 year ago

Well, when you had the two data lines tied together, that was data being corrupted and thus the program couldn't start. Now that's fixed, you still can't start. The question is why, and I'm not sure I can get you much farther without a scope. If you want to, you could make the assumption that clock, VMA, and E are all fine, and start checking the address buses for movement. But without a scope, or the knowledge to use one at least, you can't know if the clock, VMA, or E are fine or not.

#25 1 year ago
Quoted from CadillacMusic:

start checking the address buses for movement.

Do i just do this with the probe and check if the pulse light goes?

i'll look into working with the scope.

#26 1 year ago

Yes, but unfortunately, its not a definitive test as even a rouge program can be accessing multiple locations and strobing many of the address lines. It is very difficult to troubleshoot this kind of problem without a Signature Analyzer and known signatures for the program that is running. Otherwise, you can poke around and hope to find a line that is either stuck high or low which MIGHT indicate a problem area. But out of 16 address lines, the CPU doesn't have to be changing all of them if its running through or stuck in a small loop. It could be normal for high order address lines to be stuck high and low if the computer is running a small loop at a lower address in rom. So sometimes, it is necessary to pull the CPU IC out and then look to see if the Address and data lines are "floating" (neither high or low) where something could be loading one down. To do the same for Data, its usually necessary to pull the eprom to make sure its not getting selected and putting a data byte on the data bus.

Another tool that is sometimes useful in these circumstances is a "NOP" CPU. this is CPU Chip that is modified so that the DATA lines are tied high or low to represent a NOP instructions for the CPU to read. In the case of a 6800/6802 CPU, that is a hex 01 (Bend DB0-7 out and Tie DB0 high and DB1-7 Low). Not sure what it is for 6809. So, when the CPU does a power up reset, it goes to $FFFE to load the low byte and then $FFFF to load the high byte which combine to make the JUMP address for power on reset. That would force it to read 0101. So, it goes to address $0101 and starts executing the program by reading the first instruction. By being hard tied to $01, it sees a NOP instruction. Which is No Operation. Which simply causes the CPU to do nothing but increment the program counter and read the next byte in memory. Which is another NOP so it just steps through the entire 16 bit Address bus over and over again forever. That gives you a 16 bit Counter where the A0 line is toggling high and low (square wave) super fast. And each address bit gets slower and slower with A15 being the slowest toggle (even if the board doesn't use A15). If there are things still connected to the board like PIAs, ROM or RAM. Their contents will appear on the data bus as the device gets selected which the CPU counts through the whole memory map.

#27 1 year ago

any resolution to this? I am following due to having the same problem.

#28 1 year ago
Quoted from Bax1:

any resolution to this? I am following due to having the same problem.

Not back in the workshop until later this week.
Seems like I won't be able to get much done without working out how to use the scope.

I will see what the pins on the CPU socket say with the CPU and the EPROM pulled.

I'm tempted to try creating the "NOP" CPU that CactusJack has mentioned. Though I understand the science behind it, I'm yet to know how I would use it's operation to fault find on the board.

#29 1 year ago

The NOP processor sets up a "known condition" of the bus system. When a CPU is trying to access and run a program, it can be jumping all over the memory map and usually, runs errant code that ultimately (as in Milliseconds) either puts it in an infinite loop, or HALTs the CPU all together. You can't really probe a microprocessor circuit that has been halted. And one that is stuck in a loop, will only access a very limited amount of devices on the board.

As the CPU counts from 0000 to FFFF, it is going to trigger Chip Select lines going to all the devices (RAM, ROM, PIAs etc.). However, if this is a system that uses GALs or PALs in the addressing process, other conditions may be required to successfully access various devices (a simple direct address read may not trigger a valid CS).

Its use is mostly to find if anything that might be loading down the Address or Data bus lines.

Additionally, if the board features a watch dog reset circuit (which requires continuous re-triggering by an output port) it will be necessary to disable that circuit to prevent the WD from continuously Resetting the CPU. Many early CPU designs usually featured a TEST point or a Dip Shunt Jumper to disable the WD during probing. But, I believe once boards became cheaper to make than to pay factory techs to fix them, this was one feature that went by the wayside.

#30 1 year ago
Quoted from CactusJack:

Its use is mostly to find if anything that might be loading down the Address or Data bus lines.

Okay, so if I put a NOP CPU in, how do I go about identifying whatever might be loading down the address or data bus lines?

#31 1 year ago

Well, first you are looking for an Address line that is not toggling. If you have good square waves on all of them, then it would indicate things are fine there and you move on to looking at Select lines (CS) getting pulses (will be just tiny blips). Data bus is harder since there may or may not be data appearing on the data bus pins as devices get selected and place their data on the bus.

Unfortunately, if all the address lines look good, the next step may be to remove all the PIAs from the board so you can see if any of them are causing a problem. With RAM, ROM and PIAs pulled, there is usually nothing to appear on the DATA bus and therefore, they all should be floating (sitting somewhere between high or low) unless there is a pull up resistor on the data lines (which would pull them all high). Sorry, I don't have a schematic handy to reference.

Data East and Williams pins MPUs were a bitch to troubleshoot when something like a solenoid driver would flame and let 50V through to the other logic devices (first the NAND gates that interface the blanking signal and then through to the PIAs. If you were lucky, by having repaired the Solenoid Driver, you know which NAND gates and PIA to replace. But sometimes, it gets through to the DATA bus and can take out some or any other device that share the same pins. There were a few boards I have done in the past where I had to socket all the PIAs to finally get to the root of the problem. And sadly, there was at least one DE MPU I never could get working.

Promoted items from the Pinside Marketplace
$ 14.95
Playfield - Toys/Add-ons
ULEKstore
From: $ 16.95
$ 30.00
Electronics
Yorktown Parts and Equip
$ 9.99
Eproms
Matt's Basement Arcade
5,495
Machine - For Sale
West Chicago, IL
From: $ 20.00
Cabinet - Other
Rock Custom Pinball
$ 79.99
Playfield - Toys/Add-ons
Lighted Pinball Mods
Wanted
Machine - Wanted
Ballston Spa, NY
$ 79.99
Playfield - Toys/Add-ons
Lighted Pinball Mods
From: $ 40.00
Lighting - Interactive
Professor Pinball

Hey there! Got a moment?

Great to see you're enjoying Pinside! Did you know Pinside is able to run thanks to donations from our visitors? Please donate to Pinside, support the site and get anext to your username to show for it! Donate to Pinside