INTEGRATED CIRCUITS INC. APR6008 Voice Recording & Playback Device 8 Minute Duration Features * Multi-level analog storage - High quality audio recording and playback * Dual mode storage of analog and/or digital data - Eliminates the need for separate digital memory * Advanced, non-volatile Flash memory technology - No battery backup required * SPI interface - Allows any commercial microcontroller to control the device * Programmable Sampling Clock - Allows user to choose quality and duration levels * Single 3V power supply * Low power consumption - Playback operating current: 15 mA typical - Standby current: 1 u A maximum - Automatic power-down * Multiple package options available - CSP, SOP, PDIP, Bare Die * On-board clock prescaler - Eliminates the need for external clock dividers * Automatic squelch circuit - Reduces background noise during quiet passages General Description The APR6008 offers non-volatile storage of voice and/or data in advanced Multi-Level Flash memory. Up to 8 minutes of audio recording and playback can be accommodated. A maximum of 30K bits of digital data can be stored. APR6008 devices can be cascaded for longer duration recording or greater digital storage. Device control is accomplished through an industry standard SPI interface that allows a microcontroller to manage message recording and playback. This flexible arrangement allows for the widest variety of messaging options. The APR6008 is ideal for use in cellular and cordless phones, telephone answering devices, personal digital assistants, personal voice recorders, and voice pagers. APLUS Integrated achieves this high level of storage capabiby using a proprietary analog multi-level storage te chnol logy i mplemented in an advanced non-volatile Flash memory process. Each memory cell can typically store 256 voltage levels. This allows the APR6008 voice to reproduce audio signals in their natural form, eliminating the need for encoding and compression which can introduce distortion. lity 2002/5/10 Figure 1 APR6008 Pinout Diagrams 28 pin DIP /C S DI DO VSSD NC NC NC A NA O UTAN AO U T+ NC /R E S E T VSSA AUDO UT SQ LCAP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 SCLK VCCD EX TC LK /IN T SAC VSSA NC /B U S Y NC NC VCCA A N A IN + A N A IN /S Q LO U T Page 1 APR6008 Functional Description The EXTCLK pin allows the use of an external sampling clock. This input can accept a wide range of frequencies depending on the divider ratio programmed into the divider that follows the clock. Alternatively, the programmable internal oscillator can be used to supply the sampling clock. The Mux following both signals automatically selects the EXTCLK signal if a clock is present, otherwise the internal oscillator source is chosen. Detailed information on how to program the divider and internal oscillator can be found in the explanation of the PWRUP command, which appears in the OpCode Command Description section. Guidance on how to choose the appropriate sample clock frequency can be found in the Sampling Rate & Voice Quality section. The audio signal containing the content you wish to record should be fed into the differential inputs ANAIN-, and ANAIN+. After pre-amplification the signal is routed into the anti-aliasing filter. The anti-aliasing filter automatically adapts its response based on the sample rate being used. No external anti-aliasing filter is therefore required. After passing through the anti-alias filter, the signal is fed into the sample and hold circuit which works in conjunction with the Analog Write Circuit to store each analog sample in a flash memory cell. Figure 2 When a read operation is desired the Analog Read Circuit extracts the analog data from the memory array and feeds the signal to the Internal Low Pass Filter. The low pass filter converts the individual samples into a continuous output. The output signal then goes to the squelch control circuit and differential output driver. The differential output driver feeds the ANAOUT+ and ANAOUT- pins. Both differential output pins swing around a 1.23V potential. The squelch control circuit automatically reduces the output signal by 6 dB during quiet passages. A copy of the squelch control signal is present on the SQLOUT pin to facilitate reducing gain in the external amplifier as well. For more information, refer to the Squelch section. After passing through the squelch circuit the output signal goes to the output amplifier. The output amplifier drives a single ended output on the AUDOUT pin. The single ended output swings around a 1.23V potential. All SPI control and hand shaking signals are routed to the Master Control Circuit. This circuit decodes all the SPI signals and generates all the internal control signals. It also contains the status register used for examining the current status of the APR6008 . APR6008 Block Diagram /RESET PreAmp 1.92 Mcell Memory Array ANAIN+ /INT DO DI /CS Master Control Circuit SAC Row Address R ow D ecoder ANAIN/BUSY Low Pass Single Analog Memory Cell Write Circuit Column Decoder Read Circuit ANAOUT+ Column Address Analog input/output to Memory array Amp ANAOUT- Low Pass SCLK Squelch Mux Page 2 AUDOUT SQLCAP Programmable Internal Oscillator EXTCLK Amp /SQLOUT Programmable Divider Voice Recording & Playback Device Revision 2.1 APR6008 Memory Organization SPI Interface The APR6008 memory array is organized to allow the greatest flexibility in message management and digital storage. The smallest addressable memory unit is called a "sector". The APR6008 contains 640 sectors. All memory management is handled by an external host processor. The host processor communicates with the APR6008 through a simple Serial Peripheral Interface (SPI) Port. The SPI port can run on as little as three wires or as many as seven depending on the amount of control necessary. This section will describe how to manage memory using the APR6008 SPI Port and associated OpCode commands. This topic is broken down into the following sections: Figure 3 Memory Map. SAC Trigger Point * Sending Commands to the Device * OpCode Command Description Sector 0 * Receiving Device Information Sector 1 * Current Device Status (CDS) * Reading the Silicon Identification (SID) * Writing Digital Data * Reading Digital Data * Recording Audio Data * Playing Back Audio Data Sector 639 Can Not be Used for Digital Data Sectors 0 through 639 can be used for analog storage. Du ring audio recording one memory cell is used per sample clock cycle. When recording is stopped an end of data (EOD) bit is programed into the memory. This prevents playback of silence when partial sectors are used. Unused memory that exists between the EOD bit and the end of the sector can not be used. Sectors 0 through 9 are tested and guaranteed for digital storage. Other sectors, with the exception of sector 639, can store data but have not been tested, and are thus not guaranteed to provide 100% good bits. This can be managed with error correction or forward check-before-store methods. Once a write cycle is initiated all previously written data in the chosen sector is lost. Mixing audio signals and digital data within the same sector is not possible. Note: There are a total of 15bits reserved for addressing. The APR6008 only requires 10 bits. The additional 5 bits are used for larger devices within the APR6008 family. Voice Recording & Playback Device Revision 2.1 * Handshaking Signals Sending Commands to the Device This section describes the process of sending OpCodes to the APR6008 All Opcodes are sent in the same way with the exception of the DIG_WRITE and DIG_READ commands. The DIG_WRITE and DIG_READ commands are described in the Writing Digital Data and Reading Digital Data sections that follow. The minimum SPI configuration needed to send commands uses the DI, /CS, and SCLK pins. The device will accept inputs on the DI pin whenever the /CS pin is low. OpCode commands are clocked in on the rising edge of the SPI clock. Figure 4 shows the timing diagram for shifting OpCode commands into the device. Figure 5 is a description of the OpCode stream. You must wait for a command to finish executing before sending a new command. This is accomplished by monitoring the / BUSY pin. You can substitute monitoring of the busy pin by inserting a fixed delay between commands. The required delay is specified as T next1 ,T next2 ,T next3 or T next4 . Figure 6 shows the timing diagram for sending consecutive commands. Table 1 describes which T next specification to use. Page 3 APR6008 Figure 4 Sending SPI Commands ~~ /CS ~~ ThiSCLK TfCS DI T next1 , T next2 , T next3 , T next4 ~~ SCLK Op4 ~~ TpSCLK Op2 Op3 TloSCLK ~~ Op1 A2 T suDI TrCS ~~ A0 A1 ThDI Figure 5 OpCode Format F irst b it sh ifte d in L a st b it s h ifted in A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 { { O p4 O p3 O p2 O p1 O p0 A14 A13 A12 A11 A10 OpC ode C om m and OpCode Param eter Figure 6 Opcode Stream Timing SCLK /CS DI C urre nt C om m and N ext C om m and T next1 ,T next2 ,T next3 ,T next4 Page 4 Voice Recording & Playback Device Revision 2.1 APR6008 Table 1 Sequential Command Timing Current Command NOP Next command Timing Symbol Any Command Tnext1 5u SEC PWRUP Any Command Tnext2 5m SEC STOP_PWDN PWRUP Tnext2 5m SEC SET_REC STOP, STOP_PWDN, SET_REC, REC,NOP Within SAC Low Time SID REC SET_PLAY STOP, STOP_PWDN, SET_FWD, FWD, SET_PLAY,PLAY, NOP PLAY SET_FWD SET_FWD, FWD, STOP, STOP_PWDN FWD DIG_WRITE Any Digital Command, STOP, STOP_PWDN Tnext3 DIG_READ Note: For partial DIG_READ Tnext2 is measured from the extra clock low that follows the rise of /CS, not from the rise of /CS 8K sampling rate: 376m SEC 4K sampling rate: 752 m SEC DIG_ERASE STOP Any Command OpCode Command Description Designers have access to a total of 14 OpCodes. These OpCodes are listed in Table 2. The name of the Opcode appears in the left hand column. The following two columns represent the actual binary information contained in the 20 bit data stream. Some commands have limits on which com- Tnext4 470m SEC mand can follow them. These limits are shown in the "Allowable Follow on Commands" column. The last column summarizes each command. Combinations of OpCodes can be used to accommodate almost any memory management scheme. Table 2 APR6008 Operational Codes Instruction Name OpCode (5 bits) Opcode Parameters (15bits) [Op4 - Op0] [Address MSB - Address LSB] [Address 14 - Address 0] NOP [00000] SID [00001] [Don't care] SET_FWD [00010] Sector Address [Don't Care] [A14 - A0] FWD [00011] PWRUP [00100] [Don't care] [A14-A10]: all zeros Allowable Follow on Commands All Commands All Commands No Operation Causes the silicon ID to be read. SET_FWD, FWD, STOP, STOP_PWDN Starts a fast forward operation from the sector address specified. SET_FWD, FWD, STOP, STOP_PWDN Starts a fast forward operation from the current sector address. All Commands Resets the device to initial conditions. Sets the sample frequency and divider ratios. Stops the current operation. [A9-A2]: EXTCLK divider ratio [A1-A0]: Sample Rate Frequency STOP [00110] [Don't care] All Commands STOP_PWDN [00111] [Don't care] PWRUP Voice Recording & Playback Device Revision 2.1 Summary Stops the current operation. Causes the device to enter power down mode. Page 5 APR6008 Instruction Name SET_REC OpCode (5 bits) Opcode Parameters (15bits) [Op4 - Op0] [Address MSB - Address LSB] [Address 14 - Address 0] [01000] Sector Address [A14 - A0] Allowable Follow on Commands Summary STOP, STOP_PWDN, SET_REC, REC,NOP Starts a record operation from the sector address specified. REC [01001] [Don't care] STOP, STOP_PWDN, SET_REC, REC,NOP Starts a record operation from the current sector address. DIG_ERASE [01010] Sector Address All Commands Erases all data contained in specified sector. You must not erase a sector before recording voice signals into it. You must erase a sector before storing digital data in it. [A14 - A0] DIG_WRITE [01011] [A14 - A0][XXXX][D0 - D3004][XXXX] All Commands This command writes data bits D0 - D3003 starting at the specified address. All 3004 bits must be written. DIG_READ [01111] Sector Address All Commands This command reads data bits D0 - D3003 starting at the specified address. [A14 - A0] SET_PLAY [01100] Sector Address [A14 - A0] PLAY [01101] [Don't care] The NOP command performs no operation in the device. It is most often used when reading the current device status. For more information on reading device status see the Current Device Status section. THE SID operation instructs the device to return the contents of its silicon ID register. For more information see the Reading the SID section. The SET_FWD command instructs the device to fast forward from the beginning of the sector specified in the OpCode parameter field. The device will fast forward until either an EOD bit, or the end of the sector is reached. If no EOD bit or forthcoming command has been received when the end of the sector is reached, the device will loop back to the beginning of the same sector and begin the same process again. If an EOD bit is found the device will stop and generate an interrupt on the /INT pin. The output amplifiers are muted during this operation. The FWD command instructs the device to fast forward from the start of the current sector to the next EOD marker. If no EOD marker is found within the current sector the device will increment to the next sequential sector and continue looking. Page 6 STOP, STOP_PWDN, SET_FWD, FWD, SET_PLAY,PLAY, NOP Starts a play operation from the sector address specified. STOP, STOP_PWDN, SET_FWD, FWD, SET_PLAY,PLAY, NOP Starts a play operation from the current sector address. The device will continue to fast forward in this manner until either an EOD is reached, a new command is sent, or the end of the memory array is reached. When an EOD is reached the device will stop and generate an interrupt on the /INT pin. The output amplifiers are muted during this operation. The PWRUP command causes the device to enter power up mode and set the internal clock frequency and EXTCLK divider ratio. To select an Internal oscillator frequency set the [A1 - A0] bits according to the following binary values: A1 A0 Sample rate 0 0 6.4 kHz 0 1 4.0 kHz 1 0 8.0 kHz 1 1 5.3 kHz If you are using an external sample clock signal you must also set the EXTCLK divider ratio. This divider ratio is equal to N:1 where N is an integer between 1 and 256, excluding 2. The N value should be selected to satisfy the following equa- Voice Recording & Playback Device Revision 2.1 APR6008 tion as closely as possible: EXTCLK freq = (N) * (128) * (selected sampling frequency) Example: Suppose that 8.0 KHz sampling is desired. Assume that the frequency of the signal present on EXTCLK = 8MHz. 8000000 N = -------------------------- = 7.8125 128 ( 8000 ) Rounding up, N = 8 The Op Code Parameter bit stream, composed of bits [A9 - A2][A1 - A0], therefore becomes binary [00001000][10]. The STOP Command causes the device to stop the current operation. The STOP_PWDN command causes the device to stop the current command and enter power down mode. During power down the device consumes significantly less power. The PWRUP command must be used to force the device into power up mode before any commands can be executed. The SET_REC command instructs the device to begin recording at the sector address specified. The device will continue to record until the end of the current sector is reached. If no forthcoming command has been received when the end of the sector is reached the device will loop back to the beginning of the same sector and overwrite the previously recorded material. If the next command is another SET_REC or REC command the device will execute the command immediately following the end of the current sector so that no audio information is lost. For more information see the section entitled Recording Audio Data. digital data that was previously written to the specified sector. The first bit shifted out is the first bit that was written. The last bit shifted out is the last bit that was written. For more information on reading digital data see the section entitled Reading Digital Data. The SET_PLAY command instructs the device to begin playback at the specified sector. If no forthcoming command is received, or EOD bit encountered, before the end of the sector is reached the device will loop back to the beginning of the same sector and continue playback with no noticeable gap in the audio output. If the next command is another SET_PLAY or PLAY command the device will execute the command immediately following the end of the current sector so that no gap in playback is present. For more information see the section entitled Playing Back Audio Data. The PLAY command instructs the device to begin playback at the current sector. If no forthcoming command is received, or EOD bit encountered, before the device reaches the end of the sector the device will automatically increment to the next sequential sector and continue playing. The device will continue to play in this manner until the memory is exhausted or a STOP or STOP_PWDN command is received. For more information see the section entitled Playing Back Audio Data. The REC command instructs the device to begin recording in the current sector. If no new command is received before the device reaches the end of the sector the device will automatically increment to the next sequential sector and continue recording. The device will continue to record in this manner until the memory is exhausted or a STOP or STOP_PWDN command is received. For more information see the section entitled Recording Audio Data. The DIG_ERASE command erases all data contained in the sector specified. Erase should not be done before recording voice signals into a sector. Erase must be done before storing digital data in a sector. The DIG_WRITE command stores 3K bits of digital data in the specified sector. All 3K bits must be written, no partial usage of the sector is possible. The memory acts as a FIFO, the first data bit shifted in will be the first data bit shifted out. A sector must be erased using the DIG_ERASE command BEFORE data can be written to the sector. For more information on storing digital data, see the section entitled Writing Digital Data. The DIG_READ command instructs the device to retrieve Voice Recording & Playback Device Revision 2.1 Page 7 APR6008 Receiving Device Information out three different types of data streams: Device status, Silicon ID, and user stored data. Device status and silicon ID are described in the next two sections. Retrieval of user data is described in the Reading Digital Data section. The device communicates data to the user by shifting out data on the DO pin. The device will shift out data according to the timing parameters given in figure 7. The device can shift Figure 7 Data Out Timing /CS ~~ ~~ SCLK DI Op4 D0 DO TfcsDO Op2 Op3 D1 Op1 ~~ A3 D3~ D2 D16 D15 ~ A1 A2 D17 A0 D18 D19 ThzD0 TfSCLK Current Device Status (CDS) As described in the previous section, three different types of data streams are shifted out on the DO pin as data is shifted in on the DI pin. One of these steams is the current device status. The CDS will be shifted out unless the previous command is SID command. Figure 8 shows the format of the CDS bit stream. The first bit shifted out, D0, is the Overflow flag. The Overflow flag is set to a binary 1 if an attempt was made to record beyond the available memory. The Overflow flag is set to a 0 if an overflow has not occurred. This flag is cleared after it has been read. The D1 bit is the End of Data flag. The EOD flag is set when the device stops playing, or fast forwarding as a result of an EOD bit in memory. The EOD flag is cleared after it has been read. The D2 bit is the Illegal Address flag. The Illegal Address flag is set whenever an illegal address is sent to the device. The D3 bit is the Lbat flag. This flag is set when the device senses a supply voltage below specification. The D4 bit is not used and should be ignored. The last fifteen bits represent the address of the current or last active sector. Figure 8 Format for CDS Bit Stream Last bit shifted out D19 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 } ~ ~ First bit shifted out OVF EOD Sector Address Sector Add res s LSB Illegal Address Sector Address MSB Lbat Page 8 Voice Recording & Playback Device Revision 2.1 APR6008 Reading the SID OpCode commands; a SID command followed by any other command, usually a NOP command. The device will clock the SID data out on the DO pin as the command that follows the SID command is clocked in. Figure 9 is a diagram that describes the process necessary for reading SID information. Each device in the APR60XX series family contains an embedded Silicon Identification (SID). The SID can be read by the host processor to identify which family / family member is being used. Reading the device SID requires issuing two Figure 9 SID Timing SCLK /CS S ID C om m and DI N e xt C om m and C D S O utput D ata DO S ID O utpu t D ata The SID information follows the format given in Figure 10. The first bit shifted out, D0, is the Overflow bit. The Overflow bit is set to a binary 1 if an attempt was made to record beyond the available memory. The Overflow bit is set to a 0 if an overflow has not occurred. This bit is cleared after it has been read. The D1 bit is the End Of Data (EOD) bit. The EOD bit is set when the device stops playing or fast forwarding as a result of EOD bit in memory. The EOD bit is cleared after it has been read. The D2 bit is the Illegal Address Bit. The Illegal Address Bit is set whenever an illegal address is sent to the device. The D3 bit is the Lbat bit. This bit is set when the device senses a supply voltage below specification. The following five bits represent the product family. The APR60XX product family code is binary 01000 as shown in Figure 10. The next four bits represent the device code. The APR6008 device code is binary 0100 as shown in Figure 10 The last seven bits are random data and should be ignored. Figure 10 SID Bit Stream Last bit shifted out D19 D14 D13 D11 D10 Device Code 0 1 0 APR6008 Device Code (Binary) Voice Recording & Playback Device Revision 2.1 D9 0 D8 D7 D6 D5 D4 } } Ignore These Bits D12 } } } ~ ~ First bit shifted out D3 D2 1 0 0 0 D0 OVF EOD Product Family 0 D1 Illegal Address Lbat APR60XX Series Family (Binary) Page 9 APR6008 Writing Digital Data Digital data is written into the device using the DIG_WRITE command. No mixing of analog data and digital data within a sector is possible. Sectors 0 through 9 are tested and guaranteed for digital storage. Other sectors, with the exception of sector 639, can store data but have not been tested, and are thus not guaranteed to provide 100% good bits. This can be managed with error correction or forward check-before-store methods. Issuing a DIG_ERASE command on sector 639 will cause data throughout all sectors to be lost. A sector must be erased, using the DIG_ERASE command, before digital data can be written to it. This requirement is necessary whether analog data or digital data was previously stored in the sector. A sector should not be erased more than once between analog or digital write operations. Executing multiple erase operations on a sector will permanently damage the sector. A sector can be reallocated to either analog storage or digital storage at any time. The process of storing digital data begins by sending a DIG_WRITE command. The DIG_WRITE command is followed immediately by four buffer bits. These bits will not be stored in the array and must be considered don't care bits. Immediately following the four buffer bits should be the data that you wish to store. All 3004 bits must be stored. Four additional buffer bits must be clocked into the device following the stored data. These bits will not be stored in the array and must be considered don't care bits. Ending a digital write command early will permanently damage the sector. The DO pin will clock out the normal 20 bit CDS followed by five don't care bits, a copy of the 3004 data bits, and finally three don't care bits. Figure 11 shows a timing diagram which describes the digital storage process. All timing with the exception of TpSCLK should adhere to the specifications given in Figure 4 and Figure 7. The TpSCLK specification is replaced by the DTpSCLK when storing digital data. Note: The DIG_ERASE command should not be used before storing analog data. The device will perform its own internal erase before analog storage. Figure 11 does not show the DIG_ERASE command which must be executed on a sector before digital data can be stored. Figure 11 Writing Digital Data SCLK Total 3032 clock cycles /CS DI DIG_WRITECOMMAND X X X X 3004 bits of data to be stored X X X X Four Don't Care Bits DO Page 10 CDS X X X X X Copy of the input data (delayed one clock cycle) X X X Voice Recording & Playback Device Revision 2.1 APR6008 Reading Digital Data Digital data is read from the device using the DIG_READ command. To read data you must send a DIG_READ command immediately followed by 3012 don't care bits during the same /CS cycle. The data previously stored in the specified sector will begin to appear on the DO pin after the current device status or SID and four buffer bits. The next 3004 bits are the previously stored data. The first bit shifted out is the first bit that was written. The last bit shifted out is the last bit that was written. There are four random don't care bits following the 3004 bits of user data. An incomplete read of the sector is allowed. An incomplete read is defined a a read with less than 3032 clock cycles. All incomplete read cycles require one extra SCLK cycle after the /CS signal returns high. Figure 12 shows a timing diagram which describes the entire process for a complete sector read. All timing with the exception of TpSCLK should adhere to the specifications given in Figure 4 and Figure 7. The TpSCLK specification is replaced by the DTpSCLK when reading digital data. Figure 12 Reading Digital Data SCLK Total 3032 clock cycles /CS DI DIG_READ COMMAND DO SID or CDS Voice Recording & Playback Device Revision 2.1 3012 don't Care Bits X X X X 3004 bits of previously stored data X X X X Page 11 APR6008 Recording Audio Data When a SET_REC or REC command is issued the device will begin sampling and storing the data present on ANAIN+ and ANAIN- to the specified sector. After half the sector is used the SAC pin will drop low to indicate that a new command can be accepted. The device will accept commands as long as the SAC pin remains low. Any command received after the SAC returns high will be queued up and executed during the next SAC cycle. Figure 13 shows a typical timing diagram and OpCode sequence for a recording operation. In this example the SET_REC command begins recording at the specified memory location after Tarec time has passed. Some time later the low going edge on the SAC pin alerts the host processor that the first sector is nearly full. The host processor responds by issuing a REC command before the SAC pin returns high. The REC command instructs the APR6008 to continue recording in the sector immediately following the current sector. When the first sector is full the device automatically jumps to the next sector and returns the SAC signal to a high state to indicate that the second sector is now being used. At this point the host processor decides to issue a STOP command during the next SAC cycle. The device follows the STOP command and terminates recording after TSarec.The /BUSY pin indicates when actual recording is taking place. Figure 13 Typical Recording Sequence SCLK /CS DI REC SET_REC STOP SAC ANAOUT+ ANAOUTANAOUT Tarec TS arec /BUSY Page 12 Voice Recording & Playback Device Revision 2.1 APR6008 Playing Back Audio Data When a SET_PLAY or PLAY command is issued the device will begin sampling the data in the specified sector and produce a resultant output on the AUDOUT, ANAOUT-, and ANAOUT+ pins. After half the sector is used the SAC pin will drop low to indicate that a new command can be accepted. The device will accept commands as long as the SAC pin remains low. Any command received after the SAC returns high will be queued up and executed during the next SAC cycle. Figure 14 shows a typical timing diagram and OpCode sequence for a playback operation. The SET_PLAY command begins playback at the specified memory location after Taplay time has passed. Some time later the low going edge on the SAC pin alerts the host processor that half of the first sector has been played back. The host processor responds by issuing a PLAY command during the SAC low time. The PLAY command instructs the APR6008 to continue playback of the sector immediately following the current sector. When the first sector has been played back the device jumps to the next sector and returns the SAC signal to a high state to indicate that the second sector is now being played. At this point the host processor decides to issue a STOP command during the next available SAC low time. The device follows the STOP command and terminates playback after TS aplay. The / BUSY pin indicates when actual playback is taking place. Figure 14 Typical Playback Sequence SCLK /CS DI PLAY SET_PLAY STOP SAC ANAOUT+ ANAOUTANAOUT Taplay TS aplay /BUSY Note: Command timing is not scale Handshaking signals Several signals are included in the device that allow for handshaking. These signals can simplify message management significantly depending on the message management scheme used. The /INT signal can be used to generate interrupts to the processor when attention is required by the APR6008 This pin is normally high and goes low when an interrupt is requested. An interrupt is generated whenever a EOD or Overflow Voice Recording & Playback Device Revision 2.1 occurs. An interrupt is also generated after a PWRUP command if a low battery VCC is sensed. The SAC signal is used to determine when the device is nearing the end of the current memory segment during either a record, play or forward operation. The SAC signal is in a normally high state. The signal goes low after half the currently active segment has been played or recorded. The signal returns to a high state after the entire segment has been played or recorded. The microprocessor should sense the Page 13 APR6008 low edge of the SAC signal as an indicator that the next segment needs to be selected, and do so before the SAC signal returns high. Failing to specify the next command before the current segment is exhausted (either during recording or playback) will result in a noticeable gap during playback. The /BUSY pin indicates when the device is performing either a play, record or fast forward function. The host microprocessor can monitor the busy pin to confirm the status of these commands. The Busy pin is normally high and goes low while the device is busy. The low time is governed by the length of recording or playback specified by the user. Sampling Rate and Voice Quality The Nyquist Sampling Theorem requires that the highest frequency component a sampling system can accommodate without the introduction of aliasing errors is equal to half the sampling frequency. The APR6008 automatically filters its input, based on the selected sampling frequency, to meet this requirement. Higher sampling rates increase recording bandwidth, and hence voice quality, but also use more memory cells for the same amount of recording time. The APR6008 accommodates sampling rates as high as 8kHz. Storage Technology The APR6008 stores voice signals by sampling incoming voice data and storing the sampled signals directly into FLASH memory cells. Each FLASH cell can support voltage ranges from 1 to 256 levels. These 256 discrete voltage levels are the equivalent of eight (28=256) bit binary encoded values. During playback the stored signals are retrieved from memory, smoothed to form a continuous signal and finally amplified before being fed to an external speaker amplifier. Squelch The APR6008 is equipped with an internal squelch feature. The Squelch circuit automatically attenuates the output signal by 6 db during quiet passages in the playback material. Muting the output signal during quiet passages helps eliminate background noise. Background noise may enter the system in a number of ways including: present in the original signal, natural noise present in some power amplifier designs, or induced through a poorly filtered power supply. The response time of the squelch circuit is controlled by the time constant of the capacitor connected to the SQLCAP pin. The recommended value of this capacitor is 1.0 uF. The squelch feature can be disabled by connecting the SQLCAP pin to VCC. Lower sampling rates use less memory cells and effectively The active low output /SQL goes low whenever the internal increase the duration capabilities of the device, but also reduce recording bandwidth. The APR6008 allows sampling squelch activates. This signal can be used to squelch the output power amplifier. Squelching the output amplifier results in rates as low as 4 kHz. further reduction of noise; especially when the power ampliDesigners can thus control the quality/duration trade-off by fier is run at high gain & loud volumes. controlling the sampling frequency. Sampling frequency can be controlled by using the PWRUP command. This command can change sampling frequency regardless of whether the internal oscillator is used or an external clock is used. The APR6008 derives its sampling clock from one of two sources; internal or external. If a clocking signal is present on the EXTCLK input the device will automatically use this signal as the sampling clock source. If no input is present on the EXTCLK input the device automatically defaults to the internal clock source. When the EXTCLK pin is not used it should be tied to GND. An internal clock divider is provided so that external clock signals can be divided down to a desired sampling rate. This allows high frequency signals of up to 10 MHz to be fed into the EXTCLK pin. Using this feature simplifies designs by allowing use of a clock already present in the system, as opposed to having to generate or externally divide down a custom clock. Details for programing the clock divider are described in the SPI interface section under the PWRUP paragraph. The default power up condition for the APR6008 is to use the internal oscillator at a sampling frequency of 6.4 kHz. Page 14 Voice Recording & Playback Device Revision 2.1 APR6008 Sample Application Figure 15 shows a sample application utilizing a generic microcontroller and SPI interface for message management. speaker. Several vendors supply integrated speaker amplifiers that can be used for this purpose. The microcontroller uses three general purpose inputs for the play, record and skip buttons. Five general purpose I/O signals are utilized in the SPI interface. The /RESET and /BUSY signal are not used in this design. A microphone amplifier and AGC are recommended. Both blocks are optional. Several vendors supply integrated microphone/AGC amplifiers that can be used for this purpose. The output signal must be amplified in order to drive a Note that the AGC circuit can be simplified by using the SQLCAP signal as a peak detector signal. Figure 15 Sample Schematic using DIP package V cc Generic Microcontroller All resistors 2.2 K Play I/O_1 Record I/O_2 Skip I/O_3 Vcc 2.2K 2.2K I/O_6 I/O_4 /IRQ I/O_5 I/O_7 I/O_8 0 .1 F APR6008 DIP Vcc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /CS DI DO V S SD NC NC NC A N AO U TAN A OU T + NC /R ES E T VS SA A UD O U T S Q LC AP 28 27 26 25 24 23 22 21 20 19 18 17 16 15 S C LK V C CD E XT C LK /INT S AC V SS A NC /BU S Y NC NC V C CA A N AIN + A N AIN /SQ LO UT Vcc M ic AG C Block Mic Pre-Amp Vcc Sp e a k e r Am p lifie r 1 00K 1 .0 u F Speaker Voice Recording & Playback Device Revision 2.1 Page 15 APR6008 Pin Descriptions Table three shows pin descriptions for the APR6008 device. All pins are listed in numerical order with the exception of Table 3 Pin Name VCC, VSS and NC pins which are listed at the end of the table. APR6008 28 Pin Number & Description Pin No. Pin No. Pad No. (Die) 28 pin SOP 28 pin DIP Reference Figure 18 Functionality SAC 24 24 27 Sector Address Control Output: This active low output indicates when the device is nearing the end of the current segment. /INT 25 25 28 Interrupt Output: This active low open drain output goes low whenever the device reaches the end of a message or the device overflows. When connected to the interrupt input of the host microcontroller this output can be used to implement powerful message management options. EXTCLK 26 26 29 External Clock Input: This input can be used to feed the device an external sample clock instead of using the internal sampling clock. This pin should be connected to VSSA when not in use. SCLK 28 28 33 SPI Clock Input: Data is clocked into the device through the DI pin upon the rising edge of this clock. Data is clocked out of the part through the DO pin on the falling edge. /CS 1 1 2 Chip Select Input: This active low input selects the device as the currently active slave on the SPI interface. When this pin is high the device tri-states the DO pin and ignores data on the DI pin. DI 2 2 3 Data Input: The DI input pin receives the digital data input from the SPI bus. Data is clocked on the rising edge of the SCLK input. DO 3 3 4 Data Output: Data is available after the falling edge of the SCLK input. ANAOUT- 8 8 9 Negative Audio Output: This is the negative audio output for playback of prerecorded messages. This output is usually fed to the negative input of a differential input power amplifier. The power amplifier drives an external speaker. ANAOUT+ 9 9 10 Positive Audio Output: This is the positive audio output for playback of prerecorded messages. This output is usually fed to the positive input of a differential input power amplifier. The power amplifier drives an external speaker. /RESET 11 11 11 Reset Input: This active low input clears all internal address registers and restores the device to its power up defaults. AUDOUT 13 13 15 Single Ended Audio Output: This is the audio output for playback of prerecorded messages. This output is usually fed to the input of a power amplifier for driving an external speaker. SQLCAP 14 14 16 Squelch Capacitor I/O: This pin controls the attack time of the squelch circuitry. Connect his pin to GND through a 1.0 uf capacitor to enable the squelch feature. The capacitor's time constant will affect how quickly the squelch circuitry reacts. /SQL 15 15 17 Squelch Output: This active low output indicates when the internal squelch circuitry has activated. This signal can be used to automatically squelch the external power amplifier. Squelching the external power amplifier can result in an even greater reduction of background noise. ANAIN- 16 16 18 Inverting Analog Input: This input is the inverting input for the analog signal that the user wishes to record. When the device is used in a differential input configuration this pin should receive a 16 mV peak to peak input coupled through a 0.1uF capacitor. When the device is used in a single ended input configuration this input should be tied to VSSA through a 0.1 uF capacitor. Connect this pin to VCCA to disable the squelch feature. Page 16 Voice Recording & Playback Device Revision 2.1 APR6008 Pin Name Pin No. Pin No. Pad No. (Die) 28 pin SOP 28 pin DIP Reference Figure 18 ANAIN+ 17 17 19 Non-Inverting Analog Input: This input is the non-inverting input for the analog signal that the user wishes to record. When the device is used in a differential input configuration this pin should receive a 16 mV peak to peak input coupled through a 0.1 uF capacitor. When the device is used in a single ended input configuration this pin should receive a 32 mV peak to peak input coupled through a 0.1 uF capacitor. /BUSY 21 21 23 Busy Output: This active low output is low during either a record, playback or fast forward operation. The pin is tri-stated otherwise. This pin can be connected to an LED to indicate playback/record operation to the user. This pin can also be connected to an external microcontroller as an indication of the status of playback, record, forward, or digital operation. VCCD 27 27 30, 31, 32 Functionality Digital Power Supply: This connection supplies power for all on-chip digital circuitry. This pin should be connected to the 3.0 V power plane through a via. This pin should also be connected to a 0.1 uF bypass cap as close to the pin as possible. VCCA 18 18 20, 21 Analog Power Supply: This connection supplies power for all on-chip analog circuitry. This pin should be connected to the 3.0 V power plane through a via. This pin should also be connected to a 0.1 uF bypass cap as close to the pin as possible. VSSA 12,23 12,23 12, 13, 14, 24, 25, 26 Analog Ground: These pins should be connected to the ground plane through a via. The connection should be made as close to the pin as possible. VSSD 4 NC 5, 6, 7, 10, 19, 20, 22 4 5, 6, 7, 10, 19, 20, 22 5, 6 1, 7, 8, 22 Digital Ground: This pin should be connected to the ground plane through a via. The connection should be made as close to the pin as possible. No Connect: These pins should not be connected to anything on the board. Connection of these pins to any signal, GND or VCC may result in incorrect device behavior or cause damage to the device. Electrical Characteristics mended DC Characteristics, and recommended AC Characteristics for the APR6008 device. The following tables list Absolute Maximum Ratings, Recom- Absolute Maximum Ratings mended DC Characteristics or recommended AC Characteristics of this specification is not implied. Maximum conditions for extended periods may affect reliability. Stresses greater than those listed in Table 4 may cause permanent damage to the device. These specifications represent a stress rating only. Operation of the device at these or any other conditions above those specified in the recom- Table 4 Absolute Maximum Ratings. Item Power Supply voltage Symbol Condition Min Max Unit VCC TA = 25 C -0.3 7.0 V VIN TA = 25 C Device VCC = 3.0 V -0.3 5.5 V TSTG - -65 150 o 125 o 300 o Input Voltage Storage Temperature Temperature Under Bias TBS - Lead Temperature TLD <10s Voice Recording & Playback Device Revision 2.1 -65 C C C Page 17 APR6008 Table 5 DC Characteristics Item Min Typ Max Unit VCCA VCCD 2.9 3.0 3.3 V Operating Temperature TA 0 Input High Voltage VIH VCC = 2.9V 2.4 3 5.5 V Input Low Voltage VIL VCC = 3.3V VSS - 0.3V 0 .4 V Output High Voltage VOH VCC = 2.7V IOH=-1.6mA VCCD - 0.5V Output Low Voltage VOL VCC = 2.7V IOL=1.0mA Input Leakage Current IIH VCC = 3.3V VIH=VCC Input Leakage Current IIL VCC = 3.3V VIL=VSS Output Tristate Leakage Current IOZ VCC = 3.3V VOUT=VCC or VOUT=Vss Operating Voltage Operating Current Consumption Standby Current Consumption Table 6 Symbol ICC ICCS Condition +70 o C V 0.4 V 0.3 1 uA 0 -1 uA +1 uA VCC = 3.3V Recording 25 mA Playback 15 mA Idle 2.5 mA VCC = 3.3V After 20 sec. uA 1 AC Characteristics Item Symbol ANAIN+ or ANAIN- input voltage Condition Min Typ Max Unit VMI 45 50 mVP-P ANAIN+ input resistance RANAIN 3 ANAIN+/ANAIN- Gain GANAIN 22 23 dB ANAOUT Output Voltage VANOUT 560 700 mVP-P Total Harmonic Distortion THD @ 1kHz & 45mV P-P input 0.5 1 % VCC ready to fall /CS Tpwrup 90% of VCC min. specification /RESET low time Rise /RESET to fall /CS k Ohm 10 ms TloRST 1 ms TRdone 1 ms /CS fall to clock edge Tfcs 500 ns SPI Data set-up time TsuDI 200 ns Period SPI clock TpSCLK 1000 ns SPI data hold time ThDI 200 ns SPI clock low time TloSCLK 400 ns Page 18 Voice Recording & Playback Device Revision 2.1 APR6008 Item SPI clock high time Clock to rising edge of /CS Symbol Condition Min Typ Max Unit ThiSCLK 400 ns TrCS 200 ns Fall of /CS to DO output TfcsDO 200 ns Fall of SCLK to data out valid TfSCLK 1000 ns Rise of /CS to DO high Z ThzDO 500 ns Period SPI clock for digital read, write First SET_REC command to start recording DTpSCLK @4kHz Internal sample clock @8kHz Internal sample clock External sample clock 500 250 Equation 1 uS uS S Tarec @4kHz Internal sample clock @8kHz Internal sample clock External sample clock 376 188 Equation 2 ms ms S Rise of SAC after STOP Command to end of recording TSarec @4kHz Internal sample clock @8kHz Internal sample clock External sample clock 376 188 Equation 2 ms ms S First SET_PLAY command to audio output Taplay @4kHz Internal sample clock @8kHz Internal sample clock External sample clock 376 188 Equation 2 ms ms S TSaplay @4kHz Internal sample clock @8kHz Internal sample clock External sample clock 376 188 Equation 2 ms ms S TpSAC REC, PLAY @4kHz REC, PLAY @8kHz REC, PLAY EXTCLK FWD @4kHz FWD @8kHz FWD @ EXTCLK 752 376 Equation 3 2 1 Equation 4 ms ms REC, PLAY @4kHz REC, PLAY @8kHz REC, PLAY EXTCLK FWD @4kHz FWD @8kHz FWD @ EXTCLK 94 47 equation 5 0.25 0.125 Equation 6 ms ms STOP after SET_PLAY or PLAY to end of audio output SAC period SAC low time TloSAC ms ms S ms ms S See Figure 6 and Table 1 Tnext1 5 uS See Figure 6 and Table 1 Tnext2 5 mS See Figure 6 and Table 1 Tnext3 Voice Recording & Playback Device Revision 2.1 @4kHz Internal sample clock @8kHz Internal sample clock External sample clock 752 376 Equation 3 ms ms S Page 19 APR6008 Item See Figure 6 and Table 1 Symbol Condition Min Typ Max Unit Tnext4 Previous command = SET_REC, REC, SET_PLAY, PLAY @4kHz Internal sample clock @8kHz Internal sample clock External sample clock 470 235 Equation 7 ms ms S Previous command = SET_FWD, FWD @4kHz Internal sample clock @8kHz Internal sample clock External sample clock 1.25 0.625 Equation 8 ms ms Previous command = All Others @4kHz Internal sample clock @8kHz Internal sample clock External sample clock 5 5 5 uS uS uS Notes: ExternalClockPeriod Equation1 = --------------------------------------------------------2 ( PrescalerValue ) 1504 ( ExternalClockPeriod ) Equation2 = -------------------------------------------------------------------------PrescalerValue 3008 ( ExternalClockPeriod ) Equation3 = -------------------------------------------------------------------------PrescalerValue 8 ( ExternalClockPeriod ) Equation4 = ----------------------------------------------------------------PrescalerValue 376 ( ExternalClockPeriod ) Equation5 = ----------------------------------------------------------------------PrescalerValue ExternalClockPeriod Equation6 = --------------------------------------------------------PrescalerValue 1880 ( ExternalClockPeriod ) Equation7 = -------------------------------------------------------------------------PrescalerValue 5 ( ExternalClockPeriod ) Equation8 = ----------------------------------------------------------------PrescalerValue Page 20 Voice Recording & Playback Device Revision 2.1 APR6008 Figure 18 Bond Pad Layout and Coordinates Origin 0 X Coordinate NC 8 NC 9A 1 NA 11 0 AN OU AO /R ES TET UT+ 12 VSSA 13 VSSA 7 0 VSSD 6 VSSD 5 DO 4 Y Coordinate 14 VSSA DI 3 15 AUDOUT /CS 2 16 SQLCAP * Connect substrate NC 1 to ground. SCLK 33 17 / SQLOUT VCCD 32 18 ANAIN- VCCD 31 19 ANAIN+ VCCD 30 20 VCCA EXTCLK 29 21 VCCA 22 NC 23 /B US Y 27 C SA 6 2 SA VS A 25 S VS 24 SA VS /INT 28 Table 7 Pad Number 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Page 21 Coordinate Information Pad X Y Name Coordinate Coordinate NC 5149 2069 /CS 5149 1622 DI 5149 1243 DO 5149 901 VSSD 5149 610 VSSD 5149 383 NC 4795 108 NC 4412 108 ANAOUT560 108 ANAOUT+ 108 288 /RESET 373 108 VSSA 108 655 VSSA 108 827 VSSA 108 1113 AUDOUT 108 1426 SQLCAP 108 1834 /SQLOUT 108 2518 ANAIN108 2795 ANAIN+ 108 3066 VCCA 108 3397 VCCA 108 3627 Pad Number 22 23 24 25 26 27 28 29 30 31 32 33 Pad Name NC /BUSY VSSA VSSA VSSA SAC /INT EXTCLK VCCD VCCD VCCD SCLK X Y Coordinate Coordinate 248 4106 548 4106 4314 4106 4486 4106 4658 4106 4906 4106 5149 3777 5149 3478 5149 2992 5149 2760 5149 2588 5149 2362 DIE SIZE : 4340m x 5380m PAD SIZE : 100m x 100m DIE THICKNESS : Approximately 25 mils Voice Recording & Playback Device Revision 2.1 *APPLICATION CIRCUIT DIAGRAM *POWER APPLICATION CIRCUIT DIAGRAM Page 22 Voice Recording & Playback Device APR6008 APR6008 SOP Pin-out Diagram