Fans of the film ‘2001 a Space Odyssey’ will no doubt recall the polite yet sinister voice of HAL, the ship’s computer. It stands to reason that all proper robots need a (not necessarily menadng) voice.
Efficient Voice Recording with ISD2500 ChipCorder
Many might assume that creating a voice box necessitates a multitude of integrated circuits, but the ISD2500 ChipCorder family of ICs from Winbond proves otherwise. Packed within a single IC, it encompasses nearly all essential hardware for recording and playing back audio messages. This integrated circuit boasts a microphone preamp and AGC tailored for affordable electret microphones, an output amplifier designed for driving speakers, memory storage, an oscillator, as well as A/D and D/A converters. Winbond offers four key models: 2560, 2575, 2590, and 25120. The numbers following 25 indicate the available recording time in seconds. While the memory capacity remains constant across versions, extended recording times are achieved by utilizing a reduced sampling rate. Therefore, the chip with the shortest recording duration provides superior audio quality.
Simplified Playback Circuit Design
For playback-only functionality, the most basic circuit employs just two decoupling capacitors, as depicted in Figure 2. This straightforward setup is ideal for integration into robots. Meanwhile, the circuit illustrated in Figure 1 enables both recording and playback capabilities. In both designs, incorporating a socket for IC1 allows seamless relocation of the chip into the robot after sound recordings are completed.
Recordings are made by following this sequence.
First switch S3 to record mode (a low on pin 27). A press of S2 now begins the recording which is ended by another press on 52; a third press of 52 starts the next recoding period and so on. This can continue until there is nothing more to record or when LED D2 lights to show that the memory is MI. Playback can be performed by momentarily toggling S1 and switching S3 into ‘play’ mode, now with each press of S2 the recorded messages will be sequentially played back. The recordings can be overwritten by toggling S1, switching S3 to record and then using S2 to start recording from the beginning again.
Flexible Message Sequencing
In the playback mode, the ISD2500 ChipCorder offers versatility by enabling the linkage of individual messages. Each recorded message is marked with an EOM (End Of Message) flag when stored within the chip. Rather than storing entire phrases such as ‘obstacle ahead’. A more efficient approach involves storing separate components like ‘obstacle’, ‘ahead’, ‘to the right’, ‘to the left’, and ‘behind’. Similarly, for numbers, storing basic elements like ‘one’, ‘two’, ‘hundred’, ‘point’, etc., facilitates voicing the complete range of numbers by combining these fundamental units.
Minimum Playback Circuit Operation
The minimum playback circuit utilizes signals AO, PD, /CE, and /EOM, interfacing them with the robot microcontroller. To initiate playback, PD is reset to ‘0’, and for the first message, a low pulse is applied to /CE. In normal playback, setting AO to ‘0’ allows playback at regular speed. When AO is set to ‘1’, the chip enters ‘fast forward’ mode, advancing through the message at a speed 800 times faster than normal playback. For sequencing messages, if the third message follows the first, the processor sets AO to ‘1’, pulsing /CE low to fast-forward through the second message. The processor waits for the /EOM flag to go low. Upon detection, AO is reset to ‘0’, and a low pulse on /CE triggers the playback of the third message.
Interrupt Handling with /EOM Output
The /EOM output pulse, typically less than 10 ms wide, is best utilized to interrupt the processor instead of merely polling its status. An example C code listing, specifically tailored for a 16-bit Texas MSP430 microcontroller interfaced with this chip, has been developed by the author. This code is available for free download from the Elektor Electronics website under the reference 070313-11.zip.