I built a speech synthesizer board for the RC2014
The speech synthesizer IC that I chose is the SP0256A-AL2. One of my reasons for choosing it was that it seemed plentiful on eBay. They’re all fakes though, every damn one of them on eBay, so far as I can tell. 🙁 Fortunately, there is a reputable seller here in the states, www.speechchips.com.
Schematic
Here is the schematic for the speech synthesizer board:
The circuit is relatively straightforward. The SP0245A-AL2 is connected to the data bus via D0-D7. There’s an active low signal, ALD, that causes the SP0256A-AL2 to load whatever is on the data bus, and we connect that to a 74HCT138N for address decoding. The SP0256A-AL2 provides two status signals back to the CPU, I tied them to the data bus using a 74HCT245N. Writing to the port selected on the 74HCT138N will write to the synthesizer, and reading from that same port will read the status back.
Using the chip involves writing a phoneme, and then polling for the chip to become ready before writing the next phoneme. An alternative implementation would be to use an interrupt handler. I didn’t want to worry about sharing interrupts between the speech synthesizer and the serial port, so I went with the polling solution.
Implementation
Here’s a picture of the pcboard.
Source Code
You can find the source code in my repo at www.github.com/sbelectronics. There’s a demo program that says a couple of phrases and is able to recite the lyrics to Daisy Bell.
Ordering the pcboard
You can find the pcboard on Osh Park. You’ll have to buy them in three quantity because that’s the way Osh Park sells them.
I found the SPO256A-AL2 and the CTS256A-AL2. I may take the 256 module and add cts 256 as an option.. not sure. I did see that you had a whole board delegated to the speech chip. http://www.8051bits.com/misc-projects/speech%20-%20music%20synthesizers/cts256a-al2.pdf With the CTS256 ya can at least send a string as long as it doesn’t overflow, this can be fixed, and not have to figure out the phonemes for every phrase.
For anyone having trouble sourcing the 3.12 crystal, I was able to find them on Mouser.com. I ordered 4 of them and they work just as well as the NOS I have.
Does anyone have a BOM (bill of materials) for this board? Many thanks.
Here is the BOM that was auto-generated by Eagle from the .brd file (you should be able to paste this into a text editor and save it as .csv. I opened mine in Excel to test it):
Part,Value,Package
C1,?,C025-025X050
C2,?,C025-025X050
C3,?,C025-025X050
C4,0.022uf,C025-025X050
C5,1uf,C025-025X050
C6,0.022uf,C025-025X050
C7,0.1uf,C025-025X050
C8,10uf,C025-025X050
C9,0.1uf,C025-025X050
C10,100uf,E2.5-7
C11,0.1uf,C025-025X050
C12,22pf,C025-025X050
C13,22pf,C025-025X050
IC1,74HCT138N,DIL16
IC4,74HC245N,DIL20
IC5,LM386N-1,DIL08
JP1,,JP1
JP2,,JP1
Q1,,HC49U70-crystal
R1,33K,0204/7
R2,33K,0204/7
R3,10K,CT6-pot
R4,10,0204/7
SV1,,MA08-2
SV2,,MA08-1
U$1,SP0256,DIL28-6
U$2,RC2014,SIP40