Expansion Cards Not Recognized by Rhett Rodewald

Problems with cards not being recognized? Your problem may be the autoconfig chain. This works similarly on most Amigas, but this description is very precisely intended for the Amiga 4000. (Not the Tower, but I'm sure it's similar.) First some background.

I originally intended only to add SCSI to my Amiga 4000. My friend Bill lent me an old GVP SCSI +8 card from his A2000. (He now uses an A3000, and so had little need for it.) I checked the manual carefully, set the jumpers, and plugged it into my 4000. It just hung up on boot. Remove the SCSI card, and all is well, but it will not boot with the card in. Looking at the manual, I noticed that one jumper on the card, next to the described jumpers for setting the amount of RAM was undocumented. After trying many things, I tried shorting that jumper. I plugged in the card, and booted. This time it booted, great! (or so I thought) But the card was unseen by the Amiga. Oh, well, I removed the card, and put my old cards back in. Boot up and ***AAAAAAARRRRRRRRRGGGGGGGGGHHHHHHHH***... NO CARDS! My A4000 functioned flawlessly, but it would not recognize a single card. Eventually I traced it to the autoconfig and realized that I had actually *burned a trace* on the daughtercard. Not one that can be seen, mind you, but one on an inside layer. After determining how auto-config *should* work, (and replacing the 7407 chip, which likely didn't need to be replaced) I soldered a jumper across where I inferred the blown trace should be and, lo and behold, it worked!

While I hope that no-one else has this problem, there are a few things that may be learned from my experience.

  1. ***DO NOT, UNDER ANY CIRCUMSTANCE, PLAY WITH UNDOCUMENTED JUMPERS!*** (Unless you know exactly what you're doing... or if you are trying to configure an unmarked PC card... or if you *really* want to... but don't blame me (especially don't sue me.) -- YOU HAVE BEEN WARNED!) Dave Haynie has stated (I'm paraphrasing) "Don't play with jumpers unless you know exactly what they do,even if they are marked as 'Free sex and beer.'"
  2. An understanding of how Autoconfig works, which is the main point of this article.
Auto-config is a wonderful thing, it keeps us from pulling our hair out trying to get a new card to work without hardware conflicts. (We still have to deal with installing support software if the card needs it, but it is still a million times easier than configuring a PC.)

If you have access to the Amiga Hardware reference manual, you will find an excellent explanation in the back in the appendicies. There are many issues involved when designing a card, and they are detailed here. However, since we aren't designing a card, only two paragraphs apply.

"Amiga autoconfiguration is surprisingly simple. When an Amiga powers up or resets, every card in the system goes to its unconfigured state. At this point, the most important signals in the system are /CFGIN and /CFGOUT. As long as a card's /CFGIN line is negated, that card sits quietly and does nothing on the bus. ... As part of the unconfigured state, /CFGOUT is negated by the PIC immediately on reset.

The configuration process begins when a card's /CFGIN line is asserted, either by the backplane, if it's the first slot, or via the configuration chain, if it's a later card. The configuration chain simply ensures that only one unconfigured card will see an asserted /CFGIN at one time. ... (ed. note: after the system has read and configured this card) ... will cause the PIC to assert its /CFGOUT, enabling the next board in the configuration chain."

(Quoted from the Amiga Hardware Reference Manual, 3rd edition, page 431)

The magic is in how the configuration chain works, or if you have a situation like mine, in how it does not work. Here's what to check.

NOTE: The following applies to my A4000. Errors may have occured in the entry, transmission, or otherwise, and I will not be held responsible. In addition, do not attempt to actually repair or even trouble-shoot your Amiga unless you are confident of your electronics skills and willing to take full responsibility for your actions. Your Amiga may differ from mine, and so the following may apply only in concept, not particulars. Make sure that you understand not only what is connected to what, but why it works as it does. This is only an overview of *one* system, and should not be construed as being a common problem or necessarily related to your machine/problem. Note that even trouble-shooting without getting out your soldering iron can still cause damage--Especially when the machine is on!

The Autoconfig chain is on the daughterboard (riser) card in the 4000. The daughter card plugs into the motherboard using two seperate connectors. The connector towards the rear of the 4000 carries the signals for the video slot, among others. The connector towards the front of the A4000 is basically a single Zorro III slot. (Note: Do NOT unplug the riser card, and plug a Zorro card directly into this slot. Although it *may* work, the proper bus termination is not present, and I have not personally verified that the signal connections are 100% compatible.)

When you reset (or start) your Amiga, it starts by asserting the /CFGIN line on this connector. (Note: Signal preceded by an "*" or "/" are active-low. This means that 0V means active, and 5V means inactive. Therefore, on power up, all /CFGIN lines should be 5V except for the first slot, (the active one) that will be 0V.) This line should be connected to pin 12 on the first slot.

Note: Pins are numbered starting at pin 1, towards the back of the Amiga. If you look at the silk-screen on the Motherboard, you should see a large "1" near the corner of the slot. Pin 2 is directly across from pin 1. Therefore, all the odd pins (1, 3, 5, ...) are on one side, and all the even pins are on the other side. Pin 1 usually has a square solder pad (if you look at the back of the board) instead of a round one. This is useful on the daughter card.

Disassemble your 4000, and pull out the daugher card. (If you have trouble doing this, you probabally should *NOT* be doing any of this.) Check continuity between pin 12 of the plug in edge and pin 12 of the first slot connector. Pin 12 is the sixth pin on the back-side of the riser, counting from the middle gap towards the front of the Amiga. (The even pins are on the back side, so count 2, 4, 6, 8, 10, 12 to find pin 12.)

Note: The first slot is the bottom one, and the last slot is the top one.

This is the trace that I burned when playing with the SCSI card. If you've managed to do the same thing, just solder a jumper between these two pins. (Don't get the wrong pins!!!)

When the first card gets the config-in signal, it goes through the configuration process with the Amiga, and then, when done, it asserts /CFGOUT on pin 11. Pin 12 (enable) and Pin 11 (done) are fed to an "or" gate. Note that since these are active-low signals, both must be low before the output becomes low. (The "or" effectively works like an "and" gate because of the inverted signals.) This output is fed to the next slot's /CFGIN and the next or gate. This process is repeated for each card until the last one, and then the output from the final /CFGOUT is fed back to the motherboard's /CFGOUT, indicating that there are no more cards to be configured. Take note that this doesn't have any particular limitations on how many card slots there are. This is why you can buy super-risers that have more slots available. It's a chain that ends when it gets back to the motherboard.

If for some reason this chain is broken, your Amiga should continue to function, but it will not recognize all the cards in the slots.

Here's a diagram.

                                                  (Slot 4, pin 11)
                               (Slot 3, pin 11)           \       ____
           (Slot 2, pin 11)            \       ____        \---(4)\   \
                   \        ____        \---(1)\   \               )OR >(6)-+
         ____       \---(12)\   \               )OR >(3)---+---(5)/___/     |
  A--(10)\   \               )OR >(11)--+---(2)/___/       |                |
          )OR >(8)---+--(13)/___/       |                  |                |
  B---(9)/___/       |                  |          (Slot 4, pin 12)         |
                     |          (Slot 3, pin 12)                            |
             (Slot 2, pin 12)                                               |
                                                     /|                     |
  (Pin 11 on the card edge.)---------(7407,pin 12)--< |--(7407,pin 13)------+
                                           (7407, Driver chip)

  Notes: A = /CFGIN = Pin 12 of the card edge, also connected to Slot 1, pin 12
         B = /CFGOUT(1) = Slot 1, pin 11
         All numbers in parenthesis indicate pin numbers on the 74HCT32N chip.

In English: /CFGIN (pin 12 on the card edge *and* pin 12 on slot 1) connects to the input of the first "or" gate (pin 10 on the 7432 chip). /CFGOUT(1) (Slot 1, pin 11) connects to the other input of the same gate (pin 9 on the 7432 chip). The output from this gate (7432, pin 8) connects to both the /CFGIN(2) (Slot 2, pin 12) and the input to the next "or" gate (7432, pin 13)... and so on.

If you suspect that your auto-config chain is screwed up, check all the direct connections in the diagram, and see if any are broken. Finally, if you still haven't found anything, install the riser and check the inputs and outputs at each card slot. Do this *very* carefully! Sticking a probe into a running computer can easily short together two wires that were never meant to touch, and *really* blow something up. While any voltages on the motherboard are at most +/- 12V (mostly +5V) and should not harm you, they will harm your computer if the wrong wires are shorted together.

If you don't understand how to trouble-shoot the above circuit, please take your computer to someone who does.

Here's how it works. At reset, all /CFGIN lines (pin 12 on each slot) are pulled high. (with a pullup resistor) All unused (no card in that slot) /CFGOUT lines (pin 11 on each slot) are pulled low. If there is no card, in the slot, the low signal coming in on (A in the diagram) /CFGIN is immediately "or"ed with the low /CFGOUT and propagates the signal to the next slot. If a card is present in a slot, it pulls the /CFGOUT line high (inactive) until after it gets a /CFGIN signal, and configures itself with the system. Then it releases /CFGOUT so the card in the next slot may configure itself. Finally, the /CFGOUT signal of the last card is fed back to the motherboad's /CFGOUT, and it knows that configuration is done.

This hopefully provides some insight to the autoconfig circuitry, and may be of use when trouble-shooting board-recognition problems. Best of luck.