In this post, I buld a board that uses the CTS256A-AL2 text to speech and SP0256A-AL2 speech synthesizer chips:
“Why? ” seems like a good question to ask. I’ve been working with vintage speech synthesizer ICs lately, and you see the CTS256A-AL2 appear on eBay from time to time. The CSS256A-AL2 is not a speech synthesizer chip, but rather it’s a text-to-speech chip. It’s designed to take ASCII text and convert it to phonemes, which are then converted to text by the SP0256A-AL2. Using this IC frees a project from having to specify speech in phonemes and allows you to use plain ordinary ASCII. I wanted to give that a shot, so I made a board.
The design came straight out of the Radio Shack data sheets and application notes, which a couple of small modifications, such as adding an activity LED and picking a more modern serial driver chip. Below is my schematic:
Again, the design is right out of the datasheet / application notes, and you can find those on the web. Nevertheless, I’ll summarize the interesting bits:
- The CTS256A-AL2 is a microcontroller with on-board ROM and RAM. It’s programmed to implement the text-to-speech algorithm. It’s a big 40-pin dip package. It interfaces to external chips through a multiplexed address/data bust (i.e. if ALATCH is active, then address bits will be latched, otherwise the bus containers data bits). There’s also an additional 8 address bits, giving it a 16-bit address space.
- A 74HCT138 is used to do address decoding for external peripherals, including the SP0256A-AL2.
- External ROM and RAM are supported. The external ROM allows you to store special phoneme rules in case the default TTS rules speak a word incorrectly. The external RAM allows you to increase the size of the buffers. These are optional.
- External jumpers are supported to let you select serial parameters, and are buffered by another 74HCT373. These parameters let you set number of data bits, stop bits, etc.
- The CTS256A-AL2 has TX, RX, and BUSY (i.e. CTS) lines for serial communication. I connected them to a MAX202 RS232 driver and a DB-9 connector.
- Also supported, though not included in my schematic due to space limitations on the PCB, is a parallel interface in case you’d like to talk to the chip via parallel rather than serial.
As usual, I sent the board design off to OSH Park and had a PCB fabricated. Below is what it looks like:
There’s not a whole lot to say about the pc-board, it’s a straightforward layout of the schematic. Note that this is a 5V project, so if you build one, make sure to plug 5V into the barrel jack, not 12V. The RAM chip I ordered the wrong size (narrow instead of wide) and I had to build an adapter to go from the narrow to the wide footprint. oops.
As usual, the PCB is shared on Osh Park in case anyone wants to build one of these.