I'm noticing something on my PDP-11/84 that I can't explain. I've
I';ll try a one-word explamation : 'Grants'.
"repaired" the broken power-supply by
partially replacing it
(
http://flic.kr/p/cKTBn7). The 11/84 runs fine now, except that it
won't boot if I put the Unibus terminator (M9302) in. Without the
terminator, it works fine, and I can access controllers on the Unibus.
According to the manual, however, an M9302 was part of the basic
package. I'm seeing this behavior with two different M9302 modules, as
well as with two different Unibus adapters. Any explanation welcome...
This is rapidily becomign FAQ for this list...
Whenever a PDP11 misbehaves with an M9302 terminstor is fitted, but works
without a terminator (or with an M930). then the most lielly problems is
an open-circuit grant chain.
The grant signals are active high (strangely, since jsut about everythign
else on the Unibus is active-low) and are not bussed, they are passed
from one device to the next.
What should happen is that the arbiter (part of the processor board)
asserts the appropriate grant signal in response to a bus request
(providing the prority level is high enohgh). Each devive passes the
grant on to the next device until it gets to the tdevice that asserted
the reqeust i nthe first place (if there's more than one such device then
the one nearest the processor does this). This device now esentially has
control of the Unibus.
As a result, the grant signal should never get the full length of the
unibus, it should never arrive at the terminator. But in soem caes (if a
device deasserts the request line), it can do. The M9302 has a little
logic on it to assert the SACK signal under such contitions, basically
telling the arbiter to remvoe the grant. The M9302 then deasserts SACK,
the machine carries on with the CPU in control of the bus.
The problem comes if there's an open-cuircuit anywhere in any of the
grant chains (remember these siganls are passed on by each device, so if
yoyu have an empty slot you have to fit a 'grant continuity card' which
shorts the grant in to grant out pins). In this case, because the signals
are active high, the terminator sees an asserted grant line (things flaot
high,or are pulled high by the terminstor) and the M9302 will assert
SACK. The CPU can do noting to deassert the grant, it's not sseritng it
in the first place, and ven if it ws, the open circuit would mean the
terminator would stil lthink it was asserted. So SACK remains asserted,
the suystem hangs.
There are 2 types of grant continuit card. The later oens are dual-height
and go in conenctors C and D. These have a normal module handle and are
easy to fit. The older ones are little sqaure PCBs that go in conencotr D
only with the traces towards the /unibus out' end of the backplane. These
conenct the 4 bus grarant signals only./ The nonprocessor grant (DMA
grant) is on slot C, pins CA1 and CB1. and is completed by a wire-wrapped
jumper on the back of the backplane.
Of course a faulty device in the system could be forcing a grant to be
assertted when it shouldn't be, but this is less likely
So :
Check there's a grant contiuity card in every empty SPC/MUD slot. Check
the NPG jumpers are fitted if necessary.
For each device card, check there';s a bus priority jumper plug fitted
and that it's making contact (the grants pass throug this too). Check
there's the NPG jumper on the backplane if the device doesn't do DMA.
If you can't fidn the fault,. start at the terminator. Find out (logic
probe) which grant is assserted. And work abck form there. Where is it
not being passed on correctly?
-tony