New Theory

I know I said I was going to take a few days off, but I couldn’t help myself. I spent about two hours looking at signals on the PDP-11/35 today.

I have decided to focus on the POWERUP INIT L signal. This line is normally high, but is supposed to go low for 20ms at system power-on time as soon as the BUS DC LO line goes high. For reference, here’s the complete schematics for both power-off and power-on sequence bus delays.

The chip responsible for POWERUP INIT L is a 74123 in position E26. After my experimentation last weekend I thought it was bad, so I got some replacement parts, pulled the 74123 and replaced it. But much to my chagrin, very little has changed. Here’s a typical startup sequence as it is now.

At least the crazy 50ns glitch is gone, but the output still isn’t going low. Well, not usually, anyway, and that’s what’s even weirder—I actually have seen it go low for ~20ms on several occasions, but only two or three times out of dozens of power-ups!

I’ve spent a lot of time puzzling over this part. Take a look at the schematics around the PWRUP INIT 74123. I’ve called it out here for a better view.

The inputs could not be simpler. Pin 1 is the A input, it’s tied directly to ground. Pin 2 is the B input, and it’s pulled up to +5V through a 1K resistor. Pins 15 and 14 are the RC network used to set the pulse width. Pin 4 is the PWRUP INIT L output, the one that’s supposed to pulse low for 20ms, but doesn’t (usually). And finally, pin 3 is the BUS DC LO input. It goes from LOW to HIGH when the power supply signals that it is ready.

Now, I’ve replaced the 74123, in fact I’ve tried no less than four different 74123 ICs and two 74LS123 ICs. I’ve pulled and carefully checked C45, and verified it’s within 5% of 3.9µF. I’ve checked the resistance across R4 and verified it to be 18KΩ. I’ve checked D2 with the diode test setting of my multimeter, and it’s fine. I watched the BUS DC LO input both with my logic analyzer AND with my oscilloscope, and verified that it goes high when it’s supposed to go high. So to say I am puzzled would be an understatement.

The nearest I can come to a theory right now involves what I’ve observed around that circuit when I apply power. Check this out.

The yellow trace is pin 2, the one that’s pulled +5V through a 1K resistor. (Incidentally, don’t be alarmed by the slow rise time. That’s within specs. According to the maintenance manual, the DC regulator has a maximum +5V output rise time of 30ms under full load, so this rise time of < 3ms is absolutely fine.) But then check out the CLR input, on pin 3. That little bump is 1.04V! It's higher than the maximum LOW input voltage of 0.8V. Of course it's also lower than the minimum HIGH input voltage, so it should not be triggering anything, but maybe it is? I know the 74123 is considered a real pain in the butt to work with because of how noise sensitive it is, but I've never used them before, I have no practical experience here. I also wanted to figure out WHY that little bump is making it to pin 3. So here is another waveforms that I found very interesting.

What we’re seeing here is an inverter on a 74H04 at power-on. The yellow trace is the input, and the blue trace is the output. The output is being fed directly into pin 3 of the 74123, and you can see that the little blue hump is there, as expected. Note that the very slow rise time on the input is at initial power-on, so that’s not a logic signal, that’s just the input drifting high as DC starts to flow in from the power supply. But apparently the damn thing actually starts to try to invert the low input signal, thus generating that little output hump.

So to boil it all down, this is my condensed working theory

  1. The inverter (74H04 E24) is (possibly incorrectly?) trying to invert what looks like a LOW input, but it only lasts a few ms before the input is over the 0.8V TTL input threshold and the output goes low again.
  2. The small 1.04V generated by the inverter is just enough to put the one-shot (74123 E26) into an undefined state, so it doesn’t trigger later on when it’s supposed to. But it’s VERY close to the 0.8V TTL threshold, so very occasionally it winds up in a good state, and does trigger when it’s supposed to.

Maybe I’m grasping at straws. But anyway, now my question is what to do about it? Could a marginal 74H04 IC be the cause of the little hump? Is there anything else I should look at around here that I’m just missing or overlooking?

Red Herring

The 8881 was a red herring. As Ian pointed out in the comments, the output is an open collector, so it won’t be high until BUS DC LO pulls it high. In fact that gate is only pulsed on power-off, not power-on. So that chip is probably just fine.

That said, I’m still completely lost. There is definitely something wrong with the power-on sequence, but I can’t for the life of me figure out what it is. I’m going to step back and take a break for a few days and see if inspiration strikes me.

What I really wish I had was a known-good KD11-A to compare against, but that is very unlikely to happen, alas.

More dead chips

It looks like an 8881 is bad on the STATUS module.

Possibly bad 8881

Pins 5 and 6 are inputs, and pin 4 is the output of a NAND gate on the 8881. That sure looks like a bad part to me.

I’ve ordered a few spare Signetics N8881’s off of eBay, but… I have to admit, I’m really down and disheartened about the project tonight. I didn’t get more than an hour of debugging in tonight before I found this chip, and now I’ll be high and dry for another week until my chips come in. And what will I find next?

I really think this might be a lost cause. I hate to think about giving up after all the time and money I’ve poured into this so far. There are other projects I’d like to be working on, but I’ve had this PDP-11/35 occupying my entire workbench for a month now and I don’t feel like I’ve actually accomplished very much.

Well, maybe the feeling will pass. I’ll give it one more go. If I continue to find as many dead parts after getting past the 8881, I’ll reconsider whether it’s worth it to continue.

What Makes A PDP-11/35 Tick?

This is what makes a PDP-11/35 or PDP-11/40 tick. It turns out to be 441 ICs. Impressive!

I needed to know what TTL ICs I might need to order replacements for, so I decided to tally up exactly which ones go into making a KD11-A CPU. This information comes straight from the PDP-11/40 Engineering Drawings, which list a summary of ICs used in each module on the first page of the module’s drawings.

It may be useful for someone else, so I figured I’d post it here.

IC KY11-K M7231 M7232 M7233 M7234 M7235 TOTAL
7400 3 10 7 20
7402 7 3 7 17
7404 7 7 14
7410 5 3 8
74123 3 4 7
74150 3 3
74151 2 2
74153 17 1 18
74157 4 1 1 6
74174 12 8 20
74175 1 4 1 6
74181 4 4
74182 1 1
7420 4 4
7430 2 2
7450 2 2
7474 7 13 20
74H00 2 14 6 2 24
74H04 4 3 11 4 22
74H10 2 3 8 4 4 21
74H11 1 7 7 4 19
74H20 2 7 5 1 15
74H21 4 2 1 7
74H30 1 5 6
74H40 1 5 3 9
74H50 3 4 4 11
74H52 5 2 7
74H53 4 3 3 2 12
74H55 1 1 2
74H60 1 2 1 4
74H61 1 1 2
74H74 1 9 5 1 16
DEC 23B00A2 1 1
DEC 23B01A2 1 1
DEC 23B02A2 1 1
DEC 23B03A2 1 1
DEC 23B06A2 1 1
DEC 23B07A2 1 1
DEC 23B08A2 1 1
DEC 23B10A2 1 1
DEC 23B11A2 1 1
DEC 23B12A2 1 1
DEC 23B35A2 1 1
DEC 23B40A2 1 1
DEC 23B41A2 1 1
DEC 23B42A2 1 1
DEC 3101A 4 4
DEC 380 8 4 1 13
DEC 8242 3 3
DEC 8251 6 2 8
DEC 8815 9 6 4 5 24
DEC 8881 13 6 5 24
421

Retrochallenge Post Mortem

Obviously, I did not finish my project in time for the conclusion of Retrochallenge. Of course I’m a little disappointed, but in retrospect there’s not much that I could have done to make it come together successfully before August 1st.

A few things went wrong: I didn’t get my chassis back from the powder coater until over a week into the month already, and then my power supply died just as I was getting started. But even so, given what I’ve discovered in the CPU so far I doubt that I would have made it by August 1st even without those problems. In fact, I predict this restoration will take several months more at least. I’m fully committed now, I’m not stopping until this thing works, even if I have to replace every single IC.

I’m counting this as a valuable learning experience, and I’ll be back with some crazy new idea for the next Retrochallenge.

Output Drive

A couple of comments here and over on the Vintage Computer Forum prompted me to pull out my copy of Don Lancaster’s “TTL Cookbook” to verify my assumptions. As is so often the case, my assumptions were wrong.

The original TTL family used in the KD11-A, the venerable 7400 series, can drive a maximum load of 16mA per output, and consumes 1.6mA per input. The more modern (and cheap and easy to find) Low-Power Schottky 74LS00 parts on the other hand can drive a maximum load of only 8mA per output.

Well. Damn.

This doesn’t mean I can’t use 74LS00 parts as replacements, of course. But it does mean that I have to be very careful where I use them. I will have to be absolutely sure that I am driving NO MORE than 5 inputs from any output if I want to use an LS part.

The 74123 that I want to replace, for example, is safe. One of the outputs is driving three inputs, and the other output is driving only one.

The 7404 that I’ve already replaced, however, is no good. I will need to undo that fix immediately. One of the NOR gates is driving ten outputs! That’s the maximum you can drive from TTL to TTL, and twice as many as you can drive from LS TTL to TTL.

So, more delay while I get some original TTL parts. There’s a shop here in town that sells them, but I’ll need to take a couple of hours off work to drive there. The things we do for our hobbies!