Expansion Cards Not Recognized
                              by Rhett Rodewald

-----------------------------------------------------------------------------

  Problems with cards not being recognized?  Your problem may be the auto-
  config 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 necessasarily 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.


[Main] [Previous] [Next]