I've always loved the sounds of the TI SP0256 allaphone chip and was hoping to find something using it for this project. That's chip is what gave the speak-and-spell its robot voice. I picked up a "VTECH Talking LITTLE SMART alphabet DESK" at a garage sale because my ears could tell it was using a TI allophone chip.
I opened it up and found the PCB didn't contain an SP0256. There were only two chips. One was a 74HC138 (3-8 line decoder) which was part of the matrix circuit used to read all those buttons. The other chip must therefore be a microcontroller speech synthesizer combo.
I googled the marking on the chip and wasn't able to find any datasheets so I had to dig deeper. I know the toy was made in 1995; what the chip does; and that TI made it. This is enough information to conclude it's actually a TSP50C11. TI is good enough to keep datasheets of 25 year old obsolete chips on their website. Circuit bending gets a lot easier when you can read a datasheet instead of randomly poking things.
The first thing I wanted to do was control how fast the chip spoke by attaching a CD4046 voltage controlled oscillator to it's clock input (OSC1). The original circuit board was using an LC oscillator to drive the clock. I cut that from both OSC1 and OSC2, left OSC2 floating, and ran the CD4046 output to OSC1.
It worked OK, but not quiet perfect. The original oscillator had been running at 1.6MHz, but a CD4046 has a top speed of 1.0 MHz when powered with 5v. This meant even with the control voltage at 100% the toy was speaking in a slowed down voice.
The CD4046 is frequently used in synthesizers because of its robust VCO, but it's intended application was FM/FSK demodulation. It contains three different phase comparators meant for this. One of these phase comparators is a XOR gate. XOR gates can be used as clock doublers. By doubling the VCO frequency through the XOR gate I can get up to the 1.6MHz required for normal sound speed. A clock doubler works by detecting both the rising and falling edge of an input.
I could push the clock past 1.6MHz, but that made the TSP50C11
act erratically then become unresponsive until power cycled, so I chose
not to do that.
There was some unexpected behaviour from the TSP50C11 INIT pin. It needs to be high for the chip to run; but I couldn't just tie it to VCC. It needs to be low on power up then brought high afterwords. I connect it to a capacitor that's charging up slowly through a large resistor to get this behaviour. The original toy used two switches to do this, but that's clunky.
Here you can see the wires I've soldered to the TSP50C11.
Purple: DA1(11). This is the audio output pin that runs to the mixer.
The PCB has been cut on the bottom side to remove OSC1 and OSC2 from the original LC oscillator.
Ground and 5v are connected through the wires that originally went from the PCB to the battery pack.
I didn't want the huge panel of buttons on the project, so I analyzed how the button matrix was wired and soldered in a rotary switch that lets me select one of the six buttons from the top row, The toy has several modes such as asking you to spell a word or solve arithmetic problems, but I only wanted it to be in one of two modes: Say the letter or make the animal noise. The top row of buttons have both an animal and letter next to them.
Finally I needed to trigger the sound to start playing on each transition of the drum step count or the drum step count resetting to 0. With the second option it starts playing a sound when the drum step is at 0 and varies its pitch with the control voltage set at each step. The following pictures shows where the connections had to be made.
There were also four 2N3904 transistors that needed to be removed. Their silkscreen is visible in the bottom right. These formed an H-bridge to drive the toy's speaker. My bending had caused a problem where both sides of the H-bridge were closed at the same time; resulting in a path from Vcc to ground with only a pair of transistors in the way. I reused the 2N3904s in the zapper transistor replacement and the other places the project needed them.
The animal or alphabet noises are selected by bringing either Mode A or Mode B to Vcc. A sound is triggered to replay by a negative edge on the mode wire. One toggle switch selects which mode is active and a second connects one of two inputs to a capacitor edge detector that pulses the mode output. The two possible replay triggers are every line by selecting the 555 used to increment the drum step count, or every 16 lines by the fourth bit of the drum step count.
Showing the rotary switch. Common wire is in the centre.
Showing the toy control on the front panel. To the right is the rotary switch. Top left is the toggle to set if the sound resets every line or every 16 lines. Bottom left is the mode switch to go between letters and animal noises.
Stripboard picture for the CD4046 VCO circuit,