Program Delays when playing sound

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Program Delays when playing sound

615 Views
Thunder
Contributor III

Hi,

I'm using an HC9S08LG32 uP interfaced to an ISD17xxx sound chip.  There are recorded messages in the sound chip which play instructions for the user based on keypad inputs.   Some of these played messages are >20 seconds.  However, for experienced users that don't want to hear the entire message, there is no way for them to hit the next instruction on the keypad until the message is played out. 

The uP code seems to be suspended during a message playback on the ISD17000.  Is there a way to maintain control of the program so they during a message playback, the user could hit a 'cancel' key (for cancelling the message) or a key for another process to occur?  For beginners, hearing all the message instructions in their entirety is a benefit.  For advanced users of my project, having to listen to the whole instruction message before proceeding is an annoyance.

 

I am using a SPI interface on the ISD17000 for control.

Thanks.

Labels (1)
0 Kudos
4 Replies

370 Views
StrykerTECH
Contributor I

We used the ISD1700 series voice chip in a recent project. Your microcontroller can stop message playback at any time by issuing an SPI STOP command (0x02).

StrykerTECH Engineering Staff

0 Kudos

370 Views
bigmac
Specialist III

Hello,

 

I think that you will need to provide some clarification.  There does not seem to be a ISD17000 series device.  However, there is the ISD1700 series, but this appears to have a push-button interface, rather than SPI connections.

 

With proper SPI coding, it should not be possible for the external device to delay MCU operation beyond the SPI transmission period.  Are your connections from the recording device to the MCU limited to the four SPI signals only?

 

Some of the ISD devices that have SPI connections implement a stop instruction that would appear to do what you require?

 

Regards,

Mac

 

0 Kudos

370 Views
Thunder
Contributor III

Thanks Mac.  Here is a link to the ISD1700 series:  http://www.nuvoton.com/NuvotonMOSS/Community/ProductInfo.aspx?tp_GUID=6755b5cf-489b-46ef-9444-aed2d2...

This link provides an overview of the device series, with a link at the top of this webpage to view the datasheet.  Specifically, I am using an ISD17240 (the 240 indicates the number of seconds that the device can record, depending on sampling freq).  There is also a design guide here:  http://www.vla.com.br/news/I1700%20Design%20Guide%20Rev%201.1.pdf

 

Yes, I am connecting to the ISD device via the 4 SPI pins only.  The fact that the uP pauses until the entire message is played does indicate to me that I am looking at a coding issue.  I will re-review my code to see if I can try something different.  There also may be a Stop command on the ISD device itself I can try.

Regards.....

 

 

 

0 Kudos

370 Views
bigmac
Specialist III

Hello,

 

The reason for my previous confusion was that an earlier document (referenced through Google) referred to ISD1700A device, and this had push button operation only.

 

I notice that the SPI protocol used by the device is non-standard in one respect - LSB is sent first, rather than MSB.  You will therefore require that the SPI1C1_LSBFE bit be set, if you have not already done so.  It also appears that the settings CPHA = 1, CPOL = 1 are required for this device.

 

Do you have connected the INT/BUSY output pin to an interrupt input pin on the MCU?  If so, the CLR_INT command would probably need to occur within the ISR, to prevent repeated interrupts.

 

Regards,

Mac

 

0 Kudos