Interfacing with a PDP-11/05: About baudrates
Well, if you do not have an external baudrate generator, there are some bad news: selecting the baudrate is not very comfortable. Apparently it was not a normal operation, but at least you don't need to solder ...
The internal baudrate generator:
On M7260 data path is a primary clock signal for the baudrates, called "TTY CLK H".
It's frequency is controlled by operating a potentiometer.
This clock is divided by 5-stage binary counter in the ratios 1:1 down to 1:16.
A rotary switch with 5 positions is used to select one of the scaled baudrates (the switch has actually 10 positions, only positions 1-5 are used).
See the baudrate logic on the M7260 datapath board:
The round flying-saucer-like component with the many legs is the rotary switch. He is hard to turn, so he's quite damaged (not by me, what do you think?)
The final clock is fed into the UART chip, it must be 16 times the desired baudrate.
These are the TTY CLK frequencies and switch settings for several baudrates:
|TTY CLK||38400 Hz||28160 Hz|
|TTY CLK period||26 µs||35.5 µs|
You see: you have to decide early wether you want to drive a 110 baud TTY, or a terminal with baudrates 300 to 2400.
Procedures to set the internal baud rate:
If you just want to change between 300, 600, 1200 or 2400 baud, simply pull the M7260 out of the case, set the rotary switch and push the M7260 datapath module back into the backplane.
Switching between 110 baud and the other baud rates is really hard. There are five possible procedures:
- You can put an oscilloscope probe onto a certain wire-wrap pin on the PDP-11/05 backplane. The pin hast the coordinates E02D2. You turn the potentiometer until the scope shows the right period of TTY CLK. This is the way DEC wants it. At least you can operate the potentiometer from the outside on a running M7260 datapath module.
Required tool: an oscilloscope, good nerves.
- You can put the M7260 datapath onto a hex extender card and let it run outside the BA11 case. Then you hold the oscilloscope probe onto pin 17 or pin 40 of the big white UART chip, there they feed the baud rate clock in.
Required tools: an oscilloscope, a hex extender board.
- Same as #2, but use a wire (soldered to the UART ) to get TTY CLK out of the running machine.
Required tools: an oscilloscope, a wire, the will to tamper with historical equipment.
- You set the rotary switch at first. Then you toggle in a program which permanently writes a data byte with many 0/1 transitions, for example an ASCII "U", which is hex 0x55. Start the program, connect the oscilloscope to the "TxD" pin of the RS232 and watch the data. The smallest period is one bit, calibrate it's width according to the desired baudrate.
Required tools: an oscilloscope, a test program, blinken light skill, a working PDP-11/05.
- Similar as #4: You set the rotary switch at first. Toggle in a program which permanently writes a data byte to the serial port. Connect a PC with terminal emulator and watch the display, while trimming the potentiometer. When the connected PC begins to display the data, rotate the potentiometer further until the data gets distorted again. Then rotate back to the middle of the receiver range to get a stable baudrate.
Required tools: No oscilloscope, a terminal or a connected PC, a test program, blinkenlight skill, a working PDP-11/05.
I found procedure #1 too hard (you have to dismount the PDP-11/05 for this, and must locate the "E02D2" pin in the big pin array on the backplane). I was succesful with #2, so I did not tried #3. Procedure #4 worked too, but had too much error sources (you must be able to operate the 11/05 through the console). Procedure #5 has still more error sources, I was not feeling like trying it.
2400 baud is not too fast, but higher baudrates are not possible with the internal baudrate generator.
- First I played with the the trimmer, but it's range does not allow to go to the next higher 4800 baud.
- Then I changed one resistor value to get a greater trimming range. I could reach 4800, but then the oscillator reached his limit.
That's why I build my own generator! Now the '05 runs fine even at 38400 baud.
I normally use USB-to-RS232 converters on my PC, typical with FTDI chips. I have several of them.
But despite their data sheets emphasize the capability to handle astronomical baudrates (e.g. "up to 1MBaud"), they failed for me at the low end, for 110 baud.
Better use the physical COM port on your mainboard ... if you still have one. Or buy a PCI extender card with some truly 16550 compatible COM ports on it.