Index wersja polska wersja polska

Elektronika MK-90 memory cartridge

UPDATE: The information shown here was initially obtained through reverse engineering and therefore may differ from the contents of the original datasheet published on 2011/12/22.

Description

The cartridge is designed as removable storage medium for the Elektronika MK-90 pocket computer. The RAM inside the cartridge is accessed by the computer through a serial interface with a transfer rate of ca. 100kbits/s. Although there's only 10kB RAM on-board, the built-in controller chip is capable of addressing up to 64kB of RAM.

What's inside

The cartridge consists of 5 static RAM chips KA537RU10 with battery backup and a KA1835VG2 controller.

Connector pin functions

RAM cartridge connector

Pin Symbol Function
1BATT. plus pole of an internal 3V lithium battery
2VCC positive supply voltage +5V
3CLOCK serial clock input
4DATA serial data input/output
5SELECT chip select input
6GND ground

Bus communication protocol

Data written to the cartridge change at rising edges of the CLOCK pulses, and are shifted-in on falling edges of the CLOCK pulses beginning with the most significant bit. The first transmitted byte after the SELECT high to low transition is the command op-code. Following the op-code, any addresses and data are then transferred.
The waveform below shows an example of Write Address command (signals SELECT, CLOCK, DATA).

write command bus timing

Data read from the cartridge change at falling edges of the CLOCK pulses, and are sampled at rising edges of the CLOCK pulses.
The waveform below shows an example of Read Data command.

read command bus timing

Commands

Op-code Command name Function
0x00Read Status  
0x10Read Postdecrement Read any amount of data bytes from the cartridge starting from the location pointed to by the address register. The address register is decremented after each received byte. This command is not used by the MK-90.
0x20Erase Postdecrement Write any amount of data bytes to the cartridge starting from the location pointed to by the address register. The address register has to be initialised to 0xFFFF (otherwise the command is ignored) and is decremented after each transmitted byte. This command is used by the MK-90 to clear the cartridge RAM with spaces when formatting with INIT.
0x80Lock  
0x90Unlock  
0xA0Write Address Write the 16-bit address register, the most significant byte first.
0xB0Read Address Read the 16-bit address register, the most significant byte first. This command is not used by the MK-90.
0xC0Write Postincrement Write any amount of data bytes to the cartridge starting from the location pointed to by the address register. The address register is incremented after each transmitted byte.
0xD0Read Postincrement Read any amount of data bytes from the cartridge starting from the location pointed to by the address register. The address register is incremented after each received byte.
0xE0Write Postdecrement Write any amount of data bytes to the cartridge starting from the location pointed to by the address register. The address register is decremented after each transmitted byte. Not used by the MK-90.

The lower four bits of the command op-code are "don't care" values. All other op-codes not listed in the above table are ignored along with any following data.