Using PIC16f876 SPI to control the Voice Chip ISD4003    

Schematic Diagram for teh ISD4003 voice chip. Works Great.

Circuit works on 3V

 

Circuit Schematic Diagram Click for higher resolution

 

 

Click here for the source code 

New source code ( using basic memory segmentation )

 

 

IMPORTANT NOTE:
 

The pictures shown in the oscilloscope show a data burst starting at the raising edge of the clock.  It SHOULD BE ON THE FALLING EDGE instead. 

Using this commmand:
setup_spi(SPI_MASTER | SPI_H_TO_L | SPI_CLK_DIV_16 ); 

Ernesto

Hits to this page.

snap shots from the oscilloscope are down here

MOSI
Control Bytes

PIC sents MSB first

In oscciloscope bits are read from left to right

Ao, A1, ..  A10,Co, ... C4

 
Blue channel indicates clock signal generated by the PIC16F876
Yellow channel indicates data sent to D4003
POWER UP Voice Chip

 

Address byte:
00000000

Instruction Byte:
00100000

RUN = 0                           = ns
PLAY/RECORD = 0        =  ns
PU = 1                              = POWER UP
IAB = 0                             =  ns

 

 
Blue channel indicates clock signal generated by the PIC16F876
Yellow channel indicates data sent to ISD4003
RECORD at Address A0-A10

 

Address byte:
00000000

Instruction Byte:
10100000

RUN = 1
PLAY/RECORD = 0        = RECORD
PU = 1                               = Already On
IAB = 0                             =  Use Address

 
Blue channel indicates clock signal generated by the PIC16F876
Yellow channel indicates data sent to ISD4003
STOP Playing or Recording

 

Address byte:
00000000

Instruction Byte:
00110000

RUN = 0                            = STOP
PLAY/RECORD = 0         = ns
PU = 1                               = Already On
IAB = 1                             = Ignore address bit


 

 
Blue channel indicates clock signal generated by the PIC16F876
Yellow channel indicates data sent to ISD4003
PLAY  at  Address A0-A10

 

Address byte:
00000000

Instruction Byte:
11100000

RUN = 1                            = RUN
PLAY/RECORD = 1         = PLAY
PU = 1                               = Already On
IAB = 0                             = Use address

 

 
Blue channel indicates clock signal generated by the PIC16F876
Yellow channel indicates SS pin on  ISD4003
Slave Select Signal.

This picture shows SS pin on the ISD4003 when data is transmitted from PIC16f87 to it using  SPI 

I give enough time before transmitting data.

 
Any comments?  e-mail me: earroyo@media.mit.edu

Last Update: 10/27/2003