RC86L60-2 [ETC]

CMOS, 3.3 Volt / 5 Volt Voice Synthesizer Chipset; CMOS , 3.3伏/ 10伏语音合成芯片组
RC86L60-2
型号: RC86L60-2
厂家: ETC    ETC
描述:

CMOS, 3.3 Volt / 5 Volt Voice Synthesizer Chipset
CMOS , 3.3伏/ 10伏语音合成芯片组

语音合成
文件: 总49页 (文件大小:602K)
中文:  中文翻译
下载:  下载PDF数据表文档文件
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
DoubleTalk RC8660  
CMOS, 3.3 Volt / 5 Volt  
Voice Synthesizer Chipset  
GꢀꢁꢀRꢂꢃ DꢀSCRꢄꢅTꢄOꢁ  
The RC8660 is a versatile voice and sound synthesizer, integrating a  
text-to-speech (TTS) processor, audio recording and playback, musical  
and sinusoidal tone generators, telephone dialer and A/D converter,  
into an easy to use chipset. Using a standard serial or eight bit bus  
interface, virtually any ASCII text can be streamed to the RC8660 for  
automatic conversion into speech by the TTS processor. The audio re-  
cord and playback modes augment the TTS processor for applications  
requiring very high voice quality and a relatively small, fixed vocabulary,  
applications requiring special sounds or sound effects, and/or the re-  
cording of voice memos. The audio output is delivered in both analog  
and digital PCM audio formats, which can be used to drive a speaker  
or digital audio stream.  
The RC8660’s integrated TTS processor incorporates RC Systems’  
DoubleTalk™ TTS technology, which is based on a unique voice con-  
catenation technique using real human voice samples. The DoubleTalk  
TTS processor also gives the user unprecedented real-time control of  
the speech signal, including pitch, volume, tone, speed, expression,  
articulation, and so on.  
any character string to be redefined, or even trigger the playback of  
tones, pre-recorded messages and sounds based on specific input  
patterns. All of these features can be programmed and updated via a  
standard serial port, even in the field after the RC8660 has been inte-  
grated into the end-product.  
Up to 3.5 MB of nonvolatile memory is included in the RC8660 for the  
storage of up to 15 minutes of recorded messages and sound effects. A  
programmable “greeting” message can be stored that is automatically  
played whenever the RC8660 is powered up, allowing a custom mes-  
sage to be played or the RC8660’s default settings to be reconfigured.  
A user-programmable dictionary allows the pronunciation of virtually  
The RC8660 is comprised of two surface-mounted devices. Both op-  
erate from a +3.3 V or +5 V supply and consume very little power.  
Most applications require only the addition of a lowpass filter/audio  
power amplifier to implement a fully functional system.  
RC8660 FꢆꢁCTꢄOꢁꢂꢃ BꢃOCꢇ DꢄꢂGRꢂM  
ꢗꢈꢀꢐ  
ꢗꢃꢓ  
ꢌꢕꢚꢑꢌꢃꢐꢒ�ꢖꢕ  
ꢓꢈꢓꢚꢛꢈꢖꢒꢐꢃꢖꢕ  
ꢜꢕꢜꢈꢌꢎ  
ꢕꢗꢔꢕꢇꢐꢃꢈꢓ  
ꢍꢃꢔꢐꢃꢈꢓꢒꢌꢎ  
ꢝꢞꢡꢂꢢ�ꢠ  
ꢣꢌꢕꢕꢐꢃꢓꢣꢂꢜꢁꢣꢂꢄ  
ꢍꢕꢅꢒꢀꢖꢐꢂꢁꢕꢐꢐꢃꢓꢣꢁ  
ꢝꢤꢙꢘꢂ�ꢎꢐꢕꢁꢠ  
ꢌꢕꢔꢈꢌꢍꢕꢍꢂꢒꢀꢍꢃꢈ  
ꢝꢞꢙꢉꢂꢄꢂꢙꢟꢉꢂꢄꢂꢟꢞꢉ  
ꢁꢕꢔꢂꢜꢒꢗꢠ  
ꢔꢖꢈꢔꢢ  
ꢣꢕꢓ  
ꢁꢐ�ꢎꢏ  
ꢇꢃꢈꢊꢇꢃꢈꢋ  
ꢌꢍꢎꢏ  
ꢔꢥꢒꢓꢓꢕꢖ  
ꢍꢕꢔꢈꢍꢕꢌ  
�ꢀꢁꢂꢃꢄꢅ  
ꢁꢐꢁꢏ  
ꢁꢕꢖꢊꢁꢕꢖꢦ  
ꢆꢂꢢ�  
ꢃꢓꢇꢀꢐ  
�ꢀꢅꢅꢕꢌ  
ꢍꢈꢀ�ꢖꢕꢐꢒꢖꢢ  
ꢐꢕꢗꢐꢚꢐꢈꢚꢁꢇꢕꢕꢔꢥ  
ꢇꢌꢈꢔꢕꢁꢁꢈꢌ  
ꢇꢌꢍꢏ  
ꢇꢑꢌꢏ  
ꢌꢗꢍ  
ꢐꢗꢍ  
ꢒꢈꢊꢒꢈꢞ  
ꢒꢁꢊꢒꢁꢞ  
ꢒꢁꢎꢓꢔ  
ꢁꢕꢌꢃꢒꢖꢂꢃꢄꢅ  
ꢒꢓꢒꢖꢈꢣ  
ꢒꢀꢍꢃꢈꢂꢃꢄꢅ  
ꢔꢐꢁꢏ  
ꢐꢈꢓꢕꢂꢣꢕꢓꢕꢌꢒꢐꢈꢌꢁ  
ꢜꢀꢁꢃꢔꢒꢖ  
�ꢌꢁꢊ�ꢌꢁꢙ  
�ꢌꢍ  
ꢐꢁꢊꢐꢁꢞ  
ꢁꢀꢁꢇꢏꢊ  
ꢁꢀꢁꢇꢞ  
ꢤꢂꢢ�  
ꢒꢀꢍꢃꢈ  
�ꢀꢅꢅꢕꢌ  
ꢁꢃꢓꢀꢁꢈꢃꢍꢒꢖ  
ꢍꢒꢃꢓ  
ꢒꢓꢊꢒꢓꢙ  
ꢒꢜꢇꢃꢓ  
ꢐꢈꢀꢔꢥꢚꢐꢈꢓꢕ  
ꢍꢒꢈꢀꢐ  
ꢍꢒꢔꢖꢢ  
ꢍꢒꢌꢐꢁꢏ  
ꢍꢃꢣꢃꢐꢒꢖ  
ꢒꢀꢍꢃꢈꢂꢃꢄꢅ  
ꢘꢚꢔꢥꢒꢓ  
ꢒꢄꢍꢂꢔꢈꢓꢛ  
ꢒꢜꢇꢈꢀꢐ  
ꢒꢍꢐꢌꢣ  
DoubleTalk RC8660 User’s Manual Rev 1.2  
Revised 10/22/04  
© 2004 RC Systems, Incorporated  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
FꢀꢂTꢆRꢀS  
ꢂꢅꢅꢃꢄCꢂTꢄOꢁS  
Integrated text-to-speech processor:  
•ꢀ Robotics  
– High voice quality, unlimited vocabulary  
– Converts any ASCII text into speech automatically  
– Capable of very high reading ratesꢀ  
•ꢀ Talking OCR systems  
•ꢀ ATM machines  
•ꢀ Talking pagers and PDAs  
•ꢀ GPS navigation systems  
•ꢀ Vending and ticketing machines  
•ꢀ Remote diagnostic reporting  
•ꢀ Dial-up information systems  
•ꢀ Handheld barcode readers  
•ꢀ Electronic test and measurement  
•ꢀ Security systems  
– Add/modify messages by simply editing a text file  
– On-the-fly control of speed, pitch, volume, etc.  
On-chip recording, storage and playback of sound files:  
– Record to chip via microphone  
– Upload, download, and erase recordings and  
sound files, even in the field  
– Data logging mode allows analog quantities to be  
sampled and stored for later retrieval  
– Recording times from 130 sec to 15 min available  
•ꢀ Aids for the orally or visually disabled  
•ꢀ Meeting federal ADA requirements  
Tone generation:  
– Three voice musical  
– Dual sinusoidal  
– DTMF (Touch-Tone) dialer  
On-chip A/D converter:  
RC8660 ꢅroduct Summary  
– Four channels, 8-bit resolution  
– One-shot, continuous, single sweep, and  
continuous sweep modes of operation  
– Software and hardware triggering  
– Support for external op amp  
Part  
Recording  
Capacity *  
Operating  
Voltage  
Number  
RC8660-1  
130 sec  
130 sec  
390 sec  
910 sec  
5 V  
Analog and digital audio outputs  
Stop, pause, and resume controls  
Serial and 8 bit bus interfaces  
RC86L60-1  
RC86L60-2  
RC86L60-3  
3.3 V  
3.3 V  
3.3 V  
User programmable greeting and default settings  
* Based on 8 kHz sampling rate with ADPCM encoding  
Flexible user exception dictionary:  
– Change the pronunciation of any input string based on  
spelling and context  
– Convert encrypted data into meaningful messages  
– Trigger tone generation, recorded message playback,  
voice parameter changes  
In-circuit, field programmable  
8 KB input buffer for virtually no-overhead operation  
Available in 3.3 V and 5 V versions  
Low power (typ @ 3.3 V):  
– 6 mA active  
– 600 µA idle  
– 100 nA standby  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
TꢈꢅꢄCꢂꢃ ꢂꢅꢅꢃꢄCꢂTꢄOꢁ CꢄRCꢆꢄT  
�ꢀꢀ  
�ꢀꢀ  
ꢀꢊꢟꢅꢞꢁꢐꢝ  
ꢀꢈꢟꢅꢞꢁꢐꢝ  
ꢁꢊ  
ꢂꢊ  
ꢆꢂ  
ꢃꢄ  
ꢊꢂ  
ꢉꢄ  
�ꢒꢒ  
�ꢒꢒ  
�ꢒꢒ  
ꢋ�ꢒꢒ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢒꢒ  
�ꢒꢒ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
ꢁꢂ  
ꢂꢃ  
ꢁꢄ  
ꢉꢆ  
ꢆꢆ  
ꢆꢇ  
ꢁꢉ  
ꢁꢊ  
ꢊꢄ  
ꢋꢠꢚꢎꢏ  
ꢋꢠꢚꢌꢐꢑ  
ꢋꢕꢑꢔꢥ  
ꢋꢏꢅ  
ꢋꢏꢁ  
ꢋꢏꢃ  
ꢋ�ꢀꢀ  
ꢋ�ꢔꢘꢝ  
ꢋꢠꢚꢎꢏ  
ꢋꢠꢚꢌꢐꢑ  
ꢋꢕꢑꢔꢥ  
�ꢀꢀ  
ꢁꢅꢅ  
ꢆꢄ  
ꢆꢈ  
ꢆꢊ  
ꢆꢉ  
ꢋꢏꢋꢙꢌꢥ  
ꢎꢨꢌ  
ꢋꢏꢅ  
ꢋꢏꢁ  
ꢋꢏꢃ  
ꢋꢏꢉ  
ꢔꢉ  
ꢁꢅꢅꢣ  
ꢔꢊ  
ꢁꢅꢅꢣ  
ꢔꢈ  
ꢁꢅꢅꢣ  
ꢋꢏꢉ  
ꢃꢈ  
ꢃꢂ  
ꢃꢄ  
ꢄꢁ  
ꢄꢅ  
ꢂꢆ  
ꢂꢇ  
ꢂꢄ  
ꢂꢂ  
ꢂꢈ  
ꢂꢉ  
ꢂꢁ  
ꢂꢅ  
ꢈꢆ  
ꢈꢇ  
ꢈꢄ  
ꢈꢂ  
ꢈꢈ  
ꢈꢊ  
ꢈꢉ  
ꢈꢃ  
ꢈꢅ  
ꢊꢊ  
ꢊꢂ  
ꢄꢉ  
ꢄꢊ  
ꢄꢈ  
ꢄꢂ  
ꢄꢄ  
ꢄꢇ  
ꢄꢆ  
ꢇꢅ  
ꢊꢃ  
ꢇꢁ  
ꢇꢃ  
ꢇꢉ  
ꢇꢊ  
ꢇꢈ  
ꢇꢂ  
ꢇꢄ  
ꢇꢇ  
ꢁꢅ  
ꢉꢅ  
ꢃꢆ  
ꢃꢇ  
ꢁꢁ  
ꢉꢂ  
ꢉꢈ  
ꢉꢇ  
ꢓꢔꢒꢅ  
ꢓꢔꢒꢁ  
ꢓꢔꢒꢃ  
ꢓꢔꢒꢉ  
ꢓꢔꢕ  
ꢔꢍꢕ  
ꢑꢍꢕ  
ꢀꢑꢒꢗ  
ꢁꢂ  
ꢃꢈ  
ꢃꢊ  
ꢃꢉ  
ꢃꢃ  
ꢃꢁ  
ꢃꢅ  
ꢁꢆ  
ꢁꢇ  
ꢊꢇ  
ꢁꢄ  
ꢃꢂ  
ꢃꢇ  
ꢁꢁ  
ꢊꢈ  
ꢊꢉ  
ꢊꢁ  
ꢉꢆ  
ꢉꢂ  
ꢉꢊ  
ꢉꢃ  
ꢉꢅ  
ꢁꢃ  
ꢊꢊ  
ꢊꢃ  
ꢊꢅ  
ꢉꢇ  
ꢉꢈ  
ꢉꢉ  
ꢉꢁ  
ꢃꢆ  
ꢔꢍꢕ  
ꢑꢌꢟꢡꢌꢒꢑ  
ꢑꢍꢕ  
ꢀꢑꢒ  
ꢠꢎꢀꢔꢌ  
ꢉꢄ  
ꢊꢆ  
ꢊꢄ  
ꢃꢅ  
ꢔꢕꢖꢗ  
ꢚꢔꢕꢗ  
ꢒꢑꢒꢗ  
ꢚꢛꢔꢗ  
ꢉꢃ  
ꢉꢁ  
ꢉꢊ  
ꢉꢉ  
ꢕꢋꢎꢏ  
ꢕꢋꢌꢐꢑ  
ꢕꢋꢔꢑꢒꢗ  
ꢕꢋꢀꢙꢣ  
ꢋꢌꢅ  
ꢑꢒꢅ  
ꢒꢐꢒꢚꢅꢗ  
ꢋꢒꢅ  
ꢋꢌꢁ  
ꢑꢒꢁ  
ꢒꢐꢒꢚꢁꢗ  
ꢋꢒꢁ  
ꢃꢉ  
ꢃꢊ  
ꢃꢁ  
ꢃꢃ  
�ꢀꢀ  
ꢆꢃ  
ꢆꢁ  
ꢆꢅ  
ꢇꢆ  
ꢁꢅ  
ꢒꢘꢙꢁ  
ꢒꢘꢙꢃ  
ꢒꢘꢙꢉ  
ꢒꢘꢙꢊ  
ꢒꢘꢙꢈ  
ꢔꢃ  
ꢁꢅꢅꢣ  
ꢑꢒꢑ  
ꢁꢇ  
ꢒꢑꢓꢖꢗ  
ꢔꢁ  
ꢊꢄꢣ  
ꢊꢁ  
ꢁꢃ  
ꢋꢀꢙꢔꢗ  
ꢔꢘꢒꢘꢑꢗ  
ꢁꢈ  
ꢁꢉ  
ꢍꢎꢏ  
ꢀꢁ  
ꢁꢐꢝ  
ꢖꢁ  
ꢄꢞꢉꢄꢃꢇꢟꢠꢡꢢ  
ꢍꢌꢐꢑ  
ꢐꢁ  
ꢐꢃ  
ꢔꢀꢇꢂꢂꢅꢝꢚ  
ꢔꢀꢊꢂꢜꢜꢝꢚ  
ꢀꢃ  
ꢁꢇꢚꢝ  
ꢀꢉ  
ꢁꢇꢚꢝ  
ꢔꢇꢟꢂꢇꢣ  
ꢀꢂꢟꢃꢄꢏꢝ  
ꢀꢆꢟꢁꢈꢅꢚꢝ  
ꢔꢂꢟꢉꢉꢣ  
ꢔꢄꢟꢉꢉꢣ  
�ꢀꢀ  
ꢇꢟ  
ꢒꢚꢣꢔ  
ꢐꢉ  
ꢙꢠꢊꢇꢄꢂ  
ꢀꢄ  
ꢃꢄꢏꢝ  
ꢀꢇ  
ꢇꢞꢃꢏꢝ  
ꢀꢁꢅ  
ꢁꢐꢝ  
ꢚꢔꢌꢥꢔꢋꢠꢟꢑꢒꢅꢟꢧꢟꢋꢀꢑꢎ�ꢘꢟꢡꢎꢥꢡ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Section 1: SpecificationS  
ꢅꢄꢁOꢆTS  
ꢛꢈ ꢚꢜ ꢚꢛ ꢚꢚ ꢚꢙ ꢚꢑ ꢚꢘ ꢚꢒ ꢚꢗ ꢚꢇ ꢚꢈ ꢙꢜ ꢙꢛ ꢙꢚ ꢙꢙ ꢙꢑ ꢙꢘ ꢙꢒ ꢙꢗ ꢙꢇ ꢙꢈ ꢑꢜ ꢑꢛ ꢑꢚ ꢑꢙ ꢑꢑ ꢑꢘ ꢑꢒ ꢑꢗ ꢑꢇ  
ꢁꢅꢂꢚ  
ꢁꢅꢂꢙ  
ꢁꢅꢂꢑ  
ꢁꢅꢂꢘ  
ꢁꢅꢂꢒ  
ꢁꢅꢂꢗ  
ꢁꢅꢂꢇ  
ꢁꢅꢂꢈ  
ꢉꢏꢐꢘ  
ꢉꢏꢐꢒ  
ꢉꢏꢐꢗ  
ꢉꢏꢐꢇ  
�ꢆꢒ  
ꢛꢇ  
ꢛꢗ  
ꢛꢒ  
ꢛꢘ  
ꢛꢑ  
ꢛꢙ  
ꢛꢚ  
ꢛꢛ  
ꢛꢜ  
ꢜꢈ  
ꢜꢇ  
ꢜꢗ  
ꢜꢒ  
ꢜꢘ  
ꢜꢑ  
ꢜꢙ  
ꢜꢚ  
ꢜꢛ  
ꢜꢜ  
ꢇꢈꢈ  
ꢑꢈ  
ꢘꢜ  
ꢘꢛ  
ꢘꢚ  
ꢘꢙ  
ꢘꢑ  
ꢘꢘ  
ꢘꢒ  
ꢘꢗ  
ꢘꢇ  
ꢘꢈ  
ꢒꢜ  
ꢒꢛ  
ꢒꢚ  
ꢒꢙ  
ꢒꢑ  
ꢒꢘ  
ꢒꢒ  
ꢒꢗ  
ꢒꢇ  
ꢅꢎꢒ  
ꢁꢋꢌꢓ  
ꢆꢎ  
ꢉꢄꢉꢓ  
ꢅꢎꢗ  
ꢆꢎ  
ꢅꢎꢇ  
ꢆꢎ  
�ꢀꢁꢂꢂꢃꢄꢅ  
ꢆꢃꢃꢇꢈꢉꢊꢋꢌꢍꢄꢅ  
ꢆꢎꢌꢏꢏꢌꢐꢌꢑꢃꢌꢏꢏ  
ꢅꢎꢈ  
�ꢎꢐꢋꢓ  
ꢆꢎ  
ꢍꢎꢎ  
ꢎꢄꢉꢓ  
ꢋꢌꢕꢓ  
ꢋꢔꢌ  
ꢄꢔꢌ  
ꢒꢓꢅꢌꢔꢕꢖꢗ  
�ꢆꢗ  
�ꢆꢇ  
�ꢍꢉꢉ  
�ꢆꢈ  
ꢌ�ꢋꢄꢉꢓ  
ꢌ�ꢎꢐꢝ  
ꢌ�ꢅꢆ  
ꢌ�ꢂꢃꢄ  
�ꢍꢋꢏꢞ  
�ꢍꢎꢎ  
�ꢌꢄꢋꢟ  
ꢇꢈ ꢇꢇ ꢇꢗ ꢇꢒ ꢇꢘ ꢇꢑ ꢇꢙ ꢇꢚ ꢇꢛ ꢇꢜ ꢗꢈ ꢗꢇ ꢗꢗ ꢗꢒ ꢗꢘ ꢗꢑ ꢗꢙ ꢗꢚ ꢗꢛ ꢗꢜ ꢒꢈ  
ꢅꢎꢙ  
ꢅꢎꢚ  
ꢅꢎꢛ  
ꢘꢛ  
ꢘꢚ  
ꢘꢙ  
ꢘꢑ  
ꢘꢘ  
ꢘꢒ  
ꢘꢗ  
ꢘꢇ  
ꢘꢈ  
ꢒꢜ  
ꢒꢛ  
ꢒꢚ  
ꢒꢙ  
ꢒꢑ  
ꢒꢘ  
ꢒꢒ  
ꢒꢗ  
ꢒꢇ  
ꢒꢈ  
ꢗꢜ  
ꢗꢛ  
ꢗꢚ  
ꢗꢙ  
ꢗꢑ  
ꢅꢎꢑ  
ꢍꢎꢎ  
ꢍꢉꢉ  
ꢅꢎꢗꢗ  
ꢁꢅꢂꢚ  
ꢅꢎꢗꢒ  
ꢁꢅꢂꢙ  
ꢅꢎꢗꢘ  
ꢁꢅꢂꢑ  
ꢅꢎꢗꢑ  
ꢁꢅꢂꢘ  
ꢍꢎꢎ  
ꢅꢎꢗꢙ  
ꢁꢅꢂꢒ  
ꢅꢎꢗꢚ  
ꢁꢅꢂꢗ  
ꢅꢎꢗꢛ  
ꢁꢅꢂꢇ  
ꢅꢎꢗꢜ  
ꢁꢅꢂꢈ  
ꢅꢎꢇ  
ꢅꢎꢜ  
ꢅꢎꢇꢈ  
ꢅꢎꢇꢇ  
ꢅꢎꢇꢗ  
ꢅꢎꢇꢒ  
ꢅꢎꢒꢇ  
ꢅꢎꢒꢗ  
ꢅꢎꢗ  
�ꢀꢎꢂꢐꢐꢄꢅ  
ꢎꢁꢇꢈꢉꢊꢋꢘꢓꢅ  
ꢆꢑꢌꢏꢏꢌꢐꢌꢑꢃꢌꢏꢏ  
ꢇꢈ  
ꢇꢇ  
ꢇꢗ  
ꢇꢒ  
ꢇꢘ  
ꢇꢑ  
ꢇꢙ  
ꢇꢚ  
ꢇꢛ  
ꢇꢜ  
ꢗꢈ  
ꢗꢇ  
ꢗꢗ  
ꢗꢒ  
ꢗꢘ  
ꢅꢎꢈ  
ꢍꢎꢎ  
ꢍꢎꢎ  
ꢆꢎ  
ꢅꢎꢒꢈ  
ꢅꢎꢘ  
ꢅꢎꢇꢘ  
ꢅꢎꢇꢑ  
ꢅꢎꢇꢙ  
ꢅꢎꢇꢚ  
ꢅꢎꢇꢛ  
ꢅꢎꢇꢜ  
ꢅꢎꢗꢈ  
ꢒꢓꢅꢌꢔꢕꢖꢗ  
ꢍꢉꢉ  
ꢅꢎꢒ  
ꢅꢎꢗꢇ  
Figure 1.1. ꢅin ꢂssignments  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢅꢄꢁ DꢀSCRꢄꢅTꢄOꢁS  
Pin Name  
Type  
Name and Function  
IC0IC32  
INTPUT/  
OUTPUT  
CHIPSET INTERCONNECTS: Interconnections between the RC8660 and RC46xx chips. IC0 connects to  
IC0, IC1 to IC1, etc. IC30IC32 must have a 47 kΩ100 kΩ pullup resistor to VCC. No other connections should  
be made to these pins.  
AO0  
AO1  
OUTPUT  
OUTPUT  
ANALOG OUTPUT: Channels 0 and 1 digital to analog (D/A) converter outputs. The output voltage range is  
from 0 V to AVREF. AO1 is reserved for future use.  
TS0  
TS1  
TALK STATUS: Indicates whether a voice channel is active. TSn can be used to enable external devices such as  
a transmitter, telephone, or audio amplifier. The pins’ polarity are programmable, and can be activated automati-  
cally or under program control. TS1 is reserved for future use.  
SUSP0#  
SUSP1#  
INPUT  
SUSPEND: Suspends audio output when Low, allowing playback to be paused. When High, playback resumes  
at the point output was suspended. These pins affect only the corresponding AO pin; they do not affect the digital  
audio DAOUT pin (use DARTS# to control DAOUT). During recording operations, SUSP0# will suspend record-  
ing when Low. SUSP1# is reserved for future use. Connect these pins to a High level if not used.  
AS0  
AS1  
OUTPUT  
OUTPUT  
INPUT  
AUDIO SYNC: Outputs a clock signal in synchronization with the updating of analog outputs AO0 and AO1.  
The pin changes state whenever the corresponding D/A converter is updated. During recording, AS0 changes  
state each time the A/D converter input is sampled. AS1 is reserved for future use.  
DAOUT  
DACLK  
DIGITAL AUDIO OUTPUT: Provides the same 8 bit digital audio stream that is fed to the internal D/A  
converters. This pin can be programmed to be a CMOS or open-drain output. The communication protocol is  
progammable, and can operate in synchronous or asynchronous mode.  
DIGITAL AUDIO CLOCK: This pin is used to clock data out of the DAOUT pin and data into the DAIN pin in  
the synchronous digital audio output mode. DACLK can be programmed to transfer data on either the rising edge  
or falling edge of the clock. Connect this pin to a High level if not used.  
DAIN  
INPUT  
INPUT  
DIGITAL AUDIO CONTROL INPUT: This pin is used to control the operation of the DAOUT pin in a multi-  
channel system. Reserved for a future product; connect this pin to a High level.  
DARTS#  
DIGITAL AUDIO REQUEST TO SEND: A Low on this pin enables transmission from the DAOUT pin; a  
High suspends transmission. DARTS# may be used in both the synchronous and asynchronous transfer modes.  
Connect this pin to a Low level if not used.  
PIO0PIO7  
INPUT/  
OUTPUT  
PERIPHERAL INPUT/OUTPUT BUS: Eight bit bidirectional peripheral bus. Data is input from a peripheral  
when PRD# is active. Status information is output when STS# is active. PIO0PIO7 also connect to the RC46xx  
chip. Text, data and commands can be sent to the RC8660 over this bus.  
STS#  
PRD#  
PWR#  
OUTPUT  
OUTPUT  
INPUT  
STATUS: Controls the transfer of status information from the RC8660 to a peripheral. Status information is  
driven on the PIO0PIO7 pins when STS# is Low. STS# is active only when there is new status information.  
PERIPHERAL READ: Controls the transfer of data from a peripheral to the RC8660. Data is read from the  
PIO0PIO7 pins when PRD# is Low.  
PERIPHERAL WRITE: Controls the writing of peripheral data to the RC8660. Data on the PIO0PIO7 pins is  
latched in the RC8660 on the rising edge of PWR#. Sufficient time must be given for the RC8660 to process the  
data before writing additional dataRDY# or Status Register bit SR.4 should be used for this purpose. Connect  
this pin to a High level if not used.  
RDY#  
OUTPUT  
READY: RDY# High indicates that the RC8660 is busy processing the last byte that was written over the Pe-  
ripheral I/O Bus. Wait for RDY# to be Low before attempting to write more data. RDY# goes High briefly after  
each write operation over the PIO0PIO7 bus, acknowledging receipt of each byte. If the RC8660’s input buffer  
becomes full as a result of the last write operation, RDY# will remain High until room becomes available. Note  
that RDY# can also be read from Status Register bit SR.4.  
AN0AN3  
ADTRG  
INPUT  
INPUT  
A/D CONVERTER INPUTS: Analog to digital converter input pins. Analog signals sampled on these pins can  
be read through the serial interface, or stored in recording memory. Leave any unused pins unconnected.  
A/D CONVERTER TRIGGER: Starts A/D conversion when hardware triggering is selected. Minimum Low  
pulse width is 200 ns. Leave this pin unconnected if not used.  
Table 1.1. ꢅin Descriptions  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Pin Name  
AMPIN  
Type  
OUTPUT  
INPUT  
Name and Function  
A/D CONVERTER AMPLIFIER: Connecting an operational amplifier between these pins allows the input volt-  
age to all four A/D converter input pins to be amplified with one operational amplifier. Leave these pins uncon-  
nected if not used.  
AMPOUT  
RXD  
TXD  
INPUT  
RECEIVE DATA: Asynchronous serial data input used to send text, data and commands to the RC8660. Con-  
nect this pin to a High level if not used.  
OUTPUT  
TRANSMIT DATA: Asynchronous serial data output used to read information out of the RC8660. This pin  
changes from a CMOS output to an N-channel open-drain output if any of the SEL pins are High, allowing mul-  
tiple TXD pins to be wire-OR’d together in a multi-channel system.  
CTS#  
BRD  
OUTPUT  
INPUT  
CLEAR TO SEND: The CTS# pin is Low when the RC8660 is able to accept data. If the input buffer becomes  
full as a result of the last byte received, CTS# will go High and remain High until room becomes available.  
BAUD RATE DETECT: BRD is used by the RC8660 to sample the host’s serial data stream in order to deter-  
mine its baud rate. BRD is normally connected to the RXD pin. The BRS0BRS3 pins affect the operation of  
BRD. Connect this pin to a High level if not used.  
BRS0–  
BRS3  
INPUT  
INPUT  
BAUD RATE SELECT: Programs the asynchronous serial port’s baud rate. Both the RXD and TXD pins are  
programmed to the baud rate set by these pins. Connecting BRS0BRS3 to a High level will allow the RC8660  
to automatically detect the baud rate with the BRD pin. Connect these pins to a High level if not used.  
STBY#  
STANDBY/INIT: Dual function pin which either puts the RC8660 in Standby mode or initializes the RC8660’s  
internal parameter memory. STBY# must be High on the rising edge of RESET#.  
Driving STBY# Low for 250 ms or longer causes the RC8660 to enter Standby mode. All periph-  
eral and serial port handshake lines are driven to their false (“not ready”) states, and the input buffer is cleared.  
During standby, the RC8660 draws the minimum possible current (100 nA typ @ 3.3 V), but it is not able to  
respond to any input pin except STBY# and RESET#. Returning STBY# High causes the RC8660 to enter Idle  
mode (600 µA typ); the handshake lines are re-asserted and the RC8660 will be able to accept input again. If the  
RC8660 entered standby due to a Sleep Timer event, driving STBY# Low for 250 ns or longer then High will  
return the RC8660 to Idle mode.  
Driving STBY# Low for less than 250 ms initializes the RC8660’s non-volatile parameter memory.  
The greeting message and user dictionary are erased, and all voice parameters and register settings are restored  
to their factory default settings. The audio recording memory is not affected. The RC8660 then announces its  
version number via the AO0 pin.  
Connect this pin to a High level if not used.  
SEL1–  
SEL5  
INPUT  
INPUT  
SELECT: Programs the channel pair that the RC8660 is to respond to in a multi-channel system. Connect these  
pins to a Low level in single-channel systems.  
RESET#  
RESET: A Low immediately terminates all activity and sets all pins to a predetermined state. During power-up,  
RESET# must be held Low a minimum of 1 ms after VCC has stabilized in the proper voltage range. All pins will  
be valid within 2 ms after reset.  
ACLR#  
XIN  
INPUT  
INPUT  
ANALOG CLEAR: A Low initializes the RC8660’s D/A and A/D converters. Connect ACLR# to RESET#.  
CLOCK INPUT/OUTPUT: These pins connect to the internal clock generating circuit. All timing for the  
RC8660 and RC46xx chips are derived from this circuit. Connect a 7.3728 MHz crystal between XIN and  
XOUT. Alternatively, an external 7.3728 MHz square wave may be applied to XIN.  
XOUT  
OUTPUT  
VCC  
POWER: +5 V 0.5 V, +3.3 V 0.3 V power supply connection.  
GROUND: Connect these pins to system ground.  
VSS  
AVCC  
AVSS  
AVREF  
ANALOG POWER: Power supply input for the D/A and A/D converters. Connect this pin to VCC  
.
ANALOG GROUND: Ground input for the D/A and A/D converters. Connect this pin to VSS  
.
ANALOG REFERENCE VOLTAGE: Reference voltage for the D/A and A/D converters. Connect this pin to  
VCC. Caution: any noise present on this pin will appear on the AO pins and affect A/D converter accuracy.  
NC  
NO CONNECT: NC pins must remain unconnected. Connection of NC pins may result in component failure or  
incompatibility with future product enhancements.  
Table 1.1. ꢅin Descriptions (Continued)  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
FꢆꢁCTꢄOꢁꢂꢃ DꢀSCRꢄꢅTꢄOꢁ  
The RC8660 chipset includes a number of features that make it ide-  
ally suited for any design requiring voice output. The RC8660’s major  
features are described below.  
Versatile ꢄ/O  
All data is sent to the RC8660 through its built in serial and/or parallel  
ports. For maximum flexibility, including infield product update ca-  
pability, use of the serial port is recommended whenever possible.  
The RC8660’s audio output is available in both analog and digital  
formats. The analog output should be used in applications where no  
further processing of the audio signal is required, such as driving a  
speaker or headphones (the output still needs to be filtered and ampli-  
fied, however). The digital output is for applications that require further  
processing of the audio signal, such as digital mixing or creating sound  
files for later playback.  
Text-to-Speech Synthesizer  
The RC8660 provides text-to-speech conversion with its integrated  
DoubleTalk™ text-to-speech synthesizer. Any English text written to  
the RC8660 is automatically converted into speech. Commands can be  
embedded in the input stream to dynamically control the voice, even at  
the phoneme level (phonemes are the basic sound units of speech).  
A greeting message can be stored in the RC8660 that is automatically  
spoken immediately after the RC8660 is reset. Most any of the com-  
mands recognized by the RC8660 may be included as part of the  
greeting message, which can be used to set up custom default settings  
and/or play a pre-recorded message or tone sequence. An integrated  
nonvolatile memory area is also provided for storing a custom pronun-  
ciation dictionary, allowing the pronunciation of any character string  
to be redefined.  
RꢀCOMMꢀꢁDꢀD COꢁꢁꢀCTꢄOꢁS  
ꢅower/Ground  
Power and ground connections are made to multiple pins of the  
RC8660 and RC46xx chips. Every VCC pin must be connected to  
power, and every VSS pin must be connected to ground. To minimize  
noise, the analog and digital circuits in the RC8660 use separate power  
busses. These busses are brought out to separate pins and should be  
tied to the supply as close as possible.  
ꢂudio Recording and ꢅlayback  
Up to 15 minutes of recorded messages and sound effects can be  
stored in the RC8660 for on-demand playback. Recordings are stored  
in on-chip nonvolatile memory, providing zero-power message storage.  
Additionally, the RC8660 can play eight-bit PCM and ADPCM audio  
in real time, such as speech and/or sound effects stored in an external  
memory or file system.  
Make sure adequate decoupling is placed on the AVREF pin, as noise  
present on this pin will also appear on the AO output pins and affect  
A/D converter accuracy. In systems where the power supply is very  
quiet, AVREF can be connected directly to VCC. Designs incorporating  
a switching power supply, or supplies carrying heavy loads, may require  
filtering at the AVREF pin; a 150 Ω series VCC resistor in combination  
with a 100 μF capacitor to ground should suffice.  
Musical Tone Generator  
An integrated, three-voice musical tone generator is capable of gener-  
ating up to three tones simultaneously over a four-octave range. Simple  
tones to attention-getting sounds can be easily created.  
Connect any unused input pins to an appropriate signal level (see  
Table 1.1). Leave any unused output pins and all NC pins un-  
connected.  
Chip ꢄnterconnects  
Touch-Tone Generator  
Pins IC0 through IC32 and PIO0 through PIO7 must be connected be-  
tween the RC8660 and RC46xx chips. IC30, IC31, and IC32 must have  
The RC8660 includes an integrated DTMF (Touch-Tone) generator.  
This is useful in telephony applications where standard DTMF tones are  
used to signal a remote receiver, modem, or access the public switched  
telephone network.  
47 kΩ100 kΩ pullup resistors to VCC  
.
Clock Generator  
The RC8660 has an internal oscillator and clock generator that can be  
controlled by an external 7.3728 MHz crystal, ceramic resonator, or  
external 7.3728 MHz clock source. If an external clock is used, con-  
nect it to the XIN pin and leave XOUT unconnected. See Figure 1.2  
for recommended clock connections.  
Sinusoidal Tone Generator  
A precision, dual sinusoidal tone generator can synthesize the tones  
often used in signaling applications. The tone frequencies can be  
independently set, allowing signals such as call-progress tones to be  
generated.  
ꢂnalog-to-Digital Converter  
ꢎꢏꢆꢐꢐꢑ  
ꢎꢏꢆꢐꢐꢑ  
The four channel, 8-bit A/D converter can be used to monitor battery  
cell voltages, temperature, and other analog quantities. The ADC can  
be programmed on the fly to convert any single channel, or scan up  
to four channels repetitively. Data logging and audio recording to the  
RC8660’s recording memory is also possible through the ADC.  
�ꢀꢁ  
�ꢒꢓꢔ  
ꢋꢄ  
ꢁꢏ  
�ꢀꢁ  
ꢋꢙ  
�ꢒꢓꢔ  
ꢋꢄ  
ꢋꢙ  
ꢂꢃꢄꢂꢅꢆꢇꢈꢉꢊ  
ꢋꢆꢌꢍ  
ꢕ�ꢔꢕꢎꢁꢖꢗꢇꢏꢗꢒꢏꢘ  
ꢋꢆꢌꢍ  
ꢏꢏ  
ꢛꢛ  
Figure 1.2. Clock Connections  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢄꢁTꢀRFꢂCꢄꢁG Tꢉꢀ RC8660  
BRS3  
BRS2  
BRS1  
BRS0  
Baud Rate  
The RC8660 contains both asynchronous serial and 8 bit bus in-  
terfaces. All text, commands, tone generator data, real time audio  
data, etc., are transmitted to the RC8660 via one of these ports. For  
maximum flexibility, use of the serial port is recommended whenever  
possible. Not all RC8660 functions are supported through the bus  
interface. In particular, index markers, firmware updates, certain status  
information and A/D conversion are only supported through the serial  
interface.  
L
L
L
L
L
L
L
H
L
300  
600  
L
L
H
H
L
1200  
L
L
H
L
2400  
L
H
H
H
H
L
4800  
L
L
H
L
9600  
L
H
H
L
19200  
Auto-detect  
38400  
57600  
115200  
Auto-detect  
L
H
L
Serial ꢄnterface  
The serial port operates with 8 data bits (LSB first), 1 or more stop bits,  
no parity, and any standard baud rate between 300 and 115200 bps.  
H
H
H
L
L
H
L
L
H
A typical RS-232C interface is shown in Figure 1.3. Note that the  
MAX232A transceiver is not required if the host system’s serial port  
operates at logic levels compatible with the RC8660 (0/+5 V or  
0/+3.3 V). The RC8660’s serial port may be connected directly to the  
host system in this case.  
All other settings  
Table 1.2. Baud Rate Options  
The CTS# pin should be used to control the flow of serial data to the  
RC8660. It is not necessary to check CTS# before transmitting every  
byte, however. All data is routed through a high speed 16-byte buffer  
within the RC8660 before being stored in the primary buffer. CTS#  
may be checked every eight bytes with no risk of data loss.  
that there be at least one isolated “1” or “0” in the input character. The  
CR character, 0Dh, is recommended for locking the baud rate. The  
character is not otherwise processed by the RC8660; it is discarded.  
If the measured bit period is determined to be a valid baud rate, the  
RC8660 acknowledges lock acquisition by transmitting the ASCII char-  
acter “l” (6Ch) on the TXD pin. The baud rate will remain locked unless  
changed with the baud rate command, or the RC8660 is reset.  
Baud rate selection  
The serial port’s baud rate can be programmed using any of three meth-  
ods: pin strapping, auto-detect, and by command. Pin strapping sets  
the baud rate according to the logic levels present on the BRS0BRS3  
pins, as shown in Table 1.2. Auto-detect enables the serial port to  
automatically detect the baud rate of the incoming data. The baud rate  
command (described in Section 2) allows the baud rate to be changed  
at any time, effectively overriding the first two methods.  
ꢓꢅꢀꢄꢅꢃꢔꢉꢅ  
�ꢀꢁ  
ꢘꢓ�  
ꢙꢓ�  
ꢂꢃꢄꢅ  
ꢃꢀꢁ  
�ꢀꢁꢂꢃꢄꢀꢅꢆꢃꢇꢀꢈꢉꢂꢀꢅꢉꢊꢋꢃꢌꢎꢏꢃꢐꢑꢒ  
The automatic baud rate detection mechanism is enabled when the  
BRS0BRS3 pins are all at a High logic level and the BRD pin is con-  
nected to the RXD pin. The baud rate is determined by the shortest  
High or Low period detected in the input stream. This period is as-  
sumed to be the bit rate of the incoming data; therefore it is important  
ꢕꢖꢗ  
Figure 1.4. Baud Rate Detection Timing  
ꢌꢍꢎꢈꢊꢈꢊ  
ꢀꢁꢁ  
�ꢏ  
ꢓꢛꢝꢊꢈꢊꢁ  
ꢛꢞꢓꢔꢍꢟꢠꢡꢖꢓꢕ  
ꢀꢁꢁ  
ꢁ�ꢂ  
ꢓꢁꢗꢏꢏꢃ  
ꢒꢚꢙ  
ꢃꢄ�ꢅꢆ  
ꢃꢄ�ꢅꢆ  
ꢃꢄ�ꢅꢆ  
ꢀꢂ  
ꢀꢇ  
ꢁ�ꢇ  
ꢁꢊꢂ  
ꢀꢁꢁ  
ꢒꢛꢓ  
ꢓꢎꢒ  
ꢓꢕꢛ  
ꢕꢎꢒ  
ꢁꢕꢛ  
ꢈꢃ  
ꢊꢙ  
ꢊꢗ  
��  
ꢚꢓꢛꢃ  
ꢚꢓꢛ�  
ꢚꢓꢛꢊ  
ꢚꢓꢛꢈ  
ꢃꢄ�ꢅꢆ  
�ꢋ  
ꢐꢑꢒ  
ꢁꢊꢇ  
ꢈꢏ  
ꢈꢋ  
ꢚꢓꢒ  
ꢓꢎꢒ  
ꢕꢎꢒ  
�ꢊ  
��  
�ꢈ  
�ꢉ  
ꢓ�ꢖ  
ꢕ�ꢔ  
ꢓꢊꢖ  
ꢕꢊꢔ  
ꢓ�ꢔ  
ꢕ�ꢖ  
ꢓꢊꢔ  
ꢈꢗ  
�ꢃ  
ꢅꢛꢞꢠꢛꢕꢓꢍꢔꢐꢢꢕꢇ  
ꢕꢢꢓꢅꢠꢁꢍꢚꢟꢞ  
ꢕꢊꢖ  
ꢁꢕꢛꢜ  
Figure 1.3. RS-232C ꢄnterface  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
NOTE The measurement cycle ends when there have been no High-  
to-Low nor Low-to-High transitions on the BRD pin for 75 ms or  
longer. Consequently, the RC8660 will ignore any data sent to it for a  
period of 75 ms after the “lock-on” character has been received. The  
CTS# pin is driven High during this time, and the acknowledgment  
character is not transmitted until the RC8660 is actually ready to accept  
data. See Figure 1.4.  
�ꢃꢄꢅꢅꢆ  
�ꢀꢁ ꢂꢀꢁ  
�ꢃꢄꢅꢅꢆ  
�ꢀꢁ ꢂꢀꢁ  
ꢇꢃꢃ  
ꢂꢀꢁ  
�ꢀꢁ  
Status messages  
Real-time status information is provided via the TXD pin. Status are  
transmitted as one-byte messages, shown in Table 1.3. Each message  
correlates to a status flag in the Status Register, shown in Table 1.5.  
The specific character used, and whether it will be transmitted, are func-  
tions of the V86 and STM bits in the Protocol Options Register. (The  
Protocol Options Register is described in Section 2.) For information  
about how to obtain reading-progress status, see the Index Marker  
command description.  
Figure 1.5. Multi-Channel System  
Channel Activation  
SEL5 SEL4 SEL3 SEL2 SEL1  
Pair  
Code  
L
L
L
L
.
L
L
L
L
.
L
L
L
L
.
L
L
H
H
.
L
H
L
H
.
All  
2-3  
C2h  
C4h  
C6h  
.
V86 = 0  
Requires  
STM = 1  
Event  
Output has started  
Output has stopped  
V86 = 1  
4-5  
“B”  
“E”  
Yes  
Yes  
Yes  
Yes  
No  
No  
“s”  
6-7  
.
“t”  
.
.
.
.
.
.
.
H
H
H
H
H
H
H
H
L
H
60-61  
Disabled  
FCh  
Buffer almost empty  
(<100 bytes remaining)  
“e”  
Buffer almost full  
(<100 bytes available)  
Table 1.4. RC8660 Channel ꢂddressing  
“f”  
Standby mode  
confirmation  
“S”  
“L”  
“p”  
Each RC8660’s address is programmed through the strapping of its  
SEL pins; the logic levels present on these pins determine which ac-  
tivation code each RC8660 will respond to. When an RC8660 sees  
its activation code on the RXD bus, it becomes enabled and functions  
normally. All other RC8660s on the bus disable themselves at the  
same time, although the contents of their input buffers will not be af-  
fected. The 8 KB buffer within each RC8660 allows a channel to be  
opened, accept messages (text and commands), then be immediately  
closedthereby allowing another channel to be openedwhile the  
first RC8660 processes the information it just received.  
Baud rate lock  
confirmation  
“l”  
Table 1.3. Status Messages  
Multi-channel system  
Multiple RC8660s can be connected in a multi-channel configuration  
by wiring the RXD pins together and TXD pins together, as shown in  
Figure 1.5. All communication is performed over the resulting RXD/  
TXD bus. Individual RC8660s are addressed through a simple ad-  
dressing scheme, shown in Table 1.4. Single-channel systems should  
have all of the RC8660’s SEL pins connected to a Low logic level.  
This permanently activates the RC8660 so that no activation code  
is required, and configures the TXD pin as a CMOS output. Note  
that if any of the SEL pins are connected to a High logic level, the  
TXD output pin will be automatically configured to be an open-drain,  
N-channel output.  
To address a specific RC8660, issue the appropriate activation code.  
For example, to address channel 4, transmit C4h. All subsequent output  
will be accepted by the RC8660 configured for channel 4, and ignored  
by all the others.  
Handshaking with each RC8660 in a multi-channel system is simplified  
through a special interrogation mechanism. Instead of monitoring each  
channel’s CTS# pin, any channel can instead be queried by transmit-  
ting code C0h. In response, the active channel will return an eight bit  
status code on the TXD bus, as defined in Table 1.5. The Ready status  
bit should be checked at least every 8 data bytes in order to avoid data  
loss.  
NOTE Table 1.4 refers to channel pairs, because each RC8660 can  
potentially support two channels (AO0 and AO1). This feature may be  
implemented in a future version of the RC8660.  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Bus/ꢅrinter ꢄnterface  
The RC8660’s bus interface allows the RC8660 to be connected to a  
microprocessor or microcontroller in the same manner as a static RAM  
or I/O device, as shown in Figure 1.7. The microprocessor controls all  
transactions with the RC8660 over the system data bus using the RD  
and WR# signals. RD controls the reading of the RC8660’s Status Reg-  
ister; WR# controls the transfer of data into the RC8660. The Status  
Register bits and their definitions are shown in Table 1.5.  
ꢄꢅꢁ�ꢅ  
�ꢀꢁꢂꢃꢄꢅꢁꢅꢆꢄ  
�ꢀꢇꢈꢄꢅꢀ�  
A registered bus transceiver is required for communication between  
the RC8660 and microprocessor; two 74HC374s placed back to back  
may be substituted for the 74HC652 shown in the figure. Prior to each  
write operation to the RC8660, the host processor should verify that  
the RC8660 is ready by testing the RDY status flag.  
ꢉꢊ  
�ꢂꢋꢃꢌꢃꢍ  
ꢋꢀꢄ  
The RC8660 can also be interfaced to a PC’s printer port as shown  
in Figure 1.7. A 74HC374 can be used in place of the 74HC652,  
since bidirectional communication is not necessary. Handshaking is  
performed automatically via the BUSY pin.  
ꢏ�ꢈꢅꢀꢃꢐꢋꢅꢀ  
ꢅꢊꢃ�ꢑꢒꢓꢓꢔ  
Because the RC8660 can take up to 15 µs to accept data written to it  
(AC Characteristics, tYHWH parameter), software drivers should wait for  
RDY to drop to 0 after a byte is written in order to avoid overwriting  
it with the next data byte. Not doing so could result in the loss of data.  
Waiting for RDY to drop to 0 ensures that RDY will not falsely show  
that the RC8660 is ready the next time the driver is called.  
�ꢀꢁꢂꢃꢄꢅꢁꢅꢆꢄ  
�ꢀꢇꢈꢄꢅꢀ�  
ꢉꢊ  
ꢍꢘꢃꢙꢚ  
ꢅꢈꢕꢀꢊꢆꢅ  
ꢉꢊ  
If a system interrupt can occur while waiting for RDY to become 0, or if  
RDY cannot otherwise be checked at least once every 8 µs, a software  
timeout should be enforced to avoid hanging up in the wait loop. The  
time RDY stays 0 is relatively short (8 µs min.) and can be missed if the  
loop is interrupted. The timeout should be at least 15 µs, which is the  
maximum time for RDY to drop to 0 after writing a byte of data. In non  
time-critical applications, the output routine could simply delay 15 µs or  
longer before exiting, without checking for RDY = 0 at all.  
�ꢂꢋꢃꢌꢃꢔ  
ꢋꢀꢄ  
ꢋꢀꢄ  
ꢏ�ꢈꢅꢀꢃꢑꢊꢕꢖꢗꢀꢅꢀ  
Figure 1.6. Recommended Method of Writing Data Via the Bus ꢄnterface  
Figure 1.6 illustrates the recommended method of writing data to the  
RC8660’s bus interface. This method should be used for writing all  
types of data, including text, commands, tone generator and real time  
audio data.  
ꢀ0  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
R
7
TS  
R
5
RDY  
4
AF  
3
AE  
2
STBY  
1
R
0
6
Status Register Bit  
Description  
Reserved for future use. Mask when polling the Status Register.  
SR.7 = RESERVED (R)  
SR.6 = TALK STATUS (TS)  
1 = Talking  
0 = Idle  
The TS bit has the same meaning as the TS0 pin. “1” means that the RC8660 is producing output;  
“0” means output has ceased. The TS bit is not affected by the TS Pin Control command, which  
affects only the TS pins.  
SR.5 = RESERVED (R)  
Reserved for future use. Mask when polling the Status Register.  
SR.4 = READY STATUS (RDY)  
1 = Ready  
0 = Busy  
The RDY bit has the same meaning as the RDY# pin. The RC8660 sets RDY to “1” to indicate  
that it is ready to receive data. RDY drops to “0” momentarily after each write operation over the  
PIO bus, acknowledging receipt of each character.  
SR.3 = ALMOST FULL (AF)  
1 = Buffer almost full  
This bit is “1” anytime there are less than 100 bytes available in the input buffer. AF is always “0”  
in the real time audio playback mode and when using the musical tone generator.  
0 = Buffer not almost full  
SR.2 = ALMOST EMPTY (AE)  
1 = Buffer almost empty  
This bit is “1” anytime there are less than 100 bytes remaining in the input buffer. AE is always “1”  
in the real time audio playback mode and when using the musical tone generator.  
0 = Buffer not almost empty  
SR.1 = STANDBY MODE (STBY)  
1 = RC8660 is in Standby mode  
0 = RC8660 not in Standby mode  
This bit is “1” when the RC8660 has entered Standby mode. Standby mode is entered either by  
setting the STBY# pin Low or by allowing the Sleep Timer to expire.  
SR.0 = RESERVED (R)  
Reserved for future use. Mask when polling the Status Register.  
Table 1.5. Bus ꢄnterface Status Register Bit Definitions  
ꢌꢜꢑꢘꢗꢃꢑꢂꢌꢐ  
ꢌꢃꢞꢁ�ꢘꢂꢋꢟꢜ  
ꢏꢌꢌ  
ꢀꢅ  
ꢅꢇ  
ꢅꢅ  
ꢋꢚꢐꢛꢂꢑꢘꢜꢗꢝ�ꢌꢜ  
ꢁꢗꢂꢑꢘꢜꢗꢛꢁꢃꢗꢘ  
ꢍꢑꢒ  
ꢏꢌꢌ  
ꢐꢋ�  
ꢐ�ꢋ  
ꢗꢌꢔꢉꢉꢄ  
ꢒꢋꢅꢈ  
ꢔꢔ  
ꢁꢂꢃꢄ  
ꢔꢊ  
ꢀꢄ  
ꢀꢀ  
ꢅꢄ  
ꢀꢓ  
ꢀꢔ  
ꢀꢊ  
ꢀꢉ  
ꢀꢈ  
ꢀꢇ  
ꢀꢆ  
�ꢄ  
�ꢀ  
�ꢅ  
�ꢆ  
�ꢇ  
�ꢈ  
�ꢉ  
�ꢊ  
ꢋꢄ  
ꢋꢀ  
ꢋꢅ  
ꢋꢆ  
ꢋꢇ  
ꢋꢈ  
ꢋꢉ  
ꢋꢊ  
ꢒꢋꢄ  
ꢒꢋꢀ  
ꢒꢋꢅ  
ꢒꢋꢆ  
ꢒꢋꢇ  
ꢒꢋꢈ  
ꢒꢋꢉ  
ꢒꢋꢊ  
ꢒꢋꢄ  
ꢒꢋꢀ  
ꢒꢋꢅ  
ꢒꢋꢆ  
ꢒꢋꢇ  
ꢒꢋꢈ  
ꢒꢋꢉ  
ꢒꢋꢊ  
ꢒ�ꢘ�ꢄ  
ꢒ�ꢘ�ꢀ  
ꢒ�ꢘ�ꢅ  
ꢒ�ꢘ�ꢆ  
ꢒ�ꢘ�ꢇ  
ꢒ�ꢘ�ꢈ  
ꢒ�ꢘ�ꢉ  
ꢒ�ꢘ�ꢊ  
ꢁꢂꢃꢀ  
ꢔꢉ  
ꢁꢂꢃꢅ  
ꢔꢈ  
ꢁꢂꢃꢆ  
ꢔꢇ  
ꢁꢂꢃꢇ  
ꢔꢆ  
ꢁꢂꢃꢈ  
ꢔꢅ  
ꢁꢂꢃꢉ  
ꢔꢀ  
ꢁꢂꢃꢊ  
ꢇꢊ  
ꢐꢘꢐꢎ  
ꢁꢗꢒꢎ  
ꢅꢀ  
ꢅꢆ  
ꢌ�ꢋ  
ꢍꢋ�ꢎ  
ꢌꢋ�  
ꢍ�ꢋ  
ꢖꢗꢎ  
ꢗꢒ  
ꢖꢗꢎ  
ꢐꢘꢋꢎ  
ꢇꢓ  
ꢀꢆ  
ꢀꢈ  
ꢀꢄ  
ꢀꢀ  
ꢀꢅ  
ꢀꢔ  
ꢐꢟꢌꢘ  
ꢜꢗꢗꢃꢗꢎ  
�ꢌꢡꢎ  
ꢋꢚꢐꢙ  
ꢁꢜ  
ꢊꢇꢕꢌꢉꢈꢅ  
ꢇꢠꢊꢡ  
ꢏꢌꢌ  
ꢅꢄ  
ꢁꢖꢗꢎ  
ꢆꢊ  
ꢗꢒꢙꢎ  
ꢍꢑꢒ  
Figure 1.7. Bus/ꢅrinter ꢄnterface  
ꢀꢀ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢌꢉꢉ  
ꢀꢁ  
ꢍꢎ�  
ꢛꢉꢔ  
ꢂꢁ  
ꢌꢉꢉ  
�ꢁ  
�ꢀ  
�ꢂ  
�ꢃ  
�ꢄ  
�ꢅ  
�ꢆ  
�ꢇ  
ꢈꢁ  
ꢙꢚꢛꢁ  
ꢙꢚꢛꢀ  
ꢙꢚꢛꢂ  
ꢙꢚꢛꢃ  
ꢙꢚꢛꢄ  
ꢙꢚꢛꢅ  
ꢙꢚꢛꢆ  
ꢙꢚꢛꢇ  
ꢈꢀ  
ꢈꢂ  
ꢈꢃ  
ꢈꢄ  
ꢈꢅ  
ꢈꢆ  
ꢈꢇ  
ꢒꢓꢜꢝ  
ꢕꢖ  
ꢕꢘ  
ꢀꢂ  
ꢀꢅ  
ꢀꢆ  
ꢀꢏ  
ꢊꢕꢓꢉꢑꢖ�  
ꢒꢓꢕꢓꢗꢒ  
ꢘꢊꢕꢍꢒ  
ꢀꢃ  
ꢀꢄ  
ꢀꢇ  
ꢀꢐ  
ꢞ�ꢝ  
ꢓꢛꢟꢞꢉꢐꢆꢆꢁ  
ꢓꢒ  
ꢀꢀ  
ꢒꢓꢒꢔ  
ꢉꢊꢋ  
ꢇꢄꢑꢉꢃꢇꢄ  
Figure 1.8. Method of Capturing Status ꢄnformation for Driving ꢀxternal Circuitry  
ꢂnalog ꢂudio Output  
Digital ꢂudio Output  
The analog output pins AO0 and AO1 are high impedance (10 kΩ typ-  
ical) outputs from the RC8660’s internal D/A converters. When using  
these outputs, the addition of an external low-pass filter is highly recom-  
mended. When laying out the printed circuit board, avoid running digital  
lines near the AO lines in order to minimize induced noise in the audio  
path. If space permits, run a guard ground next to the AO traces.  
The digital audio pin DAOUT outputs the RC8660’s audio signal as  
a digital audio stream consisting of 8 data bits per sample. The nor-  
malized sampling rate for all text to speech modes, sinusoidal generator,  
and DTMF generator is 84 kbs (10,500 bytes/sec). The prerecorded  
and real time audio playback mode rates are user programmable, so  
their normalized rates will vary. See the Pin Descriptions and Audio  
Control Register command description for further details.  
The circuit shown in Figure 1.9 is a low-pass filter/power amplifier ca-  
pable of delivering 1.1 W to an 8 Ω load, when operating from a +5 V  
power supply (power output will be less when operating from +3.3 V).  
The amplifier’s shutdown pin can be controlled by the RC8660’s TS0  
pin to minimize current drain when the RC8660 is inactive.  
ꢏꢆꢐꢌꢈꢑ  
ꢔꢁꢐꢆꢇꢓꢃ  
ꢏꢁꢐꢅꢅꢑ  
ꢁꢉꢍꢎꢃ  
ꢅꢅꢑ  
ꢖꢗꢍ  
ꢕꢔꢔ  
ꢈꢐ  
ꢊꢋꢄꢈꢇꢌ  
ꢗꢎꢘꢜꢗꢓꢖꢊ  
ꢕꢗꢊꢂꢋꢝ  
ꢔꢗꢓꢘꢏꢗꢊ  
ꢚꢜꢃꢐꢜꢓꢙꢊꢊꢝꢠꢡ  
ꢔꢁꢢꢍꢒꢁꢂꢃ  
ꢆꢇꢓꢃ  
ꢈꢒꢆꢓꢃ  
ꢁꢍꢑ  
ꢏꢁꢢꢆꢆꢑ  
ꢏꢆꢢꢁꢍꢍꢑꢟ  
ꢁꢂꢃ  
ꢚꢎꢏꢗꢛꢏꢖꢋꢐꢘꢙꢍꢐꢎꢜꢓ  
ꢃꢗꢏꢐꢖꢔꢘꢜꢕꢝꢐꢞꢜꢛꢞꢟ  
ꢘꢙꢍ  
Figure 1.9. 3 kꢉz ꢃow-ꢅass Filter/ꢅower ꢂmplifier  
ꢀꢁ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢀꢃꢀCTRꢄCꢂꢃ SꢅꢀCꢄFꢄCꢂTꢄOꢁS  
ꢥꢊ�  
ꢦꢆ  
ꢀꢉꢡꢈꢠꢁꢐꢟ  
ꢀꢅꢡꢈꢠꢁꢐꢟ  
ꢁꢅ  
ꢂꢅ  
ꢓꢂ  
ꢁꢂ  
ꢂꢃ  
ꢁꢄ  
ꢉꢓ  
ꢓꢓ  
ꢓꢋ  
ꢉꢄ  
ꢁꢉ  
ꢁꢅ  
ꢅꢄ  
ꢃꢄ  
ꢅꢂ  
�ꢒꢒ  
�ꢒꢒ  
�ꢒꢒ  
ꢆ�ꢒꢒ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢀꢀ  
�ꢒꢒ  
�ꢒꢒ  
ꢥꢊꢡ�  
ꢓꢄ  
ꢓꢊ  
ꢓꢅ  
ꢓꢉ  
ꢆꢏꢈ  
ꢆꢏꢁ  
ꢆꢏꢃ  
ꢆꢏꢉ  
ꢆꢛꢌꢍꢏ  
ꢆꢛꢌꢇꢐꢑ  
ꢆꢖꢑꢕꢜ  
ꢆ�ꢀꢀ  
ꢆ�ꢕꢙꢟ  
ꢆꢨꢖ  
ꢀꢇꢏ�ꢙꢕꢑꢙꢕ  
ꢕꢉ  
ꢁꢈꢈꢤ  
ꢕꢅ  
ꢁꢈꢈꢤ  
ꢕꢊ  
ꢁꢈꢈꢤ  
ꢁꢈꢈ  
ꢃꢊ  
ꢃꢂ  
ꢃꢄ  
ꢋꢈ  
ꢄꢓ  
ꢄꢋ  
ꢄꢄ  
ꢄꢂ  
ꢄꢊ  
ꢄꢅ  
ꢄꢉ  
ꢄꢁ  
ꢄꢈ  
ꢂꢓ  
ꢂꢋ  
ꢂꢄ  
ꢂꢂ  
ꢂꢊ  
ꢂꢉ  
ꢂꢁ  
ꢂꢈ  
ꢊꢓ  
ꢊꢋ  
ꢊꢄ  
ꢊꢂ  
ꢊꢊ  
ꢊꢅ  
ꢊꢉ  
ꢊꢃ  
ꢊꢈ  
ꢅꢂ  
ꢅꢅ  
ꢅꢃ  
ꢁꢈ  
ꢍꢀꢉꢃ  
ꢍꢀꢉꢁ  
ꢍꢀꢉꢈ  
ꢍꢀꢃꢓ  
ꢍꢀꢃꢋ  
ꢍꢀꢃꢄ  
ꢍꢀꢃꢂ  
ꢍꢀꢃꢊ  
ꢍꢀꢃꢅ  
ꢍꢀꢃꢉ  
ꢍꢀꢃꢃ  
ꢍꢀꢃꢁ  
ꢍꢀꢃꢈ  
ꢍꢀꢁꢓ  
ꢍꢀꢁꢋ  
ꢍꢀꢁꢄ  
ꢍꢀꢁꢂ  
ꢍꢀꢁꢊ  
ꢍꢀꢁꢅ  
ꢍꢀꢁꢉ  
ꢍꢀꢁꢃ  
ꢍꢀꢁꢁ  
ꢍꢀꢁꢈ  
ꢍꢀꢓ  
ꢍꢀꢉꢃ  
ꢍꢀꢉꢁ  
ꢍꢀꢉꢈ  
ꢍꢀꢃꢓ  
ꢍꢀꢃꢋ  
ꢍꢀꢃꢄ  
ꢍꢀꢃꢂ  
ꢍꢀꢃꢊ  
ꢍꢀꢃꢅ  
ꢍꢀꢃꢉ  
ꢍꢀꢃꢃ  
ꢍꢀꢃꢁ  
ꢍꢀꢃꢈ  
ꢍꢀꢁꢓ  
ꢍꢀꢁꢋ  
ꢍꢀꢁꢄ  
ꢍꢀꢁꢂ  
ꢍꢀꢁꢊ  
ꢍꢀꢁꢅ  
ꢍꢀꢁꢉ  
ꢍꢀꢁꢃ  
ꢍꢀꢁꢁ  
ꢍꢀꢁꢈ  
ꢍꢀꢓ  
ꢉꢈ  
ꢃꢓ  
ꢃꢋ  
ꢁꢁ  
ꢉꢂ  
ꢉꢊ  
ꢉꢋ  
ꢁꢂ  
ꢉꢈ  
ꢉꢃ  
ꢉꢅ  
ꢉꢂ  
ꢉꢓ  
ꢅꢁ  
ꢅꢉ  
ꢅꢊ  
ꢃꢊ  
ꢃꢅ  
ꢃꢉ  
ꢃꢃ  
ꢃꢁ  
ꢃꢈ  
ꢁꢓ  
ꢁꢋ  
ꢅꢋ  
ꢁꢄ  
ꢃꢂ  
ꢁꢁ  
ꢃꢋ  
ꢁꢃ  
ꢔꢕꢒꢈ  
ꢔꢕꢒꢁ  
ꢔꢕꢒꢃ  
ꢔꢕꢒꢉ  
ꢔꢕꢖ  
ꢕꢎꢖ  
ꢑꢎꢖ  
ꢀꢑꢒꢘ  
ꢥꢊ�  
ꢒꢙꢕꢍꢆꢚꢡꢍꢨꢟ  
ꢉꢄ  
ꢅꢓ  
ꢅꢄ  
ꢃꢈ  
ꢕꢖꢗꢘ  
ꢌꢕꢖꢘ  
ꢒꢑꢒꢘ  
ꢌꢝꢕꢘ  
ꢔꢐꢒꢡꢍꢨꢟ  
ꢑꢙꢕꢛꢍꢏꢆꢑꢙ  
ꢐꢏꢐꢒꢙꢖꢡꢍꢏꢌꢐꢑꢡꢌꢍꢏꢒ  
ꢑꢇꢡꢆꢌꢌꢕꢇꢌꢕꢍꢆꢑꢙ  
ꢚꢇꢜꢍꢀꢡꢚꢙ�ꢙꢚ  
ꢉꢃ  
ꢉꢁ  
ꢉꢅ  
ꢉꢉ  
ꢖꢆꢍꢏ  
ꢖꢆꢇꢐꢑ  
ꢖꢆꢕꢑꢒꢘ  
ꢖꢆꢀꢚꢤ  
ꢖꢍꢜꢍꢑꢆꢚ  
ꢆꢐꢖꢍꢇ  
ꢃꢉ  
ꢃꢅ  
ꢃꢁ  
ꢃꢃ  
ꢆꢇꢈ  
ꢑꢒꢈ  
ꢒꢐꢒꢌꢈꢘ  
ꢆꢒꢈ  
ꢆꢇꢁ  
ꢑꢒꢁ  
ꢒꢐꢒꢌꢁꢘ  
ꢆꢒꢁ  
ꢆꢏꢆꢚꢇꢜ  
ꢇꢐꢑꢌꢐꢑꢒꢡꢧ  
ꢀꢇꢏꢑꢕꢇꢚ  
ꢍꢀꢋ  
ꢍꢀꢄ  
ꢍꢀꢂ  
ꢍꢀꢊ  
ꢍꢀꢅ  
ꢍꢀꢉ  
ꢍꢀꢃ  
ꢍꢀꢁ  
ꢍꢀꢋ  
ꢍꢀꢄ  
ꢍꢀꢂ  
ꢍꢀꢊ  
ꢍꢀꢅ  
ꢍꢀꢉ  
ꢍꢀꢃ  
ꢍꢀꢁ  
ꢥꢊ�  
ꢓꢃ  
ꢓꢁ  
ꢓꢈ  
ꢋꢓ  
ꢁꢈ  
ꢒꢙꢚꢁ  
ꢒꢙꢚꢃ  
ꢒꢙꢚꢉ  
ꢒꢙꢚꢅ  
ꢒꢙꢚꢊ  
ꢍꢀꢈ  
ꢍꢀꢈ  
ꢕꢁ  
ꢁꢈꢈꢤ  
ꢕꢃ  
ꢁꢈꢈꢤ  
ꢋꢁ  
ꢋꢃ  
ꢋꢉ  
ꢋꢅ  
ꢋꢊ  
ꢋꢂ  
ꢋꢄ  
ꢋꢋ  
ꢅꢅ  
ꢅꢃ  
ꢅꢈ  
ꢉꢋ  
ꢉꢊ  
ꢉꢉ  
ꢉꢁ  
ꢃꢓ  
ꢌꢍꢇꢄ  
ꢌꢍꢇꢂ  
ꢌꢍꢇꢊ  
ꢌꢍꢇꢅ  
ꢌꢍꢇꢉ  
ꢌꢍꢇꢃ  
ꢌꢍꢇꢁ  
ꢌꢍꢇꢈ  
ꢌꢍꢇꢄ  
ꢌꢍꢇꢂ  
ꢌꢍꢇꢊ  
ꢌꢍꢇꢅ  
ꢌꢍꢇꢉ  
ꢌꢍꢇꢃ  
ꢌꢍꢇꢁ  
ꢌꢍꢇꢈ  
ꢁꢋ  
ꢒꢑꢔꢗꢘ  
ꢒꢝꢁ  
ꢒꢝꢃ  
ꢅꢁ  
ꢁꢃ  
ꢆꢀꢚꢕꢘ  
ꢕꢙꢒꢙꢑꢘ  
ꢁꢊ  
ꢁꢉ  
ꢎꢍꢏ  
ꢗꢁ  
ꢄꢠꢉꢄꢃꢋꢡꢛꢢꢣ  
ꢎꢇꢐꢑ  
ꢐꢁ  
ꢕꢀꢋꢂꢂꢈꢟꢌ  
ꢐꢃ  
ꢕꢀꢅꢂꢞꢞꢟꢌ  
ꢀꢁ  
ꢁꢋꢌꢟ  
ꢀꢃ  
ꢁꢋꢌꢟ  
Figure 1.10. Test Circuit  
* WARNING: Stresses greater than those listed under “Absolute  
Maximum Ratings” may cause permanent damage to the device.  
This is a stress rating only; operation of the device at any condition  
above those indicated in the operational sections of these specific-  
ations is not implied. Exposure to absolute maximum rating condi-  
tions for extended periods may affect device reliability.  
ꢂBSOꢃꢆTꢀ MꢂꢊꢄMꢆM RꢂTꢄꢁGS*  
Supply voltage, VCC and AVCC . . . . . . . . . . . . . . .0.3 V to +6.5 V  
DC input voltage, VI. . . . . . . . . . . . . . . . . . . 0.3 V to VCC +0.3 V  
Operating temperature, TA . . . . . . . . . . . . . . . . . . . 0 °C to +70 °C  
Storage temperature, TS. . . . . . . . . . . . . . . . . . 55 °C to +125 °C  
ꢀꢂ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
DC CꢉꢂRꢂCTꢀRꢄSTꢄCS  
TA = 0 °C to +70 °C, VCC = AVCC = AVREF = 3.3 V / 5 V, VSS = AVSS = 0 V, XIN = 7.3728 MHz  
3.3 0.3 V  
Typ  
5 V 0.5 V  
Symbol  
Parameter  
Input voltage, Low  
Unit  
Test Conditions  
Min  
Max  
Min  
Typ  
Max  
VIL  
0.3  
0.7VCC  
0.3  
0.2VCC  
0.3  
0.2VCC  
VCC+0.3  
AVREF  
V
V
V
V
VIH  
Input voltage, High  
VCC + 0.3 0.7VCC  
VIA  
Analog input voltage (AN0-3  
)
AVREF  
1.8  
0.3  
0.2  
VHYR  
Input hysterisis, RESET#  
0.2  
1.8  
VOL  
VOH  
Output voltage, Low  
Output voltage, High  
0.5  
0.5  
V
V
IOL = 1 mA  
VCC0.5  
VCC0.5  
IOH = 1 mA  
IIL  
Input load current  
4
5
µA  
VIN = VSS to VCC  
Analog output resistance  
(AO0, AO1)  
RO  
4
10  
20  
4
10  
20  
kΩ  
ICC  
Supply current  
Active  
All outputs open;  
all inputs = VCC  
or VSS; AVCC and  
AVREF currents in-  
cluded  
6
18  
1.5  
15  
35  
13  
1.2  
0.2  
33  
2.5  
20  
65  
mA  
mA  
µA  
Idle  
0.6  
0.1  
Standby  
Program (Note 1)  
mA  
1 Applies during internal programming operations: greeting message, dictionary, sound library and microcode updates.  
ꢂC CꢉꢂRꢂCTꢀRꢄSTꢄCS  
TA = 0 °C to +70 °C, VCC = AVCC = AVREF = 3.3 V / 5 V, VSS = AVSS = 0 V  
External Clock Input Timing  
3.3 0.3 V  
5 V 0.5 V  
Nom  
Symbol  
Parameter  
Unit  
Min  
Nom  
Max  
Min  
Max  
fC  
External clock input frequency  
External clock input Low pulse width  
External clock input High pulse width  
External clock rise time  
7.2991  
60  
7.3728  
67.8  
7.4465  
7.2991  
40  
7.3728  
67.8  
7.4465  
MHz  
ns  
tWCL  
tWCH  
tCR  
60  
67.8  
40  
67.8  
ns  
18  
18  
15  
15  
ns  
tCF  
External clock fall time  
ns  
ꢂꢀꢅ  
ꢂꢀꢃ  
ꢀꢁ  
ꢀꢁ  
ꢀꢄ  
Figure 1.11. ꢀxternal Clock Waveform  
ꢀꢃ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Bus Interface Timing  
3.3 0.3 V  
5 V 0.5 V  
Symbol  
Parameter  
Unit  
Min  
Max  
Min  
Max  
tWSL  
STS# pulse width Low  
STS# Low to data valid  
215  
250  
ns  
ns  
ns  
tDVSL  
tDHSH  
155  
150  
Data hold from STS# going High  
5
5
tWRL  
PRD# pulse width Low  
215  
85  
0
250  
40  
0
ns  
ns  
ns  
tDVRH  
tDHRH  
Data setup to PRD# going High  
Data hold from PRD# going High  
tWWL  
PWR# pulse width Low  
380  
–2  
250  
–2  
ns  
µs  
µs  
µs  
µs  
tDVWH  
tDHWH  
tYHWH  
tWYH  
Data setup to PWR# going High  
Data hold from PWR# going High  
RDY# High from PWR# going High (Note 1)  
RDY# pulse width High (Note 1)  
15  
15  
15  
15  
8
8
1 Applies to the RDY# pin and RDY status flag.  
ꢋꢂꢃ  
ꢅꢆꢅꢇ  
�ꢉꢊꢇ  
�ꢈꢉꢇ  
ꢉꢊꢋꢇ  
ꢋꢓꢃ  
ꢋꢋꢃ  
ꢌꢄꢋꢄ  
ꢍꢊꢎ�ꢏꢐꢑꢒ  
ꢋꢌꢄ  
ꢍꢊꢎ�ꢏꢐꢑꢒ  
ꢀꢁꢓꢄ  
ꢀꢄꢋꢄ  
ꢀꢄꢓꢄ  
ꢀꢁꢂꢃ  
ꢀꢁꢋꢄ  
ꢀꢄꢂꢄ  
�ꢀꢁ ꢃ  
ꢅꢆꢇꢈꢆꢇ  
ꢉꢊꢈꢆꢇ  
ꢉꢊꢈꢆꢇ  
�ꢀꢁ  
ꢑꢐ  
ꢌꢄꢋꢄꢐꢔꢕꢖꢐ�ꢋꢌꢄꢐꢔꢗꢗꢘꢙꢐ�ꢎꢐꢚꢎ�ꢛꢐ�ꢛꢏꢐꢓꢀꢌꢜꢐꢗꢝꢕꢐꢔꢕꢖꢐꢓꢀꢌꢐꢞ�ꢔ�ꢟꢞꢐꢠꢘꢔꢡꢢ  
Figure 1.12. Bus ꢄnterface Waveforms  
ꢀꢄ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Analog Audio Timing  
�ꢀ  
�ꢂ  
�ꢀꢁꢂꢃꢁꢄꢅꢆꢇ  
ꢈꢉꢊꢋꢅꢁꢃꢉꢃꢌꢍꢄꢊꢍꢊ  
ꢈꢉꢊꢋꢅꢁꢎꢍꢃꢉꢆꢍꢊ  
ꢂꢃꢂꢄ ꢅ  
Figure 1.13. ꢂnalog ꢂudio Waveforms  
Digital Audio Timing  
Symbol  
Parameter  
Min  
Max  
Unit  
Notes  
tCYC  
tWCL  
tWCH  
tDVCL  
tDHCL  
fS  
DACLK cycle time  
200  
100  
100  
ns  
ns  
DACLK pulse width Low  
DACLK pulse width High  
DACLK Low to data valid  
ns  
80  
ns  
Data hold from DACLK going Low  
TTS and DTMF generator internal sampling rate  
0
ns  
10.5  
10.5  
kHz  
Nominal  
ꢁꢃꢁ  
ꢀꢁꢂ  
�ꢀꢄꢅꢆ  
ꢅꢂꢁꢄ  
ꢀꢁꢄ  
�ꢀꢁꢂꢃ  
ꢅꢆꢁꢄ  
Figure 1.14. Digital ꢂudio Waveforms  
ꢀꢅ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Standby Timing  
3.3 0.3 V  
5 V 0.5 V  
Symbol  
Parameter  
Unit  
Min  
Max  
Min  
Max  
tWSBL  
STBY# pulse width Low  
To enter Standby mode  
250  
8
250  
8
ms  
ms  
ns  
To reinitialize parameter memory  
250  
250  
To exit Standby mode (Sleep Timer invoked; Note 1)  
380  
250  
1 Monitor handshake lines to determine when Standby mode has terminated.  
ꢀꢁꢂꢃ  
�ꢀꢁꢂꢃ  
Figure 1.15. Standby Waveform  
Reset Timing  
Symbol  
tWRS  
Parameter  
RESET# pulse width Low  
Min  
Max  
Unit  
Notes  
After power on / VCC stable  
During operation  
1
3
ms  
µs  
Hold RESET# Low during power-up  
tDRR  
RESET# recovery delay  
2
ms  
ꢀꢁꢂ  
�ꢀꢁꢀꢂꢃ  
ꢃꢁꢁ  
Figure 1.16. Reset Waveform  
ꢀꢆ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢅꢂCꢇꢂGꢀ ꢄꢁFORMꢂTꢄOꢁ  
100 ꢅin ꢅlastic 14 x 20 mm QFꢅ (measured in millimeters)  
ꢎꢉꢈꢊ  
ꢎꢏꢈꢎ  
ꢎꢐꢈꢑ  
ꢎꢒꢈꢓ  
ꢇꢈꢇꢇ  
ꢇꢈꢓꢇ  
ꢎꢔꢈꢑ  
ꢓꢇꢈꢓ  
ꢓꢓꢈꢊ  
ꢓꢐꢈꢎ  
ꢐꢈꢇꢊ  
ꢕꢄꢖ  
ꢇꢈꢓꢊ  
ꢇꢈꢒꢇ  
ꢇꢈꢉꢊ  
ꢇꢈꢎꢐ  
ꢇꢈꢓꢇ  
ꢂꢀꢃꢄꢅꢆꢁꢄ  
ꢇꢈꢎꢇ  
ꢇꢗ  
ꢎꢇꢗ  
�ꢀꢀꢁꢂꢀꢃꢄꢅꢆꢁꢄ  
ꢇꢈꢒꢇ  
ꢇꢈꢑꢇ  
ꢀꢇ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
48 ꢅin ꢅlastic 12 x 20 mm TSOꢅ (measured in millimeters)  
ꢌꢍꢈꢉ  
ꢎꢇꢈꢎ  
ꢌꢉꢈꢏ  
ꢌꢉꢈꢐ  
ꢇꢈꢇꢐ  
ꢇꢈꢎꢇ  
ꢇꢈꢐꢇ  
ꢇꢈꢌꢐ  
ꢇꢈꢎꢐ  
ꢌꢌꢈꢍ  
ꢌꢎꢈꢌ  
ꢇꢈꢌꢇ  
ꢌꢈꢎꢇ  
ꢔꢄꢕ  
ꢂꢀꢃꢄꢅꢆꢁꢄ  
ꢇꢈꢌꢎ  
ꢇꢈꢌꢉ  
�ꢀꢀꢁꢂꢀꢃꢄꢅꢆꢁꢄ  
ꢇꢈꢊꢇ  
ꢇꢈꢋꢇ  
ꢇꢈꢉꢇ  
Recommended ꢅCB ꢃayouts (measured in millimeters)  
ꢃꢄꢀꢁ  
ꢅ�ꢀꢂ  
ꢃꢆꢀꢃ  
ꢃꢀꢆ  
ꢃꢀꢂ  
�ꢀꢁꢂ  
�ꢀꢄ�  
�ꢀꢂ�  
�ꢀꢇ�  
ꢀꢈ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ORDꢀRꢄꢁG ꢄꢁFORMꢂTꢄOꢁ  
The RC8660 is available in several recording capacities and voltage ranges. The ordering part number is formed by combining several fields, as in-  
dicated below. Refer to the “Valid Combinations” table, which lists the configurations that are planned to be supported in volume. All configurations  
include the RC8660FP chip; the companion chip is shown in parentheses. For example, the RC86L60-1, a 3.3 V part with 130 seconds of recording  
memory, is composed of the RC8660FP and RC46L51FP.  
� ꢀ ꢁ ꢂ ꢃ ꢂ ꢄ ꢅ ꢆ  
ꢈꢊꢇꢐꢈꢑꢊꢑꢄꢁꢒꢑꢓꢐꢄꢇꢁꢔꢁꢇꢓꢕꢖ  
ꢗꢄꢅ ꢗꢏꢍꢄꢘꢙꢚ  
ꢛꢄꢅ ꢏꢜꢍꢄꢘꢙꢚ  
ꢏꢄꢅ ꢜꢗꢍꢄꢘꢙꢚ  
ꢇꢇꢄꢈꢁꢂꢉꢊ  
�ꢀꢁꢂꢃꢄꢅ ꢋꢄꢆꢄꢌꢄꢍꢎꢋꢄꢆ  
ꢇꢈꢃꢉꢊꢋꢀꢌꢍꢎꢉꢏꢈꢐꢉꢌꢏꢑꢒ  
ꢀꢄꢅ ꢏꢎꢏꢄꢌꢄꢍꢎꢏꢄꢆ  
ꢈꢇꢝꢞꢞꢍꢟꢗ  
ꢈꢇꢝꢞꢀꢞꢍꢟꢗ  
ꢈꢇꢝꢞꢀꢞꢍꢟꢛ  
ꢈꢇꢝꢞꢀꢞꢍꢟꢏ  
ꢠꢈꢇꢡꢞꢋꢗꢢꢔꢣ  
ꢠꢈꢇꢡꢞꢀꢋꢗꢢꢔꢣ  
ꢠꢈꢇꢡꢞꢀꢞꢗꢢꢔꢣ  
ꢠꢈꢇꢡꢞꢀꢤꢗꢢꢔꢣ  
ꢁ0  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Section 2: principleS of operation  
OꢅꢀRꢂTꢄꢁG MODꢀS  
COMMꢂꢁD SꢈꢁTꢂꢊ  
The RC8660 has five primary operating modes and two inactive modes  
designed to achieve maximum functionality and flexibility while con-  
suming the least possible amount of power. The operating mode can  
be changed at any time by issuing the appropriate command.  
The RC8660 commands provide a simple yet flexible means of con-  
trolling the RC8660 under software control. They can be used to vary  
voice attributes, such as the volume or pitch, to suit the requirements  
of a particular application or listener’s preferences. Commands are also  
used to change operating modes.  
NOTE The RC8660 will not begin speaking nor execute commands  
issued it until it receives a CR (ASCII 13) or NUL (ASCII 00) charac-  
terthis ensures that a complete contextual analysis can be performed  
on the input text. If it is not possible for the application to send a CR  
or NUL, use the Timeout Delay command.  
Commands can be freely intermixed with text that is to be spokenal-  
lowing the voice to be dynamically controlledor to dynamically  
change operating modes, such as generating tones or playing recorded  
messages in the middle of a passage of text. Commands affect only the  
data that follows them in the data stream.  
The RC8660 does not make any distinction between uppercase and  
lowercase characters. All data sent to the RC8660 is buffered in an  
internal 8 KB input buffer, allowing additional text and commands to  
be queued even while the RC8660 is producing output.  
All RC8660 commands are composed of the command character  
(CTRL+A by default), a parameter n comprised of an ASCII number  
string, and a single string literal that uniquely identifies the command.  
Some commands simply enable or disable a feature of the RC8660 and  
do not require a parameter. The general command format is:  
Text-To-Speech mode. By default, all text sent to the RC8660 is  
automatically translated into speech by the integrated DoubleTalk TTS  
engine. TTS mode can be further subdivided into three translation  
modes: Text, which reads text normally; Character, which reads (spells)  
one character at a time; and Phoneme, which allows the TTS engine’s  
phonemes to be directly accessed.  
<command character>[<number string>]<string literal>  
If two or more commands are to be used together, each must be pref-  
aced with the command character. This is the only way the RC8660  
knows to treat the following characters as a command, rather than text  
that is to be spoken. For example, the following commands program  
pitch level 40 and volume level 7:  
Recorder mode. Any of the RC8660’s four ADC inputs can be used  
to make audio recordings, such as voice memos. Analog voltages, such  
as from a temperature transducer or battery, can be sampled and re-  
corded using the ADC’s one-shot mode. All recordings can be retrieved  
via the serial port or played back on demand.  
CTRL+A "40p" CTRL+A "7v"  
The Command Character  
Recorded Audio Playback mode. This mode allows messages and  
sound effects that have been recorded or downloaded into the RC8660  
to be played back on demand. PCM and ADPCM data types are sup-  
ported.  
The default RC8660 command character is CTRL+A (ASCII code 01).  
The command character itself can be spoken by the RC8660 by send-  
ing it twice in a row: CTRL+A CTRL+A. This special command allows  
the command character to be spoken without affecting the operation  
of the RC8660, and without having to change to another command  
character and then back again.  
Real Time Audio Playback mode. Data sent to the RC8660 is writ-  
ten directly to the RC8660’s audio buffer. This results in a high data  
rate, but provides the capability of producing the highest quality speech,  
as well as sound effects. PCM and ADPCM data types are supported.  
Changing the command character  
The command character can be changed to another control character  
(ASCII 01-26) by sending the current command character, followed by  
the new character. To change the command character to CTRL+D, for  
example, issue the command CTRL+A CTRL+D. To change it back,  
issue the command CTRL+D CTRL+A. It’s generally a good idea to  
change the command character if the text to be read contains char-  
acters which may otherwise be interpreted as command characters (and  
hence commands). The command character can be unconditionally  
reset to CTRL+A by sending CTRL+^(ASCII 30) to the RC8660.  
Tone Generator modes. These modes activate the RC8660’s mu-  
sical tone generator, sinusoidal generator, or DTMF generator. They  
can be used to generate audible prompts, music, signaling tones, dial  
a telephone, etc.  
Idle mode. To help conserve power in battery-powered systems, the  
RC8660 automatically enters a reduced-power state whenever it is  
inactive. Data can still be read and written to the RC8660 while in this  
mode. Current draw is typically 600 µA @ 3.3 V.  
Standby mode. This mode powers down the RC8660, where cur-  
rent draw is typically only 100 nA. Standby mode can be invoked from  
either the STBY# pin or with the Sleep command. Data cannot be read  
from nor written to the RC8660 in this mode.  
Command ꢅarameters  
Command parameters are composed of ASCII number strings. The  
RC8660 supports two types of parameters: absolute and relative.  
Absolute parameters explicitly specify a parameter’s new value, such  
as 9S or 3B. Relative parameters specify a displacement from a  
parameter’s current value, not the actual new value itself.  
ꢁꢀ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Relative parameters allow you to specify a desired change in a  
parameter’s value. For example, the Volume command +2V in-  
creases the volume level by two (V+2V). If the current volume  
is 4, the volume will increase to 6 after the command has exe-  
cuted. The command 2V will have a similar effect, except the  
volume will be decreased by two. When operating on an RC8660  
register (Punctuation Filter, Protocol Options, Audio Control and  
ADC Control), relative parameters allow you to set (“+”) and clear  
(“–”) individual register bits. For example, +65G sets bits POR.0 and  
POR.6; 16$ clears ADR.4.  
foreign words may require a bit more creativity, so that “Sean” becomes  
“Shon,” and “chauffeur” becomes “show fur.” Heteronyms (words with  
identical spelling but different meanings and pronunciations) can also  
be modified using this technique. For example, if the word read is to  
be pronounced “reed” instead of “red,” it can simply be respelled as  
“reed.”  
Text Mode/Delay (T/nT)  
This command places the RC8660 in the Text operating mode. The  
optional delay parameter n is used to create a variable pause between  
words. The shortest, and default delay of 0, is used for normal speech.  
For users not accustomed to synthetic speech, the synthesizer’s intellig-  
ibility may be improved by introducing a delay. The longest delay that  
can be specified is 15. If the delay parameter is omitted, the last set  
value will be used and the exception dictionary will be disabled. This  
feature is useful for returning from another operating mode or disabling  
the exception dictionary (see Enable Exception Dictionary command).  
If the value of a parameter falls outside the command’s range, the value  
will either wrap around or saturate, depending on the setting of the SAT  
bit of the Protocol Options Register. For example, if parameters are  
programmed to wrap, the current volume is 7 and the command +4V  
is issued, the resultant volume will be (7+4)10 = 1, since the volume  
range is 0-9. If parameters are programmed to saturate, the resultant  
volume would be 9 instead.  
When writing application programs for the RC8660, it is recom-  
mended that relative parameters be used for temporarily changing voice  
attributes (such as raising the pitch of a word), using absolute-parameter  
commands only once in the program’s initialization routine. This way,  
if the base value of an attribute needs to be changed, it only needs to  
be changed in the initialization routine.  
Character Mode/Delay (C/nC)  
This command puts the RC8660 in the Character operating mode. The  
optional delay parameter n is used to create a variable pause between  
characters. Values between 0 (the default) and 15 provide pauses from  
shortest to longest, respectively. Values between 16 and 31 provide  
the same range of pauses, but control characters will not be spoken. If  
the delay parameter is omitted, the last set value will be used and the  
exception dictionary will be disabled.  
TTS SꢈꢁTꢉꢀSꢄꢋꢀR  
Using the TTS synthesizer couldn’t be simpler: simply write the text to  
be read to the RC8660; the RC8660 does the rest. The RC8660 also  
includes a number of software commands that allow you to modify the  
behavior of the TTS synthesizer, as described in this section.  
ꢅhoneme Mode (D)  
This command disables the text-to-phonetics translator, allowing the  
RC8660’s phonemes to be accessed directly. Table 2.1 lists the pho-  
nemes that can be produced by the RC8660.  
When concatenating two or more phonemes, each phoneme must  
be delimited by a space. For example, the word “computer” would be  
represented phonetically as  
Translation ꢂccuracy  
Because the RC8660 must handle the highly irregular spelling system  
of English, as well as proper names, acronyms, technical terms, and  
borrowed foreign words, there inevitably will be words that it will mis-  
pronounce. If a word is mispronounced, there are three techniques for  
correcting it:  
k ax m p yy uw dx er  
Phoneme attribute tokens  
The RC8660 supports seven phoneme attribute tokens that can be  
used in addition to the standard commands. These tokens do not re-  
quire the command character or any parameters, but they can only be  
used in Phoneme mode and exception dictionaries. In addition, chang-  
es made to parameters with attribute tokens are only temporary. Table  
2.2 lists these tokens and their equivalent “standard” commands.  
1. Spell the word phonetically for the desired pronunciation.  
2. Redefine the way the word should be pronounced by creating an  
exception for it in the RC8660’s exception dictionary. This method  
allows words to be corrected without having to modify the original  
text, and it automatically corrects all instances of the word. Ex-  
ception dictionaries are covered in detail in Section 3.  
Applications of Phoneme mode  
3. Use the RC8660’s Phoneme mode.  
Phoneme mode is useful for creating customized speech, when the nor-  
mal text-to-speech modes are inappropriate for producing the desired  
voice effect. For example, Phoneme mode should be used to change  
the stress or emphasis of specific words in a phrase. This is because  
Phoneme mode allows voice attributes to be modified on phoneme  
boundaries within each word, whereas Text mode allows changes only  
at word boundaries. This is illustrated in the following examples.  
The first technique is the easiest way to fine tune word pronuncia-  
tionsby tricking the RC8660 into the desired pronunciation. Among  
the more commonly mispronounced words are compound words  
(baseball), proper names (Sean), and foreign loan words (chauffeur).  
Compound words can usually be corrected by separating the two words  
with a space, so that “baseball” becomes “base ball.” Proper names and  
ꢁꢁ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
CTRL+A "d" CTRL+A "m" "//h aw  
-/d>/eh r  
\m iy dh ae  
Symbol  
Function  
Equiv Cmd  
+<\\yy uw  
s p \iy k  
t uw  
t
-\w ey .+/"  
nn  
/
Set pitch to ‘nn’ (0-99)  
Increase pitch m steps *  
Decrease pitch m steps *  
Increase speed 1 step  
Decrease speed 1 step  
Increase volume 1 step  
Decrease volume 1 step  
nP  
Note that Expression is disabled in this example, since the pitch varia-  
tions due to the internal intonation algorithms would otherwise interfere  
with the pitch tokens. Compare this with the same phrase produced in  
Text mode with Expression enabled:  
+mP  
mP  
+1S  
1S  
+1V  
1V  
\
+
CTRL+A "t" CTRL+A "e" "How dare you speak to  
me that way!"  
>
<
Phoneme mode is also useful in applications that provide their own  
text-to-phoneme translation, such as the front end of a custom text-  
to-speech system.  
* Step size determined by nE command; m @ 2n  
Table 2.2. ꢅhoneme ꢂttribute Tokens  
Phoneme  
Symbol  
Example  
Word  
Phoneme  
Symbol  
Example  
Word  
Speed (nS)  
The synthesizer’s speech rate can be adjusted with this command, from  
0S (slowest) through 13S (fastest). The default rate is 5S.  
A
das (Spanish)  
M
me  
AA  
AE  
AH  
AW  
AX  
AY  
B
cot  
cat  
cut  
cow  
bottom  
bite  
bib  
church  
N
new  
rung  
niño (Spanish)  
no (Spanish)  
boat  
boy  
pop  
spot  
ring  
NG  
NY  
O
OW  
OY  
P
Voice (nO)  
The text-to-speech synthesizer has 11 standard voices and a number of  
individual voice parameter controls that can be used to independently  
vary the voice characteristics. Voices are selected with the commands  
0O through 10O, shown in Table 2.3. Because the Voice command  
alters numerous internal voice parameters (articulation, pitch, ex-  
pression, tone, etc.), it should precede any individual voice parameter  
control commands.  
CH  
D
PX  
R
did  
DH  
DX  
E
EH  
EI  
ER  
EW  
EY  
F
either  
city  
ser (Spanish)  
bet  
mesa (Spanish)  
bird  
acteur (French)  
bake  
RR  
S
SH  
T
TH  
TX  
U
UH  
UW  
V
tres (Spanish)  
sell  
shell  
tin  
thin  
stick  
uno (Spanish)  
book  
boot  
valve  
n
Voice Name  
Perfect Paul (default)  
0
1
Vader  
2
Big Bob  
Precise Pete  
Ricochet Randy  
Biff  
3
fee  
gag  
he  
4
G
H
5
W
we  
I
libro (Spanish)  
bit  
WH  
Y
YY  
Z
ZH  
space  
,
when  
mayo (Spanish)  
you  
zoo  
vision  
variable pause *  
medium pause  
long pause  
6
Skip  
IH  
IX  
IY  
J
K
7
Robo Robert  
Goliath  
rabbit  
beet  
age  
cute  
ski  
8
9
Alvin  
10  
Gretchen  
KX  
L
Table 2.3. Voice ꢅresets  
long  
.
* Normally used between words; duration determined by nT command.  
Table 2.1. DoubleTalk ꢅhoneme Symbols  
ꢁꢂ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢂrticulation (nꢂ)  
ꢅunctuation Filter Register (nB)  
This command adjusts the articulation level, from 0A through 9A. Ex-  
cessively low articulation values tend to make the voice sound slurred;  
very high values, on the other hand, can make the voice sound choppy.  
The default articulation is 5A.  
Depending on the application, it may be desirable to limit the reading  
of certain punctuation characters. For example, if the RC8660 is used  
to proofread documents, the application may call for only unusual  
punctuation to be read. On the other hand, an application that orally  
echoes keyboard entries for a blind user may require that all punctuation  
be spoken.  
ꢀxpression (ꢀ/nꢀ)  
Expression, or intonation, is the variation of pitch within a sentence or  
phrase. When expression is enabled (n > 0), the RC8660 attempts to  
mimic the pitch patterns of human speech. For example, when a sen-  
tence ends with a period, the pitch drops at the end of the sentence; a  
question mark will cause the pitch to rise.  
The Punctuation Filter Register determines which punctuation char-  
acters will be spoken, and how number strings will be translated, as  
shown in Table 2.4.  
Effect on number strings  
When the NM bit is 0, number strings will be read one digit at a time  
(e.g., 0123 = “zero one two three”). Setting the NM bit to 1 forces  
number strings to be read as numbers (0123 = “one hundred twenty  
three”). Additionally, when NM = 1 and FM = 10 or 11, currency  
strings will be read as they are normally spokenfor example, $11.95  
will be read as “eleven dollars and ninety five cents.” Setting LZS = 1  
disables leading zero suppression; number strings beginning with zero  
will always be read one digit at a time.  
The optional parameter n determines the degree of intonation. 0E pro-  
vides no intonation (monotone), whereas 9E is very animated sounding.  
5E is the default setting. If the parameter is omitted, the current (last  
set) value will be used. This is useful for re-enabling intonation after a  
Monotone command.  
Monotone (M)  
This command disables all intonation (expression), causing the RC8660  
to speak in a monotonic voice. Intonation should be disabled whenever  
manual intonation is applied using the Pitch command or phoneme at-  
tribute tokens. This command is equivalent to the 0E command.  
The default filter setting is 6B (Some punctuation, Numbers mode, lead-  
ing zero suppression enabled).  
R
7
R
6
R
5
R
4
LZS  
3
NM  
2
FM  
1
FM  
0
Formant Frequency (nF)  
This command adjusts the synthesizer’s overall frequency response  
(vocal tract formant frequencies), over the range 0F through 99F. By  
varying the frequency, voice quality can be fine-tuned or voice type  
changed. The default frequency is 50F.  
Punctuation Filter Register Bits  
PFR.7–4 = RESERVED (R)  
Write “0” to ensure future compatibility.  
ꢅitch (nꢅ)  
PFR.3 = LEADING ZERO SUPPRESSION (LZS)  
1 = Do not suppress leading zeroes  
0 = Suppress leading zeroes  
This command varies the synthesizer’s pitch over a wide range, which  
can be used to change the average pitch during speech production,  
produce manual intonation, or create sound effects (including singing).  
Pitch values can range from 0P through 99P; the default is 50P.  
PFR.2 = NUMBERS MODE (NM)  
1 = Read number strings as numbers  
0 = Read number strings as digits  
Tone (nꢊ)  
PFR.1–0 = FILTER MODE (FM)  
00 = All spoken  
01 = Most spoken (all but CR, LF, Space)  
10 = Some spoken ($%&#@=+*^|\<>)  
11 = None spoken  
The synthesizer supports three tone settings, bass (0X), normal (1X)  
and treble (2X), which work much like the bass and treble controls on a  
stereo. The best setting to use depends on the speaker being used and  
personal preference. Normal (1X) is the default setting.  
Table 2.4. ꢅunctuation Filter Register Definitions  
Reverb (nR)  
This command is used to add reverberation to the voice. 0R (the default)  
introduces no reverb; increasing values of n correspondingly increase  
the reverb delay and effect. 9R is the maximum setting.  
ꢁꢃ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Figure 2.1 is a functional block diagram of the ADC input stage; Figure  
2.2 illustrates the ADC in operation. Table 2.5 lists the definitions of  
each bit of the ADC Control Register. All ADC results are transferred  
via the TXD pin except in sound recorder modewhen the results  
are written to the RC8660’s recording memory. The default register  
setting is 128$.  
ꢂ/D COꢁVꢀRTꢀR  
ꢂDC Control Register (n$)  
This register controls the operation of the integrated analog-to-digital  
converter. The ADC has the following features:  
Four channels, 8-bit resolution ( 2 LSB precision)  
One-shot, continuous, single sweep, and continuous sweep  
modes of operation  
Operation of the ADC is not mutually exclusive of other RC8660  
functions. The ADC can operate concurrently with text-to-speech,  
tone generation, audio playback, etc. The effective sampling rate in  
continuous mode is one-tenth the serial port baud rate (e.g., 115200  
baud = 11.52 ksps).  
Selectable software or hardware triggering  
Support for external amplification/signal conditioning of all four  
ADC channels  
INH  
7
AMP  
6
TRG  
5
CONT  
4
SWP  
3
R
CH  
1
CH  
0
2
ADC Control Register Bit  
ADR.7 = INHIBIT (INH)  
1 = Stop A/D conversions  
0 = Start A/D conversions  
Description  
This bit must be “0” in order for the ADC to begin sampling the input channel(s); setting it  
to “1” while the ADC is operating will cause all conversions to stop. This bit allows the other  
register bits to be programmed without actually starting the ADC. INH automatically changes  
to “1” at the end of a conversion in one-shot mode. Default: “1.”  
ADR.6 = EXTERNAL AMPLIFIER (AMP)  
1 = Amp connected  
0 = Amp not connected  
Set this bit to “1” to use an operational amplifier connected between the AMPIN and AM-  
POUT pins. Connecting an op amp and enabling this function allows the voltage input to  
each ADC input pin to be amplified with one op amp. Default: “0.”  
ADR.5 = TRIGGER SOURCE (TRG)  
1 = Hardware trigger (ADTRG pin)  
0 = Software trigger  
Setting this bit to “1” enables hardware triggering of the ADC. The ADC will not begin  
operating until ADR.7 is set to “0” and the ADTRG pin changes from a High to a Low level.  
When TRG is “0” the ADC will begin operating as soon as ADR.7 is set to “0.” Default: “0.”  
ADR.4 = CONTINUOUS MODE (CONT)  
1 = Continuous mode  
0 = One-shot mode  
Setting this bit to “1” causes the ADC to operate continuously. If a single channel is selected  
for measurement (ADR.3 = 0), that channel will be read repeatedly. If sweep mode is se-  
lected (ADR.3 = 1), the active input channels will be continuously read in a cyclic fashion.  
Clearing this bit while the ADC is operating will stop the ADC. Default: “0.”  
ADR.3 = SWEEP MODE (SWP)  
1 = Sweep mode  
0 = Single-channel mode  
This bit determines whether a single channel or multiple input channels will be read. When  
Sweep mode is selected, ADR.1 and ADR.0 determine which input channels will be scanned.  
Default: “0.”  
ADR.2 = RESERVED (R)  
Reserved for future use. Write “0” to ensure future compatibility.  
ADR.1–0 = CHANNEL SELECT (CH)  
These bits determine which input channel(s) will be read by the ADC. Default: “00.”  
When ADR.3 = 0: When ADR.3 = 1:  
00 = AN0  
01 = AN1  
10 = AN2  
11 = AN3  
00 = undefined  
01 = AN0AN1 sweep  
10 = undefined  
11 = AN0AN3 sweep  
NOTES:  
1. The AMPOUT pin can be used as a fifth ADC input if an external op amp is not used. Set ADR.6 = 1 to select the AMPOUT pin for conversion.  
Table 2.5. ꢂDC Control Register Definitions  
ꢁꢄ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢐꢑꢊꢁꢍꢇꢒ  
�ꢀꢁꢂꢃꢄ  
ꢂꢈꢉ  
ꢂꢈꢊ  
ꢂꢈꢋ  
ꢂꢈꢌ  
ꢄꢅꢆꢄꢇꢅ�  
ꢂꢍꢎꢁꢓꢁꢉ  
ꢄꢏꢊ  
ꢄꢏꢉ  
ꢂꢍꢎꢅꢈ  
ꢂꢍꢎꢁꢓꢁꢊ  
ꢂꢍꢎꢁꢓꢁꢊ  
ꢂꢍꢎꢀꢇ�  
Figure 2.1. ꢂDC ꢄnput Block Diagram  
�ꢀꢁꢂꢃꢂꢄꢅꢆꢂꢃꢂꢇꢈꢉ�ꢂꢃꢂꢊꢉꢋꢂꢃꢂꢌ  
ꢇꢋꢂꢃꢂꢇꢋꢂꢃꢂꢌ  
ꢇꢈꢉ�ꢂꢃꢂꢇꢋꢂꢃꢂꢍ  
ꢇꢋꢂꢃꢂꢌ  
ꢇꢈꢉ�ꢂꢃꢂꢌ  
ꢎꢉꢌ  
ꢎꢉꢏ  
ꢎꢉꢏ  
ꢎꢉꢏ  
ꢎꢉꢏ  
ꢎꢉꢏ  
�ꢀꢁ  
ꢂꢁ�ꢃꢄ  
�ꢀꢁꢂꢃꢂꢇꢋꢂꢃꢂꢍ  
ꢄꢅꢆꢂꢃꢂꢇꢈꢉ�ꢂꢃꢂꢇꢋꢂꢃꢂꢊꢉꢋꢂꢃꢂꢌ  
ꢄꢅꢆꢂꢃꢂꢇꢈꢉ�ꢂꢃꢂꢍ  
ꢇꢈꢉ�ꢂꢃꢂꢌ  
ꢎꢉꢍ  
ꢎꢉꢍ  
ꢎꢉꢌ  
ꢎꢉꢍ  
ꢎꢉꢌ  
ꢎꢉꢍ  
ꢎꢉꢌ  
�ꢀꢁ  
ꢂꢁ�ꢃꢄ  
Figure 2.2. ꢂDC Transfer Timing  
ꢁꢅ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
RꢀCORDꢄꢁG & ꢅꢃꢂꢈBꢂCꢇ  
Message  
No_Error  
Code  
Meaning  
Libraries of sounds and recorded messages can be stored in the  
RC8660’s integrated recording memory for on-demand playback.  
New libraries can be downloaded at any time, even in the field. With  
the addition of a microphone and preamplifier, recordings can also be  
made directly to the recording memory through the RC8660’s A/D  
converter inputs. The RC8660 includes built in support for download-  
ing, uploading, and erasing sound files through the serial interface. The  
number of sound files is limited only by the amount of available on-chip  
recording memory.  
0
1
No error  
Invld_Cmd_Err  
Com_Err  
Invalid command error  
Communications error  
Communications timeout error  
Memory erase in progress  
Memory erase error  
2
TmOut_Err  
Erase_In_Prog  
Erase_Err  
3
4
5
Erase_Ok  
6
Memory erased, no errors  
Memory write error  
Additionally, the RC8660 can play back eight bit audio in real time,  
such as speech and/or sound effects stored in an external memory or  
file system.  
Write_Err  
7
Out_Mem_Err  
CkSum_Err  
(reserved)  
8
Out of memory  
9
Data checksum error  
Reserved  
10  
11  
12  
13  
14  
15  
Recording Memory File System  
(reserved)  
Reserved  
All file functionsplay, download, upload and eraserequire a means  
of specifying the file to be operated on. The RC8660’s built-in file sys-  
tem allows sound files, whether downloaded or recorded through the  
ADC, to be easily accessed.  
Incompat_Err  
Dup_Tag_Err  
Not_Found_Err  
Rec_In_Prog  
Incompatible sound library in memory  
Duplicate tag in memory  
Record not found in memory  
Recording in progress  
Each sound file in memory is automatically assigned a unique record  
number, or index, beginning with zero. The first file is record 0, the  
second is record 1, and so on. Referencing a sound file by its record  
number is one way to select the file to be operated on. However, if files  
are added and/or deleted from memory frequently, their record num-  
bers can become difficult to keep track of.  
Table 2.6. Recording Memory Return Codes  
plays the Touch-Tone “#” key and says “hello” at the current volume  
setting, followed by the fourth sound file at a reduced volume level, and  
finally the tenth sound file at the original volume level (TAG = 0 in this  
example).  
All RC8660 sound files contain a unique 16 bit “tag” that can also be  
used to reference the file. The tag is assigned to the sound file when  
it is created with the RCStudio software, or, in the case of recording  
through the ADC, specified in the recording command. Tags can range  
in value from 1 to 65534. A value of 0 is defined as a null tag, and will  
be ignored. The setting of the TAG bit in the Protocol Options Register  
determines whether the tag value or record number will be used when  
addressing a file in the recording memory.  
ꢀrase Sound File (234ꢃ)  
The command 234Lmmmmm deletes sound file mmmmm from the  
recording memory. The setting of the TAG bit in the Protocol Options  
Register determines whether m represents a record number or tag.  
Note that all five m digits must be included in the command (use  
leading zeroes if necessary).  
The sound file functions described here each return one or more result  
codes via the TXD pin. These codes are summarized in Table 2.6.  
During erasure, the CTS# pin will go High and one or more Erase_  
In_Prog messages will be transmitted on the TXD pin. Completion is  
indicated by CTS# going Low and the transmission of Erase_Ok on the  
TXD pin. Note that this process can take some time, as the recording  
memory is also automatically defragmented during erasure.  
ꢅlay Sound File (n&)  
This command plays the sound file specified by the parameter n. The  
setting of the TAG bit in the Protocol Options Register determines  
whether n represents the record number or tag value. For example,  
CTRL+A "52&"  
Download Sound File (236W)  
This command initiates the download of a sound file to the RC8660.  
Files are always appended to the end of the sound library in memory.  
RCStudio may be used to create the RC8660 compatible sound files  
from standard Windows wave files. After issuing this command, simply  
transfer the sound file.  
plays record 52 (actually the 53rd file) if TAG = 0, or the record whose  
tag value equals 52 if TAG = 1.  
The playback volume can be adjusted with the Volume (nV) command.  
A volume setting of 5 will cause sound files to be played back at their  
original volume level.  
After the first dozen or so bytes of the sound file have been transferred,  
the RC8660 verifies that there is enough space in its recording memory  
and that there is not already a file in memory with the same tag (other  
than tag 0). No_Error will be transmitted if there are no errors, and  
the RC8660 will load the rest of the file. At the completion of the  
download, No_Error will be transmitted again (assuming no download  
errors).  
Text and/or commands may be freely intermixed with the playback  
command. For example,  
CTRL+A "11*" "Hello" CTRL+A "–3V" CTRL+A "3&"  
CTRL+A "+3V" CTRL+A "9&"  
ꢁꢆ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
99). If ADPCM compression is desired (reduces memory storage  
requirements by a factor of 2), add 128 to the value of n. M defines  
the tag value that is to be associated with the recording. If you do  
not want to associate a tag with the recording, set m = 00000.  
Note that all five m digits must be included in the command (use  
leading zeroes if necessary). For example, the command CTRL+A  
"227L01234" begins recording at 11 kHz rate with ADPCM  
compression, assigning a tag value of 1234 to the recording.  
ꢆpload Sound File (245ꢃ)  
This command is used to upload a sound file or recording from the  
RC8660’s recording memory. The command 245Lmmmmm re-  
trieves sound file mmmmm from memory; immediately upon receipt  
of the command, the RC8660 will begin transmitting the file via the  
TXD pin. The setting of the TAG bit in the Protocol Options Register  
determines whether m represents a record number or tag. To stop the  
transfer of the file, issue the Stop (CTRL+X) command. Note that all  
five m digits must be included in the command (use leading zeroes  
if necessary).  
After the command has been transmitted to the RC8660, the  
RC8660 will verify that there is space in the recording memory  
and that there is not already a file with the same tag in memory  
(other than tag 0). Assuming there are no errors, the RC8660 will  
begin recording, transmitting Rec_In_Prog every time 1024 bytes  
has been written to the recording memory.  
The first six bytes transmitted contain information about the sound file,  
including its length, sampling rate/encoding type, and tag value:  
L24 R8 T16  
where L24 is the length of the data (24 bits, least-significant byte first),  
R8 is the sampling rate/encoding type, and T16 is the 16-bit tag value.  
The lower-seven bits of R8 convey the sampling rate fs:  
To stop or pause recording  
1) To stop recording, issue the Stop (CTRL+X) command. The  
RC8660 will transmit No_Error to acknowledge it has stopped.  
fs = 617000/(155R7) Hz  
2) To pause recording, pull the SUSP0# pin Low.  
while the high bit specifies the encoding type: 0 = PCM, 1 = ADPCM.  
For example,  
Real Time ꢂudio ꢅlayback (n#/n%)  
This mode allows audio samples to be written directly to the RC8660’s  
digital-to-analog converter via the serial or parallel port. All data sent to  
the RC8660 is routed directly to the RC8660’s internal audio buffer;  
the RC8660 then outputs samples from the buffer to the DAC at the  
rate programmed by n. Because the audio data is buffered within the  
RC8660, the output sampling rate is independent of the data rate into  
the RC8660, as long as the input rate is equal to or greater than the  
programmed sampling rate.  
45h 23h 01h CEh 07h 00h  
indicates a sound file of 12345h bytes length, 8000 Hz sampling rate,  
ADPCM encoding, and a tag value of 7. The 12345h data bytes im-  
mediately follow the six-byte header.  
Download Sound ꢃibrary (223W)  
This command is generally only found in sound libraries created with  
RCStudio. It initiates the download of the sound library (essentially a  
collection of sound files) to the RC8660.  
The RC8660 supports PCM and ADPCM audio data formats. RC  
Systems’ RCStudio software can convert standard Windows wave  
files to PCM and ADPCM formats for use with the RC8660. ADPCM  
compression yields data files that are half the size of PCM files, thereby  
reducing the required data bandwidth and storage requirements.  
ꢄnitialize Recording Memory (214W)  
This command formats the RC8660’s recording memory so that it can  
be used for storing sound files. This must be done before the initial use  
of the recording memory, unless a sound library has been previously  
downloaded, which also initializes the recording memory. The com-  
mand can also be used as an “erase all files” function, if desired.  
The output sampling rate can be programmed to any rate between  
4 and 11 kHz (32,000-88,000 bps) by choosing the appropriate pa-  
rameter value. The relationship between the command parameter n  
and the sampling rate fs is  
During the initialization process, the CTS# pin will go High and one or  
more Erase_In_Prog messages (Table 2.6) will be transmitted from the  
TXD pin. Completion is indicated by CTS# going Low and the trans-  
mission of Erase_Ok from the TXD pin. Note that this process can take  
some time, depending on the size of the recording memory.  
n = 155617/fs  
fs = 617/(155n)  
where fs is measured in kHz. For example, to program an 8 kHz sam-  
pling rate, choose n = 78. The range of n is 099, therefore fs can  
range from 4 to 11 kHz.  
The following procedure should be used for sending PCM or ADPCM  
audio data to the RC8660 in real time:  
Making a Recording  
Recording to the RC8660 requires setting up the A/D converter for the  
desired recording mode and issuing the Record command.  
NOTE If the sound file was created with RCStudio, simply transfer  
the file to the RC8660; the following steps should not be used. These  
sound files include the appropriate playback command in the header  
and 80h at the end of the file. However, the serial port’s baud rate must  
be programmed for 115,200 baud in order for the data stream to be  
able to keep up with the RC8660.  
To begin recording  
1) Program the ADC for the desired input channel (CH), SWP = TRG  
= 0, and INH = 1. To record continuously, such as a voice memo,  
program CONT = 1. To record only 16 samples of the input chan-  
nel (data logging mode), program CONT = 0.  
1) Program the desired volume level with the Volume (nV) command.  
A volume setting of 5 will cause the data to be played back at its  
original volume level. This step is optional.  
2) Issue the Record command nLmmmmm. N programs the desired  
sampling rate fs, where n = 155617/fs and 4 fs 11 kHz (0 n  
ꢁꢇ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
2) Issue the Real Time Audio Playback command n# if PCM data  
is being sent, or n% for ADPCM data. The RC8660 expects the  
audio data to immediately follow the command; therefore, be sure  
not to terminate the command with a CR or NUL. The TS pin and  
TS flag will be asserted at this time.  
a pulse train rich in harmonic energy, which sounds more interesting  
than pure sinusoids in music applications.  
NOTE The musical tone generator output is available only from the  
AO pins. Digital audio output from the DAOUT pin is not possible.  
The musical tone generator is activated with the J command (no pa-  
rameter). Once activated, all data output to the RC8660 is directed to  
the musical tone generator.  
3) If the RC8660’s serial port is being used for transferring the audio  
data and the port is not already running at 115,200 baud, change  
the host system’s baud rate to 115,200 baud at this time.  
NOTE The RC8660 expects the tone generator data to immediately  
follow the J command; therefore, be sure not to terminate the com-  
mand with a CR or NUL.  
4) Begin transferring the audio data to the RC8660. The same meth-  
ods employed for sending any other type of data to the RC8660  
should be used. Note that the DAC will not begin taking samples  
from the audio buffer until at least 100 bytes have been sent or the  
value 80h is sent, whichever occurs first.  
The musical tone generator is controlled with four, four-byte data and  
command frames, called Initialize, Voice, Play, and Quit (Figure  
2.3). With these, the volume, duration, and frequencies of the three  
voices can be controlled.  
5) After the last byte of audio data has been sent to the RC8660, send  
the value 80h (128). This signals the RC8660 to terminate Real  
Time Audio Playback mode and return to the text-to-speech mode  
of operation. Note that up to 2048 bytes of data may still be in the  
audio buffer, so the RC8660 may continue producing sound for as  
long as 0.5 second (at 4 kHz sampling rate) after the last byte of  
data has been sent. The TS pin/TS flag will not be cleared until all  
of the audio data has been output to the DAC, at which time the  
RC8660 will again be able to accept data from the host.  
ꢄnitialize Command  
The Initialize command sets up the tone generator’s relative amplitude  
and tempo (speed). The host must issue this command to initialize the  
tone generator before sending any Voice frames. The Initialize com-  
mand may, however, be issued anytime afterward to change the volume  
or tempo on the fly.  
If the host’s serial port baud rate was changed in step 3, it should  
now be changed back to its original value.  
Initialize command format  
The Initialize command consists of a byte of zero and three parameters.  
The parameters are defined as follows:  
KA  
KTL  
KTH  
Voice amplitude (1-255)  
Tempo, low byte (0-255)  
Tempo, high byte (0-255)  
TOꢁꢀ GꢀꢁꢀRꢂTORS  
The RC8660 contains three tone generators: musical, sinusoidal, and  
DTMF (Touch-Tone).  
The range of the tempo KT (KTL and KTH) is 1-65,535 (1FFFFh); the  
larger the value, the slower the overall speed of play. The amplitude and  
tempo affect all three voices, and stay in effect until another Initialize  
command is issued. If the command is issued between Voice frames to  
change the volume or tempo on the fly, only the Voice frames following  
the command will be affected.  
MꢆSꢄCꢂꢃ TOꢁꢀ GꢀꢁꢀRꢂTOR  
The musical tone generator is capable of producing three tones (voices)  
simultaneously, and works well in applications which require neither  
precise frequencies nor a “pure” (low distortion) output. The output is  
ꢜꢂꢎꢐ  
 
ꢙꢚ  
ꢙꢛ  
ꢔ  
ꢊ  
ꢕ  
ꢖ  
ꢗꢇꢍꢎꢍꢁꢀꢍꢘꢐꢃꢄꢅꢆꢆꢁꢇꢈ  
ꢏꢅꢍꢄꢐꢃꢑꢒꢁꢆꢐ  
ꢋꢌꢍꢎꢃꢄꢅꢆꢆꢁꢇꢈ  
�ꢀꢁꢂꢃꢄꢅꢆꢆꢁꢇꢈ  
Figure 2.3. Musical Tone Generator Command Formats  
ꢁꢈ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
For example, the Voice frame  
Voice Frame  
Voice frames contain the duration and frequency (pitch) information  
for each voice. All Voice frames are stored in an 8 KB buffer within  
the RC8660, but are not played until the Play command is issued. If  
the number of Voice frames exceeds 8 KB in length, the RC8660 will  
automatically begin playing the data.  
24,64,0,0  
plays Middle C using voice 1 (K1 = 64). Since K2 and K3 are zero,  
voices 2 and 3 will be silent during the frame. The duration of the note  
is a function of both the tempo KT and duration KD, which in this case  
is 24.  
Voice frame format  
Voice frames are composed of three frequency time constants (K1-K3)  
and a duration byte (KD), which specifies how long the three voices are  
to be played.  
As another example,  
48,64,51,43  
plays a C-E-G chord, for a duration twice as long as the previous ex-  
ample.  
The relationship between the time constant Ki and the output frequency  
fi is:  
Choosing note durations and tempo  
fi = 16,768/Ki  
Table 2.8 lists the recommended KD values for each of the standard  
musical note durations. This convention permits shorter (1/64th note)  
and intermediate note values to be played accurately. This is important  
when, for example, a thirty-second note is to be played staccato, or a  
note is dotted (multiplying its length by 1.5).  
where fi is in Hertz and Ki = 4-255. Setting Ki to zero will silence voice  
i during the frame.  
KD may be programmed to any value between 1 and 255; the larger it  
is made, the longer the voices will play during the frame.  
Using the suggested values, it turns out that most musical scores sound  
best when played at a tempo of 255 or faster (i.e., KTH = 0). Of course,  
the “right” tempo is the one that sounds the best.  
The task of finding Ki for a particular musical note is greatly simplified  
by using Table 2.7. The tone generator can cover a four-octave range,  
from C two octaves below Middle C (Ki = 255), to D two octaves above  
Middle C (Ki = 14). Ki values less than 14 are not recommended.  
Note Duration  
Whole  
KD  
Note  
Ki  
Note  
Ki  
57 (39h)  
192 (C0h)  
96 (60h)  
48 (30h)  
24 (18h)  
12 (0Ch)  
6 (06h)  
C
255 (FFh)  
241 (F1h)  
228 (E4h)  
215 (D7h)  
203 (CBh)  
192 (C0h)  
181 (B5h)  
171 (ABh)  
161 (A1h)  
152 (98h)  
144 (90h)  
136 (88h)  
128 (80h)  
121 (79h)  
114 (72h)  
107 (6Bh)  
101 (65h)  
96 (60h)  
D
Half  
C#  
D
D#  
E
D#  
E
54 (36h)  
51 (33h)  
48 (30h)  
45 (2Dh)  
43 (2Bh)  
40 (28h)  
38 (26h)  
36 (24h)  
34 (22h)  
32 (20h)  
30 (1Eh)  
28 (1Ch)  
27 (1Bh)  
25 (19h)  
24 (18h)  
23 (17h)  
21 (15h)  
20 (14h)  
19 (13h)  
18 (12h)  
17 (11h)  
16 (10h)  
15 (0Fh)  
14 (0Eh)  
Quarter  
Eighth  
F
Sixteenth  
Thirty-second  
F#  
G
G#  
A
A#  
B
F
F#  
G
G#  
A
A#  
B
Table 2.8. Musical ꢁote Duration/ꢇ Values  
D
C
ꢅlay Command  
C#  
D
D#  
E
The Play command causes the voice data in the input buffer to begin  
playing. Additional Initialize commands and Voice frames may be sent  
to the RC8660 while the tone generator is operating. The TS pin and  
TS flag are asserted at this time, enabling the host to synchronize to  
the playing of the tone data. TS becomes inactive after all of the data  
has been played.  
C
C#  
D
D#  
E
F
F#  
G
G#  
A
A#  
B
F
F#  
G
G#  
A
A#  
B
C-Mid  
90 (5Ah)  
85 (55h)  
81 (51h)  
76 (4Ch)  
72 (48h)  
68 (44h)  
Quit Command  
The Quit command marks the end of the tone data in the input buffer.  
The RC8660 will play the contents of the buffer up to the Quit com-  
mand, then return to the text-to-speech mode that was in effect when  
the tone generator was activated. Once the Quit command has been  
issued, the RC8660 will not accept any more data until the entire buf-  
fer has been played.  
C
C#  
D
64 (40h)  
C#  
60 (3Ch)  
Table 2.7. Musical ꢁote ꢅitch/ꢇ Values  
i
ꢂ0  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
The astute reader may have noticed some “non-standard” note du-  
rations in the DATA statements, such as the first two Voice frames in  
line 240. According to the original music, some voices were not to be  
played as long as the others during the beat. The F-C-F notes in the  
first frame are held for 46 counts, while the low F and C in the second  
frame are held for two additional counts. Adding the duration (first and  
fifth) bytes together, the low F and C do indeed add up to 48 counts (46  
+ 2), which is the standard duration of a quarter note.  
ꢀxample Tune  
The Basic program shown in Figure 2.4 reads tone generator data from  
a list of DATA statements and LPRINTs each value to the RC8660.  
The program assumes that the RC8660 is connected to a PC’s printer  
port, although output could be redirected to a COM port with the DOS  
MODE command.  
100 LPRINT  
' ensure serial port baud rate is locked  
110 LPRINT CHR$(1);"J"; ' activate tone generator  
120 READ B0,B1,B2,B3  
' read a frame (4 bytes)  
130 LPRINT CHR$(B0); CHR$(B1); CHR$(B2); CHR$(B3);  
140 IF B0 + B1 + B2 + B3 > 0 THEN 120 ' loop until Quit  
150 END  
160 '  
170 '  
180 ' Data Tables:  
190 '  
200 ' Init (volume = 255, tempo = 86)  
210 DATA 0,255,86,0  
220 '  
230 ' Voice data  
240 DATA 46,48,64,192, 2,0,64,192, 48,48,0,0, 48,40,0,0, 48,36,0,0  
250 DATA 94,24,34,0, 2,24,0,0, 24,0,36,0, 24,0,40,0, 48,0,48,0  
260 DATA 48,40,0,192, 46,36,0,0, 2,0,0,0, 48,36,0,0, 48,24,34,0  
270 DATA 46,24,34,0, 2,0,34,0, 46,24,34,0, 2,24,0,0, 24,0,36,0  
280 DATA 24,0,40,0, 48,0,48,0  
290 '  
300 ' Play, Quit  
310 DATA 0,0,1,1, 0,0,0,0  
Figure 2.4. ꢀxample Musical Tone Generator ꢅrogram  
SꢄꢁꢆSOꢄDꢂꢃ TOꢁꢀ GꢀꢁꢀRꢂTOR  
DTMF TOꢁꢀ GꢀꢁꢀRꢂTOR  
The sinusoidal tone generator generates two sinusoidal waveforms  
simultaneously. Applications for this generator range from generating  
simple, precise tones to telephone call-progress tones (such as a dial  
tone or busy signal). The frequency range is 0 to 4400 Hz with a reso-  
lution of 10 Hz.  
The DTMF (Touch-Tone) tone generator generates the 16 standard  
tone pairs commonly used in telephone systems. Each tone is 100 ms in  
duration, followed by a 100 ms inter-digit pausemore than satisfying  
telephone signaling requirements (both durations can be extended to  
500 ms by setting the DDUR bit of the Protocol Options Register). The  
DTMF generator is activated with the command n*, where n is an ASCII  
number between 0 and 16. The mapping of the command parameter n  
to the buttons on a standard telephone is shown in Table 2.9.  
The sinusoidal tone generator is activated with the command  
nJaaaabbbb. N specifies the tone duration in 10 ms increments, be-  
tween 1 and 59999. A and b specify the frequencies of generator 1 and  
generator 2, respectively. Note that all eight digits for a and b must  
be included in the command. For example, the command  
The “pause” tone can be used to generate longer inter-digit delays  
in phone number strings, or to create precise silent periods in the  
RC8660’s output. The generator’s output level can be adjusted with  
the Volume command (nV). DTMF commands may be intermixed with  
text and other commands without restriction.  
CTRL+A "100J03500440"  
generates a 350/440 Hz tone pair (a dial tone) for 1 second.  
ꢂꢀ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
The Timeout parameter n specifies the number of 200 millisecond  
periods in the delay time, which can range from 200 milliseconds to 3  
seconds. The default value is 0Y, which disables the timer.  
n
Button  
0
.
0
.
Sleep Timer (nQ)  
.
.
The sleep timer is used to force the RC8660 into Standby mode after  
a programmed time interval. For example, the RC8660 can power  
down automatically if the user forgets to turn off the power at the end  
of the day. An audible “reminder” tone can even be programmed to  
sound every ten minutes to remind the user that the power was left on,  
before shutdown occurs.  
9
9
10  
11  
12  
13  
14  
15  
16  
*
#
A
B
The sleep timer is stopped and reset whenever the RC8660 is active,  
and begins running when the RC8660 enters Idle mode. In this way,  
the RC8660 will not shut itself down during normal use, as long as  
the programmed timer interval is longer than the maximum time the  
RC8660 is inactive.  
C
D
pause  
Table 2.9. DTMF Dialer Button Map  
The command parameter n determines when Standby mode will be  
entered. You can place the RC8660 in Standby mode immediately,  
program the sleep timer to any of 15 ten-minute intervals (10 to 150  
minutes), or disable the sleep timer altogether (Table 2.11).  
RC8660 COꢁTROꢃ  
Volume (nV)  
Note that the delay interval is simply n x 10 minutes for 0 < n < 16.  
Adding 16 to these values (16 < n < 32) also enables the reminder  
tone, which sounds at the end of each ten minute interval. Program-  
ming n = 0 disables the sleep timer, which is the default setting. Set-  
ting n = 16 forces the RC8660 to enter Standby mode as soon as all  
output has ceased.  
This is a global command that controls the RC8660’s output volume  
level, from 0V through 9V. 0V yields the lowest possible volume; max-  
imum volume is attained at 9V. The default volume is 5V. The Volume  
command can be used to set a new listening level, create emphasis in  
speech, or change the output level of the tone generators.  
If the sleep timer is allowed to expire, the RC8660 will emit the ASCII  
character “p” from the TXD pin and the STBY status flag will be set to  
1, just before entering Standby mode. This enables the host to detect  
that the RC8660 has entered Standby mode.  
Timeout Delay (nꢈ)  
The RC8660 defers translating the contents of its input buffer until a  
CR or NUL is received. This ensures that text is spoken smoothly from  
word to word and that the proper intonation is given to the beginnings  
and endings of sentences. If text is sent to the RC8660 without a CR or  
NUL, it will remain untranslated in the input buffer indefinitely.  
Once the RC8660 has entered Standby mode, it can be re-awakened  
only by a hardware reset or by driving the STBY# pin low for 250  
ns or longer, then High again. All of the RC8660 handshake signals  
(BUSY, CTS#, and RDY#) are forced to their “not ready” states while  
the RC8660 is in Standby.  
The RC8660 contains a programmable timer that is able to force the  
RC8660 to translate its buffer contents after a preset time interval. The  
timer is enabled only if the Timeout Delay parameter n is non-zero, the  
RC8660 is not active (not talking), and the input buffer contains no CR  
or NUL characters. Any characters sent to the RC8660 before timeout  
will automatically restart the timer.  
n
Delay  
0
1
Sleep timer disabled  
10 min  
n
Delay  
.
.
0
1
2
.
Indefinite (wait for CR/NUL)  
.
.
200 milliseconds  
15  
16  
17  
.
150 min  
400 milliseconds  
0 (immediate)  
.
10 min w/reminder  
.
.
.
15  
3000 milliseconds (3 sec.)  
.
.
31  
150 min w/reminder  
Table 2.10. Timeout Delays  
Table 2.11. Sleep Timer  
ꢂꢁ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
1) Write the command CTRL+A "255W".  
Download ꢀxception Dictionary (247W)  
This command initializes the RC8660’s exception dictionary and stores  
subsequent output from the host in the RC8660’s nonvolatile dictionary  
memory. The maximum dictionary size is 16 KB. The creation of ex-  
ception dictionaries is covered in detail in Section 3.  
2) Write the exact text/command sequence you want to store, up to  
234 characters. For example, the string  
CTRL+A "3S" CTRL+A "2O" "ready"  
Exception dictionaries must be compiled into the format required by  
the RC8660 before they can be used. The RCStudio software, avail-  
able from RC Systems, includes a dictionary editor and compiler for  
performing this task. Dictionaries that have been compiled with RC-  
Studio include the download command in the file header, simplifying  
the download process.  
programs the RC8660 to use voice speed 3, Big Bob’s voice, and  
say “ready” whenever it is reset.  
3) Write a NUL (ASCII 00) to terminate the command and store the  
greeting in the RC8660’s greeting memory.  
The RCStudio software, available from RC Systems, can create and  
download greeting messages for you. The 255W command and termi-  
nating NUL are embedded within the greeting message file, simplifying  
the download process  
ꢀnable ꢀxception Dictionary (ꢆ)  
The exception dictionary is enabled with this command. If the RC8660  
is in Phoneme mode, or if an exception dictionary has not been loaded,  
the command will have no effect. The exception dictionary can be dis-  
abled by issuing one of the mode commands D, T, or C.).  
ꢅrotocol Options Register (nG)  
This command controls various internal RC8660 operating parame-  
ters. See Table 2.12 for the definition of each register bit. The default  
register setting is 144G.  
Write Greeting Message (255W)  
Anytime the RC8660 is reset, an optional user-defined greeting mes-  
sage is automatically played. The message may consist of any text/com-  
mand sequence up to 234 characters in length. Modal commands can  
be included, such as tone generator and audio playback commands.  
Bit POR.7 (V86) programs the RC8660 to emulate RC Systems’  
original V8600 voice synthesizer module. When this bit is set to 0, the  
TTS parameters and ranges are adjusted to match that of the V8600.  
The serial port status messages (see Table 1.3) are also affected by the  
setting of this bit.  
To create a new greeting message, perform the following steps:  
V86  
7
SAT  
6
DDUR  
5
R50  
4
TAG  
3
R
R
1
STM  
0
2
Protocol Options Register Bit  
Description  
POR.7 = V8600 COMPATIBILITY (V86)  
1 = Compatibility disabled  
0 = Compatibility enabled  
Emulates RC Systems’ V8600 voice synthesizer module when set to “0.” Overall voice speed  
range and serial port status responses are adjusted to that of the V8600. Default: “1” (in the  
V8600A module, this bit defaults to “0”).  
POR.6 = SATURATE (SAT)  
1 = Parameters saturate  
0 = Parameters wrap  
Determines whether command parameters wrap or saturate when their range has been ex-  
ceeded. Default: “0.”  
POR.5 = DTMF DURATION (DDUR)  
1 = 500 ms  
Determines DTMF (Touch-Tone) generator burst duration. When set to “1,” tone bursts are 500  
ms long; when “0,” 100 ms. Default: “0.”  
0 = 100 ms  
POR.4 = RC8650 COMPATIBILITY (R50) Emulates RC Systems’ RC8650 chipset when set to “0.” The RC8660’s command set is  
1 = Compatibility disabled  
0 = Compatibility enabled  
adjusted to that of the RC8650, and RC8660-specific functions such as audio recording are  
disabled. Default: “1.”  
POR.3 = INDEX/TAG (TAG)  
1 = Reference by tag  
Determines whether sound library files are referenced by their record number/index (“0”) or by  
their tag value (“1”). Default: “0.”  
0 = Reference by index  
POR.2–1 = RESERVED (R)  
Reserved for future use. Write “0” to ensure future compatibility.  
POR.0 = STATUS MESSAGES (STM)  
1 = Enabled  
Enables and disables the transmission of certain status messages from the TXD pin. Default:  
“0.”  
0 = Disabled  
Table 2.12. ꢅrotocol Options Register Bit Definitions  
ꢂꢂ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
to begin. In the synchronous mode, do not attempt to read the data at  
an average rate faster than 12 kbytes/sec (DACLK = 96 kHz). At clock  
rates above this, the host must pause between reading each byte in or-  
der to keep the average transfer rate from exceeding 12 kbytes/sec.  
ꢂudio Control Register (nꢁ)  
The Audio Control Register determines whether the RC8660’s audio  
stream will be output as an analog signal on the AO pins or as serial  
digital data on the DAOUT pin. See Table 2.13 for the definition of  
each register bit. The default register setting is 0N.  
Figure 2.5 illustrates the synchronous data transfer mode. Note how  
either DARTS# or DACLK can be used to regulate the flow of data  
from the RC8660.  
In the digital audio modes, data is transferred from the DAOUT pin in  
8 bit linear, offset binary format (midscale = 80h). The DARTS# pin  
can be used to regulate the flow of datait must be Low for transfers  
AM  
7
TM  
6
DPC  
5
TF  
4
TCP  
3
BR  
BR  
1
BR  
0
2
Audio Control Register Bit  
ACR.7 = AUDIO MODE (AM)  
1 = Digital  
0 = Analog  
Description  
Set this bit to “0” to direct the audio stream to the AO pin (analog). Set the bit to “1” to  
direct output to the DAOUT pin (digital). Default: “0.”.  
ACR.6 = TRANSFER MODE (TM)  
1 = Synchronous  
0 = Asynchronous  
In the asynchronous transfer mode the data rate and timing are controlled by the in-  
ternal bit rate generator (ACR.20). Data is output on the DAOUT pin and formatted as 1  
start bit, 8 data bits (LSB first), and 1 stop bit.  
In the synchronous transfer mode the data rate and timing are controlled by the host  
with the DACLK pin. Data is output from the DAOUT pin as 8 bit data frames.  
Default: “0.”  
ACR.5 = DAOUT PIN CONTROL (DPC)  
1 = Open-drain  
0 = CMOS  
Set this bit to “1” to configure the DAOUT pin as an open-drain output, or to “0” for a  
CMOS output. The open-drain configuration should be used when wire-or’ing two or more  
DAOUT pins together. Default: “0.”  
ACR.4 = TRANSFER FORMAT (TF)  
1 = MSB first  
Set this bit to “1” to have the 8 bit data frames transmitted most-significant bit first, or to “0”  
for least-significant bit first. Valid only in the synchronous transfer mode. Default: “0.”  
0 = LSB first  
ACR.3 = TRANSFER CLOCK POLARITY  
(TCP)  
1 = Rising edge  
0 = Falling edge  
Set this bit to “1” to clock data out of the DAOUT pin on the rising edge of the DACLK  
pin, or to “0” to clock data on the falling edge. Valid only in the synchronous transfer mode.  
Default: “0.”  
ACR.2–0 = BIT RATE (BR)  
000 = 2400  
These bits determine the bit rate used in the asynchronous transfer mode. Valid only in the  
asynchronous transfer mode. Default: “000.”  
001 = 4800  
010 = 9600  
011 = 14400  
100 = 19200  
101 = 28800  
110 = 57600  
111 = 115200  
NOTES:  
1. ACR.6ACR.0 are valid only when ACR.7 = 1.  
2. ACR.4ACR.3 are valid only when ACR.7 and ACR.6 = 1.  
3. ACR.2ACR.0 are valid only when ACR.7 =1 and ACR.6 = 0.  
Table 2.13. ꢂudio Control Register Definitions  
ꢂꢃ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢈꢉꢊꢋꢉꢌꢍꢉꢋꢊꢎꢌꢏꢐꢌꢌꢐꢑꢎ  
�ꢀꢇꢃꢈꢉ  
�ꢀꢄꢅꢆ  
ꢈꢉꢑꢗꢗꢘꢙꢍꢚꢘꢛꢊꢜꢌꢘꢍ�ꢝꢕꢞꢟꢍꢌꢉꢑꢗꢗꢘꢙ  
ꢈꢉꢑꢗꢗꢘꢙꢍꢚꢘꢛꢊꢜꢌꢘꢍ�ꢝꢠꢒꢈꢡꢍꢐꢌꢍꢢꢐꢣꢤ  
�ꢀ  
�ꢁ  
�ꢂ  
�ꢃ  
�ꢄ  
�ꢅ  
�ꢆ  
�ꢇ  
�ꢇ  
�ꢆ  
�ꢅ  
�ꢄ  
�ꢃ  
�ꢂ  
�ꢁ  
�ꢀ  
�ꢀꢁꢂꢃ  
ꢒꢓꢍꢔꢍꢒꢕꢖꢍꢔꢍꢀ  
ꢒꢓꢍꢔꢍꢒꢕꢖꢍꢔꢍꢁ  
Figure 2.5. Synchronous Digital ꢂudio Transfer Timing  
Baud Rate (nꢉ)  
n
TS Mode/Polarity  
The serial port’s baud rate can be programmed to the rates listed in  
Table 2.14. If included as part of the greeting message, the command  
will effectively override the baud rate set by the BRS pins.  
0
1
2
3
Automatic/Active Low  
Automatic/Active High  
Forced Low  
Forced High  
n
Baud Rate  
Table 2.15. TS ꢅin Control  
0
1
300  
600  
2
1200  
If a TS pin is programmed High or Low, it will remain so until changed  
otherwise. This feature can be used to activate a transmitter, for ex-  
ample, before speech output has begun. In the automatic mode, the TS  
pin is asserted as soon as output begins; it will return to its false state  
when all output has ceased. Note that because RC8660 commands  
work synchronously, the TS pin will not change state until all text and  
commands, up to the TS Pin Control command, have been spoken  
and/or executed.  
3
2400  
4
4800  
5
9600  
6
19200  
Auto-detect  
38400  
57600  
115200  
7
8
9
Stop (CTRꢃ+ꢊ), Skip (CTRꢃ+ꢈ)  
10  
11  
The Stop command causes the RC8660 to stop whatever it is doing  
and flushes the input buffer of all text and commands. The Skip com-  
mand skips to the next sentence in the buffer. Neither command affects  
any of the RC8660’s settings.  
Re-read BRS3BRS0 pins  
Table 2.14. ꢅrogrammable Baud Rates  
NOTE The format of these commands is unique in that the command  
character (CTRL+A) is not used with them. The CTRL+X (ASCII  
24) and CTRL+Y (ASCII 25) characters are written directly to the  
RC8660, which enables the RC8660 to react immediately, even if  
its input buffer is full. To be most effective, the states of the RC8660  
handshaking signals should be ignored.  
TS ꢅin Control (nꢇ)  
The TS pins provide talk status information for each audio channel,  
which can be used to activate a transmitter, take a telephone off hook,  
enable an audio power amplifier, etc., at the desired time. Each pin’s  
state and polarity can be configured as shown in Table 2.15. The pro-  
gramming of the TS pins do not affect the Status Register TS flag in  
any way. The default setting is 1K.  
ꢂꢄ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢋap Commands (ꢋ)  
ꢄnterrogate (12?)  
This command retrieves the current operating settings of the RC8660.  
Table 2.16 lists the parameters in the order they are transmitted from  
the TXD pin, the command(s) that control each parameter, and each  
parameter’s range. The parameters are organized as a byte array of  
one byte per parameter, with the exception of the last two parameters  
which are 16 bits each (low byte first).  
This command prevents the RC8660 from honoring subsequent com-  
mands, causing it to read commands as they are encountered (useful  
in debugging). Any pending commands in the input buffer will still  
be honored. The only way to restore command recognition after the  
Zap command has been issued is to write CTRL+^(ASCII 30) to the  
RC8660 or perform a hardware reset.  
Reinitialize (@)  
Parameter  
Cmd  
Range  
This command reinitializes the RC8660 by clearing the input buffer  
and restoring the voice parameters and control registers to their factory  
default settings. The exception dictionary, recording memory, greeting  
message, baud rate, nor TS pin control setting are affected.  
Mode  
C/D/T 0=Char; 1=Phon; 2=Text  
PFR register  
Formant freq  
Pitch  
nB  
nF  
0-15  
0-99  
nP  
0-99  
MꢄSCꢀꢃꢃꢂꢁꢀOꢆS FꢆꢁCTꢄOꢁS  
Speed  
nS  
0-13  
Volume  
nV  
0-9  
ꢄndex Marker (nꢄ)  
Index markers are nonspeaking “bookmarks” that can be used to keep  
track of where the RC8660 is reading within a passage of text. The  
parameter n is any number between 0 and 255; thus, up to 256 unique  
markers may be active at any given time.  
Tone  
nX  
0-2  
Expression  
Dict loaded  
Dict status  
nE  
0-9  
247W  
0=not loaded; 1=loaded  
C/T/U 0=disabled; 1=enabled  
When the RC8660 has spoken the text up to a marker, it transmits the  
marker number to the host via the TXD pin. Note that this value is a  
binary number between 0 and 255, not a literal ASCII number string as  
was used in the command to place the marker. This allows the marker  
to be transmitted as a one-byte value.  
Input buffer capacity  
Articulation  
Reverb  
x256 bytes  
0-9  
nA  
nR  
nK  
nG  
nN  
0-9  
TS pin control  
POR register  
ACR register  
Rec memory capacity  
Sleep delay  
Timeout delay  
Char mode delay  
Text mode delay  
Voice  
0-3  
0-255  
0-255  
x16K bytes  
0-31  
There is no limitation to how many index markers can be used in a text  
string. The frequency depends on the resolution required by the appli-  
cation. In Text mode, for example, one marker per sentence or one  
marker per word would normally be used. In Phoneme mode, markers  
can be placed before each phoneme to monitor phoneme production,  
which is useful for synchronizing an animated mouth with the voice.  
Markers may also be placed with tone generation and recorded audio  
playback commands, if desired.  
nQ  
nY  
nC  
nT  
nO  
n$  
0-15  
0-31  
0-15  
0-10  
Chipset ꢄdentification (6?)  
ADR register  
0-255  
This command returns RC8660 system information that is used during  
factory testing. Eight bytes are transmitted via the TXD pin. The only  
information that may be of relevance to an application is the internal  
microcode revision number, which is conveyed in the last two bytes in  
packed-BCD format. For example, 41h 02h would be returned if the  
version number was 2.41.  
Free recording memory  
(16 bits)  
x256 bytes  
0-999  
# of files in recording  
memory (16 bits)  
Table 2.16. ꢅarameters Returned by ꢄnterrogate Command  
ꢂꢅ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
COMMꢂꢁD SꢆMMꢂRꢈ  
Command  
Function  
n Range  
Default n  
nA  
nB  
Articulation  
0-9  
0-15  
0-31  
5
Punctuation Filter Register  
Character mode  
Phoneme mode  
Expression  
6
C/nC  
D
0
E/nE  
nF  
0-9  
5
Formant frequency  
Protocol Options Register  
Baud rate  
0-99  
0-255  
0-11  
0-255  
50  
nG  
144  
nH  
BRS pins  
nI  
Index marker  
J
Musical tone generators  
Sinusoidal tone generators  
TS pin control  
nJ  
1-59999  
0-3  
nK  
1
nL  
Record *  
0-227  
234  
245  
234L  
245L  
M
Erase sound file *  
Upload sound file *  
Monotone  
nN  
Audio Control Register *  
Voice  
0-255  
0-10  
0-99  
0-31  
0-9  
0
0
50  
0
0
5
0
nO  
nP  
Pitch  
nQ  
Sleep timer  
nR  
Reverb  
nS  
Speed  
0-13  
0-15  
T/nT  
U
Text mode/delay  
Enable exception dictionary  
Volume  
nV  
0-9  
5
214W  
223W  
236W  
247W  
255W  
nX  
Initialize recording memory *  
Download sound library *  
Download sound file *  
Download exception dictionary *  
Write greeting message *  
Tone  
214  
223  
236  
247  
255  
0-2  
1
0
nY  
Timeout delay  
0-15  
Z
Zap commands  
Reinitialize  
@
n*  
DTMF generator  
Real time audio playback *  
Play sound file  
0-16  
0-99  
0-65534  
0-255  
6/12  
n#/n%  
n&  
n$  
ADC Control Register  
Chipset ID/Interrogate *  
Stop/Skip  
128  
n?  
CTRL+X/Y  
* Cannot be used in greeting messages.  
Table 2.17. RC8660 Command Summary  
ꢂꢆ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Section 3: exception DictionarieS  
Exception dictionaries make it possible to alter the way the RC8660  
interprets character strings it receives. This is useful for correcting mis-  
pronounced words, triggering the generation of tones and/or the play-  
back of pre-recorded sounds, or even speaking in a foreign language.  
In some cases, an exception dictionary may even negate the need of  
a text pre-processor in applications that cannot provide standard text  
strings. This section describes how to create exception dictionaries for  
the RC8660.  
Symbol  
Definition  
A vowel: a, e, i, o, u, y  
#
+
^
A front vowel: e, i, y  
A consonant: b, c, d, f, g, h, j, k, l, m, n, p, q, r, s,  
t, v, w, x, z  
*
:
One or more consonants  
The text-to-speech modes of the RC8660 utilize an English lexicon and  
letter-to-sound rules to convert text the RC8660 receives into speech.  
The pronunciation rules determine which sounds, or phonemes,  
each character will receive based on its relative position within each  
word. The integrated DoubleTalk text-to-speech engine analyzes text  
by applying these rules to each word or character, depending on the  
operating mode in use. Exception dictionaries augment this process by  
defining exceptions for (or even replacing) these built in rules.  
Zero or more consonants  
?
A voiced consonant: b, d, g, j, l, m, n, r, v, w, z  
One of: d, j, l, n, r, s, t, z, ch, sh, th  
One of: b, c, d, f, g, p, t  
@
!
%
A suffix: able(s), ably, e(s), ed(ly), er(s), ely, eless,  
ement(s), eness, ing(s), ingly (must also be followed  
by a non- alphabetic character)  
Exception dictionaries can be created and edited with a word processor  
or text editor that stores documents as standard text (ASCII) files. How-  
ever, the dictionary must be compiled into the internal format used by  
the RC8660 before it can be used. The RCStudio software, available  
from RC Systems, includes a dictionary editor and compiler.  
&
$
A sibilant: c, g, j, s, x, z, ch, sh  
A nonalphabetic character (number, space, etc.)  
~
One or more non-printing characters (spaces, con-  
trols, line breaks, etc.)  
\
|
`
A digit: 0-9  
ꢀꢊCꢀꢅTꢄOꢁ SꢈꢁTꢂꢊ  
Exceptions have the general form  
One or more digits  
Wildcard (matches any character)  
L(F)R=P  
which means “the text fragment F, occurring with left context L  
and right context R, gets the pronunciation P.” All three parts of  
the exception to the left of the equality sign must be satisfied before  
the text fragment will receive the pronunciation given by the right side  
of the exception.  
Table 3.1. Context Tokens  
The right side of an exception (P) specifies the pronunciation that the  
text fragment is to receive, which may consist of any combination of  
phonemes (Table 2.1), phoneme attribute tokens (Table 2.2), and com-  
mands (Table 2.17). Using the tone generator and pre-recorded audio  
playback commands, virtually limitless combinations of speech, tones,  
and sound effects can be triggered from any input text pattern. If no  
pronunciation is given, no sound will be given to the text fragment; the  
text fragment will be silent.  
The text fragment defines the input characters that are to be translated  
by the exception, and may consist of any combination of letters, num-  
bers, and symbols. Empty (null) text fragments may be used to generate  
sound based on a particular input pattern, without actually translating  
any of the input text. The text fragment (if any) must always be con-  
tained within parentheses.  
A dictionary file may also contain comments, but they must be on lines  
by themselves (i.e., they cannot be on the same line as an exception).  
Comment lines must begin with a semicolon character (;), so the com-  
piler will know to skip over them.  
Characters to the left of the text fragment specify the left context (what  
must come before the text fragment in the input string), and characters  
to the right define the right context. Both contexts are optional, so  
an exception may contain neither, either, or both contexts. There are  
also 15 special symbols, or context tokens, that can be used in an  
exception’s context definitions (Table 3.1).  
An example of an exception is  
C(O)N=AA  
Note that although context tokens are, by definition, valid only within  
the left and right context definitions, the wildcard token may also be  
used within text fragments. Any other context token appearing within  
a text fragment will be treated as a literal character.  
which states that o after c and before n gets the pronunciation AA, the  
o-sound in cot. For example, the o in conference, economy, and icon  
would be pronounced according to this exception.  
ꢂꢇ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
(O)+=OW  
(O)=UW  
Another example is  
$R(H)=  
The first exception states that o followed by e, i, or y is to be pro-  
nounced OW, the o-sound in boat. The second exception does not  
place any restriction on what must come before or after o, so o in  
any context will receive the UWpronunciation. If the exceptions were  
reversed, the (O)+exception would never be reached because the (O)  
exception will always match o in any context. In general, tightly-defined  
exceptions (those containing many context restrictions) should precede  
loosely-defined exceptions (those with little or no context definitions).  
which states that h after initial r is silent, as in the word rhyme (the $  
context token represents any non-alphabetic character, such as a space  
between words; see Table 3.1).  
Punctuation, numbers, and most other characters can be redefined with  
exceptions as well:  
(5)=S I NG K O  
(Spanish five)  
(CHR$)=K EH R IX K T ER  
(Basic function)  
(RAT)=R AE T  
(RATING)=R EY T IH NG  
(R)=R  
Tꢉꢀ TRꢂꢁSꢃꢂTꢄOꢁ ꢂꢃGORꢄTꢉM  
In order to better understand how an exception dictionary works, it  
is helpful to understand how the DoubleTalk text-to-speech engine  
processes text.  
This is an example of how not to organize exceptions. The exception  
(RATING)will never be used because (RAT)will always match first.  
According to these exceptions, the word rating would be pronounced  
“rat-ing.”  
Algorithms within the DoubleTalk engine analyze input text a character  
at a time, from left to right. A list of pronunciation rules is searched se-  
quentially for each character until a rule is found that matches the char-  
acter in the correct position and context. The algorithm then passes  
over the input character(s) bracketed in the rule (the text fragment), and  
assigns the pronunciation given by the right side of the rule to them.  
This process continues until all of the input text has been converted to  
phonetic sounds.  
It can be beneficial to group exceptions by the first character of the  
text fragments, that is, all of the A exceptions in one group, all the B  
exceptions in a second group, and so on. This gives an overall cleaner  
appearance, and can prove to be helpful if the need arises to trouble-  
shoot any problems in your dictionary.  
TꢀꢊT ꢁOT MꢂTCꢉꢀD Bꢈ Tꢉꢀ DꢄCTꢄOꢁꢂRꢈ  
The following example illustrates how the algorithm works by trans-  
It is possible that some input text may not match anything in a dic-  
tionary, depending on the nature of the dictionary. For example, if a  
dictionary was written to handle unusual words, only those words would  
be included in the dictionary. On the other hand, if a dictionary defined  
the pronunciation for another language, it would be comprehensive  
enough to handle all types of input. In any case, if an exception is  
not found for a particular character, the English pronunciation will  
be given to that character according to the built in pronunciation  
rules.  
lating the word receive.  
The algorithm begins with the letter r and searches the R pronunciation  
rules for a match. The first rule that matches is $(RE)^#=R IX, be-  
cause the r in receive is an initial r and is followed by an e, a consonant  
(c), and a vowel (e). Consequently, the text fragment re receives the  
pronunciation R IH, and the scan moves past re to the next character:  
receive. (E is not the next scan character because it occurred inside the  
parentheses with the r; the text fragment re as a whole receives the  
pronunciation R IX)  
Generally, the automatic switchover to the built in rules is desirable if the  
dictionary is used to correct mispronounced words, since by definition  
the dictionary is defining exceptions to the built in rules. If the automatic  
switchover is not desired, however, there are two ways to prevent it  
from occurring. One way is to end each group of exceptions with an  
unconditional exception that matches any context. For example, to  
ensure that the letter “a” will always be matched, end the A exception  
group with the exception (A)=pronunciation. This technique works  
well to ensure matches for specific characters, such as certain letters  
or numbers.  
The first match among the C rules is (C)+=S, because c is followed  
by an e, i, or y. C thus receives the pronunciation S, and processing  
continues with the second e: receive.  
(EI)=IYis the first rule to match the second e, so ei receives the sound  
IY. Processing resumes at the character receive, which matches the  
default V rule, (V)=V.  
The final e matches the rule #:(E)$=, which applies when e is final  
and follows zero or more consonants and a vowel. Consequently, e  
receives no sound and processing continues with the following word  
or punctuation, if any. Thus, the entire phoneme string for the word  
receive is R IX S IY V.  
If the exception dictionary is to replace the built in rules entirely, end  
the dictionary with the following exception:  
()=  
This special exception causes unmatched characters to be ignored  
(receive no sound), rather than receive the pronunciation defined by  
the built in rules.  
Rꢆꢃꢀ ꢅRꢀCꢀDꢀꢁCꢀ  
Since DoubleTalk uses its translation rules in a sequential manner, the  
position of each exception relative to the others must be carefully con-  
sidered. For example, consider the following pair of exceptions:  
ꢂꢈ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢀFFꢀCT Oꢁ ꢅꢆꢁCTꢆꢂTꢄOꢁ  
When ꢋero ꢄsn’t Really ꢋero  
Punctuation defined in the exception dictionary has priority over the  
Punctuation Filter command. Any punctuation defined in the dictionary  
will be used, regardless of the Punctuation Filter setting.  
When reading addresses or lists of numbers, the word “oh” is often sub-  
stituted for the digit 0. For example, we might say 1020 North Eastlake  
as “one oh two oh North Eastlake.” The digit 0 can be redefined in this  
manner with the following exception:  
NOTE If the dollar sign character ($) is defined within the text frag-  
ment of any exception, currency strings will not be read as dollars and  
cents.  
(0)=OW  
ꢂcronyms and ꢂbbreviations  
Acronyms and abbreviations can be defined so the words they represent  
will be spoken.  
CꢉꢂRꢂCTꢀR MODꢀ ꢀꢊCꢀꢅTꢄOꢁS  
Exceptions are defined independently for the Character and Text  
modes of operation. The beginning of the Character mode exceptions  
is defined by inserting the letter Cjust before the first Character mode  
exception. No exceptions prior to this marker will be used when the  
RC8660 is in Character mode, nor will any exceptions past the marker  
be used in Text mode. For example:  
$(KW)$=K IH L AH W AA T  
$(DR)$=D AA K T ER  
$(TV)$=T EH L AX V IH ZH IX N  
String ꢅarsing & Decryption  
Sometimes the data that we would like to have read is not available in  
a “ready-to-read” format. For example, the output of a GPS receiver  
may look something like this:  
.
(Text mode exceptions)  
.
()=  
(optional; used if built in rules are not to be  
used in no-match situations)  
$GPGGA,123456,2015.2607,N,...  
The first 14 characters of the string consists of a fixed header and vari-  
able time data, which we would like to discard. The following exception  
ensures that the header will not be read:  
C
(Character mode exceptions marker)  
(Character mode exceptions)  
.
.
.
($GPGGA,``````,)=  
()=  
(optional; used if built in rules are not to be  
used in no-match situations)  
Note how wildcard tokens are used for handling the time data (8th13th  
characters), since the content of this field is variable.  
The 15th16th and 17th18th characters represent the latitudinal  
coordinate in degrees and minutes, respectively. The three exceptions  
shown below handle the latitudinal component of the GPS string. Note  
in the first exception how a null text fragment is used in the appropri-  
ate position to generate the word “degrees,” without actually translating  
any of the input characters.  
ꢂꢅꢅꢃꢄCꢂTꢄOꢁS  
The following examples illustrate some ways in which the exception  
dictionary can be used.  
Correcting Mispronounced Words  
Correcting mispronounced words is the most common application for  
exception dictionaries.  
,\\()\\.=D IX G R IY Z , ,  
(.)=M IH N IH T S , ,  
(,N,)=N OW R TH  
L AE T IH T UW D  
S(EAR)CH=ER  
The four exceptions together will translate the example string as “20  
degrees, 15 minutes, north latitude.” (Additional exceptions for han-  
dling the seconds component, and digits themselves, are not shown  
for clarity).  
$(OK)$=OW K EY  
The first exception corrects the pronunciation of all words containing  
search (search, searched, research, etc.). As this exception illustrates,  
it is only necessary to define the problem word in its root form, and  
only the part of the word that is mispronounced (ear, in this case). The  
second exception corrects the word ok, but because of the left and right  
contexts, will not cause other words (joke, look, etc.) to be incorrectly  
translated.  
ꢉeteronyms  
Heteronyms are words that have similar spellings but are pronounced  
differently, depending on the context, such as read (“reed” and “red”)  
and wind (“the wind blew” and “wind the clock”). Exceptions can be  
used to fix up these ambiguities, by including non-printing (Control)  
characters in the text fragment of the exception.  
ꢁo Cussing, ꢅlease  
The reading of specific characters or words can be suppressed by writ-  
ing exceptions in which an alternate pronunciation is given.  
Suppose a line of text required the word “close” to be pronounced as  
it is in “a close call,” instead of as in “close the window.” The following  
exception changes the way the s will sound:  
(????)= (YOU fill in the blanks!)  
(????)=CTRL+A 30j10000000  
(CTRL+D CLOSE)=K L OW S  
The first example simply says nothing when the defined word is encoun-  
tered, whereas a 1 kHz tone is played in the second example.  
ꢃ0  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Note the CTRL+D character (ASCII code 04) in the text fragment.  
CTRL+D is a non-printing character, but the translation algorithms  
treat it as they would any printing character. Thus, the string “CTRL+D  
close” will be pronounced with the s receiving the “s” sound. “Close”  
without the CTRL+D will be unaffectedthe s will still receive the  
“z” sound. It does not matter where you place the Control character  
in the word, as long as you use it the same way in your application’s  
text. You may use any non-printing character (except LF and CR) in  
this manner.  
For example, by connecting the four control bits to DB0 through DB3,  
DB4 and DB5 to VCC, DB6 and DB7 to ground and the strobe to WR#,  
ASCII codes 30h through 3Fh (corresponding to the digits “0” through  
“9” and the six ASCII characters following them) can be generated by  
the four control bits. Message strings would then be assigned to each of  
these ASCII characters. For example, you could make the character “0”  
(corresponding to all four control bits = 0) say, “please insert quarter,”  
with the following dictionary entry:  
(0)=P L IY Z  
IH N S ER T  
K W OW R T ER  
The Timeout timer should also be activated (1Y, for example) in order  
for the “message” to be executed. Otherwise, the RC8660 will wait  
indefinitely for a CR/NUL character that will never come. The timer  
command could be included in the greeting message.  
ꢁon-ꢀnglish ꢃanguages  
Dictionaries can be created that enable the RC8660 to speak in lan-  
guages other than English. It’s not as difficult as it may seemin most  
cases all that is required is a pronunciation guide and a bit of patience.  
If you don’t have a pronunciation guide for the language you’re inter-  
ested in, check your local library. Most libraries have dictionaries for  
other languages that include pronunciation guides, which make it easy  
to transcribe the pronunciation rules into exception form. A good ex-  
ample of an exception dictionary for the Spanish language is included  
with RCStudio.  
TꢄꢅS  
Make sure that your exceptions aren’t so broad in nature that they  
do more harm than good. Exceptions intended to fix broad classes  
of words, such as word endings, are particularly notorious for ruining  
otherwise correctly pronounced words.  
ꢃanguage Translation  
Take care in how your exceptions are organized. Remember, an ex-  
ception’s position relative to others is just as important as the content  
of the exception itself.  
Exception dictionaries even allow text written in one language to be  
read by the RC8660 in yet another language, as long as the vocabulary  
is limited. The following exceptions demonstrate how this can be done  
with three example Spanish/English words.  
When Things Don’t Work as ꢀxpected  
On rare occasions, an exception may not work as expected. This occurs  
when the built in pronunciation rules get control before the exception  
does. The following example illustrates how this can happen.  
(GRANDE)=L AA R J  
(BIEN)=F AY N  
(USTED)=YY UW  
The sense of translation can also be reversed:  
Suppose an exception redefined the o in the word “process” to have  
the long “oh” sound, the way it is pronounced in many parts of Can-  
ada. Since the word is otherwise pronounced correctly, the exception  
redefines only the “o:”  
(LARGE)=G RR A N D EI  
(FINE)=B I EI N  
(YOU)=U S T EI DH  
PR(O)CESS=OW  
Message Macros  
But much to our horror, the RC8660 simply refuses to take on the new  
Canadian accent.  
Certain applications may not be able to send text strings to the  
RC8660. An example of such an application is one that is only able  
to output a four bit control word and strobe. Sixteen unique output  
combinations are possible, but this is scarcely enough to represent the  
entire ASCII character set.  
It so happens that the RC8660 has a built in rule which looks some-  
thing like this:  
$(PRO)=P R AA  
You can, however, assign an entire spoken phrase to a single ASCII  
character with the exception dictionary. By driving four of the data bus  
lines of the bus interface (see Figure 1.7) and hardwiring the remaining  
four to the appropriate logic levels, virtually any set of 16 ASCII  
characters can be generated, which in turn can be interpreted by the  
exception dictionary.  
This rule translates a group of three characters, instead of only one as  
most of the built in rules do. Because the text fragment PROis translated  
as a group, the o is processed along with the initial “pr,” and conse-  
quently the exception never gets a shot at the o.  
If you suspect this may be happening with one of your exceptions, in-  
clude more of the left-hand side of the word in the text fragment (in the  
example above, (PRO)CESS=P R OWwould work).  
ꢃꢀ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Section 4: rc8660 evaluation Kit  
The RC8660 Evaluation Kit comes with everything required to evaluate  
and develop applications for the RC8660 chipset using a Windows-  
based PC. The included RCStudio™ software provides an integrated  
development environment with the following features:  
ꢀVꢂꢃꢆꢂTꢄOꢁ ꢇꢄT COꢁTꢀꢁTS  
The following components are included in the DoubleTalk RC8660  
Evaluation Kit:  
•ꢀ Printed circuit board containing the RC8660-1 chipset  
•ꢀ AC power supply  
•ꢀ Read any text, either typed or from a file  
•ꢀ Easy access to the various RC8660 voice controls  
•ꢀ Manage collections of sound files and store them in the RC8660  
•ꢀ Exception dictionary editor/compiler, and much more...  
•ꢀ Speaker  
•ꢀ Serial cable  
•ꢀ RCStudio™ development software CD  
The evaluation board can also be used in stand-alone environments by  
simply printing the desired text and commands to it via the onboard  
RS-232 serial or parallel ports.  
ꢀVꢂꢃ BOꢂRD OꢆTꢃꢄꢁꢀ  
ꢅ�ꢌꢎꢏꢌꢔ  
ꢉꢄꢍ�ꢄꢍ  
ꢣꢀ  
ꢣꢑꢕꢔꢉ�ꢤꢉꢒꢌ  
ꢅꢆꢀ  
ꢄꢂ  
ꢄꢀ  
ꢔꢌꢅꢌꢍ  
ꢎꢄꢈꢑꢉꢓꢉꢄꢍ�ꢄꢍꢓꢞ  
ꢕꢉꢒꢍꢔꢉꢋ  
ꢃ�ꢀ  
ꢅꢆꢂ  
ꢃ�ꢂ  
ꢃ�ꢇ  
ꢅꢍꢎꢒꢈꢊꢟꢛꢑꢒꢑꢍ  
ꢃ�ꢢ  
ꢊꢎꢄꢈꢓꢔꢎꢍꢌ  
ꢅꢌꢋꢌꢕꢍ  
ꢈꢉꢄꢊꢋꢌꢍꢎꢋꢏ  
ꢌꢐꢎꢋꢄꢎꢍꢑꢉꢒꢓꢊꢉꢎꢔꢈ  
ꢎꢛꢈꢓꢕꢉꢒꢐꢌꢔꢍꢌꢔ  
ꢃ�ꢙ  
ꢃ�ꢠ  
ꢃ�ꢡ  
ꢃꢀ  
�ꢀꢁꢀ  
�ꢀꢁꢂ  
�ꢀꢁꢇ  
ꢍꢍꢋꢓꢅꢌꢔꢑꢎꢋ  
ꢑꢒꢍꢌꢔꢜꢎꢕꢌ  
�ꢔꢑꢒꢍꢌꢔꢛꢊꢄꢅꢓꢑꢒꢍꢌꢔꢜꢎꢕꢌ  
ꢈꢕꢓ�ꢉꢆꢌꢔꢓꢑꢒ�ꢄꢍ  
ꢖꢗꢓꢘꢓꢀꢙꢓꢐꢈꢕꢚ  
ꢔꢅꢝꢂꢇꢂꢓꢑꢒꢍꢌꢔꢜꢎꢕꢌ  
ꢃꢁ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
COꢁꢁꢀCTOR ꢅꢄꢁ ꢂSSꢄGꢁMꢀꢁTS & SCꢉꢀMꢂTꢄCS  
Pin No.  
Pin Name  
AO0  
Pin No.  
9
Pin Name  
AS0  
Pin No.  
Pin Name  
NC  
Pin No.  
Pin Name  
DSR  
RTS  
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
9
AO1  
10  
AS1  
RXD  
SP+0  
SP+1  
SP–0  
SP–1  
TS0  
11  
SUSP0  
SUSP1  
DAOUT  
DARTS  
DACLK  
GND  
TXD  
CTS  
NC  
12  
NC  
13  
GND  
14  
Table 4.4. ꢅ101 ꢅin ꢂssignments (RS-232 Serial ꢄnterface)  
15  
TS1  
16  
Pin No.  
Pin Name  
GND  
Pin No.  
Pin Name  
TXD  
Table 4.1. ꢅ1 ꢅin ꢂssignments (ꢂudio Output & Control)  
1
2
3
4
CTS  
RXD  
Pin No.  
Pin Name  
AN0  
Pin No.  
Pin Name  
GND  
Note: JP5-JP7 must be open in order to use the TTL interface  
1
2
3
4
5
6
7
Table 4.5. ꢅ102 ꢅin ꢂssignments (TTꢃ Serial ꢄnterface)  
GND  
AN3  
AN1  
8
GND  
GND  
9
ADTRG  
GND  
Pin No.  
Pin Name  
STB#  
Pin No.  
14  
Pin Name  
GND  
AN2  
10  
1
2
Table 4.2. ꢅ2 ꢅin ꢂssignments (ꢂ/D Converter)  
AFD#  
15  
DATA6  
GND  
3
DATA0  
ERROR#  
DATA1  
INIT#  
16  
4
17  
DATA7  
GND  
JP4  
X
JP3  
X
JP2  
X
JP1  
Baud Rate  
300  
5
18  
X
6
19  
ACK#  
GND  
X
X
X
600  
7
DATA2  
SLCTIN#  
DATA3  
GND  
20  
X
X
X
X
X
X
X
X
X
1200  
8
21  
BUSY  
GND  
X
X
2400  
9
22  
X
X
X
4800  
10  
11  
12  
13  
23  
PE  
X
9600  
DATA4  
GND  
24  
GND  
X
19200  
25  
SLCT  
RD#  
X
Auto-detect  
38400  
DATA5  
26  
X
X
X
X
X
X
Table 4.6. ꢅ103 ꢅin ꢂssignments (ꢅrinter/Bus ꢄnterface)  
57600  
115200  
Auto-detect  
Auto-detect  
Auto-detect  
Auto-detect  
Auto-detect (default)  
X
X
Table 4.3. Jꢅ1-Jꢅ4 Jumper ꢂssignments (Baud Rate)  
ꢃꢂ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢃꢃ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢃꢄ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢃꢅ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
ꢃꢆ  
RC SYSTEMS  
RC8660 VOICE SYNTHESIZER  
Section 5: compatibility With the rc8650  
Item  
RC8660  
RC8650  
I/O Pins  
Memory  
Pin 11 BRS3: Fourth baud rate select pin  
NC: No connection  
Pin 38 CTS#: Goes High only when there is data in the  
internal serial port overrun buffer  
CTS#: Pulses High after each byte received  
Pins 10, 8992 SEL pins fully support multi-channel applications  
Input buffer 8 KB  
SEL pins not supported (connect to Low level)  
2 KB  
Greeting message Downloading of Greeting message does not affect  
exception dictionary  
Downloading of Greeting message erases excep-  
tion dictionary (dictionary must be reloaded)  
Recording memory 130910 seconds recording time  
0–910 seconds recording time  
Internal file system allows individual sound files to  
be added and deleted in the field  
No internal file system (entire sound library must be  
re-downloaded for changes to take effect)  
Record voice and analog data via ADC input pins;  
play back and/or upload recordings via serial port  
Not supported  
Commands†  
Load Dictionary 247W  
Formant Freq 099F (50F)  
Speed 013S (5S)  
L
0–9F (5F)  
0–9S (1S)  
0–7O (0O)  
0–99I  
Voice 011O (0O)  
Index Marker 0255I  
Interrogate (12?) Returns same information as RC8650, plus free  
space available and # of files in recording memory  
Sinusoidal tone 04400 Hz frequency range; 10 ms600 sec  
generator duration range; simplified command syntax  
0–2746 Hz frequency range; 23 ms16.5 sec  
duration range  
Data File  
Compatibility  
Greeting messages Compatible with RC8650 greeting files  
Dictionaries Compatible with RC8650 dictionary files  
Sound libraries Compatible with RC8650 and RC8660 library  
Compatible with RC8650 library files only; in-  
files, but internal RC8660 file system is compatible dividual sound file changes can be done only by  
only with RC8660 libraries  
downloading the new library file in its entirety  
Sound files Can play both RC8650 and RC8660 sound files  
in real time playback mode, but POR.4 must be set  
to “0” to play RC8650 ADPCM-encoded files. In-  
ternal RC8660 file system is compatible only with  
RC8660 sound files when used in sound libraries  
Compatible with RC8650 sound files only  
In RC8650 Compatibility mode (POR.4 = “0”), the RC8660 uses the RC8650 command ranges and defaults.  
ꢃꢇ  
Specifications written in this publication are believed to be accurate, but are not guaranteed to be entirely free of error. RC Systems reserves the right to make changes in  
the devices or the device specifications described in this publication without notice. RC Systems advises its customers to obtain the latest version of device specifications  
to verify, before placing orders, that the information being relied upon by the customer is current.  
In the absence of written agreement to the contrary, RC Systems assumes no liability relating to the sale and/or use of RC Systems products including fitness for a  
particular purpose, merchantability, for RC Systems applications assistance, customer’s product design, or infringement of patents or copyrights of third parties by or  
arising from use of devices described herein. Nor does RC Systems warrant or represent that any license, either express or implied, is granted under any patent right,  
copyright, or other intellectual property right of RC Systems covering or relating to any combination, machine, or process in which such devices might be or are used.  
RC Systems products are not intended for use in medical, life saving, or life sustaining applications.  
Applications described in this publication are for illustrative purposes only, and RC Systems makes no warranties or representations that the devices described herein  
will be suitable for such applications.  
1609 ꢀngland ꢂvenue, ꢀverett, Wꢂ 98203  
ꢅhone: (425) 355-3800 Fax: (425) 355-1098  
http://www.rcsys.com  

相关型号:

RC86L60-3

CMOS, 3.3 Volt / 5 Volt Voice Synthesizer Chipset
ETC

RC875-NP-181J-75

General Purpose Inductor, 180uH, 5%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA

RC875-NP-473J-50

General Purpose Inductor, 47000uH, 5%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA

RC875NP-102J-50

General Purpose Inductor, 1000uH, 5%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA

RC875NP-102J-75

General Purpose Inductor, 1000uH, 5%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA

RC875NP-102K-35

General Purpose Inductor, 1000uH, 10%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA

RC875NP-102K-75

General Purpose Inductor, 1000uH, 10%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA

RC875NP-103J-35

General Purpose Inductor, 10000uH, 5%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA

RC875NP-103J-50

General Purpose Inductor, 10000uH, 5%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA

RC875NP-103J-75

General Purpose Inductor, 10000uH, 5%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA

RC875NP-103K-75

General Purpose Inductor, 10000uH, 10%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA

RC875NP-121J-50

General Purpose Inductor, 120uH, 5%, 1 Element, 3228, ROHS COMPLIANT
SUMIDA