SCELBI TTY interface revisited.

I finally found time to revisit the SCELBI TTY card. The last time I tried, I had issues getting it to work with my Apple II serial card. To start with, I have been focussed on getting the SCELBI TTY receive interface, running.

Teletypes and the SCELBI TTY card use a current loop interface, which is a technology that I’ve long been aware of, but have had no practical experience with. Instead of using a signal level, current loop uses a current to indicate 1s or 0s. This current can be sourced from either side, but the transmitter will pass on a current of around 20 milliamps to indicate a 0 and a zero to a few milliamps to indicate a 1. The reciever’s circuit in digital equipment will typically convert the current to a voltage level for later processing by a circuit that will deserialize the incoming bit stream.

Here is a crop of the SCELBI TTY schematic showing the RX circuit.

SCELBI TTY Receiver Circuit

SCELBI TTY Receiver Circuit

The circuit is pretty simple. At the top is a 5 volt supply, that is current limited by resistor R7 going to the edge connector, pin M. This can be sent to the transmitter as the current source, or can be ignored, if the transmitter has it’s own current source. One of the challenges of using current loop technology is determining which end point sources the current. The SCELBI TTY reciever can support either sourcing the current or not. If the transmitter supports it’s own current source, there must be a ground return path between the SCELBI TTY card and the transmitter.

In the middle, coming in from the edge connector, pin L, is in the input current source. Capacitor C3 acts as a low pass filter, to prevent switching due to incoming noise. I don’t have TTY experience, but I’m assuming that TTYs were very noisy and adding this filter improved reliability. Transistor Q2 acts as a current to level converter. Low levels of incoming current will leave the transistor turned off, allowing +5 voltage source to pull the inputs of NAND gate Z1 high through resistor R1. Higher levels of incoming current will switch on Q2, causing the inputs to Z1 to go low.

During my previous attempt at transmitting from an Apple II serial card to the SCELBI TTY card, I was unable to receive any data. This is despite trying several connection methods.

This time around, I first built a LTspice model of the circuit, including both the Apple II Serial card transmitter and the SCELBI TTY reciever in order to determine theoretical behavior of the circuit. Here is the final schematic that I ended up with.

Apple Serial TX to SCELBI TTY RX

Apple Serial TX to SCELBI TTY RX

Since I couldn’t find a model of a 7400 NAND gate used as the output of the TTY card, I modelled it with discrete components. The connections between the boards are simple.

  • pin23 of the Serial card’s DB25, which is it’s current loop output is connected to edge connector pin L of the TTY card, which is the current loop input
  • pin 7 of the Serial card’s DB7, ground, is connected to ground of the TTY card
  • Next I setup a 1000 KHz square wave input into the serial card in order simulate the 2400 baud serial signal that I was trying to send from the Apple II to the SCELBI.

    Spice Simulation of Apple Serial to SCELBI TTY at 2000 baud

    Spice Simulation of Apple Serial to SCELBI TTY at 2000 baud (current loop)

    The result shows exactly why I was having trouble.

  • The green square wave shows the serial signal being input into the serial card
  • The blue signal shows the current loop signal being sent from the serial card to the TTY card
  • The red signal shows the output of the TTY card.
  • Once I ran this simulation, it became imediately obvious why I was having trouble. The TTY’s input low pass filter is filtering out the 1000 KHz signal. I confirmed this simulated result with a scope on the actual hardware.

    Changing the input signal to a simulation 100 baud (50 Hz) square wave results in the following simulation.

    Apple Serial to SCELBI TTY RX at 100 baud

    Spice Simulation of Apple Serial to SCELBI TTY RX at 100 baud (current loop)

    Clearly, if I had run my original test at 110 baud, I would have had better results. I confirmed this, by changing the baud rate on the serial card to 110 and monitoring the output of the TTY card with scope.

    Simulation shows that replacing the .1uF capacitor C3 with a .001uF capacitor should enable the circuit to work at 2400 baud, at the cost of much lower noise immunity. I have yet to test this simulated result on actual hardware, but I am pretty confident that it will work.

    Next up: I need to check out having SCELBI TTY transmit data to the Apple II serial card. Hopefully that will go a lot smoother than the TTY receive tests.