Home
Here are some notes on interfacing an ISD 1000AP 20 second voice recording chip. This part is pretty old but it is available at Radio Shack, which counts for a lot. (see my "Why can't you just buy components anymore page?" page for more thoughts on this subject).
This chip I had already programmed with the words "zero" through "nine" for an earlier version of a goniometer running on a Basic Stamp II. See my goniometer page for details on getting the sounds into the chip.
This version uses just six IO pins. I'm using a Scott Edwards BS1/LCD with a backpack LCD display, so pin 7 is tied up. Pin 4 is used to read a potentiometer and is also unavailable. While all seven address lines are needed to program the chip, since you need access down to .125 second increments, to access the chips memory at 1 second intervals you can get by with 4 pins. One pin for Power Down and one pin for Chip enable and you are in business.
The Schematic in ASCII format:
BASIC STAMP 1 ISD1000A Stamps +5 VDC Pin
| | | |
| > | | All 10
_________________________ | < < | K OHM
Stamps Ground Pin+--|pin 1 Pin 28 |---+ > < > Resistors
Ground+--|Pin 2 Pin 27 |--------+ >Stamp <
Ground+--|Pin 3 Pin 26 |Not Connected |Pin > Stamp
Stamp Pin 0+------------|Pin 4 ADR3 Pin 25 |--+Ground | 5 | Pin
Stamp Pin 1+------------|Pin 5 ADR4 PD Pin 24 |--------------+----> | 6
Stamp Pin 2+------------|Pin 6 ADR5 CE Pin 23 |---------------------+-->
Not Connected|Pin 7 Pin 22 |Not Connected
Not Connected|Pin 8 Pin 21 |Not Connected
Stamp Pin 3+------------|Pin 9 ADR6 Pin 20 |Not Connected
Ground+--|Pin 10 Pin 19 |Not Connected
Not Connected|Pin 11 Pin 18 |Not Connected |+ 5 VDC
Ground+--|Pin 12 Pin 17 |Not Connected |
Ground+--|Pin 13 Pin 16 |----------------+
Speaker Red+--|Pin 14 Pin 15 |--+ Speaker Black
|_________________________|
The voice chips memory is partitioned as follows:
Here's a BS1 code snippet for testing:
start: dirs=%11111111 for b0=0 to 10 pin0 = bit0 pin1 = bit1 pin2 = bit2 pin3 = bit3 debug cls,pin0,pin1,pin2,pin3,cr ' 6 Power down Voice chip when high ' 5 Start playing when low high 5 pause 25 low 5 pause 50 low 6 pause 600 high 6 debug pin0,pin1,pin2,pin3,cr next goto start end1. If you try "pins=b0" and the pins don't change state, you've forgotten the dirs command. It won't work without this.
If everything is working correctly you should see on debug:
0000 and hear "zero"
0001 and hear "one" etc.
Good Luck.