QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE FEATURES * * * * * * * * * * IDT821054A * 2 programmable tone generators per channel for testing, ringing and DTMF generation * Two programmable chopper clocks * Master clock frequency selectable: 1.536 MHz, 1.544 MHz, 2.048 MHz, 3.072 MHz, 3.088 MHz, 4.096 MHz, 6.144 MHz, 6.176 MHz or 8.192 MHz * Advanced test capabilities: - 3 analog loopback tests - 5 digital loopback tests - Level metering function * High analog driving capability (300 AC) * TTL/CMOS compatible digital I/O * CODEC identification * +5 V single power supply * Low power consumption * Operating temperature range: -40C to +85C * Package available: 64 Pin TQFP 4-channel CODEC with on-chip digital filters Software selectable A/-law, linear code conversion Meets ITU-T G.711 - G.714 requirements Programmable digital filters adapting to system demands: - AC impedance matching - Transhybrid balance - Frequency response correction - Gain setting Supports two programmable PCM buses Flexible PCM interface with up to 128 programmable time slots, data rate from 512 kbits/s to 8.192 Mbits/s MPI control interface Broadcast mode for coefficient setting 7 SLIC signaling pins (including 2 debounced pins) per channel Fast hardware ring trip mechanism FUNCTIONAL BLOCK DIAGRAM CH1 CH3 VIN1 Filter and A/D Filter and A/D VOUT1 D/A and Filter 2 Inputs 3 I/Os 2 Outputs SLIC Signaling D/A and Filter DSP Core CHCLK1 CHCLK2 PLL and Clock Generation VOUT3 2 Inputs 3 I/Os 2 Outputs SLIC Signaling CH2 MCLK VIN3 CH4 General Control Logic RESET INT12 INT34 MPI Interface CCLK CS CI CO DR1 DR2 DX1 DX2 PCM Interface FS BCLK TSX1 TSX2 The IDT logo is a registered trademark of Integrated Device Technology, Inc. DECEMBER 08, 2003 INDUSTRIAL TEMPERATURE RANGE 1 2003 Integrated Device Technology, Inc. DSC-6224/3 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE DESCRIPTION INDUSTRIAL TEMPERATURE four channels of the IDT821054A. The device also provides 7 signaling pins per channel for SLICs. The IDT821054A is programmed via a Microprocessor Interface (MPI). Two PCM buses are provided to transfer the compressed or linear PCM data. The device offers strong test capability with several analog/digital loopbacks and level metering function. It brings convenience to system maintenance and diagnosis. A unique feature of "Hardware Ring Trip" is implemented in the IDT821054A. When an off-hook signal is detected, the IDT821054A will reverse an output pin to stop the ringing signal immediately. The IDT821054A can be used in digital telecommunication applications such as Central Office Switch, PBX, DLC and Integrated Access Devices (IADs), i.e. VoIP and VoDSL. The IDT821054A is a feature rich, single-chip, programmable 4channel PCM CODEC with on-chip filters. Besides the -Law/A-Law companding and linear coding/decoding (14 effective bits + 2 extra sign bits), the IDT821054A also provides 2 programmable tone generators per channel (which can generate ring signals) and 2 programmable chopper clocks for SLICs. The digital filters in the IDT821054A provide necessary transmit and receive filtering for voice telephone circuits to interface with time-division multiplexed systems. An integrated programmable DSP realizes AC impedance matching, transhybrid balance, frequency response correction and gain adjustment functions. The IDT821054A supports 2 PCM buses with programmable sampling edge, which allows an extra delay of up to 7 clocks. Once the delay is determined, it is effective to all 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 SI2_2 SI1_2 SB3_2 SB2_2 SB1_2 SO2_2 SO1_2 SO1_1 SO2_1 SB1_1 SB2_1 SB3_1 SI1_1 SI2_1 INT12 CHCLK1 PIN CONFIGURATION IDT821054A 64 Pin TQFP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 SI2_3 SI1_3 SB3_3 SB2_3 SB1_3 SO2_3 SO1_3 SO1_4 SO2_4 SB1_4 SB2_4 SB3_4 SI1_4 SI2_4 INT34 CHCLK2 VIN1 GNDA1 VOUT1 VDDA12 VOUT2 GNDA2 VIN2 CNF VDDB VIN3 GNDA3 VOUT3 VDDA34 VOUT4 GNDA4 VIN4 2 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 BCLK FS DR2 DX2 TSX2 DR1 DX1 TSX1 VDDD RESET MCLK GNDD CO CI CCLK CS IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE TABLE OF CONTENTS 1 Pin Description...................................................................................................................................................................................................7 2 Functional Description ......................................................................................................................................................................................9 2.1 MPI/PCM Interface ....................................................................................................................................................................................9 2.1.1 Microprocessor Interface (MPI) ....................................................................................................................................................9 2.1.2 PCM Bus ....................................................................................................................................................................................10 2.2 DSP Programming...................................................................................................................................................................................11 2.2.1 Signal Processing.......................................................................................................................................................................11 2.2.2 Gain Adjustment.........................................................................................................................................................................11 2.2.3 Impedance Matching .................................................................................................................................................................11 2.2.4 Transhybrid Balance ..................................................................................................................................................................12 2.2.5 Frequency Response Correction................................................................................................................................................12 2.3 SLIC Control ............................................................................................................................................................................................12 2.3.1 SI1 and SI2.................................................................................................................................................................................12 2.3.2 SB1, SB2 and SB3 .....................................................................................................................................................................12 2.3.3 SO1 and SO2 .............................................................................................................................................................................12 2.4 Hardware Ring Trip .................................................................................................................................................................................12 2.5 Interrupt and Interrupt Enable..................................................................................................................................................................12 2.6 Debounce Filters .....................................................................................................................................................................................13 2.7 Chopper Clock.........................................................................................................................................................................................13 2.8 Dual Tone and Ring Generation..............................................................................................................................................................13 2.9 Level Metering .........................................................................................................................................................................................14 2.10 Channel Power Down/Standby Mode......................................................................................................................................................14 2.11 Power Down/Suspend Mode ...................................................................................................................................................................14 3 Operating The IDT821054A .............................................................................................................................................................................15 3.1 Programming Description ........................................................................................................................................................................15 3.1.1 Command Type and Format ......................................................................................................................................................15 3.1.2 Addressing the Local Registers..................................................................................................................................................15 3.1.3 Addressing the Global Registers................................................................................................................................................15 3.1.4 Addressing the Coe-RAM...........................................................................................................................................................15 3.1.5 Programming Examples .............................................................................................................................................................16 3.1.5.1 Example of Programming Local Registers .................................................................................................................16 3.1.5.2 Example of Programming Global Registers................................................................................................................16 3.1.5.3 Example of Programming the Coefficient-RAM..........................................................................................................16 3.2 Power-on Sequence ................................................................................................................................................................................19 3.3 Default State After Reset.........................................................................................................................................................................19 3.4 Registers Description ..............................................................................................................................................................................20 3.4.1 Registers Overview ....................................................................................................................................................................20 3.4.2 Global Registers List ..................................................................................................................................................................22 3.4.3 Local Registers List ....................................................................................................................................................................28 4 Absolute Maximum Ratings ............................................................................................................................................................................32 5 Recommended DC Operating Conditions .....................................................................................................................................................32 6 Electrical Characteristics ................................................................................................................................................................................32 6.1 Digital Interface........................................................................................................................................................................................32 6.2 Power Dissipation....................................................................................................................................................................................32 6.3 Analog Interface ......................................................................................................................................................................................33 7 Transmission Characteristics .........................................................................................................................................................................34 7.1 Absolute Gain ..........................................................................................................................................................................................34 7.2 Gain Tracking ..........................................................................................................................................................................................34 7.3 Frequency Response ..............................................................................................................................................................................34 7.4 Group Delay ............................................................................................................................................................................................35 7.5 Distortion .................................................................................................................................................................................................35 7.6 Noise .......................................................................................................................................................................................................36 3 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE 7.7 7.8 INDUSTRIAL TEMPERATURE Interchannel Crosstalk.............................................................................................................................................................................36 Intrachannel Crosstalk.............................................................................................................................................................................36 8 Timing Characteristics ....................................................................................................................................................................................37 8.1 Clock Timing............................................................................................................................................................................................37 8.2 Microprocessor Interface Timing .............................................................................................................................................................38 8.3 PCM Interface Timing..............................................................................................................................................................................39 9 Appendix: IDT821054A Coe-RAM Mapping ...................................................................................................................................................40 10 Ordering Information .......................................................................................................................................................................................41 4 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE LIST OF FIGURES Figure - 1 Figure - 2 Figure - 3 Figure - 4 Figure - 5 Figure - 6 Figure - 7 Figure - 8 Figure - 9 Figure - 10 Figure - 11 An Example of the MPI Interface Write Operation .............................................................................................................................. 9 An Example of the MPI Interface Read Operation (ID = 81H)............................................................................................................. 9 Sampling Edge Selection Waveform................................................................................................................................................. 10 Signal Flow for Each Channel ........................................................................................................................................................... 11 Debounce Filter ................................................................................................................................................................................. 13 Clock Timing...................................................................................................................................................................................... 37 MPI Input Timing ............................................................................................................................................................................... 38 MPI Output Timing ............................................................................................................................................................................ 38 Transmit and Receive Timing............................................................................................................................................................ 39 Typical Frame Sync Timing (2 MHz Operation) ................................................................................................................................ 39 Coe-RAM Mapping............................................................................................................................................................................ 40 5 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE LIST OF TABLES Table - 1 Table - 2 Table - 3 Table - 4 Consecutive Adjacent Addressing......................................................................................................................................................15 Global Registers (GREG) Mapping ....................................................................................................................................................20 Local Registers (LREG) Mapping.......................................................................................................................................................21 Coe-RAM Address Allocation.............................................................................................................................................................40 6 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE 1 INDUSTRIAL TEMPERATURE PIN DESCRIPTION Name Type Pin Number Description GNDA1 GNDA2 GNDA3 GNDA4 Ground 50 54 59 63 Analog Ground. All ground pins should be connected together. GNDD Ground 21 Digital Ground. All digital signals are referred to this pin. VDDA12 VDDA34 Power 52 61 +5 V Analog Power Supply. These pins should be connected to ground via a 0.1 F capacitor. All power supply pins should be connected together. VDDD Power 24 +5 V Digital Power Supply. VDDB Power 57 +5 V Analog Power Supply. This pin should be connected to ground via a 0.1 F capacitor. All power supply pins should be connected together. CNF - 56 Capacitor Noise Filter. This pin should be connected to ground via a 0.22 F capacitor. VIN1-4 I 49, 55, 58, 64 Analog Voice Inputs of Channel 1-4. These pins should be connected to the corresponding SLIC via a 0.22 F capacitor. VOUT1-4 O 51, 53, 60, 62 Voice Frequency Receiver Outputs of Channel 1-4. These pins can drive 300 AC load. It can drive transformers directly. SI1_(1-4) SI2_(1-4) I 36, 47, 2, 13 SLIC Signalling Inputs with debounce function for Channel 1-4. 35, 48, 1, 14 SB1_(1-4) SB2_(1-4) SB3_(1-4) I/O 39, 44, 5, 10 Bi-directional SLIC Signalling I/Os for Channel 1-4. 38, 45, 4, 11 These pins can be individually programmed as input or output. 37, 46, 3, 12 SO1_(1-4) SO2_(1-4) O 41, 42, 7, 8 SLIC Signalling Outputs for Channel 1-4. 40, 43, 6, 9 DX1 O 26 Transmit PCM Data Output, PCM Highway One. Transmit PCM Data to PCM highway one. The PCM data is output through DX1 or DX2 as selected by local register LREG5. This pin remains in high-impedance state until a pulse appears on the FS pin. DX2 O 29 Transmit PCM Data Output, PCM Highway Two. Transmit PCM Data to PCM highway two. The PCM data is output thought DX1 or DX2 as selected by local register LREG5. This pin remains in high-impedance state until a pulse appears on the FS pin. DR1 I 27 Receive PCM Data Input, PCM Highway One. The PCM data is received from PCM highway one (DR1) or two (DR2). The receive PCM highway is selected by local register LREG6. DR2 I 30 Receive PCM Data Input, PCM Highway Two. The PCM data is received from PCM highway one (DR1) or two (DR2). The receive PCM highway is selected by local register LREG6. FS I 31 Frame Synchronization. FS is an 8 kHz synchronization clock that identifies the beginning of the PCM frame. BCLK I 32 Bit Clock. This pin clocks out the PCM data to DX1 or DX2 pin and clocks in PCM data from DR1 or DR2 pin. It may vary from 512 kHz to 8.192 MHz and should be synchronous to FS. 7 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE Name Type Pin Number Description TSX1 TSX2 0 25 28 Transmit Output Indicator. The TSX1 pin becomes low when PCM data is transmitted via DX1. Open-drain. The TSX2 pin becomes low when PCM data is transmitted via DX2. Open-drain. CS I 17 Chip Selection. A logic low level on this pin enables the Serial Control Interface. CI I 19 Serial Control Interface Data Input. Control data input pin. CCLK determines the data rate. CO O 20 Serial Control Interface Data Output. Control data output pin. CCLK determines the data rate. This pin is in high-impedance state when the CS pin is logic high. CCLK I 18 Serial Control Interface Clock. This is the clock for the Serial Control Interface. It can be up to 8.192 MHz. MCLK I 22 Master Clock Input. This pin provides the clock for the DSP of the IDT821054A. The frequency of the MCLK can be 1.536 MHz, 1.544 MHz, 2.048 MHz, 3.072 MHz, 3.088 MHz, 4.096 MHz, 6.144 MHz, 6.176 MHz or 8.192 MHz. RESET I 23 Reset Input. Forces the device to default mode. Active low. INT12 O 34 Interrupt Output Pin for Channel 1-2. Active high interrupt signal for Channel 1 and 2, open-drain. It reflects the changes on the corresponding SLIC input pins. INT34 O 15 Interrupt Output Pin for Channel 3-4. Active high interrupt signal for Channel 3 and 4, open-drain. It reflects the changes on the corresponding SLIC input pins. CHCLK1 O 33 Chopper Clock Output One. Provides a programmable output signal (2 -28 ms) synchronous to MCLK. CHCLK2 O 16 Chopper Clock Output Two. Provides a programmable output signal (256 kHz, 512 kHz or 16.384 MHz) synchronous to MCLK. 8 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE 2 FUNCTIONAL DESCRIPTION interface and the Coefficient-RAM of the IDT821054A are programmed by the master device via MPI, which consists of four lines (pins): CCLK, CS, CI and CO. All commands and data are aligned in byte (8 bits) and transferred via the MPI interface. CCLK is the clock of the MPI interface. The frequency of CCLK can be up to 8.192 MHz. CS is the chip selection pin. A low level on CS enables the MPI interface. CI and CO are data input and data output pins, carrying control commands and data bytes to/from the IDT821054A. The data transfer is synchronized to the CCLK signal. The contents of CI is latched on the rising edges of CCLK, while CO changes on the falling edges of CCLK. The CCLK signal is the only reference of CI and CO pins. Its duty and frequency may not necessarily be standard. When the CS pin becomes low, the IDT821054A treats the first byte on the CI pin as command and the rest as data. To write another command, the CS pin must be changed from low to high to finish the previous command and then changed from high to low to indicate the start of a new command. When a read/write operation is completed, the CS pin must be set to high in 8-bit time. During the execution of commands that are followed by output data byte(s), the IDT821054A will not accept any new commands from the CI pin. But the data transfer sequence can be interrupted by setting the CS pin to high at any time. See Figure - 1 and Figure - 2 for examples of MPI write and read operation timing diagrams. The IDT821054A is a four-channel PCM CODEC with on-chip digital filters. It provides a four-wire solution for the subscriber line circuitry in digital switches. The IDT821054A converts analog voice signals to digital PCM samples and digital PCM samples back to analog voice signals. The digital filters are used to bandlimit the voice signals during conversion. High performance oversampling Analog-to-Digital Converters (ADC) and Digital-to-Analog Converters (DAC) in the IDT821054A provide the required conversion accuracy. The associated decimation and interpolation filtering is performed by both dedicated hardware and Digital Signal Processor (DSP). The DSP also handles all other necessary procession such as PCM bandpass filtering, sample rate conversion and PCM companding. 2.1 MPI/PCM INTERFACE A serial Microprocessor Interface (MPI) is provided for the master device to control the IDT821054A. Two PCM buses are provided to transfer the digital voice data. 2.1.1 INDUSTRIAL TEMPERATURE MICROPROCESSOR INTERFACE (MPI) The internal configuration registers (local/global), the SLIC signaling CCLK CS CI 7 6 5 4 3 2 1 0 7 6 5 Command Byte CO 4 3 2 1 0 7 6 5 Data Byte 1 4 3 2 1 0 2 1 0 Data Byte 2 High 'Z' Figure - 1 An Example of the MPI Interface Write Operation CCLK CS Ignored CI 7 6 5 4 3 2 1 0 Command Byte CO High 'Z' Identification Code '1' '0' '0' '0' '0' '0' Data Byte 1 '0' '1' 7 6 Figure - 2 An Example of the MPI Interface Read Operation (ID = 81H) 9 5 4 3 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE 2.1.2 INDUSTRIAL TEMPERATURE complement number (b13 to b0 are effective bits, b15 and b14 are as same as the sign bit b13). So, the voice data of one channel occupies one time slot group, which consists of 2 adjacent time slots. The TT[6:0] bits in LREG5 select a transmit time slot group for the specified channel. If TT[6:0] = n(d), it means that time slots TS(2n+1) and TS(2n+2) are selected. For example, if TT[6:0] = 00H, it means that TS0 and TS1 are selected. The RT[6:0] bits in LREG6 select a receive time slot group for the specified channel in the same way. The PCM data of each individual channel can be clocked out to transmit PCM highway one (DX1) or two (DX2) on the programmed edges of BCLK according to time slot assignment. The transmit PCM highway is selected by the THS bit in LREG5. The frame sync (FS) pulse identifies the beginning of a transmit frame (TS0). The PCM data is serially transmitted on DX1 or DX2 with MSB first. The PCM data of each individual channel is received from receive PCM highway one (DR1) or two (DR2) on the programmed edges of BCLK according to time slot assignment. The receive PCM highway is selected by the RHS bit in LREG6. The frame sync (FS) pulse identifies the beginning of a receive frame (TS0). The PCM data is serially received from DR1 or DR2 with MSB first. PCM BUS The IDT821054A provides two flexible PCM buses for all 4 channels. The digital PCM data can be compressed (A/-law) or linear code. As shown in Figure - 3, the data rate can be configured as same as the Bit Clock (BCLK) or half of it. The PCM data is transmitted or received either on the rising edges or on the falling edges of the BCLK signal. The transmit and receive time slots can offset from the FS signal by 0 to 7 periods of BCLK. All these configurations are made by global register GREG7, which is effective for all four channels. The PCM data of each channel can be assigned to any time slot of the PCM bus. The number of available time slots is determined by the frequency of the BCLK signal. For example, if the frequency is 512 kHz, 8 time slots (TS0 to TS7) are available. If the frequency is 1.024 MHz, 16 time slots (TS0 to TS15) are available. The IDT821054A accepts BCLK frequency of 512 kHz to 8.192 MHz at increments of 64 kHz. When compressed PCM code (8-bit wide) is selected, the voice data of one channel occupies one time slot. The TT[6:0] bits in local register LREG5 select the transmit time slot for each channel, while the RT[6:0] bits in LREG6 select the receive time slot for each channel. When linear PCM code is selected, the voice data is a 16-bit 2's Transmit Receive FS PCM Clock Slope Bits in GREG7: BCLK Single Clock CS = 000 CS = 001 CS = 010 CS = 011 Bit 7 TS0 BCLK Double Clock CS = 100 CS = 101 CS = 110 CS = 111 Figure - 3 Sampling Edge Selection Waveform 10 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE 2.2 DSP PROGRAMMING 2.2.1 SIGNAL PROCESSING INDUSTRIAL TEMPERATURE impedance, balance transhybrid and correct frequency response. All the coefficients of the digital filters can be calculated automatically by a software provided by IDT. When users provide accurate SLIC model, impedance and gain requirements, this software will calculate all the coefficients automatically. After loading these coefficients to the coefficient RAM of the IDT821054A, the final AC characteristics of the line card (consists of SLIC and CODEC) will meet the ITU-T specifications. Several blocks are programmable for signal processing. This allows users to optimize the performance of the IDT821054A for the system. Figure - 4 shows the signal flow for each channel and indicates the programmable blocks. The programmable digital filters are used to adjust gain and LREG1: CS[3] CS[3] = 1: enable (normal) CS[3] = 0: disable (bypass) Transmit Path Analog @64 KHz @2 MHz @8 KHz @16 KHz TS PCM Highway Level Meter VIN LPF/AA UF GRX U2 FRX HPF CMP ECF LPF FRR EXP Dual Tone LREG1: CS[2] CS[2] = 1: enable (normal) CS[2] = 0: disable (cut) LREG1: CS[0] CS[0] = 1: enable (normal) CS[0] = 0: disable (cut) TSA DX1/DX2 ALB-DI U1 LPF DLB-DI - IMF D2 DLB-PCM LPF/SC GIS GTX DLB-8K ALB-8K ALB-1BIT DLB_1BIT DLB-ANA VOUT D1 - TSA DR1/DR2 CUT-OFF-PCM LREG1: CS[1] CS[1] = 1: enable (normal) CS[1] = 0: disable (cut) Bold Black Framed: Programmable Filters Receive Path Fine Black Framed: Fixed Filters Figure - 4 Signal Flow for Each Channel Abbreviation List: LPF/AA: Anti-Alias Low-pass Filter LPF/SC: Smoothing Low-pass Filter LPF: Low-pass Filter HPF: High-pass Filter GIS: Gain for Impedance Scaling D1: 1st Down Sample Stage D2: 2nd Down Sample Stage U1: 1st Up Sample Stage U2: 2nd Up Sample Stage UF: Up Sampling Filter (64 k - 128 k) 2.2.2 IMF: Impedance Matching Filter ECF: Echo Cancellation Filter GTX: Gain for Transmit Path GRX: Gain for Receive Path FRX: Frequency Response Correction for Transmit FRR: Frequency Response Correction for Receive CMP: Compression EXP: Expansion TSA: Time Slot Assignment minimum 0.1 dB step. For each channel, the digital gain filter in the receive path (GRX) can be disabled by setting the CS[7] bit in LREG1 to `0'. If the CS[7] bit in LREG1 is set to `1', the GRX filter will be enabled and the digital gain will be programmed by the coefficient RAM. Note that the RAM block for containing GRX coefficient is shared by all four channels. That is, once the GRX coefficient is written to the coe-RAM, it will be used by all four channels. The GRX is programmable from -12 dB to +3 dB with minimum 0.1 dB step. GAIN ADJUSTMENT For each individual channel, the analog A/D gain in the transmit path can be selected as 0 dB or 6 dB. The selection is done by the GAD bit in LREG9. It is 0 dB by default. For each individual channel, the analog D/A gain in the receive path can be selected as 0 dB or -6 dB. The selection is done by the GDA bit in LREG9. It is 0 dB by default. For each channel, the digital gain filter in the transmit path (GTX) can be disabled by setting the CS[5] bit in LREG1 to `0'. If the CS[5] bit in LREG1 is set to `1', the GTX filter will be enabled and the digital gain will be programmed by the coefficient RAM. Note that the RAM block for containing GTX coefficient is shared by all four channels. That is, once the GTX coefficient is written to the coe-RAM, it will be used by all four channels. The GTX is programmable from -3 dB to +12 dB with 2.2.3 IMPEDANCE MATCHING The IDT821054A provides a programmable feedback path from VIN to VOUT for each channel. This feedback synthesizes the two-wire impedance of the SLIC. The programmable Impedance Matching Filter 11 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE channels. Users can also read the information of SB1, SB2 and SB3 of the specified channel from local register LREG4. If the SB1, SB2 and SB3 pins are configured as outputs, data can only be written to them via GREG10, GREG11 and GREG12 respectively. (IMF) and Gain of Impedance Scaling filter (GIS) work together to realize impedance matching. If the CS[0] bit in LREG1 is `0', the IMF is disabled. If the CS[0] bit is `1', the IMF coefficient is programmed by the coefficient RAM. If the CS[2] bit in LREG1 is `0', the GIS filter is disabled. If the CS[2] bit is `1', the GIS coefficient is programmed by the coefficient RAM. 2.3.3 2.2.4 TRANSHYBRID BALANCE 2.4 FREQUENCY RESPONSE CORRECTION SLIC CONTROL The SLIC control interface of the IDT821054A consists of 7 pins per channel: 2 inputs SI1 and SI2, 3 I/Os SB1 to SB3, and 2 outputs SO1 and SO2. 2.3.1 SI1 AND SI2 The SLIC inputs SI1 and SI2 can be read in 2 ways - globally for all 4 channels or locally for each individual channel. The SI1 and SI2 status of all 4 channels can be read via global register GREG9. The SIA[3:0] bits in this register represent the debounced SI1 data of Channel 4 to Channel 1. The SIB[3:0] bits in this register represent the debounced SI2 data of Channel 4 to Channel 1. Both the SI1 and SI2 pins can be connected to off-hook, ring trip, ground key signals or other signals. The global register GREG9 provides a more efficient way to obtain time-critical data such as on/offhook and ring trip information from the SLIC input pins SI1 and SI2. The SI1 and SI2 status of each channel can also be read via the corresponding local register LREG4. 2.3.2 HARDWARE RING TRIP In order to avoid the damage caused by high voltage ring signal, the IDT821054A provides a hardware ring trip function to respond to the offhook signal as fast as possible. This function is enabled by setting the RTE bit in GREG8 to `1'. The off-hook signal can be input via either SI1 or SI2 pin, while the ring control signal can be output via any of the SO1, SO2, SB1, SB2 and SB3 pins (assume that SB1-SB3 are configured as outputs). The IS bit in GREG8 is used to select an input pin and the OS[2:0] bits are used to select an output pin. When a valid off-hook signal arrives at the selected input pin (SI1 or SI2), the IDT821054A will turn off the ring signal by inverting the logic level of the selected output pin (SO1, SO2, SB1, SB2 or SB3), regardless of the value of the corresponding SLIC output control register (the value should be changed later). This function provides a much faster response to off-hook signals than the software ring trip which turns off the ring signal by changing the value of the corresponding register. The IPI bit in GREG8 is used to indicate the valid polarity of the input pin. If the off-hook signal is active low, the IPI bit should be set to `0'. If the off-hook signal is active high, the IPI bit should be set to `1'. The OPI bit in GREG8 is used to indicate the valid polarity of the output pin. If the ring control signal is required to be low in normal status and high to activate a ring, the OPI bit should be set to `1'. If it is required to be high in normal status and low to activate a ring, the OPI bit should be set to `0'. Here is an example: In a system where the off-hook signal is active low and ring control signal is active high, the IPI bit should be set to `0' and the OPI bit should be set to `1'. In normal status, the selected input (off-hook signal) is high and the selected output (ring control signal) is low. When the ring is activated by setting the output (ring control signal) to high, a low pulse appearing on the input (off-hook signal) will inform the device to invert the output to low and cut off the ring signal. The IDT821054A provides two filters that can be programmed to correct any frequency distortion caused by the impedance matching filter. They are the Frequency Response Correction in the Transmit path filter (FRX) and the Frequency Response Correction in the Receive path filter (FRR). If the CS[4] bit in LREG1 is `0', the FRX filter is disabled. If the CS[4] bit is `1', the FRX coefficient is programmed by the coefficient RAM. If the CS[6] bit in LREG1 is `0', the FRR filter is disabled. If the CS[6] bit is `1', the FRR coefficient is programmed by the coefficient RAM. Refer to "9 Appendix: IDT821054A Coe-RAM Mapping" for the address of the GTX, GRX, FRX, FRR, GIS, ECF and IMF coefficients. 2.3 SO1 AND SO2 The control data can only be written to the two output pins SO1 and SO2 by local register LREG4 on a per-channel basis. When being read, the SO1 and SO2 bits in LREG4 will be read out with the data written to them in the previous write operation. The ECF filter is used to adjust transhybrid balance and ensure that the echo cancellation meets the ITU-T specifications. If the CS[1] bit in LREG1 is `0', the ECF filter is disabled. If the CS[1] bit is `1', the ECF coefficient is programmed by the coefficient RAM. 2.2.5 INDUSTRIAL TEMPERATURE SB1, SB2 AND SB3 2.5 The SLIC I/O pin SB1 of each channel can be configured as input or output via global register GREG10. The SB1C[3:0] bits in GREG10 determine the SB1 directions of Channel 4 to Channel 1: `0' means input and '1' means output. The SB2C[3:0] bits in GREG11 and the SB3C[3:0] bits in GREG12 respectively determine the SB2 and SB3 directions of Channel 4 to Channel 1 in the same way. If the SB1, SB2 or SB3 pin is selected as input, its information can be read from both global and local registers. The SB1[3:0], SB2[3:0] and SB3[3:0] bits in global registers GREG10, GREG11 and GREG12 respectively contain the information of SB1, SB2 and SB3 for all four INTERRUPT AND INTERRUPT ENABLE An interrupt mechanism is provided in the IDT821054A for reading the SLIC input state. Each change of the SLIC input state will generate an interrupt. Any of the SLIC inputs including SI1, SI2, SB1, SB2 and SB3 (if SB1SB3 are configured as inputs) can be an interrupt source. As SI1 and SI2 signals are debounced while the SB1 to SB3 signals are not, users should pay more attention to the interrupt sources of SB1 to SB3. Local register LREG2 is used to enable/disable the interrupts. Each bit of IE[4:0] in LREG2 corresponds to one interrupt source of the 12 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE initially clocked at half of the frame sync rate (250 s). Any data changing at this sample rate resets a counter that clocks at the rate of 2 ms. The value of the counter is programmable from 0 to 30 via LREG3. The debounced SI1 signals of Channel 4 to 1 are written to the SIA[3:0] bits in GREG9. The corresponding SIA bit will not be updated until the value of the counter is reached. The SI1 pin usually contains the SLIC switch hook status. The GK[3:0] bits in LREG3 are used to program the debounce interval of the SI2 input of the corresponding channel. The debounced SI2 signals of Channel 4 to 1 are written to the SIB[3:0] bits in GREG9. The GK debounce filter consists of a six-state up/down counter that ranges between 0 and 6. This counter is clocked by the GK timer at the sampling period of 0-30 ms, which is programmed via LREG3. If the sampled value is low, the value of the counter will be decremented by each clock pulse. If the sampled value is high, the value of the counter is incremented by each clock pulse. When the value increases to 6, it sets a latch whose output is routed to the corresponding SIB bit. If the value decreases to 0, the latch will be cleared and the output bit will be set to 0. In other cases, the latch and the SIB status remain in their previous state without being changed. In this way, at least six consecutive GK clocks with the debounce input remaining at the same state can effect an output change. specified channel. When one bit of IE[4:0] is `0', the corresponding interrupt is ignored (disabled), otherwise, the corresponding interrupt is recognized (enabled). Multiple interrupt sources can be enabled at the same time. All interrupts can be cleared simultaneously by executing a write operation to global register GREG2. Additionally, the interrupts caused by all four channels' SI1 and SI2 status changes can be cleared by applying a read operation to GREG9. If SB1, SB2 and SB3 pins are configured as inputs, a read operation to GREG10, GREG11 and GREG12 clears the interrupt generated by the corresponding SB port of all four channels. A read operation to LREG4 clears all 7 interrupt sources of the specified channel. 2.6 DEBOUNCE FILTERS For each channel, the IDT821054A provides two debounce filter circuits: Debounced Switch Hook (DSH) Filter for the SI1 signal and Ground Key (GK) Filter for the SI2 signal. See Figure - 5 for details. The two debounce filters are used to buffer the input signals on SI1 and SI2 pins before changing the state of the SLIC Debounced Input SI1/SI2 Register (GREG9). The Frame Sync (FS) signal is necessary for both DSH and GK filters. The DSH[3:0] bits in LREG3 are used to program the debounce period of the SI1 input of the corresponding channel. The DSH filter is SI1 D Q D INDUSTRIAL TEMPERATURE Q D Q D Q SIA E DSH[3:0] Debounce Period (0-30 ms) FS/2 4 kHz =0 0 SI2 GK[3:0] Debounce Interval (0-30 ms) D Q 7 bit Debounce Counter up/ Q down D Q RST 7 bit Debounce Counter SIB GK 6 states Up/down Counter Figure - 5 Debounce Filter 2.7 CHOPPER CLOCK and tone generator 1) for each channel. They can produce signals such as test tone, DTMF, dial tone, busy tone, congestion tone and Caller-ID Alerting Tone, and output it to the VOUT pin. The dual tone generators of each channel can be enabled by setting the TEN0 and TEN1 bits in LREG10 to `1'respectively. The frequency and amplitude of the tone signal are programmed by the Coe-RAM. The frequency and amplitude coefficients are calculated by the following formulas: Frequency coefficient = 32767 cos(f / 8000 2 ) Amplitude coefficient = A 32767 sin(f / 8000 2 ) Herein, 'f' is the desired frequency of the tone signal, 'A' is the scaling parameter of the amplitude. The range of 'A' is from 0 to 1. A = 1, corresponds to the maximum amplitude of 1.57 V. The IDT821054A provides two programmable chopper clock outputs CHCLK1 and CHCLK2. They can be used to drive the power supply switching regulators on SLICs. The two chopper clocks are synchronous to MCLK. The CHCLK1 outputs a signal which clock cycle is programmable from 2 to 28 ms. The CHCLK2 outputs a signal which frequency can be 256 kHz, 512 kHz or 16.384 MHz. The frequencies of the two chopper clocks are programmed by global register GREG5. 2.8 DUAL TONE AND RING GENERATION The IDT821054A provides two tone generators (tone generator 0 13 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE A = 0, corresponds to the minimum amplitude of 0 V. It is a linear relationship between 'A' and the amplitude. That is, if A= ( 0<<1), the amplitude will be 1.57 (V). The frequency range is from 25 Hz to 3400 Hz. The frequency tolerances are as the following: 25 Hz < f < 40 Hz, tolerance < 12% 40 Hz < f < 60 Hz, tolerance < 5% 60 Hz < f < 100 Hz, tolerance < 2.5% 100 Hz < f < 3400 Hz, tolerance < 1% The frequency and amplitude coefficients should be converted to corresponding hexadecimal values before being written to the CoeRAM. Refer to "9 Appendix: IDT821054A Coe-RAM Mapping" for the address of the tone coefficients. The ring signal is a special signal generated by the dual tone generators. When only one tone generator is enabled, or dual tone generators produce the same tone signal and frequency of the tone meets the ring signal requirement (10 Hz to 100 Hz), a ring signal will be generated and output to the VOUT pin. the L/C bit is `1', it means that metering mode is selected. In this mode, the linear PCM data will be sent to the level meter and the metering result will be output to GREG18 and GREG19. With this result, the signal level can be calculated. For A-law compressed PCM code or linear PCM code, the signal level can be calculated by the following formula: 2.9 If the L/C bit is `0', it means that message mode is selected. In this mode, the compressed PCM data will be output to GREG19 transparently without metering. Refer to the Application Note for further details on the level meter. 5 LM Result x 2 x A ( dbm0 ) = 20 x log -------------------------------------------------------------- + 3.14 LM x 2 x 8192 Countnumber For -law compressed PCM code, the signal level can be calculated by the following formula: 5 LM Result x 2 x A ( dbm0 ) = 20 x log -------------------------------------------------------------- + 3.17 LM Countnumber x 2 x 8192 LMResult: the value in the level meter result registers (GREG18 & GREG19); LMCountnumber:the count number of the level meter (set in GREG20). LEVEL METERING The IDT821054A integrates a level meter which is shared by all 4 channels. The level meter is designed to emulate the off-chip PCM test equipment so as to facilitate the line-card, subscriber line and users telephone set monitoring. The level meter tests the return signal and reports the measurement result via the MPI interface. When combined with tone generation and loopbacks, it allows the microprocessor to test the channel integrity. The signal on the channel selected by the CS[1:0] bits in GREG21 will be metered. The level meter is enabled by setting the LMO bit in GREG21 to `1'. A level meter counter register (GREG20) is used to set the value of time cycles for sampling the PCM data (8 kHz sampling rate). The output of level meter is sent to the level meter result registers GREG18 and GREG19. The LVLL[7:0] bits in GREG18 contain the lower 7 bits of the result and a data-ready bit (LVLL[0]), while the LVLH[7:0] bits in GREG19 contain the higher 8 bits of the result. An internal accumulator sums the rectified samples until the value set in GREG20 is reached. By then, the LVLL[0] bit is set to `1' and accumulation result is latched into GREG18 and GREG19 simultaneously. Once the higher byte of result (GREG19) is read, the LVLL[0] bit in GREG18 will be reset. It will be set to `1' again by a new data available. The contents of GREG18 and GREG19 will be overwritten by the following metering result if they have not been read out yet. To read the level meter result registers, it is recommended to read GREG18 (lower byte of result) first. The L/C bit in GREG21 determines the level meter operation mode. If 2.10 CHANNEL POWER DOWN/STANDBY MODE Each individual channel of the IDT821054A can be powered down independently by setting the PD bit in LREG9 to `1'. If one channel is powered down and enters the standby mode, the PCM data transfer and the D/A, A/D converters of this channel will be disabled. In this way, the power consumption of the device can be reduced. When the IDT821054A is powered up or reset, all four channels will be powered down. All circuits that contain programmed information retain their data after power down. The microprocessor interface is always active so that new commands can be received and executed. 2.11 POWER DOWN/SUSPEND MODE A suspend mode is provided for the whole chip to save power. The suspend mode saves much more power consumption than the standby mode. In this mode, the PLL block is turned off and the DSP operation is disabled. Only global and local commands can be executed, the RAM operation is disabled as the internal clock has been turned off. The PLL block is powered down by setting the PPD bit in GREG22 to `1'. Once the PLL and all four channels are powered down, the IDT821054A will enter the suspend mode. 14 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE 3 OPERATING THE IDT821054A 3.1 PROGRAMMING DESCRIPTION registers to be addressed automatically, with the highest order first. For example, if the address specified in a Local Command ends with `11' (b1b0 = 11), 4 adjacent registers will be addressed by this command; if b1b0 = 10, 3 adjacent registers will be addressed. See Table - 1 for details. The IDT821054A is programmed by writing commands to registers and coefficient RAM. A Channel Program Enable register (GREG6) is provided for addressing individual or multiple channels. The CE[3:0] bits in this register are assigned to Channel 4 to Channel 1 respectively. The channels are enabled to be programmed by setting their respective CE bits to `1'. If two or more channels are enabled, the successive write commands will be effective to all enabled channels. A broadcast mode can be implemented by simply enabling all four channels before performing other write-operation. The broadcast mode is very useful for configuring the coefficient RAM of the IDT821054A in a large system. But for read operations, multiple addressing is not allowed. The IDT821054A uses an Identification Code to distinguish itself from other devices in the system. When being read, the IDT821054A will output an Identification Code of 81H first to indicate that the following data bytes are from the IDT821054A. 3.1.1 Table - 1 Consecutive Adjacent Addressing Address Specified in a Local Command b[4:0] = XXX11 (b1b0 = 11, four bytes of data) b[4:0] = XXX10 (b1b0 = 10, three bytes of data) b[4:0] = XXX01 (b1b0 = 01, two bytes of data) b[4:0] = XXX00 (b1b0 = 00, one byte of data) COMMAND TYPE AND FORMAT The IDT821054A provides three types of commands as follows: Local Command (LC), which is used to address the local registers of the specified channel(s). Global Command (GC), which is used to address the global registers of all four channels. RAM Command (RC), which is used to address the coefficient RAM (Coe-RAM). The format of the command is as the following: b7 R/W b6 b5 CT b4 b3 b2 b1 In/Out Data Bytes Address of the Local Registers to be accessed byte 1 byte 2 byte 3 byte 4 byte 1 byte 2 byte 3 byte 1 XXX11 XXX10 XXX01 XXX00 XXX10 XXX01 XXX00 XXX01 byte 2 XXX00 byte 1 XXX00 When addressing local registers, the procedure of consecutive adjacent addressing can be stopped by the CS signal at any time. If CS is changed from low to high, the operation to the current register and the next adjacent registers will be aborted. However, the previous operation results will not be affected. 3.1.3 ADDRESSING THE GLOBAL REGISTERS For global registers are shared by all four channels, it is no need to specify the channel(s) before addressing a global register. Except for this, the global registers are addressed in a similar way as local registers. The procedure of consecutive adjacent addressing can be stopped by the CS signal at any time. b0 Address Read/Write Command bit b7 = 0: Read Command b7 = 1: Write Command CT: Command Type b6 b5 = 00: LC - Local Command b6 b5 = 01: GC - Global Command b6 b5 = 10: Not Allowed b6 b5 = 11: RC - RAM Command Address: b[4:0], specify one or more local/global registers or a block of Coe-RAM to be addressed. For Local Command and Global Command, the b[4:0] bits are used to specify the address of the local registers and global registers respectively. For RAM Command, b[4:0] bits are used to specify the block of the Coe-RAM. R/W: 3.1.2 INDUSTRIAL TEMPERATURE 3.1.4 ADDRESSING THE COE-RAM There are totally 40 words of Coe-RAM. They are divided to 5 blocks. Each block consists of 8 words. Each word is 14-bit wide. The 5 blocks of the Coe-RAM are assigned for different filter coefficients as shown below (refer to "9 Appendix: IDT821054A CoeRAM Mapping" for the address of the Coe-RAM): Block 1: IMF RAM (Word 0 - Word 7), containing the Impedance Matching Filter coefficient. Block 2: ECF RAM (Word 8 - Word 15), containing the Echo Cancellation Filter coefficient. Block 3: GIS RAM (Word 16 - Word 19) and Tone Generator RAM (Word 20 - Word 23), containing the Gain of Impedance Scaling and dual tone coefficients. Block 4: FRX RAM (Word 24 - Word 30) and GTX RAM (Word 31), containing the coefficient of the Frequency Response Correction in Transmit Path and the Gain in Transmit Path; Block 5: FRR RAM (Word 32 - Word 38) and GRX RAM (Word 39), containing the coefficient of the Frequency Response Correction in Receive Path and the Gain in Receive Path. The Coe-RAM blocks used for containing the IMF, ECF, GIS, FRX, GTX, FRR and GRX coefficients are shared by all four channels. When coefficients are written to these blocks, they will be used by all four channels. But the four words (word 20 to 23), which contain the dual ADDRESSING THE LOCAL REGISTERS When addressing the local registers, users must specify which channel(s) will be addressed first. If two or more channels are specified via GREG6, the corresponding local registers of the specified channels will be addressed by a Local Command at the same time. The IDT821054A provides a consecutive adjacent addressing method for accessing the local registers. According to the address specified in a Local Command, there will be 1 to 4 adjacent local 15 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE Coe-RAM to be accessed. When a Coe-RAM command is executed, the CODEC automatically counts down from the highest address to the lowest address of the specified block. So all 8 words of the block will be addressed by one Coe-RAM command. When addressing the Coe-RAM, the procedure of consecutive adjacent addressing can be stopped by the CS signal at any time. If the CS signal is changed from low to high, the operation to the current word and the next adjacent words will be aborted. However, the previous operation results will not be affected. tone coefficients, can only be addressed on a per-channel basis. Therefore, users should specify a channel (by setting the corresponding CE bit in GREG6 to `1') before writing/reading tone coefficients to/from the Coe-RAM. To write a Coe-RAM word, 16 bits (b[15:0]) or two 8-bit bytes are needed to fulfill with MSB first, but the lowest two bits (b[1:0]) will be ignored. When read, each word will output 16 bits with MSB first, but the lowest two bits (b[1:0]) are meaningless. The address in a Coe-RAM command (b[4:0]) specifies a block of 3.1.5 PROGRAMMING EXAMPLES 3.1.5.1 Example of Programming Local Registers INDUSTRIAL TEMPERATURE * Writing to LREG2 and LREG1 of Channel 1: 1010, 0101 Channel Enable command 0001, 0010 Data for GREG6 (Channel 1 is enabled for programming) 1000, 0001 Local register write command (The address is '00001', which means that data will be written to LREG2 and LREG1.) xxxx, xxxx Data for LREG2 xxxx, xxxx Data for LREG1 * Reading from LREG2 and LREG1 of Channel 1: 1010, 0101 Channel Enable command 0001, 0010 Data for GREG6 (Channel 1 is enabled for programming) 0000, 0001 Local register read command (The address is '00001', which means that LREG2 and LREG1 will be read.) After the preceding commands are executed, data will be sent out as follows: 1000, 0001 Identification code xxxx, xxxx Data read out from LREG2 xxxx, xxxx Data read out from LREG1 3.1.5.2 Example of Programming Global Registers * Writing to GREG1: 1010, 0000 Global register write command (The address is '00000', which means that data will be written to GREG1.) 1111, 1111 Data for GREG1 * Reading from GREG1: 0010, 0000 Global register read command (The address is '00000', which means that GREG1 will be read.) After the preceding command is executed, data will be sent out as follows: 1000, 0001 Identification code 0000, 0001 Data read out from GREG1 3.1.5.3 Example of Programming the Coefficient-RAM As described in "3.1.4 Addressing the Coe-RAM", the Coe-RAM blocks used for containing the IMF, ECF, GIS, FRX, GTX, FRR and GRX coefficients are shared by all four channels. When coefficients are written to these blocks, they will be used by all four channels. But the four words (word 20 to 23), which contain the tone coefficients, can only be addressed on a per-channel basis. Therefore, users should specify a channel before writing/reading tone coefficients to/from the Coe-RAM. * Writing to the Coe-RAM - Examples for Coe-RAM blocks shared by all four channels: 1110,0000 Coe-RAM write command (The address of '00000' is located in block 1, which means that data will be written to block 1.) data byte 1 high byte of word 8 of block 1 data byte 2 low byte of word 8 of block 1 data byte 3 high byte of word 7 of block 1 data byte 4 low byte of word 7 of block 1 data byte 5 high byte of word 6 of block 1 data byte 6 low byte of word 6 of block 1 data byte 7 high byte of word 5 of block 1 data byte 8 low byte of word 5 of block 1 data byte 9 high byte of word 4 of block 1 data byte 10 low byte of word 4 of block 1 data byte 11 high byte of word 3 of block 1 data byte 12 low byte of word 3 of block 1 data byte 13 high byte of word 2 of block 1 16 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE data byte 14 data byte 15 data byte 16 INDUSTRIAL TEMPERATURE low byte of word 2 of block 1 high byte of word 1 of block 1 low byte of word 1 of block 1 - Examples for the Coe-RAM used for tone coefficients: 1010,0101 Channel Enable command 0001,0010 Data for GREG6 (Channel 1 is enabled for programming) 1110,0010 Coe-RAM write command (The address of '00010' is located in block 3, which means that data will be written to block 3.) data byte 1 high byte of word 8 of block 3 data byte 2 low byte of word 8 of block 3 data byte 3 high byte of word 7 of block 3 data byte 4 low byte of word 7 of block 3 data byte 5 high byte of word 6 of block 3 data byte 6 low byte of word 6 of block 3 data byte 7 high byte of word 5 of block 3 data byte 8 low byte of word 5 of block 3 data byte 9 high byte of word 4 of block 3 (see Note 1) data byte 10 low byte of word 4 of block 3 data byte 11 high byte of word 3 of block 3 data byte 12 low byte of word 3 of block 3 data byte 13 high byte of word 2 of block 3 data byte 14 low byte of word 2 of block 3 data byte 15 high byte of word 1 of block 3 data byte 16 low byte of word 1 of block 3 Note 1: In block 3 of the Coe-RAM, word 5 to word 8 are used for tone coefficients while word 1 to word 4 are used for GIS coefficients. If users do not want to change the GIS coefficient while writing tone coefficients to the Coe-RAM, they can stop the procedure of consecutive adjacent addressing (after writing data to word 5) by pulling the CS signal to high, or they can rewrite word 1 to word 4 with the original GIS coefficients. * Reading from the Coe-RAM - Examples for Coe-RAM blocks shared by all four channels: 0110,0000 Coe-RAM read command (The address of '00000' is located in block 1, which means that block 1 will be read.) After the preceding command is executed, data will be sent out as follows: 1000,0001 Identification code data byte 1 data read out from high byte of word 8 of block 1 data byte 2 data read out from low byte of word 8 of block 1 data byte 3 data read out from high byte of word 7 of block 1 data byte 4 data read out from low byte of word 7 of block 1 data byte 5 data read out from high byte of word 6 of block 1 data byte 6 data read out from low byte of word 6 of block 1 data byte 7 data read out from high byte of word 5 of block 1 data byte 8 data read out from low byte of word 5 of block 1 data byte 9 data read out from high byte of word 4 of block 1 data byte 10 data read out from low byte of word 4 of block 1 data byte 11 data read out from high byte of word 3 of block 1 data byte 12 data read out from low byte of word 3 of block 1 data byte 13 data read out from high byte of word 2 of block 1 data byte 14 data read out from low byte of word 2 of block 1 data byte 15 data read out from high byte of word 1 of block 1 data byte 16 data read out from low byte of word 1 of block 1 - Examples for the Coe-RAM used for tone coefficients: 1010,0011 Channel Enable command 0001,0010 Data for GREG6 (Channel 1 is enabled for programming) 0110,0010 Coe-RAM read command (The address of '00010' is located in block 3, which means that block 3 will be read.) After the preceding commands are executed, data will be sent out as follows: 1000,0001 Identification code data byte 1 data read out from high byte of word 8 of block 3 data byte 2 data read out from low byte of word 8 of block 3 data byte 3 data read out from high byte of word 7 of block 3 17 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE data byte 4 data byte 5 data byte 6 data byte 7 data byte 8 data byte 9 data byte 10 data byte 11 data byte 12 data byte 13 data byte 14 data byte 15 data byte 16 data read out from low byte of word 7 of block 3 data read out from high byte of word 6 of block 3 data read out from low byte of word 6 of block 3 data read out from high byte of word 5 of block 3 data read out from low byte of word 5 of block 3 data read out from high byte of word 4 of block 3 data read out from low byte of word 4 of block 3 data read out from high byte of word 3 of block 3 data read out from low byte of word 3 of block 3 data read out from high byte of word 2 of block 3 data read out from low byte of word 2 of block 3 data read out from high byte of word 1 of block 3 data read out from low byte of word 1 of block 3 18 INDUSTRIAL TEMPERATURE IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE 3.2 POWER-ON SEQUENCE 4. The master clock frequency is 2.048 MHz. 5. Transmit and receive time slots are set to be 0-3 respectively for Channel 1-4. The PCM data rate is as same as the BCLK frequency. The PCM data is transmitted on rising edges of the BCLK signal and received on falling edges of it. 6. A-Law is selected. 7. The digital filters including GRX, FRR, GTX, FRX, GIS, ECF and IMF are disabled. The high-pass filters (HPF) are enabled. Refer to Figure - 4 and descriptions on LREG1 for details. 8. The SB1, SB2 and SB3 pins are configured as inputs. 9. The SI1 and SI2 pins are configured as no debounce. 10.All interrupts are disabled and all pending interrupts are cleared. 11. All feature function blocks including dual tone generators, hardware ring trip and level meter are disabled. 12.The outputs of CHCLK1 and CHCLK2 are set to high. To power on the IDT821054A, users should follow the sequence below: 1. Apply ground first; 2. Apply VCC, finish signal connections and set the RESET pin to logic low. The device then goes into the default state; 3. Set the RESET pin to logic high; 4. Select master clock frequency; 5. Program filter coefficients and other parameters as required; 3.3 INDUSTRIAL TEMPERATURE DEFAULT STATE AFTER RESET When the IDT821054A is powered on, or reset either by command or by setting the RESET pin to logic low for at least 50 s, the device will enter the default state as follows: 1. All four channels are powered down and in standby mode. 2. All loopbacks and cutoff are disabled. 3. The DX1 pin is selected for all channels to transmit data and the DR1 pin is selected for all channels to receive data. The data stored in the RAM will not be changed by any kind of reset operations. So the RAM data will not be lost unless the device is powered down physically. 19 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE 3.4 REGISTERS DESCRIPTION 3.4.1 REGISTERS OVERVIEW INDUSTRIAL TEMPERATURE Table - 2 Global Registers (GREG) Mapping Name Function GREG1 Version number (read)/ no operation (write) Register Byte b7 b6 b5 b4 b3 b2 b1 b0 Read Write Default Command Command Value 20H A0H 01H GREG2 Interrupt clear - A1H - GREG3 Software reset - A2H - GREG4 Hardware reset - A3H - 24H A4H 00H GREG5 GREG6 GREG7 GREG8 GREG9 GREG10 GREG11 GREG12 Chopper clock selection MCLK selection and channel program enable Data format, companding law, clock slope and PCM delay time selection SLIC ring trip setting and control Debounced data on SI1 and SI2 pins SB1 direction control and SB1 data SB2 direction control and SB2 data SB3 direction control and SB3 data Reserved CHclk2[1] CHclk2[0] CHclk1[3] CHclk1[2] CHclk1[1] CHclk1[0] CE[3] CE[2] CE[1] CE[0] Sel[3] Sel[2] Sel[1] Sel[0] 25H A5H 02H A- VDS CS[2] CS[1] CS[0] OC[2] OC[1] OC[0] 26H A6H 00H OPI Reserved IPI IS RTE OS[2] OS[1] OS[0] 27H A7H 00H SIB[3] SIB[2] SIB[1] SIB[0] SIA[3] SIA[2] SIA[1] SIA[0] 28H - 00H SB1C[3] SB1C[2] SB1C[1] SB1C[0] SB1[3] SB1[2] SB1[1] SB1[0] 29H A9H 00H SB2C[3] SB2C[2] SB2C[1] SB2C[0] SB2[3] SB2[2] SB2[1] SB2[0] 2AH AAH 00H SB3C[3] SB3C[2] SB3C[1] SB3C[0] SB3[3] SB3[2] SB3[1] SB3[0] 2BH ABH 00H GREG13 Reserved for future use Reserved - - - GREG14 Reserved for future use Reserved - - - GREG15 Reserved for future use Reserved - - - GREG16 Reserved for future use Reserved - - - GREG17 Reserved for future use Reserved - - - GREG18 GREG19 GREG20 GREG21 GREG22 Level meter result low byte Level meter result high byte Level meter count number level meter mode and channel selection, level meter enable Loopback control and PLL power down LVLL[7] LVLL[6] LVLL[5] LVLL[4] LVLL[3] LVLL[2] LVLL[1] LVLL[0] 31H - 00H LVLH[7] LVLH[6] LVLH[5] LVLH[4] LVLH[3] LVLH[2] LVLH[1] LVLH[0] 32H - 00H CN[7] CN[6] CN[5] CN[4] CN[3] CN[2] CN[1] CN[0] 33H B3H 00H LMO L/C CS[1] CS[0] 34H B4H 00H DLB_8k DLB_DI ALB_DI 35H B5H 00H Reserved Reserved PPD DLB_ANA ALB_8k 20 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE Table - 3 Local Registers (LREG) Mapping Register Byte Name Function LREG1 Coefficient selection b7 b6 b5 b4 b3 b2 b1 b0 CS[7] CS[6] CS[5] CS[4] CS[3] CS[2] CS[1] CS[0] IE[3] IE[2] IE[1] IE[0] GK[2] GK[1] GK[0] DSH[3] DSH[2] DSH[1] SO2 SO1 SB3 SB2 SB1 SI2 Local loopbacks LREG2 control and SLIC input IE[4] interrupt enable DSH and GK GK[3] LREG3 debounce filters configuration SLIC IO status/control LREG4 Reserved data Read Write Comman Comman d d Default Value 00H 80H 08H 01H 81H 00H DSH[0] 02H 82H 00H SI1 03H 83H - DLB_PCM ALB_1BIT DLB_1BIT 00H for CH1 01H for CH2 02H for CH3 03H for CH4 00H for CH1 01H for CH2 02H for CH3 03H for CH4 Transmit highway and LREG5 time slot selection THS TT[6] TT[5] TT[4] TT[3] TT[2] TT[1] TT[0] 04H 84H Receive highway and time slot selection RHS RT[6] RT[5] RT[4] RT[3] RT[2] RT[1] RT[0] 05H 85H LREG7 PCM data low byte PCM[7] PCM[6] PCM[5] PCM[4] PCM[3] PCM[2] PCM[1] PCM[0] 06H - 00H LREG8 PCM data high byte PCM[15] PCM[14] PCM[13] PCM[12] PCM[11] PCM[10] PCM[9] PCM[8] 07H - 00H PD PCMCT GAD GDA 0 0 0 0 08H 88H 80H TEN1 TEN0 09H 89H 00H LREG6 Channel power down, LREG9 A/D and D/A gains, PCM cutoff Tone generator LREG1 enable and tone 0 program enable Reserved TPROG1 TPROG0 21 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE For the global and local registers described below, it should be noted that: 1. R/W = 0, Read command. R/W = 1, Write command. 2. The reserved bit(s) in the registers must be filled in `0' in write operation and be ignored in read operation. 3.4.2 GLOBAL REGISTERS LIST GREG1: No Operation, Write (A0H); Version Number, Read (20H) Command b7 b6 b5 b4 b3 b2 b1 b0 R/W 0 1 0 0 0 0 0 By applying a read operation (20H) to this register, users can read out the version number of the IDT821054A. The default value is 01H. To write to this register (no operation), a data byte of FFH must follow the write command (A0H) to ensure proper operation. GREG2: Interrupt Clear, Write Only (A1H) Command b7 b6 b5 b4 b3 b2 b1 b0 1 0 1 0 0 0 0 1 All interrupts on SLIC I/O will be cleared by applying a write operation to this register. Note that a data byte of FFH must follow the write command (A1H) to ensure proper operation. GREG3: Software Reset, Write Only (A2H) Command b7 b6 b5 b4 b3 b2 b1 b0 1 0 1 0 0 0 1 0 A write operation to this register resets all local registers, but does not reset global registers and the Coe-RAM. Note that when writing to this register, a data byte of FFH must follow the write command (A2H) to ensure proper operation. GREG4: Hardware Reset, Write Only (A3) Command b7 b6 b5 b4 b3 b2 b1 b0 1 0 1 0 0 0 1 1 A write operation to this register is equivalent to setting the RESET pin to logic low (Refer to "3.3 Default State After Reset" on page 19 for details). Note that when applying this write command, a data byte of FFH must follow to ensure proper operation. GREG5: Chopper Clock Selection, Read/Write (24H/A4H) Command b7 b6 b5 b4 b3 b2 b1 b0 R/W 0 1 0 0 1 0 0 Chclk2[1] Chclk2[0] Chclk1[3] Chclk1[2] Chclk1[1] Chclk1[0] I/O data Reserved This register is used to select the frequency of the CHclk2 and CHclk1 output signals. CHclk2[1:0] = 00: the output of chclk2 is set to high permanently (default); CHclk2[1:0] = 01: chclk2 outputs a digital signal with the frequency of 512 kHz; CHclk2[1:0] = 10: chclk2 outputs a digital signal with the frequency of 256 kHz; CHclk2[1:0] = 11: chclk2 outputs a digital signal with the frequency of 16384 kHz; CHclk1[3:0] = 0000: CHclk1[3:0] = 0001: CHclk1[3:0] = 0010: CHclk1[3:0] = 0011: CHclk1[3:0] = 0100: CHclk1[3:0] = 0101: CHclk1[3:0] = 0110: CHclk1[3:0] = 0111: CHclk1[3:0] = 1000: the output of chclk1 is set to high permanently (default); chclk1 outputs a digital signal with the frequency of 1000/2 Hz; chclk1 outputs a digital signal with the frequency of 1000/4 Hz; chclk1 outputs a digital signal with the frequency of 1000/6 Hz; chclk1 outputs a digital signal with the frequency of 1000/8 Hz; chclk1 outputs a digital signal with the frequency of 1000/10 Hz; chclk1 outputs a digital signal with the frequency of 1000/12 Hz; chclk1 outputs a digital signal with the frequency of 1000/14 Hz; chclk1 outputs a digital signal with the frequency of 1000/16 Hz; 22 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE CHclk1[3:0] = 1001: CHclk1[3:0] = 1010: CHclk1[3:0] = 1011: CHclk1[3:0] = 1100: CHclk1[3:0] = 1101: CHclk1[3:0] = 1110: CHclk1[3:0] = 1111: INDUSTRIAL TEMPERATURE chclk1 outputs a digital signal with the frequency of 1000/18 Hz; chclk1 outputs a digital signal with the frequency of 1000/20 Hz; chclk1 outputs a digital signal with the frequency of 1000/22 Hz; chclk1 outputs a digital signal with the frequency of 1000/24 Hz; chclk1 outputs a digital signal with the frequency of 1000/26 Hz; chclk1 outputs a digital signal with the frequency of 1000/28 Hz; the output of chclk1 is set to low permanently. GREG6: MCLK Selection and Channel Program Enable, Read/Write (25H/A5H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 1 0 0 1 0 1 I/O data CE[3] CE[2] CE[1] CE[0] Sel[3] Sel[2] Sel[1] Sel[0] The higher 4 bits (CE[3:0]) in this register are used to specify the desired channel(s) before addressing local registers or Coe-RAM used for tone coefficients. The CE[0] to CE[3] bits indicate the program enable state for Channel 1 to Channel 4 respectively. CE[0] = 0: Disabled, Channel 1 can not receive programming commands (default); CE[0] = 1: Enabled, Channel 1 can receive programming commands; CE[1] = 0: Disabled, Channel 2 can not receive programming commands (default); CE[1] = 1: Enabled, Channel 2 can receive programming commands; CE[2] = 0: Disabled, Channel 3 can not receive programming commands (default); CE[2] = 1: Enabled, Channel 3 can receive programming commands; CE[3] = 0: Disabled, Channel 4 can not receive programming commands (default); CE[3] = 1: Enabled, Channel 4 can receive programming commands. The lower 4 bits (Sel[3:0]) in this register are used to select the Master Clock frequency. Sel[3:0] = 0000: 8.192 MHz Sel[3:0] = 0001: 4.096 MHz Sel[3:0] = 0010: 2.048 MHz (default) Sel[3:0] = 0110: 1.536 MHz Sel[3:0] = 1110: 1.544 MHz Sel[3:0] = 0101: 3.072 MHz Sel[3:0] = 1101: 3.088 MHz Sel[3:0] = 0100: 6.144 MHz Sel[3:0] = 1100: 6.176 MHz GREG7: A/-law, Linear/Compressed Code, Clock Slope and Delay Time Selection, Read/Write (26H/A6H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 1 0 0 1 1 0 I/O data A- VDS CS[2] CS[1] CS[0] OC[2] OC[1] OC[0] The A/-law select bit (A-) selects the companding law: A- = 0: A-law is selected (default) A- = 1: -law is selected. The Voice Data Select bit (VDS) defines the format of the voice data: VDS = 0: Compressed code (default) VDS = 1: Linear code The Clock Slope bits (CS[2:0]) select single or double clock and clock edges of transmitting and receiving data. CS[2] = 0: Single clock (default) CS[2] = 1: Double clock CS[1:0] = 00: CS[1:0] = 01: CS[1:0] = 10: CS[1:0] = 11: transmits data on rising edges of BCLK, receives data on falling edges of BCLK (default). transmits data on rising edges of BCLK, receives data on rising edges of BCLK. transmits data on falling edges of BCLK, receives data on falling edges of BCLK. transmits data on falling edges of BCLK, receives data on rising edges of BCLK. 23 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE The PCM data Offset Configuration bits (OC[2:0]) determine that the transmit and receive time slots of PCM data offset from the FS signal by how many periods of BCLK: OC[2:0] = 000: 0 period of BCLK (default); OC[2:0] = 001: 1 period of BCLK; OC[2:0] = 010: 2 periods of BCLK; OC[2:0] = 011: 3 periods of BCLK; OC[2:0] = 100: 4 periods of BCLK; OC[2:0] = 101: 5 periods of BCLK; OC[2:0] = 110: 6 periods of BCLK; OC[2:0] = 111: 7 periods of BCLK. GREG8: SLIC Ring Trip Setting and Control, Read/Write (27H/A7H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 1 0 0 1 1 1 I/O data OPI Reserved IPI IS RTE OS[2] OS[1] OS[0] The Output Polarity Indicator bit (OPI) indicates the valid polarity of output: OPI = 0: the selected output pin changes from high to low to activate the ring (default); OPI = 1: the selected output pin changes from low to high to activate the ring. The Input Polarity Indicator bit (IPI) indicates the valid polarity of input: IPI = 0: active low (default); IPI = 1: active high. The Input Selection bit (IS) determines which input will be selected as the off-hook indication signal source. IS = 0: SI1 is selected (default); IS = 1: SI2 is selected. The Ring Trip Enable bit (RTE) enables or disables the ring trip function block: RTE = 0: the ring trip function block is disabled (default); RTE = 1: the ring trip function block is enabled. The Output Selection bits (OS[2:0]) determine which output will be selected as the ring control signal source. OS[2:0] = 000 - 010: not defined; OS[2:0] = 011: SB1 is selected (when SB1 is configured as an output); OS[2:0] = 100: SB2 is selected (when SB2 is configured as an output); OS[2:0] = 101: SB3 is selected (when SB3 is configured as an output); OS[2:0] = 110: SO1 is selected; OS[2:0] = 111: SO2 is selected. GREG9: SI Data, Read Only (28H) b7 b6 b5 b4 b3 b2 b1 b0 Command 0 0 1 0 1 0 0 0 I/O data SIB[3] SIB[2] SIB[1] SIB[0] SIA[3] SIA[2] SIA[1] SIA[0] The SIA[3:0] bits contain the debounced data (off-hook status) on the SI1 pins of Channel 4 to Channel 1 respectively. The SIB[3:0] bits contain the debounced data (ground key status) on the SI2 pins of Channel 4 to Channel 1 respectively. 24 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE GREG10: SB1 Direction Control and SB1 Status/Control Data, Read/Write (29H/A9H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 1 0 1 0 0 1 I/O data SB1C[3] SB1C[2] SB1C[1] SB1C[0] SB1[3] SB1[2] SB1[1] SB1[0] The SB1 direction control bits SB1C[3:0] in this register determine the directions of the SB1 pins of Channel 4 to Channel 1 respectively. SB1C[0] = 0: the SB1 pin of Channel 1 is configured as input (default); SB1C[0] = 1: the SB1 pin of Channel 1 is configured as output; SB1C[1] = 0: the SB1 pin of Channel 2 is configured as input (default); SB1C[1] = 1: the SB1 pin of Channel 2 is configured as output; SB1C[2] = 0: the SB1 pin of Channel 3 is configured as input (default); SB1C[2] = 1: the SB1 pin of Channel 3 is configured as output; SB1C[3] = 0: the SB1 pin of Channel 4 is configured as input (default); SB1C[3] = 1: the SB1 pin of Channel 4 is configured as output. When the SB1 pins of Channel 1 to Channel 4 are configured as inputs, the SB1[0] to SB1[3] bits contain the status of these four SB1 pins respectively. When the SB1 pins of Channel 1 to Channel 4 are configured as outputs, the control data is written to these four SB1 pins via the SB1[0] to SB1[3] bits respectively. GREG11: SB2 Direction Control and SB2 Status/Control Data, Read/Write (2AH/AAH) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 1 0 1 0 1 0 I/O data SB2C[3] SB2C[2] SB2C[1] SB2C[0] SB2[3] SB2[2] SB2[1] SB2[0] The SB2 direction control bits SB2C[3:0] in this register determine the directions of the SB2 pins of Channel 4 to Channel 1 respectively. SB2C[0] = 0: the SB2 pin of Channel 1 is configured as input (default); SB2C[0] = 1: the SB2 pin of Channel 1 is configured as output; SB2C[1] = 0: the SB2 pin of Channel 2 is configured as input (default); SB2C[1] = 1: the SB2 pin of Channel 2 is configured as output; SB2C[2] = 0: the SB2 pin of Channel 3 is configured as input (default); SB2C[2] = 1: the SB2 pin of Channel 3 is configured as output; SB2C[3] = 0: the SB2 pin of Channel 4 is configured as input (default); SB2C[3] = 1: the SB2 pin of Channel 4 is configured as output. When the SB2 pins of Channel 1 to Channel 4 are configured as inputs, the SB2[0] to SB2[3] bits contain the status of these four SB2 pins respectively. When the SB2 pins of Channel 1 to Channel 4 are configured as outputs, the control data is written to these four SB2 pins via the SB2[0] to SB2[3] bits respectively. GREG12: SB3 Direction Control and SB3 Status/Control Data, Read/Write (2BH/ABH) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 1 0 1 0 1 1 I/O data SB3C[3] SB3C[2] SB3C[1] SB3C[0] SB3[3] SB3[2] SB3[1] SB3[0] The SB3 direction control bits SB3C[3:0] in this register determine the directions of the SB3 pins of Channel 4 to Channel 1 respectively. SB3C[0] = 0: the SB3 pin of Channel 1 is configured as input (default); SB3C[0] = 1: the SB3 pin of Channel 1 is configured as output; SB3C[1] = 0: the SB3 pin of Channel 2 is configured as input (default); SB3C[1] = 1: the SB3 pin of Channel 2 is configured as output; SB3C[2] = 0: the SB3 pin of Channel 3 is configured as input (default); SB3C[2] = 1: the SB3 pin of Channel 3 is configured as output; SB3C[3] = 0: the SB3 pin of Channel 4 is configured as input (default); SB3C[3] = 1: the SB3 pin of Channel 4 is configured as output. When the SB3 pins of Channel 1 to Channel 4 are configured as inputs, the SB3[0] to SB3[3] bits contain the status of these four SB3 25 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE pins respectively. When the SB3 pins of Channel 1 to Channel 4 are configured as outputs, the control data is written to these four SB3 pins via the SB3[0] to SB3[3] bits respectively. GREG13: Reserved for future use. GREG14: Reserved for future use. GREG15: Reserved for future use. GREG16: Reserved for future use. GREG17: Reserved for future use. GREG18: Level Meter Result Low Byte, Read Only (31H) b7 b6 b5 b4 b3 b2 b1 b0 Command 0 0 1 1 0 0 0 1 I/O data LVLL[7] LVLL[6] LVLL[5] LVLL[4] LVLL[3] LVLL[2] LVLL[1] LVLL[0] This register contains the low byte of the level meter result. The default value is 00H. The LVLL[0] bit in this register will be set to `1' when the level meter result (both high and low bytes) is ready, and it will be reset to `0' immediately after the high byte of result is read. To read the level meter result, it is recommended to the low byte first, then read the high byte (LVLH[7:0] in GREG19). GREG19: Level Meter Result High Byte, Read Only (32H) b7 b6 b5 b4 b3 b2 b1 b0 Command 0 0 1 1 0 0 1 0 I/O data LVLH[7] LVLH[6] LVLH[5] LVLH[4] LVLH[3] LVLH[2] LVLH[1] LVLH[0] This register contains the high byte of the level meter result. The default value is 00H. GREG20: Level Meter Count Number, Read/Write (33H/B3H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 1 1 0 0 1 1 I/O data CN[7] CN[6] CN[5] CN[4] CN[3] CN[2] CN[1] CN[0] The CN[7:0] bits are used to set the number of time cycles for sampling the PCM data. CN[7:0] = 0 (d): the PCM data is output to the result registers GREG18 and GREG19 directly; CN[7:0] = N (d): the PCM data is sampled for N x 125 s (N is from 1 to 255). GREG21: Level Meter Channel and Linear/Compressed Mode Selection, Level Meter On/Off, Read/Write (34H/B4H) Command I/O data b7 b6 b5 b4 b3 b2 b1 b0 R/W 0 1 1 0 1 0 0 LMO L/C CS[1] CS[0] Reserved The Level Meter On/Off bit (LMO) enables/disables the level meter. LMO = 0: The level meter is disabled (default); LMO = 1: The level meter is enabled. The Linear/Compressed bit (L/C) determines the mode of level meter operation. L/C = 0: Message mode is selected. The compressed PCM data will be output to GREG19 transparently (default). L/C = 1: Metering mode is selected. The linear PCM data will be metered and the result will be output to the registers GREG18 and GREG19. 26 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE The Level Meter Channel Select bits (CS[1:0]) select a channel, data on which will be level metered. CS[1:0] = 00: Channel 1 is selected (default); CS[1:0] = 01: Channel 2 is selected; CS[1:0] = 10: Channel 3 is selected; CS[1:0] = 11: Channel 4 is selected. GREG22: Global Loopback Control and PLL Power Down, Read/Write (35H/B5H) Command I/O data b7 b6 b5 b4 b3 b2 b1 b0 R/W 0 1 1 0 1 0 1 PPD DLB_ANA ALB_8k DLB_8k DLB_DI ALB_DI Reserved The PLL Power Down bit (PPD) controls the operation state of the PLL block. PPD = 0: The PLL is disabled. The device is in normal operation state (default); PPD = 1: The PLL is powered down. The device works in power-saving mode. All clocks stop running. The Loop Control bits determine the loopback status. Refer to Figure - 4 on page 11 for detailed information. DLB_ANA = 0: The Digital Loopback via Analog Interface is disabled (default); DLB_ANA = 1: The Digital Loopback via Analog Interface is enabled. ALB_8k = 0: ALB_8k = 1: The Analog Loopback via 8 kHz Interface is disabled (default); The Analog Loopback via 8 kHz Interface is enabled. DLB_8k = 0: DLB_8k = 1: The Digital Loopback via 8 kHz Interface is disabled (default); The Digital Loopback via 8 kHz Interface is enabled. DLB_DI = 0: DLB_DI = 1: The Digital Loopback from DR to DX is disabled (default); The Digital Loopback from DR to DX is enabled. ALB_DI = 0: ALB_DI = 1: The Analog Loopback from DX to DR is disabled (default); The Analog Loopback from DX to DR is enabled. 27 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE 3.4.3 INDUSTRIAL TEMPERATURE LOCAL REGISTERS LIST LREG1: Coefficient Selection, Read/Write (00H/80H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 0 0 0 0 0 0 I/O data CS[7] CS[6] CS[5] CS[4] CS[3] CS[2] CS[1] CS[0] The Coefficient Select bits (CS[7:0]) are used to control digital filters and function blocks on each channel. The digital filters include Impedance Matching Filter, Echo Cancellation Filter, High-Pass Filter, Gain for Impedance Scaling, Gain in the Transmit/Receive Path and Frequency Response Correction in the Transmit/Receive Path. See Figure - 4 on page 11 for details. It should be noted that the Impedance Matching Filter and Gain for Impedance Scaling are working together to adjust the impedance. So the CS[0] and CS[2] bits should be set to the same value to ensure proper operation. CS[7] = 0: The Digital Gain Filter in the Receive path (GRX) is disabled (default); CS[7] = 1: The Digital Gain in the Receive path (GRX) is programmed by the Coe-RAM. CS[6] = 0: The Frequency Response Correction filter in the Receive path (FRR) is disabled (default); CS[6] = 1: The coefficient of the Frequency Response Correction filter in the Receive path (FRR) is programmed by the Coe-RAM. CS[5] = 0: The Digital Gain Filter in the Transmit path (GTX) is disabled (default); CS[5] = 1: The Digital Gain in the Transmit path (GTX) is set by the Coe-RAM. CS[4] = 0: The Frequency Response Correction filter in the Transmit path (FRX) is disabled (default); CS[4] = 1: The coefficient of the Frequency Response Correction filter in the Transmit path (FRX) is programmed by the Coe-RAM. CS[3] = 0: The High-Pass Filter (HPF) is bypassed/disabled; CS[3] = 1: The High-Pass Filter (HPF) is enabled (default). CS[2] = 0: The Gain for Impedance Scaling filter (GIS) is disabled (default); CS[2] = 1: The coefficient of the Gain for Impedance Scaling filter (GIS) is programmed by the Coe-RAM. CS[1] = 0: The Echo Cancellation Filter (ECF) is disabled (default); CS[1] = 1: The coefficient of the Echo Cancellation Filter (ECF) is programmed by the Coe-RAM. CS[0] = 0: The Impedance Matching Filter (IMF) is disabled (default); CS[0] = 1: The coefficient of the Impedance Matching Filter (IMF) is programmed by the Coe-RAM. LREG2: Local Loopback Control and SLIC Input Interrupt Enable, Read/Write (01H/81H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 0 0 0 0 0 1 I/O data IE[4] IE[3] IE[2] IE[1] IE[0] DLB_PCM ALB_1BIT DLB_1BIT The SLIC Input Interrupt Enable bits IE[4:0] enable or disable the interrupt signal on each channel. IE[4] = 0: Interrupt disabled. The interrupt generated by changes of SB3 (when SB3 is selected as an input) will be ignored (default); IE[4] = 1: Interrupt enabled. The interrupt generated by changes of SB3 (when SB3 is selected as an input) will be recognized. IE[3] = 0: Interrupt disabled. The interrupt generated by changes of SB2 (when SB2 is selected as an input) will be ignored (default); IE[3] = 1: Interrupt enabled. The interrupt generated by changes of SB2 (when SB2 is selected as an input) will be recognized. IE[2] = 0: Interrupt disabled. The interrupt generated by changes of SB1 (when SB1 is selected as an input) will be ignored (default); IE[2] = 1: Interrupt enabled. The interrupt generated by changes of SB1 (when SB1 is selected as an input) will be recognized. IE[1] = 0: Interrupt disabled. The interrupt generated by changes of SI2 will be ignored (default); IE[1] = 1: Interrupt enabled. The interrupt generated by changes of SI2 will be recognized. IE[0] = 0: Interrupt disabled. The interrupt generated by changes of SI1 will be ignored (default); IE[0] = 1: Interrupt enabled. The interrupt generated by changes of SI1 will be recognized. 28 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE The Loopback Control Bits (DLB_PCM, ALB_1BIT and DLB_1BIT) determine the loopback status on the corresponding channel. Refer to Figure - 4 on page 11 for details. DLB_PCM = 0: Digital Loopback via Time Slots on the corresponding channel is disabled (default); DLB_PCM = 1: Digital Loopback via Time Slots on the corresponding channel is enabled. ALB_1BIT = 0: Analog Loopback via Onebit on the corresponding channel is disabled (default); ALB_1BIT = 1: Analog Loopback via Onebit on the corresponding channel is enabled; DLB_1BIT = 0: Digital Loopback via Onebit on the corresponding channel is disabled (default); DLB_1BIT = 1: Digital loopback via Onebit on the corresponding channel is enabled; LREG3: DSH and GK Debounce Filters Configuration, Read/Write (02H/82H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 0 0 0 0 1 0 I/O data GK[3] GK[2] GK[1] GK[0] DSH[3] DSH[2] DSH[1] DSH[0] The DSH Debounce bits DSH[3:0] are used to set the debounce time of SI1 input of the corresponding channel. DSH[3:0] = 0000: The debounce time is 0 ms (default); DSH[3:0] = 0001: The debounce time is 2 ms; DSH[3:0] = 0010: The debounce time is 4 ms; DSH[3:0] = 0011: The debounce time is 6 ms; DSH[3:0] = 0100: The debounce time is 8 ms; DSH[3:0] = 0101: The debounce time is 10 ms; DSH[3:0] = 0110: The debounce time is 12 ms; DSH[3:0] = 0111: The debounce time is 14 ms; DSH[3:0] = 1000: The debounce time is 16 ms; DSH[3:0] = 1001: The debounce time is 18 ms; DSH[3:0] = 1010: The debounce time is 20 ms; DSH[3:0] = 1011: The debounce time is 22 ms; DSH[3:0] = 1100: The debounce time is 24 ms; DSH[3:0] = 1101: The debounce time is 26 ms; DSH[3:0] = 1110: The debounce time is 28 ms; DSH[3:0] = 1111: The debounce time is 30 ms. The GK Debounce bits GK[3:0] are used to set the debounce interval of SI2 input of the corresponding channel. The debounce interval is programmable from 0 to 30 ms, corresponding to the minimal debounce time of 0 to 180 ms. GK[3:0] = 0000: The debounce interval is 0 ms (default); GK[3:0] = 0001: The debounce interval is 2 ms; GK[3:0] = 0010: The debounce interval is 4 ms; GK[3:0] = 0011: The debounce interval is 6 ms; GK[3:0] = 0100: The debounce interval is 8 ms; GK[3:0] = 0101: The debounce interval is 10 ms; GK[3:0] = 0110: The debounce interval is 12 ms; GK[3:0] = 0111: The debounce interval is 14 ms; GK[3:0] = 1000: The debounce interval is 16 ms; GK[3:0] = 1001: The debounce interval is 18 ms; GK[3:0] = 1010: The debounce interval is 20 ms; GK[3:0] = 1011: The debounce interval is 22 ms; GK[3:0] = 1100: The debounce interval is 24 ms; GK[3:0] = 1101: The debounce interval is 26 ms; GK[3:0] = 1110: The debounce interval is 28 ms; GK[3:0] = 1111: The debounce interval is 30 ms; 29 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE LREG4: Channel I/O Data, Read/Write (03H/83H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 0 0 0 0 1 1 I/O data Reserved SO2 SO1 SB3 SB2 SB1 SI2 SI1 The Channel I/O Data bits contain the information of the SLIC I/O pins (SI1, SI2, SB1, SB2, SB3, SO1 and SO2) of the corresponding channel. If SB1, SB2 and SB3 are configured as outputs, data can only be written to them by global registers GREG10, GREG11 and GREG12 respectively, and not by this register. LREG5: Transmit Timeslot and Transmit Highway Selection, Read/Write (04H/84H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 0 0 0 1 0 0 I/O data THS TT[6] TT[5] TT[4] TT[3] TT[2] TT[1] TT[0] The Transmit Time Slot Bits TT[6:0] select a time slot (compressed code) or a time slot group (linear code) for the corresponding channel to transmit the PCM data. The valid value is from 0 to 127(d), corresponding to TS0 to TS127. The default value of TT[6:0] is N for Channel N+1 (N = 0 to 3). The Transmit Highway Selection bit THS selects a PCM highway for the corresponding channel to transmit the PCM data. THS = 0: DX1 is selected (default); THS = 1: DX2 is selected. LREG6: Receive Timeslot and Receive PCM Highway Selection, Read/Write (05H/85H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 0 0 0 1 0 1 I/O data RHS RT[6] RT[5] RT[4] RT[3] RT[2] RT[1] RT[0] The Receive Time Slot Bits RT[6:0] select a time slot (compressed code) or a time slot group (linear code) for the corresponding channel to receive the PCM data. The valid value is from 0 to 127(d), corresponding to TS0 to TS127. The default value of RT[6:0] is N for Channel N+1 (N = 0 to 3). The Receive Highway Selection bit RHS selects a PCM highway for the corresponding channel to receive the PCM data. RHS = 0: DR1 is selected (default); RHS = 1: DR2 is selected. LREG7: PCM Data Low Byte, Read Only (06H) b7 b6 b5 b4 b3 b2 b1 b0 Command 0 0 0 0 0 1 1 0 I/O data PCM[7] PCM[6] PCM[5] PCM[4] PCM[3] PCM[2] PCM[1] PCM[0] This register is used for MCU to monitor the transmit (A to D) PCM data. For linear code, this register contains the low byte of the transmit PCM data and LREG8 contains the high byte of the transmit PCM data. For compressed code (A/-Law), this register contains total 8 bits of the transmit PCM data. The low byte or total 8 bits of transmit PCM data will be read out by applying a read command to this register, and at the same time, it will be transmitted to the PCM highway without any interference. LREG8: PCM Data High Byte, Read Only (07H) b7 b6 b5 b4 b3 b2 b1 b0 Command 0 0 0 0 0 1 1 1 I/O data PCM[15] PCM[14] PCM[13] PCM[12] PCM[11] PCM[10] PCM[9] PCM[8] 30 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE INDUSTRIAL TEMPERATURE This register is used for MCU to monitor the transmit (A to D) PCM data. For linear code, this register contains the high byte of the transmit PCM data. For compressed code (A/-Law), this register is not used (when being read, it will output a data byte of 00H). The high byte of transmit PCM data will be read out by applying a read command to this register, and at the same time, it will be transmitted to the PCM highway without any interference. LREG9: A/D Gain, D/A Gain, Channel Power Down and PCM Receive Path Cutoff, Read/Write (08H/88H) b7 b6 b5 b4 b3 b2 b1 b0 Command R/W 0 0 0 1 0 0 0 I/O data PD PCMCT GAD GDA 0 0 0 0 The Channel Power Down bit (PD) selects the operation mode for the corresponding channel: PD = 0: The corresponding channel is in normal operation state; PD = 1: The corresponding channel is powered down (default). The PCMCT bit determines the operation of PCM Receive Path of the corresponding channel: PCMCT = 0: The PCM Receive Path of the corresponding channel is in normal operation state (default); PCMCT = 1: The PCM Receive Path of the corresponding channel is cut off. The A/D Gain bit (GAD) sets the gain of analog A/D for the corresponding channel: GAD = 0: 0 dB (default); GAD = 1: +6 dB. The D/A Gain bit (GDA) sets the gain of analog D/A for the corresponding channel: GDA = 0: 0 dB (default); GDA = 1: -6 dB. Attention: To ensure proper operation, the lower 4 bits of the I/O data byte following the write command (88H) must be '0000'. LREG10: Tone Generator Enable and Tone Program Enable, Read/Write (09H/89H) Command I/O data b7 b6 b5 b4 b3 b2 b1 b0 R/W 0 0 0 1 0 0 1 TPROG1 TPROG0 TEN1 TEN0 Reserved TPROG1 = 0: TPROG1 = 1: The default amplitude and frequency coefficients are selected for tone generator 1 (default); The amplitude and frequency coefficients for tone generator 1 are programmed by the Coe-RAM. TPROG0 = 0: TPROG0 = 1: The default amplitude and frequency coefficients are selected for tone generator 0 (default); The amplitude and frequency coefficients for tone generator 0 are programmed by the Coe-RAM. TEN1 = 0: TEN1 = 1: Tone generator 1 is disabled (default); Tone generator 1 is enabled. TEN0 = 0: TEN0 = 1: Tone generator 0 is disabled (default); Tone generator 0 is enabled. 31 IDT821054A QUAD PROGRAMMABLE PCM CODEC WITH MPI INTERFACE 4 INDUSTRIAL TEMPERATURE ABSOLUTE MAXIMUM RATINGS Ratings Min. Max. Unit 6.5 V 5.5 V 1 W +150 C Power supply voltage Voltage on Any Pin with respect to ground -0.5 Package power dissipation Storage temperature -65 Note: Stresses greater than those listed under ABSOLUTE MAXIMUM RATINGS may cause permanent damage to the device. This is a stress rating only and functional operation of the device at these or any other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect reliability. 5 RECOMMENDED DC OPERATING CONDITIONS Parameter Min. Max. Unit Operating temperature -40 +85 C Power supply voltage 4.75 5.25 V Note: MCLK: 1.536 MHz, 1.544 MHz, 2.048 MHz, 3.072 MHz, 3.088 MHz, 4.096 MHz, 6.144 MHz, 6.176 MHz or 8.192 MHz with tolerance of 50 ppm. 6 ELECTRICAL CHARACTERISTICS 6.1 DIGITAL INTERFACE Parameter Description VIL Input low voltage VIH Input high voltage VOL Output low voltage VOH Output high voltage II Min. Typ. Max. Units 0.8 V All digital inputs V All digital inputs V DX, IL = 8 mA, All other digital outputs, IL = 4 mA V DX, IL = -8 mA, All other digital outputs, IL = -4 mA 2.0 0.8 VDD - 0.6 Test Conditions Input current -10 10 A All digital inputs, GND