• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Apple Communications Slot technical documentation?

David Cook

Well-known member
Does anyone know of technical documentation for the Apple Communication Slot interface present in the LC/Performa 575 series, Quadra/Performa 630 series, and early PowerPC models? The most I've found are pinouts and some current draw / compatibility information:

Some of the pins are obvious, such as +5, GND, TX, RX, and handshaking. But, many of the other pins seem interesting but need more explanation.

My goal is to design a diagnostic card that measures voltages, checks for CPU activity, and so on. It would then report the information through the serial pins to some software that could graph or record it. I figure the communication slot is great first step project because it doesn't need a special connector, PALs/GALs, parallel interface, driver resources in ROM, or even anything fancier than a microcontroller. After that, I can step up to the PDS slot or maybe NuBus.
 

cheesestraws

Well-known member
Apple Communication Slot interface present in the LC/Performa 575 series, Quadra/Performa 630 series, and early PowerPC models

Do you mean the Comm Slot I (LC) or Comm Slot II (PCI)?

CS I is essentially LC PDS with an added serial port, IIRC, and CS II is essentially PCI with an added serial port.

If you want to get CPU-level activity metrics I expect you'd have to design separate CS I and II variants; CS I you can basically just snoop on the data and address buses. I'm sure you could do similar (in terms of verifying activity, not in terms of snooping on the bus) with PCI but I don't know enough about PCI to speculate as to how...
 

David Cook

Well-known member
Do you mean the Comm Slot I (LC) or Comm Slot II (PCI)?

CS I is essentially LC PDS with an added serial port, IIRC, and CS II is essentially PCI with an added serial port.

If you want to get CPU-level activity metrics I expect you'd have to design separate CS I and II variants; CS I you can basically just snoop on the data and address buses. I'm sure you could do similar (in terms of verifying activity, not in terms of snooping on the bus) with PCI but I don't know enough about PCI to speculate as to how...
Thank you. That was helpful.

Yes, I plan to snoop the address bus for two reasons:
A. Performance heatmapping. That is, it would be interesting to record the where the Mac is spending most of its time.
B. 'BIOS' post codes at boot up. That is, I plan on putting a little two digit display indicating each major step as the Mac starts up. This could really help with recapping or computers that aren't working. I'll store a table of ranges in EEPROM that can be modified through the serial port. So, different profiles can be set for different ROMs. When an address is snooped, it will be looked up in the range table to detect an operation.

Measuring voltages and temperatures will be pretty straight forward.

The two areas I'm going to need to investigate with a scope are:
1. Is the TX line the output from the Mac to the modem? Or is the TX line the input to the Mac. I assume the former.
2. I'm planning on using a 74HC597 parallel to serial to capture the address lines. I'm not sure which pin on the slot indicates a steady address. That is, the 74HC597 needs a clock high to signal capture. It looks like CPU_AS* is the address strobe line. It is a tristate signal (bus master asserts). Unfortunately, that sounds like the address line is steady when low, so I'll need an inverter to properly trigger the latch.
 

cheesestraws

Well-known member
It looks like CPU_AS* is the address strobe line. It is a tristate signal (bus master asserts). Unfortunately, that sounds like the address line is steady when low, so I'll need an inverter to properly trigger the latch.

Your understanding here is correct, I believe. AS is driven low when an address on the address bus is valid.
 

Trash80toHP_Mini

NIGHT STALKER
CSII to baseline, limited function PCI adapter is a backburnered obsession. MiniPCI WiFi card for 6360/TAM etc. would be the point. ;)
 

Trash80toHP_Mini

NIGHT STALKER
Dunno if you'll find this helpful or not, but @trag and I played a bit with CSII some time back:

 

David Cook

Well-known member
Update:
1. I've ordered a modem card from eBay to determine the card dimensions and to see if there is a communication protocol between the Mac and the comm slot to identify the card at startup.

2. I'm planning on using a 0.075% LT1460 precision series voltage reference and 0.1% precision resistors (Vishay Dale RN55E1002BRE6) with relatively low temperature coefficient to measure power supply voltages (+5, -5, 12, trickle). These are expensive parts. This might be overkill, but I want an accurate measurement within a device where temperature will rise. And, this card is not going to be produced in large commercial quantities, so adding $15 to the bill of materials just doesn't matter. I assume that aging capacitors will result in greater power supply noise, so having some level of accurate resolution will be necessary to be useful.

3. Because the machines with a comm slot type 1 need to have the motherboard fully inserted in the enclosure to operate, the LED display will need to be at comm slot opening in the rear of the machine to be visible.

4. The card will run from 3.5 to 6 volts. When only trickle is available, the processor will slow down and a single LED will blink to show trickle is working. When main power is supplied, the numeric LED display will visible and the processor will run at full speed with all tasks (comm, voltage, temperature, address bus snooping). If there is room, I may also add a voltage regulator so the card can run the display/alert on +12 if +5 is not available. Trickle, +5, and possibly down-regulated 12V will go through diodes so that any of them can power the board.

5. All of the parts will be through-hole to make it easier for people to assemble if they want to make their own. The downsides are that board space will be at a premium, it will be more difficult to bulk manufacture, and the most modern parts are not usable.

6. The board will have a build in display. But, the statistics and configuration will be available through the comm modem port. Therefore, any terminal program can be used for raw communication. I haven't decided on a baud rate yet. Some tradeoff between high speed for address snooping and reliable communication for aging hardware.

Thoughts?
 

demik

Well-known member
Be aware that on the 630/5200 and friends the CommSlot I is behind a chip that emulate a 68030 bus (PrimeTime II), So it's not directly connected to the 040/PPC bus. Same as the PDS Slot.

The CommSlot Pinout is available on the Developer notes (5200/6200 Developer Notes)
 

David Cook

Well-known member
Be aware that on the 630/5200 and friends the CommSlot I is behind a chip that emulate a 68030 bus (PrimeTime II), So it's not directly connected to the 040/PPC bus. Same as the PDS Slot.

The CommSlot Pinout is available on the Developer notes (5200/6200 Developer Notes)
Thanks for the heads up. The system diagram suggests that ROM accesses are not seen by the 68040 bus. I assume this is because the slot should only need access to RAM to deliver data. That means bus snooping to watch the ROM on startup will probably not work. That stinks.
 

David Cook

Well-known member
Nevertheless, I will still build a card for the 575/630 series comm slot. If it yields value, I can make variations for the PDS slots on the LCs and likewise a version for the 650. For the PDS slots, I'll either need to step up my game to write the results directly to memory, or draw a serial line out the slot and into the modem port.
 

David Cook

Well-known member
I just finished the board layout. Routing all of those address pins in limited board space was a pain. But, then I discovered that I wired them all wrong!

References:
Apple Wikipedia reference: https://support.apple.com/kb/TA31498?locale=en_US
PowerMac 5200 Developer Note (p64-65): https://cdn.preterhuman.net/texts/computing/apple_hardware_devnotes/PowerMac 5200-6200.pdf
PowerMac 5400 Developer Note (p58-59): https://cdn.preterhuman.net/texts/computing/apple_hardware_devnotes/PowerMac 5400.pdf

The Apple page linked from Wikipedia is incomplete/incorrect:
* Pin 102 should be labeled 'Analog GND' instead of 'GND'. It should not be connected to the other GND pins, which could easily happen since they are all labeled the same on that web page. The other sources (PDFs) are correct.

* Pin 100 may or may not be the 32 MHz clock. In the PowerMac 5200 Developer Note, it is listed as Product Key and 'must be pulled low for PowerPC-based computers'. I suspect they meant to say that this IS low on PowerPC-based computers, because a 33 MHz clock would not be present. I also wonder if the clock becomes 40 MHz on overclocked Quadra 630s.

* Pins 99, 101, 103, 104, and 106 are not spare. They are documented in the 5200 notes (they are related to audio).

Based on the cards I have, pin 105 (SSC.PORTA.ENB) should likely be pulled low by the modem card to DISABLE the external modem port and allow the internal card to work.

The big issue, however, is the way the pins are presented and numbered.
* The first two references (Comm I) have pin 1 towards the rear of the computer. The other reference (Comm II) numbers pin 1 towards the front of the computer. Even though most of the power/modem pins are the same and in the same physical position, they have completely different numbers. For example, TX is pin 107 or pin 6 depending on the documentation, even though it is physically in the same place for both slot types.

* The pins are numbered looking from beneath the board! That is, you need to pick up the motherboard with the scsi port facing up and the bottom of the board facing you for the pins to be in the correct order. Instead, if you face the slot itself, everything is mirrored left-to-right. Guess what happened to me?

I'm providing this information is case anyone else needs it in the future. Basically, I get the impression that Apple didn't really want anyone using this port and most people used external modems anyway. Thus, the documentation is sketchy because no one really made cards for this port.
 

cheesestraws

Well-known member
* The first two references (Comm I) have pin 1 towards the rear of the computer. The other reference (Comm II) numbers pin 1 towards the front of the computer

...

* The pins are numbered looking from beneath the board! That is, you need to pick up the motherboard with the scsi port facing up and the bottom of the board facing you for the pins to be in the correct order. Instead, if you face the slot itself, everything is mirrored left-to-right. Guess what happened to me?

That's classic. Thanks for the warning...
 

David Cook

Well-known member
Prototype boards have been ordered. 4 layer. It will take a couple of weeks.

f0d3fe96574a635e0d9cb6066fc1cd0e.png

Address bus snooping for generating post code sequence. I went with 74HC373 latches for faster bus snooping.
1 onboard temperature, plus two offboard (CPU, graphics chip, etc).
+5V, +12V, -5V, 5V trickle voltage monitoring (high, current, average, low, noise peak-to-peak).
CPU bus clock monitor
Bus error and reset pin monitor
Dual octal display out the rear panel, along with a pushbutton to log the current address and clear any error codes.
Only needs +5 to be reasonable to work. Will also monitor (but not display) when under trickle power.
Overvoltage protection should be provided by a self-resetting fuse and a zener diode.
 

David Cook

Well-known member
Boards arrived. First prototype soldered up and electrically tested (no shorts). Fits nicely.

Diagnostic-prototype-fit-test.jpg

Now it's time to write the firmware.
 

David Cook

Well-known member
The four jumpers are actually just loops of wire to attach a multimeter or alligator clips for debugging (+5V, GND, TX, and RX.) I needed something secure for wires to hold onto as the motherboard slides into the case.

The pair of white Molex three-pin connectors at top are for temperature probes (CPU, power supply, fan, or video chip). I hope to analyze the temperature of various masks of 68040s under 'real world' conditions. Also, Noctua makes a nice fan to replace the stock Quadra 630. I want to see if there is a difference in cooling.

The blue 3x2 connector at the bottom is for programming and debugging the microcontroller.
 
Top