Integrated Circuits Inc. aPR33A3 aPR33A3 CPU Serial Mode (C1.1) Datasheet Recording voice IC APLUS INTEGRATED CIRCUITS INC. Address: 3 F-10, No. 32, Sec. 1, Chenggung Rd., Taipei, Taiwan 115, R.O.C. TEL: 886-2-2782-9266 FAX: 886-2-2782-9255 WEBSITE : http://www.aplusinc.com.tw Technology E-mail: [email protected] Sales E-mail: [email protected] Ver. E 1/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 FEATURES Operating Voltage Range: 3V ~ 6.5V Single Chip, High Quality Audio/Voice Recording & Playback Solution No External ICs Required Minimum External Components User Friendly, Easy to Use Operation Programming & Development Systems Not Required 680 sec. Voice Recording Length in aPR33A3 Powerful 16-Bits Digital Audio Processor. Nonvolatile Flash Memory Technology No Battery Backup Required External Reset pin. Powerful Power Management Unit Very Low Standby Current: 1uA Low Power-Down Current: 15uA Supports Power-Down Mode for Power Saving Built-in Audio-Recording Microphone Amplifier No External OPAMP or BJT Required Easy to PCB layout Configurable analog interface Differential-ended MIC pre-amp for Low Noise High Quality Line Receiver High Quality Analog to Digital and PWM module Resolution up to 16-bits Up To Maximum 1024 Voice Sections controlled through 5 pins only Built-in Memory-Management System Ver. E 2/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 DESCRIPTION Today’s consumers demand the best in audio/voice. They want crystal-clear sound wherever they are in whatever format they want to use. APLUS delivers the technology to enhance a listener’s audio/voice experience. The aPR33A series are powerful audio processor along with high performance audio analog-to-digital converters (ADCs) and digital-to-analog converters (DACs). The aPR33A series are a fully integrated solution offering high performance and unparalleled integration with analog input, digital processing and analog output functionality. The aPR33A series incorporates all the functionality required to perform demanding audio/voice applications. High quality audio/voice systems with lower bill-of-material costs can be implemented with the aPR33A series because of its integrated analog data converters and full suite of quality-enhancing features such as sample-rate convertor. The aPR33A series C1.X is specially designed for simple CPU interface, user can record or playback up to 1024 voices by 5 I/Os only. This mode built in one complete memory-management system. The control side doesn’t need to be burdened complicated memory distribution problems and it only needs to be through a simple instruction to proceed the audio/voice recording & playback so it largely shorten the developing time. Meanwhile, Chip provides the power-management system too. Users can let the chip enter power-down mode when unused. It can effectively reduce electric current consuming to 15uA and increase the using time in any projects powered by batteries. Ver. E 3/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 PIN CONFIGURATION DIP / SOP Package Ver. E 4/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 PIN DESCRIPTION Pin Names Pin No VDDP VDD VDDA 8 10 18 VDDL 24 VSSP VSSL VSSA 5 11 17 Power ground. VLDO 25 Internal LDO output. VCORE 16 Positive power supply for core. VREF 19 Reference voltage. VCM 20 Common mode voltage. Rosc 26 INPUT Oscillator resistor input. RSTB 27 INPUT Reset. (Low active) SRSTB 28 INPUT System reset, pull-down a resistor to the VSSL. MIC+ MIC- 21 22 INPUT Microphone differential input. MICG 23 OUTPUT Microphone ground. VOUT2 VOUT1 6 7 OUTPUT PWM output to drive speaker directly. /CS 15 INPUT Chip select. (Low active) SCK 3 INPUT Serial clock. SDI 9 INPUT Serial data input. SDO 4 OUTPUT Serial data output. /BUSY 14 OUTPUT System busy output. /RESERVE 13 OUTPUT Output reserve. Ver. E TYPE Description Positive power supply. 5/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 CONNECTION DIAGRAM Ver. E 6/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 SERIAL COMMAND The aPR33A3 series C1.X is specially designed for simple CPU interface. Chip is controlled by command sent to it from the host CPU. The /CS pin is used to select chip. The SCK and SDI pin are used to input command word into the chip while SDO and BUSY as output from the chip to the host CPU for feedback response. Command input into the chip contains 16-bit data and list the command format & summarize the available commands as below: Command D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 STOP 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DELETE 0 0 0 1 0 0 Voice No In Binary REC 0 0 1 0 0 0 Voice No In Binary PLAY 0 0 1 1 0 0 Voice No In Binary PUP 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 PDN 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 FORMAT 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 Note: First time use this chip, please execute FORMAT instruction first. Ver. E 7/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 REC The REC command is used to start record the voice to the specified voice number. In the REC command, the bit-15 ~ bit-10 is 001000 in binary, and the bit-9 ~ bit-0 is the voice number in binary. Up to 1024 voice numbers user can specify. After the REC command sent, the /BUSY pin will be drove low and playback “beep” tone to indicate the record operation starting. During the record operating, the /BUSY pin will keep driving low, and any command except STOP will be ignored. The record operation will continue until users send STOP command or full of memory, the /BUSY pin will be released and playback “beep” tone 2 times to indicate the record operation finished. If the specified voice number already exist voice data or the memory is full, the /BUSY pin will not drive to low and execute REC operating. User can use the DELETE command to clear specified voice number before REC command. Ver. E 8/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 PLAY The PLAY command is used to start playback the voice in the specified voice number. In the PLAY command, the bit-15 ~ bit-10 is 001100 in binary, and the bit-9 ~ bit-0 is the voice number in binary. Up to 1024 voice numbers user can specify. After the PLAY command sent, the /BUSY pin will be drove low to indicate the playback operation starting. During the playback operating, the /BUSY pin will keep drive low, and any command except STOP will be ignored. The playback operation will continue until users send STOP command or end of voice, the /BUSY pin will be released to indicate the record operation finished. If the specified voice number is empty, it will not drive /BUSY to low and playback. Ver. E 9/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 STOP The STOP command is used to stop current operation. After the STOP command sent, the /BUSY pin will be released to indicate end of the current operation. The STOP command is effective only in playing or recording. Ver. E 10/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 DELETE The DELETE command is used to delete the voice in the specified voice number. In the DELETE command, the bit-15 ~ bit-10 is 000100 in binary, and the bit-9 ~ bit-0 is the voice number in binary. Up to 1024 voice numbers user can specify. After the DELETE command sent, the /BUSY pin will be drove low to indicate the delete operation starting. When delete operation is finished, the /BUSY pin will be released. The memory space in the specified voice number will be release after delete operation, user can get more free space by delete unused voice. Ver. E 11/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 PDN The PDN command is used to enter the power-down mode. After the PDN command sent, the /BUSY pin will be drove low to indicate the power-down operation starting. When chip is in the power-down mode, the /BUSY pin will be released. During chip in the sleep mode, the current consumption is reduced to IPDN and any command except PUP will be ignored. PUP The PUP command is used to power up from sleep mode. After the PUP command sent, the /BUSY pin will be drove low to indicate the power up operation starting. When chip is in the idle mode, the /BUSY pin will be released. User can execute REC, PLAY or DELETE, or other command in idle mode. Ver. E 12/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 FORMAT The FORMAT command is used to restore memory to factory state. After the FORMAT command sent, the /BUSY pin will be drove low to indicate the format operation starting. When format operation is finished, the /BUSY pin will be released. All of the voice in the memory will be clear after execute format operation. Ver. E 13/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 VOICE INPUT The aPR33A series supported single channel voice input by microphone or line-in. The following fig. showed circuit for different input methods: microphone, line-in and mixture of both. (A) Microphone Ver. E 14/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 Note: The 10K resistor used for input signal adjust, and the value just for reference. (B) Line-In Note: The 10K resistor used for input signal adjust, and the value just for reference. (C) Microphone + Line-In Ver. E 15/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 VOICE OUTPUT The aPR33A series support 2 voice output mode, PWM and DAC. The PWM mode use VOUT1 and VOUT2 pin to drive speaker directly without external components to save cost. The DAC mode use VOUT2 pin to output current signal. User can use the signal to drive audio amplifier or mix with other components in their applications to provide larger voice volume. The following fig. show circuit for different output methods: PWM, DAC, DAC with transistor, DAC with audio amplifier AP4890B. (A) PWM Ver. E 16/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 (B) DAC (C) DAC with transistor Ver. E 17/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 (D) DAC with audio amplifier AP4890B Ver. E 18/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 RESET aPR33A series can enter standby mode when RSTB pin drive to low. During chip in the standby mode, the current consumption is reduced to ISB and any operation will be stopped, user also can not execute any new operate in this mode. The standby mode will continue until RSTB pin goes to high, chip will be started to initial, and playback “beep” tone to indicate enter idle mode. User can get less current consumption by control RSTB pin specially in some application which concern standby current. Ver. E 19/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 EXAMPLE The aPR33DB is one of the simplest solutions for achieve serial command mode demo. The circuit board already includes the peripheral circuit which containing microphone. Developers only need to notice how to connect with their development environment. It can effectively decrease the time of circuit connecting & any possible mistakes. Below figure shows how to connect aPR33DB with external host board in serial command mode : Ver. E 20/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 The below example C code display all the operating instructions. Developers can evaluate any possible operating ways and voice quality in the shortest time : //================================================================================================= // I/O Define //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // P_CS : aPR33Ax /CS pin. // P_SCK : aPR33Ax SCK pin. // P_DO : aPR33Ax DO pin. // P_DI : aPR33Ax DI pin. // P_BUSY: : aPR33Ax /BUSY pin. // KEY_REC : Key for record, high active. // KEY_PLAY: Key for playback, high active //================================================================================================= // Type Define //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // unsigned char: 1-byte. // unsigned int : 2-bytes. typedef union UTYPE { unsigned int Tunsigned int; // Dual-byte struct { Ver. E unsigned TBIT0:1; unsigned TBIT1:1; unsigned TBIT2:1; unsigned TBIT3:1; unsigned TBIT4:1; unsigned TBIT5:1; unsigned TBIT6:1; unsigned TBIT7:1; unsigned TBIT8:1; unsigned TBIT9:1; unsigned TBIT10:1; unsigned TBIT11:1; 21/30 JAN 06 2014 Integrated Circuits Inc. unsigned TBIT12:1; unsigned TBIT13:1; unsigned TBIT14:1; unsigned TBIT15:1; aPR33A3 }; }UTYPE; //================================================================================================= // Prototype //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= void CS(BOOL Value) { P_CS =Value; } void SCK(BOOL Value) { P_SCK=Value; Delay_500nS(); } void SDO(BOOL Value) { P_DO =Value; Delay_500nS(); } BOOL SDI() { return(P_DI); } //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= unsigned int SendCmd(unsigned int Value) { UTYPE TxData, RxData; //--------------------------------------------------------------------------------------------TxData.Tunsigned int = Value; //--------------------------------------------------------------------------------------------SDO(TxData.TBIT15); RxData.TBIT15=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT14); RxData.TBIT14=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT13); RxData.TBIT13=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT12); RxData.TBIT12=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT11); RxData.TBIT11=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT10); RxData.TBIT10=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT9); RxData.TBIT9=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT8); RxData.TBIT8=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT7); RxData.TBIT7=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT6); RxData.TBIT6=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT5); RxData.TBIT5=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT4); RxData.TBIT4=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT3); RxData.TBIT3=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT2); RxData.TBIT2=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT1); RxData.TBIT1=SDI(); SCK(1); SCK(0); SDO(TxData.TBIT0); RxData.TBIT0=SDI(); SCK(1); SCK(0); //--------------------------------------------------------------------------------------------- Ver. E 22/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 return (RxData.Tunsigned int); } //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= void PUP(void) { CS(0); Delay_10mS(); SendCmd(0xB100); CS(1); } void PDN(void) { CS(0); Delay_10mS(); SendCmd(0xB200); CS(1); } void FORMAT(void) { CS(0); Delay_10mS(); SendCmd(0xA5A5); CS(1); } void STOP(void) { CS(0); Delay_10mS(); SendCmd(0x0000); CS(1); } void DELETE(unsigned int VoiceNo) { CS(0); Delay_10mS(); SendCmd(0x1000|(VoiceNo&0x03FF)); CS(1); } void REC(unsigned int VoiceNo) { CS(0); Delay_10mS(); SendCmd(0x2000|(VoiceNo&0x03FF)); CS(1); } void PLAY(unsigned int VoiceNo) { CS(0); Delay_10mS(); SendCmd(0x3000|(VoiceNo&0x03FF)); CS(1); } //================================================================================================= // Main //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= void main(void) { //--------------------------------------------------------------------------------------------Init_IO(); // Initial I/O: /CS=0, SCK=0, SDI=0, SDO=input, /BUSY=input. //--------------------------------------------------------------------------------------------while(!P_BUSY); // Check for /BUSY pull-up. //--------------------------------------------------------------------------------------------// Format chip FORMAT(); while(P_BUSY); while(!P_BUSY); // Wait for format operation start & finished. //--------------------------------------------------------------------------------------------while(1) { if(KEY_REC) { DELETE(0x0000); while(P_BUSY); while(!P_BUSY); // Wait for delete operation start & finished. REC(0x0000); // Record the No.0 voice. Delay_10mS(); while((KEY_REC)&(!P_BUSY)); // Wait for release record key or full of memory. STOP(); while(!P_BUSY); // Wait for record finished. } if(KEY_PLAY) Ver. E 23/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 { PLAY(0x0000); Delay_10mS(); while((KEY_PLAY)&(!P_BUSY)); // Play the No.0 voice. // Wait for release play key or end of voice. STOP(); while(!P_BUSY); // Wait for play finished. } } //--------------------------------------------------------------------------------------------return ; } //================================================================================================= Ver. E 24/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 BLOCK DIAGRAM Figure 1. Block Diagram ABSOLUTE MAXIMUM RATINGS Ver. E Symbol Rating Unit VDD – VSS -0.3 ~ +10.0 V VIN VSS-0.3 < VIN < VDD+0.3 V VOUT VSS < VOUT < VDD V T(Operating) -40 ~ +85 ℃ T(Junction) -40 ~ +125 ℃ T(Storage) -40 ~ +125 ℃ 25/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 DC CHARACTERISTICS Symbol VDD Parameter Operating Voltage Min. Typ. Max. Unit 3.0 6.5 V 1 µA 20 µA Conditions ISB Standby Current IPDN Power-Down Current 15 IOP(IDLE) Operating Current (Idle) 20 mA VDD = 5V IOP(REC) Operating Current (Record) 35 mA VDD = 5V IOP(PLAY) Operating Current (Playback) 25 mA VDD = 5V VIH "H" Input Voltage VIL "L" Input Voltage IVOUT 2.5 V 0.6 VOUT Current V 185 mA IOH O/P High Current 8 mA VDD = 5V / VOH=4.5V IOL O/P Low Current 14 mA VDD = 5V / VOH=0.5V 300 KΩ External floating or drive low. 1 MΩ External drive high. 4.7 KΩ RNPIO Input pin pull-down resistance RUPIO Input pin pull-up resistance △Fs/Fs Frequency stability 5 % VDD = 5V ± 1.0V △Fc/Fc Chip to chip Frequency Variation 5 % Also apply to lot to lot variation. Ver. E 26/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 AC CHARACTERISTICS Symbol Parameter Min. Typ. Max. Unit Conditions T1 CS Setup Time 10 -- -- mS VDD=5.0V T2 Data-In Setup Time 500 -- -- nS VDD=5.0V T3 Data-In Hold Time 500 -- -- nS VDD=5.0V T4 /CS Hold Time 500 -- -- nS VDD=5.0V T5 /CS High Time 10 -- -- mS VDD=5.0V T6 Data-Out Setup Time -- -- 500 nS VDD=5.0V T7 BUSY Setup Time -- -- 10 mS VDD=5.0V T8 BUSY Hold Time -- -- 10 mS VDD=5.0V Ver. E 27/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 PACKAGE INFORMATION 28Pin 300mil SOP Package Ver. E 28/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 28Pin 600mil DIP Package Ver. E 29/30 JAN 06 2014 Integrated Circuits Inc. aPR33A3 HISTORY Ver. E (2014/01/06) - Delete aPR33A1 data Ver. D (2013/11/26) - Modify page.14-15 line in circuit Ver. C (2013/06/07) - Add DIP Package and outline - Delete data of aPR33A2 - Modify the name of the pins : DISDI , DOSDO Ver. B (2013/05/07) - Add section “VOICE OUTPUT”. - Modify code version to C1.1. Ver. A (2012/11/08) - Original version data sheet for aPR33Ax C1.0. Ver. E 30/30 JAN 06 2014