Consul 262.4

MMcM

09 Feb 2022, 18:44

I do not have one of these keyboards, but I do have a Consul 262.3 and was asked about the difference and the possibility of converting the 262.4. Here are some notes on that.

The short version, as noted in passing here is that the 262.3 is a parallel ASCII keyboard and the 262.4 is the serial version.

Externally, the 262.4 moves the arrow keys, adds more keys in their place, and includes some LEDs. It has a 15-pin d-sub instead of a 24-pin ribbon cable.

Internally, they use the same PCB. The schematics can be found here in the original (Czech / Czechoslovak) manual.

Here is a stitched-together scan of a printed copy with Russian translations added that came with the 262.3:
consul-262.4-schematic.jpg
consul-262.4-schematic.jpg (2.65 MiB) Viewed 1101 times
The main active component in both is the a 2-of-N keyboard encoder which scans the keys and outputs strobed parallel based on a lookup table in its own ROM or two external 2048-bit 74S571 PROMs. On the 262.3, the strobed lookup through the ROM goes straight out of the keyboard.

The 262.4 populates some additional slots on the PCB. The most important is a Tesla MHB 1012 40-pin UART. This is a copy of one of the GI AY-5-101x series CMOS UARTS. The strobed output from the keyboard encoder loads the UART's serial output. The signals on the keyboard cable's connector are all for the UART (with some additional inverters, open collector in the case of serial output).
  • SO (25) - 2: serial output
  • Vcc (1) - 9: +5V main power
  • Vgg (2) - 15: additional -12V MOS voltage
  • GND (3) - 7: ground
  • SI (20) - 3: serial input
  • RCP (17), TCP (40) - 6: clock
These UARTs do not have any timing circuitry: they rely on an external clock. But they are still asynchronous: the bits are not guaranteed to be aligned to clock pulses. Instead the clock rate is 16 times the baud rate and the receiver samples and takes the majority state.

So, a converter needs to provide a square wave 16x the baud rate it is configured for, using one of the MCU's timers. Here is some similar code, taken from the ATMega32U4 VT100 converter, to output 8us on PC6:

Code: Select all

    DDRC |= (1 << 6);                // C6 is timer 3 channel A
    TCCR3B = _BV(WGM32) | _BV(CS30); // CTC; prescalar = 1
    TCCR3A = _BV(COM3A0); // Toggle on compare match
    OCR3A = 63;  // 64 / 16e6 = 4e-6 toggle = 8us period
The bit rate is then 128us, so 7812.5 baud. Configure the MCU's USART for 7812.

Serial output goes to RX and serial input to TX.

For -12V power, which will have very little current, a dual voltage boost converter like these should be fine.

The serial bytes coming from the keyboard should be the same ASCII codes as from the 262.3 (despite any Cyrillic legends).

Serial bytes to the keyboard control the LEDs in the simplest possible way; there is no actual protocol. Each bit connects directly to an LED and controls it state.

Post Reply

Return to “Workshop”