Tiger Electronics K28 Talking Learning Computer ----------------------------------------------- 11/23/2011 Kevin Horton V1.00 This here device is a smallish dark blue "learning computer" made by Tiger Electronics. It appears to be a fairly complicated mix of a Speak and Spell combined with a Speak and Math. There's a 56 key membrane keypad on the top, with A-Z, function keys, on/off, and a numeric pad along with +-*/ keys. Inside, is an Intel 8021 microcontroller along with an SC-01 speech synthesizer chip, two TI VSMs (TMS6100) for 32K of serial ROM, and a National Semi MM5445 VFD display driver chip. There's a small power supply that generates the various voltages the device needs to run. They did some interesting stuff with the 8021's, like using ALE to clock the VSM's clock line. The VSMs are connected "backwards" to the power supply, because this obviates the need for level translation. CLK is connected to ALE through an NPN transistor wired up as an inverter. Timing: The 8021 runs on a 3.579MHz crystal. The SC-01 runs at 760KHz (on its RC pin). The pinout of the CPU is as follows: P0.0 - keypad column 5, phoneme input 4 P0.1 - keypad column 4, phoneme input 5 P0.2 - keypad column 3 P0.3 - SC-01 strobe P0.4 - VSM chip enable P0.5 - display driver enable P0.6 - VSM mode 0 P0.7 - VSM mode 1 P1.0 - keypad row 1 P1.1 - keypad row 0 P1.2 - keypad row 2 P1.3 - keypad row 3 P1.4 - keypad row 6 P1.5 - keypad row 7 P1.6 - keypad row 5 P1.7 - keypad row 4 P2.0 - keypad column 0, phoneme input 0 / VSM addr1 / display data P2.1 - keypad column 1, phoneme input 1 / VSM addr2 P2.2 - keypad column 2, phoneme input 2 / VSM addr4 P2.3 - keypad column 6, phoneme input 3 / VSM addr8 T1 - SC-01 A/R ALE - (inverted) VSM CLK PROG - display driver CLK SC-01: ------ phoneme input 0 through 5: the SC-01 phoneme inputs. SC-01 strobe: starts a phoneme speaking. SC-01 A/R: is the phoneme done speaking flag. VSM: (two TMS6100's in parallel, making a 32K serial ROM) ---- VSM addr1, 2, 4, 8: the VSM address/data lines lines. VSM addr1 is where the data comes out when the VSM is read. VSM CLK: connected thru a single transistor inverter to ALE VSM chip enable: enables the VSM when LOW. MM5445 display driver: ---------------------- display driver enable: enables the MM5445 shift register. display data: data that is loaded into the shift reg. display clock: clocks data into shift register. display is a 9 digit, 14 segment ("british flag") display, with a decimal point and comma. A ------- F|\ | /|B | \ | / | --- --- | / | \ | E|/ | \|C ------- D I J K \ | / \ | / G --- --- H / | \ / | \ N M L . DP , CM Display driver outputs: ----------------------- 0 - seg D 1 - seg M 2 - seg L 3 - seg N 4 - seg C 5 - seg I 6 - seg K 7 - seg J 8 - seg A 9 - seg B 10 - seg F 11 - seg G 12 - seg H 13 - seg E 14 - seg DP 15 - seg CM 16 - grid 1 17 - grid 2 18 - grid 3 19 - grid 4 20 - grid 5 21 - grid 6 22 - grid 7 23 - grid 8 24 - grid 9 25 - power enable (0 = run, 1 = shut down I think) 26 - nc 27 - nc 28 - nc 29 - nc 30 - nc 31 - nc 32 - nc Keypad matrix: -------------- col 0|col 1|col 2|col 3|col 4|col 5|col 6 +-----+-----+-----+-----+-----+-----+-----+ row 0 | G | F | E | A | B | C | D | +-----+-----+-----+-----+-----+-----+-----+ row 1 | YES |SCRL |MENU | OFF | ON |REPT |PRMT | +-----+-----+-----+-----+-----+-----+-----+ row 2 | Q | P | O | K | L | M | N | +-----+-----+-----+-----+-----+-----+-----+ row 3 | ' | Z | Y | U | V | W | X | +-----+-----+-----+-----+-----+-----+-----+ row 4 | SEL | CLR | ENT | + | = | . | 0 | +-----+-----+-----+-----+-----+-----+-----+ row 5 | R | S | T | - | 3 | 2 | 1 | +-----+-----+-----+-----+-----+-----+-----+ row 6 | NO | < | > | / | 9 | 8 | 7 | +-----+-----+-----+-----+-----+-----+-----+ row 7 | H | I | J | x | 6 | 5 | 4 | +-----+-----+-----+-----+-----+-----+-----+ key: ---- SCRL = scroll REPT = repeat PRMT = prompt SEL = select CLR = clear ENT = enter / = "divide" symbol x = "multiply" symbol The software pulls one of the columns low at a time to read the keypad. It reads the inputs on port 1. The active row is pulled low when pressed via the active column.