CS4237B CrystalClear Advanced Audio System with 3D Sound • • • • • • • • • • • • • • • Integrated SRS® General Description 3D Sound Technology TM Compatible with Sound Blaster , Sound Blaster ProTM, and Windows Sound SystemTM The CS4237B is a single chip multimedia audio system that provides compatibility with the Microsoft Windows Sound System standard and will run software written to the Sound Blaster and Sound Blaster Pro interfaces. The CS4237B is fully compliant with Microsoft’s PC’ 97 and WHQL audio requirements. The product includes an internal FM synthesizer and Plug-and-Play external interfaces for Wavetable, CD-ROM, and modem devices. In addition, the CS4237B includes hardware master volume control pins as well as extensive power management and SRS 3D sound technology. Advanced MPC3-Compliant Input and Output Mixer Enhanced Stereo Full Duplex Operation Dual Type-F DMA Support Industry Leading Delta-Sigma Data Converters Fully Plug-and-Play ISA Compatible 3.3 V or 5 V ISA Bus Operation Programmable Power Management Hardware Master Volume Control Enhanced Digital Gameport CS9236 Wavetable Digital Audio Interface MPU-401 MIDI Interface Consumer IEC-958 Digital Output (S/PDIF) ORDERING INFORMATION: CS4237B-JQ 100 pin TQFP, 14x14x1.4mm CS4237B-KQ 100 pin TQFP, 14x14x1.4mm CS4236/CS4232/CS4231 Register Compatible XTALI XTALO VREF REFFLT L/RFILT VREF OSCILLATOR Stereo A/D ISA BUS INTERFACE Sample Rate Converters SD<7:0> 16 SAMPLE FIFO INPUT MIXER LINEAR µ-LAW A-LAW ADPCM GAIN Σ SA<11:0> IRQ<A:F> DRQ<A:C> DACK<A:C> CODEC REG I/F Config IO IRQ DMA Decode Logic SA<12:15> (CDROM) (Modem) Loopback Monitor Attenuation GAIN L/RAUX1 GAIN L/RAUX2 CMAUX2 GAIN L/RMIC ATTN. MIN FM Synthesizer GAIN CD-ROM, Modem, or Upper Address Bits LINEAR µ-LAW A-LAW ADPCM Σ DIGITAL/ ANALOG JOYSTICK LOGIC CS9236 SERIAL PORT JOYSTICK WAVETABLE SERIAL PORT Advanced Product Information Cirrus Logic, Inc. P.O. Box 17847, Austin, TX 78760 (512) 445 7222 Fax: (512) 445 7581 http://www.cirrus.com DSP SERIAL PORT DSP SERIAL PORT Σ OUTPUT MIXER DIGITAL MIXER Σ Stereo D/A IOCHRDY L/RLINE SERIAL SHIFT DSP AEN PLUG AND PLAY 16 SAMPLE FIFO IOW Sample Rate Converters IOR GAIN S/PDIF MOUT L/ROUT GAIN MPU-401 UART with FIFOS Synth. Interface or Hardware Volume Control MIDI SCS/ SINT/ MUTE UP DOWN WSS SBPRO Registers Peripherals & EEPROM Interface XIOW XIOR XD<7:0> XA<2:0> BRESET This document contains information for a new product. Cirrus Logic, Inc. reserves the right to modify this product without notice. Copyright Cirrus Logic, Inc. 1997 (All Rights Reserved) SEP ’97 DS213PP4 1 CS4237B TABLE OF CONTENTS CS4237B PERFORMANCE SPECIFICATIONS 3 GENERAL DESCRIPTION ................................. 12 ISA Bus Interface............................................. 13 PLUG AND PLAY ............................................... 15 PnP Data ......................................................... 16 Loading Resource Data................................... 17 Loading Firmware Patch Data......................... 17 The Crystal Key ............................................... 18 Bypassing Plug and Play................................. 19 Hardware Configuration Data .......................... 20 Hostload Procedure ......................................... 24 External E2PROM............................................ 24 WINDOWS SOUND SYSTEM CODEC .............. 26 Enhanced Functions (MODEs)........................ 26 FIFOs ............................................................... 27 WSS Codec PIO Register Interface ................ 27 DMA Interface.................................................. 28 Sound System Codec Register Interface ........ 29 Direct Mapped Registers (R0-R3) ............... 29 Indirect Mapped Registers (I0-I31) .............. 35 WSS Extended Registers (X0-X25) ............ 48 SOUND BLASTER INTERFACE........................ 57 Mode Switching ............................................... 57 Sound Blaster Register Interface .................... 57 GAME PORT INTERFACE ................................. 60 CONTROL INTERFACE ..................................... 61 Control Register Interface................................ 61 Control Indirect Registers (C0-C8) .................. 65 SRS 3D Sound Overview ................................ 68 Hearing Basics................................................. 69 The SRS 3D Stereo Process .......................... 69 SRS Space Control ......................................... 69 SRS Center Control......................................... 70 SRS Mono-to-Stereo Synthesis....................... 71 Consumer IEC-958 Digital Output................... 71 MPU-401 INTERFACE ........................................ 72 MPU-401 Register Interface ............................ 72 MIDI UART ...................................................... 73 MPU-401 "UART" Mode Operation ................. 73 FM SYNTHESIZER (Internal)............................. 73 EXTERNAL PERIPHERAL PORT...................... 74 Synthesizer Interface ....................................... 74 CDROM Interface ............................................ 75 Modem Interface.............................................. 76 DSP SERIAL AUDIO DATA PORT.................... 76 CS9236 WAVETABLE SERIAL DATA PORT ... 78 WSS CODEC SOFTWARE DESCRIPTION .......79 Calibration ........................................................79 Changing Sampling Rate .................................80 Changing Audio Data Formats.........................81 Audio Data Formats .........................................81 DMA Registers .................................................85 Digital Loopback...............................................86 Timer Registers ................................................86 WSS Codec Interrupt .......................................86 Error Conditions ...............................................87 DIGITAL HARDWARE DESCRIPTION...............87 Bus Interface ....................................................87 Volume Control Interface .................................87 Crystal/Clock ....................................................88 General Purpose Output Pins ..........................88 Reset and Power Down ...................................89 Multiplexed Pin Configuration...........................89 ANALOG HARDWARE DESCRIPTION .............90 Line-Level Inputs Plus MPC Mixer...................90 Microphone Level Inputs ..................................91 Mono Input .......................................................91 Line-Level Outputs ...........................................92 Mono Output with Mute Control .......................92 Miscellaneous Analog Signals..........................92 GROUNDING AND LAYOUT ..............................92 POWER SUPPLIES.............................................93 ADC/DAC FILTER RESPONSE..........................95 PIN DESCRIPTIONS ...........................................97 ISA Bus Interface Pins .....................................98 Analog Inputs ...................................................99 Analog Outputs.................................................100 MIDI Interface...................................................101 External FM Synthesizer Interface ...................101 External Peripheral Port ...................................101 Joystick/DSP Serial Port Interface ...................103 CS9236 Wavetable Serial Port Interface .........104 CDROM Interface.............................................105 Volume Control.................................................106 Miscellaneous ...................................................106 Power Supplies ................................................107 PARAMETER DEFINITIONS...............................108 PACKAGE PARAMETERS .................................109 APPENDIX A: E2PROM TYPICAL DATA ..........110 APPENDIX B: CS4237B DIFFERENCES...........112 Windows and Windows Sound System are registered trademarks of Microsoft Corporation. Sound Blaster and Sound Blaster Pro are registered trademarks of Creative Labs. Adlib is a registered trademark of Adlib Corporation. The word SRS and the SRS Symbol are registered trademarks of SRS Labs, Inc. The CS4237B incorporates the SRS (Sound Retrieval System) under license from SRS Labs, Inc. 2 DS213PP4 CS4237B ANALOG CHARACTERISTICS TA = 25 °C; VA, VD1, VDF1-VDF4 = +5V Input Levels: Logic 0 = 0V, Logic 1 = VD1; 1 kHz Input Sine wave; Sample Frequency, Fs = 44.1 kHz; Measurement Bandwidth is 20 Hz to 20 kHz - unweighted, 16-bit linear coding.) CS4237B-JQ Parameter* Symbol Min Typ CS4237B-KQ Max Min Typ Max Units Analog Input Characteristics - Minimum Gain Setting (0dB); unless otherwise specified. ADC Resolution (Note 1) 16 - - 16 - - Bits ADC Differential Nonlinearity (Note 1) - - ±0.5 - - ±0.5 LSB 85 79 - dB dB Instantaneous Dynamic Range Line Inputs (Note 2) Mic Inputs IDR - 80 75 - 80 72 Total Harmonic Distortion THD - 0.05 0.05 - - Line to Line Inputs Line to Mic Inputs Line-to-AUX1 Line-to-AUX2 - 80 80 90 90 - - 80 80 90 90 - dB dB dB dB Interchannel Gain Mismatch Line Inputs Mic Inputs - - ±0.5 ±0.5 - - ±0.5 ±0.5 dB dB Programmable Input Gain Span Line Inputs 21.5 22.5 - 21.5 22.5 - dB 1.3 1.5 1.7 1.3 1.5 1.7 dB - - - - ±10 ±100 LSB 0.26 2.6 2.6 0.28 2.8 2.8 - 0.26 2.6 2.6 0.28 2.8 2.8 - Vpp Vpp Vpp - ±100 - - ±100 - ppm/°C 8 20 11 23 - 8 20 11 23 - kΩ kΩ - 15 pF Line Inputs Mic Inputs Interchannel Isolation Gain Step Size ADC Offset Error 0 dB Gain Full Scale Input Voltage: (MGE=1) MIC Inputs (MGE=0) MIC Inputs LINE, AUX1, AUX2, MIN Inputs Gain Drift Input Resistance (Note 1) Mic Inputs Other Inputs Input Capacitance (Note 1) 15 Notes: 1. This specification is guaranteed by characterization, no production testing. 2. MGE = 1 (see WSS Indirect Reg I0, I1). 0.006 0.02 0.01 0.025 % % *Parameter definitions are given at the end of this data sheet. Specifications are subject to change without notice. DS213PP4 3 CS4237B ANALOG CHARACTERISTICS (Continued) CS4237B-JQ Parameter* Symbol Min Typ CS4237B-KQ Max Min Typ Max Units Analog Output Characteristics - Minimum Attenuation (0dB); unless otherwise specified. DAC Resolution (Note 1) 16 - - 16 - - Bits DAC Differential Nonlinearity (Note 1) - - ±0.5 - - ±0.5 LSB TDR IDR - 85 - 80 95 85 - dB THD - 0.01 - - 0.01 0.02 % Dynamic Range -Total All Outputs -Instantaneous Total Harmonic Distortion (Note 3) Interchannel Isolation (Note 3) - 95 - - 95 - dB Line Out - ±0.1 ±0.5 - ±0.1 ±0.5 dB 2.0 2.2 2.5 2.0 2.2 2.5 V - 100 400 - 100 400 µA DAC Programmable Attenuation Span 100 106.5 - 100 106.5 - dB DAC Attenuation Step Size +12 dB to -81 dB -82.5 dB to -94.5 dB 1.3 1.0 1.5 1.5 1.7 2 1.3 1.0 1.5 1.5 1.7 2 dB dB - - - - ±1 ±10 mV 2.6 2.8 3.2 2.6 2.8 3.2 Vpp - 100 - - 100 - ppm/°C - - 1 - - 1 Degree 10 - - 10 - - kΩ 80 - - 80 - - dB 0.6xFs to 100 kHz (Note 1) - - - - - -45 dB Audible Out-of-Band Energy 0.6xFs to 22 kHz (Fs=8kHz) (Note 1) - - - - - -70 dB - 80 25 105 100 - - 80 25 105 100 91 31 122 400 mA mA mA µA 40 - - 40 - - dB Line Out Interchannel Gain Mismatch Voltage Reference Output - VREF Voltage Reference Output Current - VREF (Notes 1,4) DAC Offset Voltage Full Scale Output Voltage: OUT, MOUT (Note 3) Gain Drift Deviation from Linear Phase (Passband) (Note 1) External Load Impedance (Note 1) Mute Attenuation Total Out-of-Band Energy Power Supply Power Supply Current Digital, Operating Analog, Operating Total Operating Total Power Down Power Supply Rejection 1 kHz (Note 1) Notes: 3. 10 kΩ, 100 pF load. 4. DC current only. If dynamic loading exists, then the voltage reference output must be buffered or the performance of ADCs and DACs will be degraded. 4 DS213PP4 CS4237B MIXERS (TA = 25 °C; VA, VD1, VDF1-VDF4 = +5V; Input Levels: Logic 0 = 0V, Logic 1 = VD1; 1 kHz Input Sine wave, Measurement Bandwidth is 20 Hz to 20 kHz - unweighted.) CS4237B-JQ Parameter* Min Typ Max Min Typ Max Units LINE, AUX1, AUX2 MIC, MIN Hardware Master Wavetable, Monitor, PC Wave, DSP, FM - - - 45 42 44 90 46.5 45 48 94.4 - dB dB dB dB MIC, LINE, AUX1, AUX2 MIN Hardware Master Wavetable, Monitor, PC Wave, DSP, FM - - - 1.3 2.3 1.6 0.9 1.5 3.0 2.0 1.5 1.7 3.7 2.4 2.0 dB dB dB dB - 88 - - 94.5 91 - dB dB - 0.005 - - 0.002 - dB Mixer Gain Range Span (Digital) Step Size (Digital) CS4237B-KQ Dynamic Range (Analog Mixers) -Total -Instantaneous Total Harmonic Distortion (Analog Mixers) (Note 3) ABSOLUTE MAXIMUM RATINGS (AGND, DGND, SGND = 0V, all voltages with respect to 0V.) Parameter Symbol Power Supplies: Digital VD1 VDF1-VDF4 Analog VA Total Power Dissipation Min Max Units -0.3 -0.3 -0.3 6.0 6.0 6.0 V V V - 1 W (Supplies, Inputs, Outputs) Input Current per Pin (Except Supply Pins) -10.0 +10.0 mA Output Current per Pin (Except Supply Pins) -50 +50 mA -0.3 VA+0.3 V SA<11:0>, IOR, IOW, AEN SD<7:0>, DACK<A:C> -0.3 VD1+0.3 V All other digital inputs -0.3 VDF+0.3 V -55 +125 °C +150 °C Analog Input Voltage Digital Input Voltage: Ambient Temperature (Power Applied) Storage Temperature -65 Warning: Operation beyond these limits may result in permanent damage to the device. Normal operation is not guaranteed at these extremes. RECOMMENDED OPERATING CONDITIONS (AGND, DGND, SGND = 0V, all voltages with respect to 0V.) Parameter Power Supplies: Digital Symbol Min Typ Max Units VD1 4.75 3.0 4.75 4.75 5.0 3.3 5.0 5.0 5.25 3.6 5.25 5.25 V V V V (Note 5) Digital Filtered Analog VDF1-VDF4 VA 0 25 70 °C Operating Ambient Temperature TA Note 5. When VD1 is powered from 3.3 Volts, all ISA bus input pins, except DRQA, must also be 3.3 Volts. DRQA is internally powered from the VDF supply and must have a 5 Volt interface. To use DRQA in a 3.3 Volt application, a level translator is needed. DS213PP4 5 CS4237B DIGITAL FILTER CHARACTERISTICS (Note 1) Parameter Symbol Min Typ Max Units 0 - 0.40xFs Hz -1.0 - +0.5 dB - - ±0.1 dB Transition Band 0.40xFs - 0.60xFs Hz Stop Band 0.60xFs - - Hz 74 - - dB 8- and 16-bit formats Stereo ADPCM format Mono ADPCM format - - 10/Fs 14/Fs 18/Fs s s s ADCs DACs - - 0.0 0.1/Fs µs µs Passband Frequency Response Passband Ripple (0-0.40xFs) Stop Band Rejection Group Delay Group Delay Variation vs. Frequency DIGITAL CHARACTERISTICS (TA = 25°C; VA, VDF1-VDF4 = 5V, VD1 = 5V/3V; AGND, DGND1, SGND1-SGND4 = 0V.) Parameter High-level Input Voltage Digital Inputs XTALI Low-level Input Voltage High-level Output Voltage: ISA Bus Pins (except DRQA) I0 = -24.0 mA DRQA I0 = -24.0 mA IOCHRDY, SDA/XD0 (Note 6) All Others I0 = -1.0 mA Low-level Output Voltage: ISA Bus Pins IOCHRDY All Others Input Leakage Current 6 mA mA mA mA (Digital Inputs) Min Max Units VIH 2.0 VD-1.0 - V V VIL - 0.8 V VOH 2.4 2.4 2.4 2.4 VD1 VDF VDF VDF V V V V VOL - 0.55 0.4 0.4 0.4 V V V V -10 10 µA µA 6. Open Collector pins. High level output voltage dependent on external pull up (required) used and number of peripherals (gates) attached. Output Leakage Current Note I0 = 24.0 I0 = 18.0 I0 = 8.0 I0 = 4.0 Symbol (High-Z Digital Outputs) -10 10 DS213PP4 CS4237B TIMING PARAMETERS (TA = 25 °C; VA, VD1, VDF1-VDF4 = +5V; outputs loaded with 30pF Input Levels: Logic 0 = 0V, Logic 1 = VD1) Parameter Symbol Min Max Units tAA 0 3.5 µs tHD:STA 4.0 - µs Clock Low Period tLSCL 4.7 - µs Clock High Period tHSCL 4.0 - µs Start Condition Setup Time (for a Repeated Start Condition) tSU:STA 4.7 - µs Data In Hold Time tHD:DAT 0 - µs Data In Setup Time tSU:DAT 250 - ns tR - 1 µs tF - 300 ns tSU:STO 4.7 - µs E2PROM Timing (Note 1) SCL Low to SDA Data Out Valid Start Condition Hold Time SDA and SCL Rise Time (Note 7) SDA and SCL Fall Time Stop Condition Setup Time Data Out Hold Time tDH 0 ns Notes 7. Rise time on SDA is determined by the capacitance of the SDA line with all connected gates and the external pullup resistor required. tF t HSCL t HD:STA t HD:DAT t LSCL tR XA0/SCL t SU:STA t SU:DAT t SU:STO XD0/SDA (IN) t AA t DH XD0/SDA (OUT) E2PROM 2-Wire Interface Timing DS213PP4 7 CS4237B TIMING PARAMETERS (Continued) Parameter Symbol Min Max Units tSTW 90 - ns tWDSU 22 - ns IOR falling edge to data valid (read cycle) tRDDV - 60 ns SA <> and AEN setup to IOR or IOW falling edge tADSU 22 - ns SA <> and AEN hold from IOW or IOR rising edge tADHD 10 - ns DACK<> inactive to IOW or IOR falling edge (DMA cycle immediately followed by a non-DMA cycle) (Note 8) tSUDK1 60 - ns DACK<> active from IOW or IOR rising edge (non-DMA cycle completion followed by DMA cycle) (Note 8) tSUDK2 0 - ns DACK<> setup to IOR falling edge (DMA cycles) DACK<> setup to IOW falling edge tDKSUa tDKSUb 25 25 - ns ns tDHD2 15 - ns tDRHD -25 45 - ns Time between rising edge of IOW or IOR to next falling edge of IOW or IOR tBWDN 80 - ns Data hold from IOR rising edge tDHD1 0 25 ns DACK<> hold from IOW rising edge DACK<> hold from IOR rising edge tDKHDa tDKHDb 25 25 - ns ns 1 - ms 130 1200 ms 1 420 ms Parallel Bus Timing IOW or IOR strobe width Data valid to IOW rising edge (write cycle) (Note 8) Data hold from IOW rising edge DRQ<> hold from IOW or IOR falling edge (assumes no more DMA cycles needed) RESDRV pulse width high Initialization Time EEPROM Read Time DTM(I10) = 0 DTM(I10) = 1 (Note 1) tRESDRV (Note 1, 9) tINIT (Note 1, 10) tEEPROM XTAL, 16.9344 MHz, frequency (Notes 1, 11) 16.92 16.95 MHz XTALI high time (Notes 1, 11) 24 - ns XTALI low time (Notes 1, 11) 24 - ns Sample Frequency (Note 1) Fs 3.918 50 kHz SCLK rising to SDOUT valid (Note 1) tPD1 - 60 ns SCLK rising to FSYNC transition (Note 1) tPD2 -20 20 ns SDIN valid to SCLK falling (Note 1) tS1 30 - ns SDIN hold after SCLK falling (Note 1) tH1 30 - ns Serial Port Timing Notes: 8. AEN must be high during DMA cycles. 9. Initialization time depends on the power supply circuitry, as well as the the type of clock used. 10. EEPROM read time is dependent on amount of data in EEPROM. Minimum time relates to no EEPROM present. Maximum time relates to EEPROM data size of 2k bytes. 11. The Sample frequency specification must not be exceeded. 8 DS213PP4 CS4237B t FSYNC SF1,0=01,10 FSYNC SF1,0=00 t pd2 t pd2 pd2 SCLK t t sckw s1 t h1 SDIN MSB, Left SDOUT MSB, Left t pd1 DSP Serial Port Timing DRQ<> t DKSUa t DRHD DACK<> t STW t DKHDb IOR t DHD1 t RDDV SD<7:0> 8-Bit Mono DMA Read/Capture Cycle t RESDRV RESDRV t XD0/XA0 INIT t EEPROM EEPROM read SD<7:0> Codec responds to ISA activity Reset Timing DS213PP4 9 CS4237B DRQ<> t DKSUb t DRHD DACK<> t STW t DKHDa IOW t WDSU t DHD2 SD<7:0> 8-Bit Mono DMA Write/Playback Cycle DRQ<> DACK<> IOR/IOW tBWDN LEFT/LOW BYTE SD<7:0> RIGHT/HIGH BYTE 8-Bit Stereo or 16-Bit Mono DMA Cycle DRQ<> DACK<> IOR/IOW t BWDN SD<7:0> LEFT/LOW BYTE LEFT/HIGH BYTE RIGHT/LOW BYTE RIGHT/HIGH BYTE 16-Bit Stereo or ADPCM DMA Cycle 10 DS213PP4 CS4237B DRQ<> t SUDK1 t SUDK2 DACK<> IOR t RDDV t DHD1 SD<7:0> t ADSU t ADHD SA<> AEN I/O Read Cycle DRQ<> t SUDK1 t SUDK2 DACK<> t STW IOW t WDSU tDHD2 SD<7:0> t ADSU tADHD SA<> AEN I/O Write Cycle DS213PP4 11 CS4237B GENERAL DESCRIPTION This device is comprised of six physical devices along with Plug-and-Play support for two additional external devices. The internal devices are: Windows Sound System Codec Sound Blaster Pro Compatible Interface Game Port (Joystick) Control MPU-401 FM Synthesizer The two external devices are: IDE CDROM Modem A full ISA interface with Plug and Play compatibility and an External Peripheral Port for interfacing to external devices (i.e. Wave-Table Synthesizer, CDROM, and Modem) is included. Since the Wave-Table Synthesizer and CDROM analog inputs are external, mapping as shown in Figure 5, on page 58, must be used to maintain Sound Blaster compatibility, i.e. CDROM analog must be connected to the AUX2 analog inputs of the mixer. On power up, this part requires a RESDRV signal to initialize the internal configuration. When initially powered up, the part is isolated from the bus, and each device supported by the part must be activated via software. Once activated, each device responds to the resources given (Address, IRQ, and DMA channels). The eight devices listed above are grouped into six logical devices, as shown in Figure 1 (bracketed features are supported, but typically not used). The six logical devices are: LOGICAL DEVICE 0: Windows Sound System Codec (WSS Codec) Adlib/Sound Blaster-compatible Synthesizer Sound Blaster Pro Compatible Interface LOGICAL DEVICE 1: Game Port LOGICAL DEVICE 2: Control 12 LOGICAL DEVICE 3: MPU401 LOGICAL DEVICE 4: CDROM LOGICAL DEVICE 5: Modem Logical Device 0 consists of three physical devices. The WSS Codec and the Synthesizer are grouped together since the original Windows Sound System board expected an FM synthesizer if the codec was present. The Sound Blaster Pro Compatible interface, SBPro, is also grouped to allow the WSS Codec and the SBPro to share Interrupts and DMA channels. The Synthesizer device could be the internal FM synthesizer, or a synthesizer externally located on the Peripheral Port. The external synthesizer interface supports both FM and wavetable synthesizers such as the CS9233. The WSS Codec, FM synthesizer, and the SBPro compatible devices are internal to the part. Logical Device 1 is the Game Port that supports up to two joystick devices. Logical Device 2 is the Control device that supports global features of the part. This device uses I/O locations to control power management, joystick rate, and PnP resource data loading. Logical Device 3 is the MPU-401 interface. The MPU-401 MIDI interface includes a 16-byte FIFO for data transmitted out the MIDOUT pin and a 16-byte FIFO for data received from the MIDIN pin. Logical Device 4 supports an IDE CDROM connected to the peripheral port. This interface, on the external peripheral port, can support CDROMs with up to 8 I/O locations and supports both the base address and the alternate base address, an interrupt, and a DMA channel. Although this logical device is listed as a CDROM, any external device that fits within the resources listed above may be substituted. DS213PP4 CS4237B PnP ISA Bus Interface Logical Device 1 WSS Codec: Game Port: Control: MPU-401: CDROM: Modem: I/O: GAMEbase I/O: CTRLbase [1 Interrupt] I/O: MPUbase 1 Interrupt I/O: CDbase ACDbase [1 Interrupt] [1 DMA Chan.] I/O: COMbase [1 Interrupt] I/O: WSSbase 2 DMA Chan. 1 Interrupt Synthesis: Logical Device 2 Logical Device 3 Logical Device 4 Logical Device 5 Logical Device 0 Figure 1. Logical Devices I/O: SYNbase [1 Interrupt] SBPro: I/O: SBbase (DMA shared) (Interrupt shared) Logical Device 5 supports a modem connected to the peripheral port. This interface, on the external peripheral port, supports modems with 2 to 256 I/O locations (only SA2-SA0 are buffered through the part) and supports a base address and an interrupt. Although this logical device is listed as a modem, any external device that fits within the resources listed above may be substituted. ISA Bus Interface The 8-bit parallel I/O and 8-bit parallel DMA ports provide an interface which is compatible with the Industry Standard Architecture (ISA) bus. The ISA Interface enables the host to com- DS213PP4 municate with the various functional blocks within the part via two types of accesses: Programmed I/O (PIO) access, and DMA access. A number of configuration registers must be programmed prior to any accesses by the host computer. The configuration registers are programmed via a Plug-and-Play configuration sequence or via configuration software provided by Crystal Semiconductor. I/O CYCLES Every device that is enabled, requires I/O space. An I/O cycle begins when the part decodes a valid address on the bus while the DMA acknowledge signals are inactive and AEN is low. The IOR and IOW signals determine the direction of the data transfer. For read cycles, the part will drive data on the SD<7:0> lines while the host asserts the IOR strobe. Write cycles require the host to assert data on the SD<7:0> lines and strobe the IOW signal. Data is latched on the rising edge of the IOW strobe. 13 CS4237B I/O ADDRESS DECODING The logical devices use 10-bit or 12-bit address decoding. The Synthesizer, Sound Blaster, Game Port, MPU-401, CDROM, and Modem devices support 10-bit address decoding, while the Windows Sound System and Control devices support 12-bit address decoding. Devices that support 10-bit address decoding, require A10 and A11 be zero for proper decode; therefore, no aliasing occurs through the 12-bit address space. To prevent aliasing into the upper address space, a "16-bit decode" option may be used, where the upper address bits SA12 through SA15 are connected to the part. SA12-SA15 are then decoded to be 0,0,0,0 for all logical device address decoding. When the upper address bits are used, the CDROM and Modem interfaces are no longer available since the upper address pins are multiplexed with the CDROM and Modem interfaces (See Reset and Power Down section). If the CDROM or Modem is needed, the circuit shown in Figure 2 can replace the SA12 through SA15 pins and provide the same functionality. Four cascaded OR gates, using a 74ALS32, can replace the ALS138 in Figure 2, but causes a greater delay in address decoding. 74ALS138 ISA Bus SA12 SA13 SA14 1 2 3 A Y0 B Y1 C Y2 15 Y3 Y4 SA15 AEN +5V 4 5 6 G2A Y5 G2B Y6 G1 Y7 Figure 2. 16-bit Decode Circuit 14 AEN DMA CYCLES The part supports up to three 8-bit ISA-compatible DMA channels. The default hardware connections, which can be changed through the hardware configuration data, are: DMA A = ISA DMA channel 0 DMA B = ISA DMA channel 1 DMA C = ISA DMA channel 3 The typical configuration would require two DMA channels. One for the WSS Codec and Sound Blaster playback, and the other for WSS Codec capture (to support full-duplex). The CDROM, if used, can also support a DMA channel, although this is not typical. DMA cycles are distinguished from control register cycles by the generation of a DRQ (DMA Request). The host acknowledges the request by generating a DACK (DMA Acknowledge) signal. The transfer of audio data occurs during the DACK cycle. During the DACK cycle the address lines are ignored. The digital audio data interface uses DMA request/grant pins to transfer the digital audio data between the part and the ISA bus. Upon receipt of a DMA request, the host processor responds with an acknowledge signal and a command strobe which transfers data to and from the part, eight bits at a time. The request pin stays active until the appropriate number of 8-bit cycles have occurred. The number of 8-bit transfers will vary depending on the digital audio data format, bit resolution, and operation mode. The DMA request signal can be asserted at any time. Once asserted, the DMA request will remain asserted until a complete DMA cycle occurs. A complete DMA cycle consists of one or more bytes depending on which device internal to the part is generating the request. DS213PP4 CS4237B INTERRUPTS For Plug-and-Play flexibility, six interrupt pins are supported, although only one or two are typically used. The default hardware connections, which can be modified through the hardware configuration data, are: IRQ A = ISA Interrupt 5 IRQ B = ISA Interrupt 7 IRQ C = ISA Interrupt 9 IRQ D = ISA Interrupt 11 IRQ E = ISA Interrupt 12 IRQ F = ISA Interrupt 15 The typical configuration would support two interrupt sources: one shared between the WSS Codec and the Sound Blaster Pro compatible devices, and the other for the MPU401 device. Interrupts are also supported for the Synthesizer, Control, CDROM devices, but are typically not used. If the modem logical device (LD5) is used, it would typically support an interrupt. PLUG AND PLAY The Plug-and-Play (PnP) interface logic is compatible with the Intel/Microsoft Plug-and-Play specification, version 1.0a, for an ISA-bus device. Since the part is an ISA-bus device, it only supports ISA-compatible IRQs and DMA channels. Plug and Play compatibility allows the PC to automatically configure the part into the system upon power up. Plug and Play capability optimally resolves conflicts between Plug and Play and non-Plug and Play devices within the system. Alternatively, the PnP feature can be bypassed. See the Bypassing PnP section for more information. For a detailed Plug-and-Play protocol description, please refer to the Plug and Play ISA Specification. To support Plug-and-Play in ISA systems that do not have a PnP BIOS or a PnP-aware operating system, the Configuration Manager (CM) TSR and an ISA Configuration Utility (ICU) from Intel Corp. are used to provide these functions. DS213PP4 The CM isolates the cards, assigns Card Select Numbers, reads PnP card resource requirements, and allocates resources to the cards based on system resource availability. The ICU is used to keep the BIOS and the CM informed of the current system configuration. It also aids users in determining configurations for non-PnP ISA cards. A more thorough discussion of the Configuration Manager and the ISA Configuration Utility can be found in the Product Development Information document of the Plug and Play Kit by Intel Corp. In a PnP BIOS system, the BIOS is responsible for configuring at least all system board PnP devices. Some systems require additional software to aid the BIOS in configuring PnP ISA cards. The PnP BIOS can execute all PnP functions independently of the type of operating system. However, if a PnP aware operating system is present, the PnP responsibilities are shared between the BIOS and the operating system. For more information regarding PnP BIOS, please refer to the latest revision of the Plug and Play BIOS Specification published by Compaq Computer, Phoenix Technologies, and Intel. The Plug and Play configuration sequence maps the various functional blocks of the part (logical devices) into the host system address space and configures both the DMA and interrupt channels. The host has access to the part via three 8-bit auto-configuration ports: Address port (0279h), Write Data port (0A79h), and relocatable Read Data port (020Bh - 03FFh). The read data port is relocated automatically by PnP software when a conflict occurs. The configuration sequence is as follows: 1. Host sends a software key which places all PnP cards in the sleep state (or Plug-andPlay mode). 2. The Crystal part is isolated from the system using an isolation sequence. 15 CS4237B 3. A unique identifier (handle) is assigned to the part and the resource data is read. 4. After all cards’ resource requirements are determined, the host uses the handle to assign conflict-free resources 5. After the configuration registers have been programmed, each configured logical device is activated. 6. The part is then removed from Plug-and-Play mode. Upon power-up, the chip is inactive and must be enabled via software. The Crystal part monitors writes to the PnP Auto-Configuration Address port (0279h). If the host sends a PnP initiation key, consisting of a series of 32 predefined byte writes, the hardware will detect the key and place the part into the Plug-and-Play (PnP) mode. Another method to program the part is to use a special Crystal initiation key which functions like the PnP initiation key, but can be invoked by the user at any time. However, the Crystal Key only supports one Crystal part per system. The Crystal key and special commands are detailed in the Crystal Key and Bypassing PnP sections. The isolation sequence uses a unique 72-bit serial identifier. The host performs 72 pairs of I/O read accesses to the Read Data port. The identifier determines what data is put on the data bus in response to those read accesses. When the isolation sequence is complete, the CM assigns a Card Select Number (CSN) to the part. This number distinguishes the Crystal part from the other PnP devices in the system. The Configuration Manager (CM) then reads the resource data from the Crystal part. The 72-bit identifier and the resource data is either stored in an external user-programmable E2PROM, or loaded via a "hostload" procedure from BIOS before PnP software is initiated. 16 The CM determines the necessary resource requirements for the system and then programs the part through the configuration registers. The configuration register data is written one logical device at a time. After all logical devices have been configured, CM activates each device individually. Each logical device is now available on the ISA bus and responds to the programmed address range, DMA channels, and interrupts that have been allocated to that logical device. PnP Data Hardware Configuration and Plug-and-Play resource data must be loaded into the part’s RAM. The data may be stored in an external E2PROM or may be downloaded from the host. To load the data, refer to the Loading Resource Data section. The following is the Plug-and-Play resource data: The first nine bytes of the PnP resource data are the Plug-and-Play ID, which uniquely identifies the Crystal part from other PnP devices. The Crystal default is broken down as follows: 0Eh, 63h - Crystal ID - ’CSC’ in compressed ASCII. (See the PnP Spec for more information) 42h - Oem ID. A unique Oem ID must be obtained from Crystal for each unique Crystal product used. 37h - Crystal product ID for the CS4237B FFh, FFh, FFh, FFh - Serial number. This can be modified by each OEM to uniquely identify their card. ??h - Checksum. Of the 9-byte serial number listed above, Crystal software uses the first two bytes to indicate the presence of a Crystal part, and the fourth byte, 0x37, to indicate the CS4237B; therefore, these three bytes must not be altered. DS213PP4 CS4237B The next 3 bytes are the PnP version number. The default is version 1.0a: 0Ah, 10h, 01h. External E2PROM section for more information on the serial E2PROM interface and E2PROM programming. The next sequence of bytes are the ANSI identifier string. The default is: 82h, 0Eh, 00h, ’Crystal Codec’, 00h. The format for the data stored in the E2PROM is as follows: The logical device data must be entered using the PnP ISA Specification format. Typical logical device values are found in Table 1. The E2PROM version for this data is found in Appendix A. Loading Resource Data A serial E2PROM interface allows user-programmable serial number and resource data to be stored in an external E2PROM. The interface is compatible with devices from a number of vendors and the size may vary according to specific customer requirements. The maximum size for resource data supported by the part’s internal RAM is 384 bytes of combined Hardware Configuration and PnP resource data. With the addition of the 4-byte header, the maximum amount of E2PROM space used would be 388 bytes. However, the part also supports firmware upgrades via the E2PROM. The maximum size E2PROM supported is 2k bytes. After power-up, the existence of an E2PROM is checked by reading the first two bytes from the E2PROM interface. If the data from the E2PROM port reads 55h and BBh, then the rest of the E2PROM data is loaded into the internal RAM. If the first two bytes aren’t correct, the E2PROM is assumed not to exist and a "hostload" procedure must be used to load the internal RAM. The Hostload procedure can be found in the Hostload section. For motherboard designs, an E2PROM should still be included, to allow faster integrating of resource and firmware patch data. This allows updates without respiring BIOS code. If the part is installed on a plug-in card, then an external E2PROM is required to ensure that the proper PnP resource data is loaded into the internal RAM prior to a PnP sequence. See the DS213PP4 (Hardware Configuration Data:) 2 bytes E2PROM validation: 55h, BBh 2 bytes length of resource data in E2PROM 19 bytes Hardware Configuration (Plug and Play Resource Data:) 9 bytes Plug and Play ID 3 bytes Plug and Play version number Variable number of bytes of user defined ASCII ID string Logical Device 0 (Windows Sound System, FM Synthesizer, Sound Blaster Pro) data Logical Device 1 ( Game Port) data Logical Device 2 ( Control) data Logical Device 3 ( MPU-401) data Logical Device 4 ( CD-ROM) data Logical Device 5 (Modem) data End of Resource byte & checksum byte Firmware patch code. A typical E2PROM data load, in assembly format, can be found in Appendix A. Loading Firmware Patch Data An external E2PROM is read during the powerup sequence that stores Hardware Configuration and PnP data, and firmware patch data. The part contains RAM and ROM to run the core proces17 CS4237B sor. The RAM allows updates to the core processor functionality. Placing the firmware patches in E2PROM, gives the maximum functionality at power-up without the need for a software driver. The firmware patch data is typically included at the end of the PnP resource data. Crystal provides a utility that will read in patch data from a file, and append it to the PnP resource data. The patch file must be obtained from Crystal. Physical Device Logical Device WSS 16-bit address decode high true edge sensitive 8-bit, count by byte, type A same Synthesis 16-bit address decode 0 WSSbase Length/Alignment IRQ SB Pro 16-bit address decode Game Port 16-bit address decode Control 16-bit address decode MPU401 16-bit address decode DMA DMA 0 SYNbase Length/Alignment IRQ 0 SBbase Length/Alignment 1 GAMEbase Length/Alignment 2 CTRLbase Length/Alignment IRQ 3 MPUbase Length/Alignment IRQ The Crystal Key NOTE: The Crystal Key cannot differentiate between multiple Crystal Codecs in a system; therefore, ONLY ONE Crystal part is allowed in systems using the Crystal Key. To allow multiple parts in a system, the Plug-and-Play isolation sequence must be used since it supports multiple parts via the serial identifier used in the isolation sequence. Best Choice Acceptable Choice 1 534h-534h 4/4 5 (SB share) 1 (SB share) 0, 3 534-608h 4/D4h 5,7,9,11,12,15 (SB share) 0, 3 (SB share) 0, 1, 3 388h 4/8 ---- 388h 4/8 ---- 220h 16/16 220-260h 16/32 200h 8/8 208h 8/8 Sub optimal Sub optimal Choice 1 Choice 2 ANSI ID = WSS/SB 534-FFCh 4/4 5, 7, 9, 11, 12, 15 (SB share) 0, 1, 3 (SB share) ---388-3F8h 4/8 ---220-300h 16/32 ANSI ID = GAME ANSI ID = CTRL 120-3F8h 8/8 ---330h 2/8 9 330-360h 2/8 9,11,12,15 ANSI ID = MPU 330-3E0h 2/8 ---- ---- Feature not supported in the listed configuration, but is supported through customization. Table 1. Typical Motherboard Plug-and-Play Resource Data 18 DS213PP4 CS4237B The Crystal key places the part in the configuration mode. Once the Crystal key has been initiated, new PnP resource data can be downloaded by a hostload sequence, or an alternate method of programming the configuration registers may be used. This alternate method is referred to as the "SLAM" method. The SLAM method allows the user to directly access the configuration registers, configure, and activate the chip, and then, optionally, disable the PnP and/or Crystal key feature. The SLAM method uses commands that are similar to the PnP commands; however, they are different since the user has direct access to the configuration registers. To use the SLAM method, see the Bypassing PnP section. To use the SLAM method, the following sequence must be followed: The following 32 bytes, in hex, are the Crystal key: 96, 35, 9A, CD, E6, F3, 79, BC, I/O Port Base Address 0 (47h, xxh, xxh) high byte , low byte 5E, AF, 57, 2B, 15, 8A, C5, E2 F1, F8, 7C, 3E, 9F, 4F, 27, 13, 09, 84, 42, A1, D0, 68, 34, 1A Bypassing Plug and Play The SLAM method allows the user to bypass the Plug and Play features and, as an option, allows the part to act like a non-Plug and Play or legacy device; however, the SLAM method only supports one Crystal IC per system. The user directly programs the resources into the part, and then optionally disables the PnP and/or the Crystal Key, which forces the part to disregard any future PnP or Crystal initiation key sequences (All activated logical devices appear as legacy devices to PnP). The Crystal and PnP keys can also be disabled through the E2PROM. 1. Host sends 32-byte Crystal key to I/O 0279h, chip enters configuration mode. 2. Host programs CSN (Card Select Number) by writing a 06h and 00h to I/O 0279h. 3. Host programs the configuration registers of each logical device by writing to I/O 0279h. The following data is the maximum amount of information per device. All current devices only need a subset of this data: Logical Device ID (15h, xxh) xxh is logical device number: 0-5 I/O Port Base Address 1 (48h, xxh, xxh) high byte , low byte I/O Port Base Address 2 (42h, xxh, xxh) high byte , low byte Interrupt Select 0 (22h, xxh) Interrupt Select 1 (27h, xxh) DMA Select 0 (2Ah, xxh) DMA Select 1 (25h, xxh) Activate Device (33h, 01h) (33h, 00h deactivates a device) 4. Repeat #3 for each logical device to be enabled. (Not all devices need be enabled.) 5. Host activates chip by writing a 79h to 279h. 6. (Optional) Host disables PnP Key by writing a 55h to CTRLbase+5. The part will not participate in any future PnP cycles. The Crystal Key can also be disabled by writing a 56h to CTRLbase+5. DS213PP4 19 CS4237B NOTE: To enable the PnP/Crystal Keys after they have been disabled by the SLAM method, bring the RESDRV pin to a logic high or remove power from the device. The following illustrates typical data sent using the SLAM method. 006h, 001h ; CSN=1 015h, 000h 047h, 005h, 034h 048h, 003h, 088h 042h, 002h, 020h 022h, 005h 02Ah, 001h 025h, 003h 033h, 001h ; LOGICAL DEVICE 0 ; WSSbase = 0x534 ; SYNbase = 0x388 ; SBbase = 0x220 ; WSS & SB IRQ = 5 ; WSS & SB DMA0 = 1 ; WSS capture DMA1 = 3 ; activate logical device 0 015h, 001h ; LOGICAL DEVICE 1 047h, 002h, 000h ; GAMEbase = 0x200 033h, 001h ; activate logical device 1 015h, 002h ; LOGICAL DEVICE 2 047h, 001h, 020h ; CTRLbase = 0x120 033h, 001h ; activate logical device 2 015h, 003h ; LOGICAL DEVICE 3 047h, 003h, 030h ; MPUbase=0x330 022h, 009h 033h, 001h ; MPU IRQ = 9 ; activate logical device 3 079h ; activate Crystal device If all the above data is sent, after the Crystal key, all devices except the CDROM and Modem will respond to the appropriate resources given. 20 Hardware Configuration Data The Hardware Configuration data contains mapping information that links interrupt and DMA pins with actual interrupt numbers used by PnP and SLAM procedures. This data also controls the XCTL0/XA2 pin functionality. The Hardware Configuration data precedes the PnP Resource data. The Hardware Configuration data is either 19 or 23 bytes long and contains the data necessary to configure the part. If an E2PROM is not used (Hostload), the first four bytes are not needed, which means the configuration data is only 19 bytes long. The configuration data maps the many functions of the logical devices to the physical pins of the chip. Table 2 lists the Hardware Configuration bytes. The detailed bit descriptions for each byte follows below. HW Config. Byte 5: ACDbase Address Length Mask, Default = 00000000 D7 D6 D5 D4 D3 D2 D1 D0 res res res res res CM2 CM1 CM0 CM2-CM0 Address bit masks for the Alternate CDROM address decode, ACDbase. See the CDROM Interface section for more details on ACDbase 000 - ACDCS low for 1 byte 001 - ACDCS low for 2 bytes 011 - ACDCS low for 4 bytes 111 - ACDCS low for 8 bytes xxx - all others, RESERVED DS213PP4 CS4237B BYTE Default Description 2 1 55h E PROM validation byte 1. The first two bytes tell the Crystal Codec that the E2PROM exists. 2 BBh E2PROM validation byte 2 3 00h High byte for length of resource data in E2PROM 4 DDh Low byte for length of resource data in E2PROM 5 00h Alternate CDROM (Logical Device 4), ACDbase, Address length mask 6 03h Modem (Logical Device 5), COMbase, Address length mask 7 80h Misc. Configuration Bits: Interrupt Pin Polarities, Key Disables, VCEN, & LD4 features 8 00h Global Configuration Bits: IFM, VCF1 and VCF0, WTEN, SPS 9 0Bh Code Base Byte - Must be 0x0B 10* 20h RESERVED - Must be 0x20 11* 04h RESERVED - Must be 0x04 12* 08h RESERVED - Must be 0x08 13* 10h RESERVED - Must be 0x10 14* 80h RESERVED - Must be 0x80 15* 00h RESERVED - Must be 0x00 16* 00h RESERVED - Must be 0x00 17 00h External Peripheral Port I/O Decode Address Length 00 = 4 bytes, 08 = 8 bytes 08h causes XCTL0/XA2 pin to change to peripheral port address bit XA2. 18* 48h RESERVED - Must be 0x48 19 75h IRQ A/B Selection: Lower nibble = A, Upper nibble = B. Along with next two bytes - specify hardware interrupts tied to IRQA-IRQF pins 20 B9h IRQ C/D Selection: Lower nibble = C, Upper nibble = D. 21 FCh IRQ E/F Selection: Lower nibble = E, Upper nibble = F. 22 10h DMA A/B Selection: Lower nibble = A, Upper nibble = B. This byte and the next byte - specify hardware DRQ/DACKs tied to the DMAA-DMAC pins 23 03h DMA C Selection: Lower nibble = C, Upper nibble = reserved (must be 0). NOTE:The first four bytes are exclusive to the E2PROM and are not used in the Hostload mode. * Currently not supported. Must be set to default values given in the table. Table 2. Hardware Configuration Data DS213PP4 21 CS4237B HW Config. Byte 6: COMbase Address Length Mask, Default = 00000011 HW Config. Byte 7: Misc. Configuration Bits, Default = 10000000 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 MM7 MM6 MM5 MM4 MM3 MM2 MM1 MM0 IHCD IHS PKD CKD IHM VCEN SDD ACDB7D MM7-MM0 Address bit masks for Logical Device 5, typically a modem address, COMbase. See the Modem Interface Section for more details on COMbase. 00000000 - MCS low for 1 byte 00000001 - MCS low for 2 bytes 00000011 - MCS low for 4 bytes 00000111 - MCS low for 8 bytes 00001111 - MCS low for 16 bytes 00011111 - MCS low for 32 bytes 00111111 - MCS low for 64 bytes 01111111 - MCS low for 128 bytes 11111111 - MCS low for 256 bytes xxxxxxxx - all others, RESERVED NOTE: The part only buffers the lower three address bits onto the peripheral port. When setting the address decode greater than 8 bytes, the upper address bits should be buffered externally. 22 ACDB7D Alternate CDROM, data Bit 7 Disable. When set, SD7 is held in a high impedance state when reading from ACDbase+1 (only this one address). This bit provides support for IDE alternate base address sharing with the floppy disk controller. SDD SD Disable. When set, SD<7:0> are high impedance on reads from any peripheral port address: External synthesis, CDROM or Modem devices. Allows external buffers to bypass the part while still allowing PnP address support. This bit is also internally forced on whenever WTEN or SPS in HW Config. byte 8, or C8, is set. VCEN Volume Control Enable. When set, the UP, DOWN, and MUTE pins become active and provide a hardware master volume control. IHM Interrupt High - Modem (LD5). When set, MINT is active high. When clear, MINT is active low. CKD Crystal Key disable. When set, blocks the part from receiving the Crystal key. Note that if both CKD and PKD are set, software will be unable to reconfigure the part. PKD PnP Key disable. When set, blocks the part from receiving the Plug-andPlay key. Note that if both CKD and PKD are set, software will be unable to reconfigure the part. IHS Interrupt High - Synthesizer. When set, SINT is active high. When clear, SINT is active low. IHCD Interrupt High - CDROM. When set, CDINT is active high. When clear, CDINT is active low. DS213PP4 CS4237B 10 - MUTE is not used. Two button volume control. Pressing the up and down buttons simultaneously causes the volume to mute. Pressing up or down un-mutes. 11 - UP pin is not used. The MUTE pin functions as the Up function. With this exception, this mode functions similarly to the pervious two-button mode. This mode provides backwards compatibility with the CS4236. HW Config. Byte 8: Global Configuration Bits, Default = 00000000 D7 D6 D5 IFM VCF1 VCF0 D4 D3 SLAD WTEN D2 D1 D0 SPS res res res Must be set to zero to allow compatibility with future upgrades. SPS DSP Serial Port Switch. When set, switches the DSP serial port pins from the second joystick to the XD4-XD1 pins. Then, when SPE in I16 is set, the XD4-XD1 pins convert to the DSP serial port pins. Once this bit is enabled, the SD bus will not be driven when accesses occur to peripheral port devices. This function is also available in C8. WTEN SLAD VCF1,0 WaveTable Serial Port Enable. When set, forces XD7-XD5 pins to convert to the CS9236 Single-Chip Wavetable Music Synthesizer serial port pins. Once this bit is enabled, the SD bus will not be driven when accesses occur to peripheral port devices. This function is also available in C8. Soundblaster Alternate Line Disable. When clear, Sound Blaster (SB) Synthesizer Volume changes affect the LINE Alternate (X0/X1) volume. When set, SB Synthesizer Volume changes do not affect X0/X1 registers. Hardware Volume Control Format. These bits control the format of the hardware volume control pins UP, DOWN, and MUTE. The volume control is enabled by setting VCEN in the previous Hardware Configuration byte. 00 - MUTE is a toggle switch. When MUTE is low, the volume is muted. 01 - MUTE is a momentary switch. MUTE toggles between mute and un-mute. Pressing the up or down switch always un-mutes. DS213PP4 IFM Internal FM. When set, the internal FM synthesizer is enabled. When clear, FM must be provided on the external LINE analog inputs. HW Config. Byte 9: Code Base Byte, Default = 00001011 D7 D6 D5 D4 D3 D2 D1 D0 CB7 CB6 CB5 CB4 CB3 CB2 CB1 CB0 CB7-CB0 Code Base Byte. Determines the code base located in the E2PROM. If not correct, the Firmware code after the PnP resource data is not loaded. 0x0B - CS4237B 0x43 - CS4236 The next 7 bytes are reserved for future expansion and must be set to their default values as listed in Table 2 The next byte of hardware configuration data is byte 17 in Table 2. This byte determines the function of the XCTL0/XA2 pin. The default of 0, forces the pin to the control function XCTL0, and the external peripheral port supports only 4 I/O locations through XA0-XA1. If this byte is set to 08h, the pin switches to the XA2 function and the peripheral port supports 8 I/O locations through XA2-XA0. The next byte, listed as byte 18, is reserved for future expansion and must be set to 0x48. 23 CS4237B Bytes 19 through 21 map the interrupt number to the actual interrupt pins A - F. As shown in the table, the byte 20 default is 0xB9; therefore, IRQC, which is the lower nibble, maps to the ISA interrupt 9. Likewise IRQD, which is the upper nibble, maps to the ISA interrupt 11 (0Bh). 2. Write 57h (Jump to ROM) command to CTRLbase+5. Bytes 22 and 23 map the DMA channel number to the actual DMA pins A-C. As shown in the table, the byte 22 default is 0x10; therefore, DRQA/DACKA is the lower nibble which maps to the ISA DMA channel 0. Likewise DRQB/DACKB is the upper nibble which maps to the ISA DMA channel 1. b. Send starting download address (4000h) by writing low byte (00h) first, and then high byte (40h) to CTRLbase+5. Hostload Procedure This procedure is provided for backwards compatibility with the CS4236. Since the E2PROM allows all resource and firmware patch data to be loaded at power-up, this procedure is typically not used. To download PnP resource data from the host to the part’s internal RAM, use the following sequence: 1. Configure Control I/O base address, CTRLbase, by one of two methods: regular PnP cycle or Crystal Key method. a. The host can use the regular PnP cycle to program the CTRLbase, and then place the chip in the wait_for_key_state b. If the Crystal Key method is used: First, send the 32-byte Crystal key to I/O address 0279h. (The Crystal Key only supports one Crystal part per system.) Second, configure logical device 2 base address, CTRLbase, by writing to I/O 0279h (15h, 02h, 47h, xxh, xxh, 33h, 01h, 79h). Note: The two xxh represent the base_address_high and base_address_low respectively. The default is: 01h, 20h. 24 3. Download the PnP resource data. a. Send download command by writing AAh to CTRLbase+5. c. Send the Hardware Configuration and resource data in successive bytes to CTRLbase+5. This includes the Hardware Configuration and the PnP resource data. The PnP resource format is described in the PnP Data section. The resource header should not contain the first four bytes which are only used for E2PROM loads. 4. End download by writing 00h to CTRLbase+6. 5. If any of the Hardware Configuration Data (first 19 bytes) has changed, 5Ah must be written to CTRLbase+5 to force the part to internally update this information. The new PnP data is loaded and the part is ready for the next PnP cycle. External E2PROM The Plug and Play specification defines 32 bits of the 72-bit Serial Identifier as being a user defined serial number. The E2PROM is used to change the user section of the identifier, store default resource data for PnP, Hardware Configuration data specific to the Crystal part, and firmware patches to upgrade the core processor functionality. DS213PP4 CS4237B The E2PROM interface uses an industry standard 2-wire interface consisting of a bi-directional data line and a clock line driven from the part. After power-on the part looks for the existence of an E2PROM device and loads the user defined data. The existence is determined by the first two bytes read (0x55 followed by 0xBB). If the first two bytes are correct, the part reads the next two bytes to determine the length of data in the E2PROM. The length bytes indicate the number of bytes left to be read (not including the two validation bytes or two length bytes). As shown in Figure 3, the E2PROM is read using a start bit followed by a dummy write, to initialize the address to zero. Then another start bit and device address, followed by all the data. Since the part uses the sequential read properties of the E2PROM, only one E2PROM, is supported (ganged E2PROMs are not supported). The maximum Hardware Configuration and PnP resource RAM data supported is 384 bytes, and a four byte header; therefore, the maximum amount of data storage, without firmware patches, in E2PROM would be 388 bytes. The maximum size E2PROM supported is 2k bytes. This allows the inclusion of firmware patches after the PnP resource data. If an external E2PROM exists, it is accessed by the serial interface and is connected to the XD0 and XA0 pins. The two-wire interface is controlled by three bits in the Control logical device, Hardware Control Register (CTRLbase+1). The serial data can be written to or read from the E2PROM by sequentially writing or reading that register. The three register bits, D0, D1, D2 are labeled CLK, DOUT, and DIN/EEN respectively. The DIN/EEN bit, when written to a one, enables the E2PROM serial interface. When the DIN/EEN bit is written to a zero, the serial interface is disabled. The DIN/EEN bit is also the Data In (DIN) signal to read back data from the E2PROM. The XD0 pin is a bi-directional opendrain data line supporting DIN and DOUT; therefore, to read the correct data, the DOUT bit must be set to a one prior to performing a read of the register. Otherwise, the data read back from DIN/EEN will be all zeros. The E2PROM data can then be read from the DIN/EEN bit. The CLK bit timing is controlled by the host software. This is the serial clock for the E2PROM. The DOUT bit is used to write/program the data out to the E2PROM. An external pull-up resistor is required on XD0 because it is an open-drain output. Use the guidelines in the Some E2PROMs that are compatible with this interface are: Atmel AT24Cxx series MicroChip 24LCxxB series National NM24CxxL series Ramtron FM24Cxx series SGS Thompson ST24Cxx series Xicor X24Cxx series where the xx is replaced by 02, 04, 08, or 16 based on the size of the E2PROM desired. The size of 16 (2k bytes) is preferred since it allows the maximum flexibility for upgrading firmware patches. Other E2PROMs compatible with Figure 3 and the timing parameters listed in the front of the data sheet may also be used. Crystal IC Bank Part Start Address Write Address Start Part Read Address S 1 0 1 0 0 0 0 0 A 0 0 0 0 0 0 0 0 AS 1 0 1 0 0 0 0 1 A EEPROM Acknowledge Acknowledge Data A No Acknowledge Stop Data 1P Data Figure 3. EEPROM Format DS213PP4 25 CS4237B specific E2PROM data sheet to select the value of the pull-up resistor (a typical value would be 3.3kΩ). Programming the E2PROM: 1. Configure Control I/O base address by one of two methods: regular PnP cycle or Crystal Key method. a. The host can use the regular PnP cycle to program the logical device 2 I/O base address, and then place the chip in the wait_for_key_state b. If the Crystal Key method is used: First, write to I/O 0279h, send the 32byte Crystal key. (The Crystal Key only supports one Crystal part per system.) Second, configure the Control I/O base address by writing 15h, 02h, 47h, 01h, 20h, 33h, 01h, 79h to 0279h. 2. Refer to the specific data sheet for the E2PROM you are using for timing requirements and data format. Also, refer to the Loading Resource Data section of this data sheet for the E2PROM resource data format. 3. Send the E2PROM data in successive bits to CTRLbase+1 (Hardware Control Register) while following the E2PROM data sheet format. The E2PROM now contains the PnP resource data. For this new data to take effect, the part must be reset, causing the part to read the E2PROM during initialization. Crystal can provide a utility, RESOURCE.EXE, to program E2PROMs through the Control logical device interface. WINDOWS SOUND SYSTEM CODEC The WSS Codec software interface consists of 4 I/O locations starting at the Plug and Play address ’WSSbase’, and supports 12-bit address decoding. If the upper address bits, SA12-SA15 are used, they must be 0 to decode a valid address. The WSS Codec also requires one interrupt and one or preferably two DMA channels, one for playback and one for capture. Since the WSS Codec and Sound Blaster device are mutually exclusive, the two devices share the same interrupt and DMA playback channel. The WSS Codec/Mixer is register compatible with the Microsoft Windows Sound System. Functions include stereo Analog-to-Digital and Digital-to-Analog converters (ADCs and DACs), analog mixing, anti-aliasing and reconstruction filters, line and microphone level inputs, optional A-Law/µ-Law coding, simultaneous capture and playback (at independent sample frequencies) and a parallel bus interface. Five analog inputs are provided and four can be mixed to the ADC mixer. All five can be mixed with the output of the DAC with full volume control. Several data modes are supported including 8- and 16-bit linear as well as 8-bit companded, 4-bit ADPCM compressed, and 16-bit big Endian. Enhanced Functions (MODEs) The initial state is labeled MODE 1 and forces the part to appear as a CS4248. The more popular second mode, MODE 2, forces the part to appear as a CS4231 super set and is compatible with the CS4232. To switch from MODE 1 to MODE 2, the CMS1,0 bits, in the MODE and ID register (I12), should be set to 10 respectively. When MODE 2 is selected, the bit IA4 in the Index Address register (R0) will be decoded as a valid index pointer providing 16 additional registers and increased functionality over the CS4248. To reverse the procedure, set the CMS1,0 bits to 00 and the part will resume operation in 26 DS213PP4 CS4237B MODE 1. Except for the Capture Data Format (I28), Capture Base Count (I30/31), and Alternate Feature Status (I24) registers, all other Mode 2 functions retain their values when retur ning to Mode 1. The WS S Codec is backwards compatible with the CS4236, CS4232, CS4231 and CS4248. The additional MODE 2 functions are: full-duplex support, a programmable timer, Mono In and Mono Out support. MODE 3 is selected by setting CMS1,0 to 11. MODE 3 allows access to new bits in the indirect registers I0-I31, and allows access to a third set of "extended registers" which are designated X0-X17+X25. The extended registers are accessed through I23. The additional MODE 3 functions are: 1. A full symmetrical mixer. This changes the input multiplexer to a input mixer. 2. Independent sample frequency control on the ADCs and DACs. 3. Programmable Gain and Attenuation on the Microphone inputs. 4. Independent control over the volume of internal FM synthesis and external wavetable. 5. Volume control on the DSP serial port input data. 6. Stereo volume on the monitor feedback path. FIFOs The WSS Codec contains 16-sample FIFOs in both the playback and capture digital audio data paths. The FIFOs are transparent and have no programming associated with them. When playback is enabled, the playback FIFO continually requests data until the FIFO is full, DS213PP4 and then makes requests as positions inside the FIFO are emptied, thereby keeping the playback FIFO as full as possible. Thus when the system cannot respond within a sample period, the FIFO starts to empty, avoiding a momentary loss of audio data. If the FIFO runs out of data, the last valid sample can be continuously output to the DACs (if DACZ in I16 is set) which will eliminate pops from occurring. When capture is enabled, the capture FIFO tries to continually stay empty by making requests every sample period. Thus when the system cannot respond within a sample period, the capture FIFO starts filling, thereby avoiding a loss of data in the audio data stream. WSS Codec PIO Register Interface Four I/O mapped locations are available for accessing the Codec functions and mixer. The control registers allow access to status, audio data, and all indirect registers via the index registers. The IOR and IOW signals are used to define the read and write cycles respectively. A PIO access to the Codec begins when the host puts an address on to the ISA bus which matches WSSbase and drives AEN low. WSSbase is programmed during a Plug and Play configuration sequence. Once a valid base address has been decoded then the assertion of IOR will cause the WSS Codec to drive data on the ISA data bus lines. Write cycles require the host to assert data on the ISA data bus lines and strobe the IOW signal. The WSS Codec will latch data into the PIO register on the rising edge of the IOW strobe. The audio data interface typically uses DMA request/grant pins to transfer the digital audio data between the WSS Codec and the bus. The WSS Codec is responsible for asserting a request signal whenever the Codec’s internal buffers need updating. The bus responds with an acknowledge signal and strobes data to and from the Codec, 8 bits at a time. The WSS Codec keeps the request 27 CS4237B pin active until the appropriate number of 8-bit cycles have occurred to transfer one audio sample. Note that different audio data types will require a different number of 8-bit transfers. DMA Interface The second type of parallel bus cycle from the WSS Codec is a DMA transfer. DMA cycles are distinguished from PIO register cycles by the assertion of a DRQ followed by an acknowledgment by the host by the assertion of DACK (with AEN high). While the acknowledgment is received from the host, the WSS Codec assumes that any cycles occurring are DMA cycles and ignores the addresses on the address lines. The WSS Codec may assert the DMA request signal at any time. Once asserted, the DMA request will remain asserted until a complete DMA cycle occurs to the part. DMA transfers may be terminated by resetting the PEN and/or CEN bits in the Interface Configuration register (I9), depending on the DMA that is in progress (playback, capture, or both). Termination of DMA transfers may only happen between sample transfers on the bus. If DRQ goes active while resetting PEN and/or CEN, the request must be acknowledged with DACK and a final sample transfer completed. DMA CHANNEL MAPPING Mapping of the WSS Codec’s DRQ and DACK onto the ISA bus is accomplished by the Plug and Play configuration registers. If the Plug and Play resource data specifies only one DMA channel for the Codec (or the codec is placed in SDC mode) then both the playback and capture DMA requests should be routed to the same DRQ/DACK pair (DMA Channel Select 0). If the Plug and Play resource data specifies two DMA channels for the Codec, then the playback DMA request will be routed to the DMA pair specified by the DMA Channel Select 0 resource 28 data, and the capture DMA requests will be routed to the DMA pair specified by the DMA Channel Select 1 resource data. DUAL DMA CHANNEL MODE The WSS Codec supports a single and a dual DMA channel mode. In dual DMA channel mode, playback and capture DMA requests and acknowledges occur on independent DMA channels. In dual DMA mode, SDC should be set to 0. The Playback- and Capture-Enables (PEN, CEN, I9) can be changed without a Mode Change Enable (MCE, R0). This allows for proper full duplex control where applications are independently using playback and capture. SINGLE DMA CHANNEL (SDC) MODE When two DMA channels are not available, the SDC mode forces all DMA transfers (capture or playback) to occur on a single DMA channel (playback channel). The trade-off is that the WSS Codec will no longer be able to perform simultaneous DMA capture and playback. To enable the SDC mode, set the SDC bit in the Interface Configuration register (I9). With the SDC bit asserted, the internal workings of the WSS Codec remain exactly the same as dual mode, except for the manner in which DMA request and acknowledges are handled. The playback of audio data will occur on the playback channel exactly as dual channel operation; however, the capture audio channel is now diverted to the playback channel. Alternatively stated, the capture DMA request occurs on DMA channel select 0 for the WSS Codec. (In MODEs 2 and 3, the capture data format is always set in register I28.) If both playback and capture are enabled, the default will be playback. SDC does not have any affect when using PIO accesses. DS213PP4 CS4237B Sound System Codec Register Interface The Windows Sound System codec is mapped via four locations. The I/O base address, WSSbase, is determined by the Plug and Play configuration. The WSSbase supports four direct registers, shown in Table 3. The first two direct registers are used to access 32 indirect registers shown in Table 4. The Index Address register (WSSbase+0) points to the indirect register that is accessed through the Indexed Data register (WSSbase+1). This section describes all the direct and indirect registers for the WSS Codec. Table 5 details a summary of each bit in each register with Tables 6 through 15 illustrating the majority of decoding needed when programming the WSS logical device, and are included for reference. When enabled, the WSS Codec default state is defined as MODE 1. MODE 1 is backwards compatible with the CS4248 and only allows access to the first 16 indirect registers. Putting the part in MODE 2 or MODE 3, using CMS1,0 bits in the MODE and ID register (I12), allows access to indirect registers 16 through 31. Putting the part in MODE 3 also allows access to the extended registers through I23 and other extended features in the indirect registers. DIRECT MAPPED REGISTERS The first two WSS Codec registers provide indirect accessing to more codec registers via an index register. The other two registers provide status information and allow audio data to be transferred to and from the WSS Codec without using DMA cycles or indexing. Note that register defaults are listed in binary form with reserved bits marked with ’x’ to indicate unknown. To maintain compatibility with future parts, these reserved bits must be written as 0, and must be masked off when the register is read. The current value read for reserved bits is not guaranteed on future revisions. DS213PP4 Direct Registers: (R0-R3) Address Reg. Register Name WSSbase+0 R0 Index Address register WSSbase+1 R1 Indexed Data register WSSbase+2 R2 Status register WSSbase+3 R3 PIO Data register Table 3. WSS Codec Direct Register Index I0 I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16 I17 I18 I19 I20 I21 I22 I23 I24 I25 I26 I27 I28 I29 I30 I31 Register Name Left ADC Input Control Right ADC Input Control Left Aux #1 Volume Right Aux #1Volume Left Aux #2 Volume Right Aux #2 Volume Left DAC (PC Wave) Volume Right DAC (PC Wave) Volume Fs & Playback Data Format Interface Configuration Pin Control Error Status and Initialization MODE and ID Monitor Loopback Volume Playback Upper Base Count Playback Lower Base Count Alternate Feature Enable I Alternate Feature Enable II Left Line (Synthesizer) Volume Right Line (Synthesizer) Volume Timer Low Byte Timer High Byte Alternate Sample Frequency Extended Register Access (X regs) Alternate Feature Status Compatibility ID Mono Input & Output Control Reserved Capture Data Format Reserved Capture Upper Base Count Capture Lower Base Count Table 4. WSS Codec Indirect Registers 29 CS4237B Direct Registers: WSSbase (R0-R3) ADDRESS WSSbase+0 R0 WSSbase+1 R1 WSSbase+2 R2 WSSbase+3 R3 D7 D6 D5 D4 D3 D2 D1 D0 INIT MCE TRD IA4 IA3 IA2 IA1 IA0 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 CU/L CL/R CRDY SER PU/L PL/R PRDY INT CD7/PD7 CD6/PD6 CD5/PD5 CD4/PD4 CD3/PD3 CD2/PD2 CD1/PD1 CD0/PD0 Indirect Registers: (I0-I31) IA4-IA0 0 1 2 3 4 5 6 7 8§ 9§ 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 D7 D6 D5 D4 D3 D2 D1 D0 LSS1 LSS0 LMGE - LAG3 LAG2 LAG1 LAG0 RSS1 RSS0 RMGE - RAG3 RAG2 RAG1 RAG0 LX1OM LX1IM LX1BM LX1G4 LX1G3 LX1G2 LX1G1 LX1G0 RX1OM RX1IM RX1BM RX1G4 RX1G3 RX1G2 RX1G1 RX1G0 LX2OM LX2IM - LX2G4 LX2G3 LX2G2 LX2G1 LX2G0 RX2OM RX2IM - RX2G4 RX2G3 RX2G2 RX2G1 RX2G0 LDOM LPM RDOM RPM FMT1 LDG6 res RDG6 res FMT0 LDG5 LPA5 RDG5 RPA5 C/L LDG4 LPA4 RDG4 RPA4 S/M LDG3 LPA3 RDG3 RPA3 CFS2 LDG2 LPA2 RDG2 RPA2 CFS1 LDG1 LPA1 RDG1 RPA1 CFS0 LDG0 LPA0 RDG0 RPA0 C2SL CPIO PPIO - CAL1 CAL0 SDC CEN PEN XCTL1 XCTL0 OSM1 OSM0 DEN DTM IEN - COR PUR ACI DRS ORR1 ORR0 ORL1 ORL0 1 CMS1 CMS0 - ID3 ID2 ID1 ID0 LBA5 LBA4 LBA3 LBA2 LBA1 LBA0 - LBE PUB7 PUB6 PUB5 PUB4 PUB3 PUB2 PUB1 PUB0 PLB7 PLB6 PLB5 PLB4 PLB3 PLB2 PLB1 PLB0 DACZ OLB TE CMCE PMCE SF1 SF0 SPE TEST TEST TEST TEST APAR - XTALE HPF LLOM LR7 RLOM RR7 TL7 LLIM LR6 RLIM RR6 TL6 LLBM LR5 RLBM RR5 TL5 LLG4 LR4 RLG4 RR4 TL4 LLG3 LR3 RLG3 RR3 TL3 LLG2 LR2 RLG2 RR2 TL2 LLG1 LR1 RLG1 RR1 TL1 LLG0 LR0 RLG0 RR0 TL0 TU7 TU6 TU5 TU4 TU3 TU2 TU1 TU0 SRE DIV5 DIV4 DIV3 DIV2 DIV1 DIV0 CS2 XA3 XA2 XA1 XA0 XRAE XA4 - ACF - TI CI PI CU CO PO PU 0 0 0 0 0 0 1 1 MIM MOM MBY - MIA3 MIA2 MIA1 MIA0 - - - - - - - - FMT1 FMT0 C/L S/M - - - - - - - - - - - - CUB7 CUB6 CUB5 CUB4 CUB3 CUB2 CUB1 CUB0 CLB7 CLB6 CLB5 CLB4 CLB3 CLB2 CLB1 CLB0 Table 5. WSS Codec Direct & Indirect Register Bits 30 DS213PP4 CS4237B bit5 bit4 bit3 bit2 bit1 bit0 WG5-0 (X16,17) LBA5-0, PA5-0, SPA5-0, FMA5-0 0 0 0 0 . 0 . . 1 1 1 1 0 0 0 0 . 0 . . 1 1 1 1 0 0 0 0 . 1 . . 1 1 1 1 0 0 0 0 . 0 . . 1 1 1 1 0 0 1 1 . 0 . . 0 0 1 1 0 1 0 1 . 0 . . 0 1 0 1 12.0 dB 10.5 dB 9.0 dB 7.5 dB 0 dB -78.0 dB -79.5 dB -81.0 dB -82.5 dB 0.0 dB -1.5 dB -3.0 dB -4.5 dB . -12.0 dB . . -90.0 dB -91.5 dB -93.0 dB -94.5 dB 0 1 2 3 . 8 . . 60 61 62 63 Table 6. Wavetable, Loopback, PC Wave, DSP Serial, & FM bit3 bit2 bit1 0 0 0 0 . . . 1 1 1 1 0 0 0 0 . . . 1 1 1 1 0 0 1 1 . . . 0 0 1 1 0 1 2 3 . . . 12 13 14 15 bit0 Input Gain Mono In (I0,I1) (I26) 0 1 0 1 . . . 0 1 0 1 0.0 dB 1.5 dB 3.0 dB 4.5 dB 18.0 dB 19.5 dB 21.0 dB 22.5 dB 0.0 dB -3.0 dB -6.0 dB -9.0 dB . . . -36.0 dB -39.0 dB -42.0 dB -45.0 dB Table 7. Input ADC Gain and Mono In Levels LIS1 RIS1 LIS0 RIS0 LEVEL 0 0 1 1 0 1 0 1 0 dB -6 dB -12 dB -18 dB G4 G3 G2 G1 G0 Level 0 0 0 0 0 0 0 0 0 0 0 0 0 . . . 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 . . . 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 . . . 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 . . . 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 . . . 0 1 0 1 0 1 0 1 12.0 dB 10.5 dB 9.0 dB 7.5 dB 6.0 dB 4.5 dB 3.0 dB 1.5 dB 0.0 dB -1.5 dB -3.0 dB -4.5 dB -6.0 dB . . . -24.0 dB -25.5 dB -27.0 dB -28.5 dB -30.0 dB -31.5 dB -33.0 dB -34.5 dB 0 1 2 3 4 5 6 7 8 9 10 11 12 . . . 24 25 26 27 28 29 30 31 Table 10. AUX1, AUX2, LINE Table 8. Input Mixer Attenuation 2 0 0 0 0 1 1 1 1 CFS 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 C2SL = 0 8.0 kHz 16.0 kHz 27.42 kHz 32.0 kHz N/A N/A 48.0 kHz 9.6 kHz C2SL=1 5.51 kHz 11.025 kHz 18.9 kHz 22.05 kHz 37.8 kHz 44.1 kHz 33.075 kHz 6.62 kHz Table 9. Sample Frequencies DS213PP4 FMT1 FMT0 C/L 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 Data Format Linear, 8-bit unsigned µ-Law, 8-bit companded Linear, 16-bit two’s complement, Little Endian A-Law, 8-bit companded ADPCM, 4-bit, IMA compatible Linear, 16-bit two’s complement, Big Endian Table 11. WSS Codec Data Format 31 CS4237B Decimal Value Hex Value 64 65 66 67 68 69 70 71 72 127 0 1 2 3 4 5 6 23 24 25 26 27 28 29 30 31 32 62 63 40 41 42 43 44 45 46 47 48 7F 0 1 2 3 4 5 6 17 18 19 1A 1B 1C 1D 1E 1F 20 3E 3F Digital Analog LEVEL Atten. Atten. 0 dB 0 dB 0 dB 0 dB 0 dB 0 dB 0 dB 0 dB res res 0 dB 0 dB 0 dB 0 dB 0 dB 0 dB 0 dB 0 dB -6 dB -6 dB -6 dB -6 dB -12 dB -12 dB -12 dB -12 dB -18dB -60 dB -60 dB 12.0 dB 10.5 dB 9.0 dB 7.5 dB 6.0 dB 4.5 dB 3.0 dB 1.5 dB res res 0.0 dB -1.5 dB -3.0 dB -4.5 dB -6.0 dB -7.5 dB -9.0 dB -34.5 dB -30.0 dB -31.5 dB -33.0 dB -34.5 dB -30.0 dB -31.5 dB -33.0 dB -34.5 dB -30.0 dB -33.0 dB -34.5 dB 12.0 dB 10.5 dB 9.0 dB 7.5 dB 6.0 dB 4.5 dB 3.0 dB 1.5 dB res res 0.0 dB -1.5 dB -3.0 dB -4.5 dB -6.0 dB -7.5 dB -9.0 dB -34.5 dB -36.0 dB -37.5 dB -39.0 dB -40.5 dB -42.0 dB -43.5 dB -45.0 dB -46.5 dB -48.0 dB -93.0 dB -94.5 dB Table 12. Master Digital Gain 0 1 2 3 11 12 13 14 15 28 29 30 31 MG4 MG3 MG2 MG1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 MG0 LEVEL 0 1 0 1 1 0 1 0 1 0 1 0 1 22.5 dB 21.0 dB 19.5 dB 18.0 dB 6.0 dB 4.5 dB 3.0 dB 1.5 dB 0 dB -19.5 dB -21.0 dB -22.5 dB -24.0 dB Decimal Value Sample Rate Divider 0 1 2 3 4 5 6 7 8 21 22 23 24 25 26 189 190 191 192 255 50.40 KHz 48.00 KHz 32.00 KHz 27.42 KHz 16.00 KHz 9.600 KHz 8.000 KHz 6.620 KHz 50.40 KHz 50.40 KHz 48.10 KHz 46.01 KHz 44.10 KHz 42.36 KHz 40.70KHz 5600 KHz 5570.5 KHz 5541.4 KHz 5512.5 KHz 5512.5 KHz 16 X 21 353 529 617 1058 1764 2117 2558 16 X 21 16 X 21 16 X 22 16 X 23 16 X 24 16 X 25 16 X 26 16 X 189 16 X 190 16 X 191 16 X 192 16 X 192 Table 14. A/D Sample Rate (SRAD7-SRAD0) Decimal Value 0 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 255 Sample Rate 50.40 48.00 32.00 27.42 16.00 9.600 8.000 6.620 50.40 50.40 48.10 46.01 44.10 42.36 40.70 39.20 37.80 4.150 KHz KHz KHz KHz KHz KHz KHz KHz KHz KHz KHz KHz KHz KHz KHz KHz KHz KHz Divider 16 X 21 353 529 617 1058 1764 2117 2558 16 X 21 16 X 21 16 X 22 16 X 23 16 X 24 16 X 25 16 X 26 16 X 27 16 X 28 16 X 255 Table 15. D/A Sample Rate (SRDA7-SRDA0) Table 13. Microphone Gain 32 DS213PP4 CS4237B During initialization and software power down (PM1,0 = 01), this register CANNOT be written and always reads 10000000 (80h) Index Address Register (WSSbase+0, R0) D7 D6 D5 D4 D3 D2 D1 D0 INIT MCE TRD IA4 IA3 IA2 IA1 IA0 IA3-IA0 IA4 TRD Index Address: These bits define the address of the indirect register accessed by the Indexed Data register (R1). These bits are read/write. Allows access to indirect registers 16 - 31. In MODE 1, this bit is reserved and must be written as zero. Transfer Request Disable: This bit, when set, causes DMA transfers to cease when the INT bit of the Status Register (R2) is set. Independent for playback and capture interrupts. 0 - Transfers Enabled (playback and capture DRQs occur uninhibited) 1 - Transfers Disabled (playback and capture DRQ only occur if INT bit is 0) MCE INIT D7 D6 D5 D4 D3 D2 D1 D0 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 ID7-ID0 WSS Codec Initialization: This bit is read as 1 when the Codec is in a state in which it cannot respond to parallel interface cycles. This bit is read-only. Indexed Data register: These bits are the indirect register referenced by the Indexed Address register (R0). During initialization and software power down of the WSS Codec, this register can NOT be written and is always read 10000000 (80h) Status Register (WSSbase+2, R2, Read Only) D7 D6 D5 D4 D3 D2 D1 D0 CU/L CL/R CRDY SER PU/L PL/R PRDY INT INT Mode Change Enable: This bit must be set whenever the current mode of the WSS Codec is changed. The Data Format (I8, I28) and Interface Configuration (I9) registers CANNOT be changed unless this bit is set. The exceptions are CEN and PEN which can be changed "on-the-fly". The DAC output is muted when MCE is set. Immediately after RESET (and once the WSS Codec has left the INIT state), the state of this register is: 010x0000 (binary - where ’x’ indicates unknown). DS213PP4 Indexed Data Register (WSSbase+1, R1) Interrupt Status: This indicates the status of the internal interrupt logic of the WSS Codec. This bit is cleared by any write of any value to this register. The IEN bit of the Pin Control register (I10) determines whether the state of this bit is reflected on the IRQ pin assigned to the WSS Codec. Read States 0 - Interrupt inactive 1 - Interrupt active PRDY Playback Data Ready. The Playback Data register (R3) is ready for more data. This bit would be used when direct programmed I/O data transfers are desired. 0 - Data still valid. Do not overwrite. 1 - Data stale. Ready for next host data write value. 33 CS4237B PL/R Playback Left/Right Sample: This bit indicates whether data needed is for the Left channel or Right channel in all data formats except ADPCM. In ADPCM it indicates whether the first two or last two bytes of a 4-byte set (8 ADPCM samples) are needed. CL/R 0 - Right or 3/4 ADPCM byte needed 1 - Left, Mono, or 1/2 ADPCM byte needed PU/L Playback Upper/Lower Byte: This bit indicates whether the playback data needed is for the upper or lower byte of the channel. In ADPCM it indicates, along with PL/R, which one of the four ADPCM bytes is needed. 0 - Lower or 1/3 ADPCM byte needed 1 - Upper, any 8-bit format, or 2/4 ADPCM byte needed. SER CRDY Sample Error: This bit indicates that a sample was not serviced in time and an error has occurred. The bit indicates an overrun for capture and underrun for playback. If both the capture and playback are enabled, the source which set this bit can not be determined. However, the Alternate Feature Status register (I24) can indicate the exact source of the error. Capture Data Ready. The Capture Data register (R3) contains data ready for reading by the host. This bit would be used for direct programmed I/O data transfers. 0 - Data is stale. Do not reread the information. 1 - Data is fresh. Ready for next host data read. 34 Capture Left/Right Sample: This bit indicates whether the capture data waiting is for the Left channel or Right channel in all audio data formats except ADPCM. In ADPCM it indicates whether the first two or last two bytes of a 4-byte set (8 ADPCM samples) are waiting. 0 - Right or 3/4 ADPCM byte available 1 - Left, Mono, or 1/2 ADPCM byte available CU/L Capture Upper/Lower Byte: This bit indicates whether the capture data ready is for the upper or lower byte of the channel. In ADPCM it indicates, along with CL/R, which one of four ADPCM bytes is available. 0 - Lower or 1/3 ADPCM byte available 1 - Upper, any 8-bit format, or 2/4 ADPCM byte available Note on PRDY/CRDY: These two bits are designed to be read as one when action is required by the host. For example, when PRDY is set to one, the device is ready for more data; or when the CRDY is set to one, data is available to the host. The definition of the CRDY and PRDY bits are therefore consistent in this regard. I/O DATA REGISTERS The PIO Data register is two registers mapped to the same address. Writes to this register sends data to the Playback Data register. Reads from this register will receive data from the Capture Data register. During initialization and software power down of the WSS Codec, this register CANNOT be written and is always read 10000000 (80h) DS213PP4 CS4237B Capture I/O Data Register (WSSbase+3, R3, Read Only) D7 D6 D5 D4 D3 D2 D1 D0 CD7 CD6 CD5 CD4 CD3 CD2 CD1 CD0 CD7-CD0 Capture Data Port. This is the control register where capture data is read during programmed I/O data transfers. The reading of this register will increment the state machine so that the following read will be from the next appropriate byte in the sample. The exact byte which is next to be read can be determined by reading the Status register (R2). Once all relevant bytes have been read, the state machine will point to the last byte of the sample until a new sample is received from the ADCs. Once the Status register (R2) is read and a new sample is received from the FIFO, the state machine and Status register (R2) will point to the first byte of the new sample. INDIRECT MAPPED REGISTERS These registers are accessed by placing the appropriate index in the Index Address register (R0) and then accessing the Indexed Data register (R1). A detailed description of each indirect register is given below. All reserved bits should be written zero and may be 0 or 1 when read. Note that indirect registers 16-31 are not available when in MODE 1 (CMS1,0 in MODE and ID register I12 are both zero). Left ADC Input Control (I0) Default = 000x0000 D7 LSS1 D6 D5 LSS0 LMGE D4 D3 D2 D1 D0 res LAG3 LAG2 LAG1 LAG0 LAG3-LAG0 Left ADC Gain. The least significant bit represents +1.5 dB, with 0000 = 0 dB. See Table 7. res Reserved. Must write 0. Could read as 0 or 1. During initialization and software power down of the WSS Codec, this register can NOT be written and is always read 10000000 (80h) LMGE This bit has no function in MODE 3. In MODEs 1 & 2 it controls the 20 dB gain boost for the left MIC input to the ADC. Playback I/O Data Register WSSbase+3, R3, Write Only) LSS1-LSS0 Left output loopback. In MODE 3, setting these bits to 11 enables the left output loopback into the input mixer. Bit combinations of 01, 10, and 00 disable the loopback. In MODEs 1 & 2, the input mixer is used as a multiplexer where these bits select the left ADC input source. 00 - LLINE 01 - LAUX1 10 - LMIC 11 - Left Output Mixer Loopback D7 D6 D5 D4 D3 D2 D1 D0 PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0 PD7-PD0 Playback Data Port. This is the control register where playback data is written during programmed IO data transfers. Writing data to this register will increment the playback byte tracking state machine so that the following write will be to the correct byte of the sample. Once all bytes of a sample have been written, subsequent byte writes to this port are ignored. The state machine is reset after the Status register (R2) is read, and the current sample is sent to the DACs via the FIFOs. DS213PP4 35 CS4237B the gain stage, is muted. In MODEs 1 & 2, this bit is not available and internally forced on (muted). Right ADC Input Control (I1) Default = 000x0000 D7 D6 D5 D4 D3 D2 D1 D0 RSS1 RSS0 RMGE res RAG3 RAG2 RAG1 RAG0 RAG3-RAG0 res Right ADC Gain. The least significant bit represents +1.5 dB, with 0000 = 0 dB. See Table 7. Reserved. Must write 0. Could read as 0 or 1. RMGE This bit has no function in MODE 3. In MODEs 1 & 2 it controls the 20 dB gain boost for the right MIC input to the ADCs. RSS1-RSS0 Right output loopback. In MODE 3 setting these bits to 11 enables the right output loopback into the input mixer. Other bit combinations disable the loopback. In MODEs 1 & 2, the input mixer is used as a mux. where these bits select the right ADC input source. 00 - RLINE 01 - RAUX1 10 - RMIC 11 - Right Output Mixer Loopback LX1OM Left Auxiliary #1 Mute. When set to 1, the left Auxiliary #1 input, LAUX1, to the output mixer through the gain stage, is muted. LAUX1 (Line In) +12 to -34.5 dB D6 D5 D4 D3 D2 D1 D0 LX1IM 36 Left Auxiliary #1 Mute. In MODE 3, when set, the left Auxiliary #1 input, LAUX1, to the input mixer through To Input Mixer D7 D6 D5 D4 D3 D2 D1 D0 RX1OM RX1IM RX1BM RX1G4 RX1G3 RX1G2 RX1G1 RX1G0 RX1G4-RX1G0 Right Auxiliary #1, RAUX1, Mix Gain. The least significant bit represents 1.5 dB, with 01000 = 0 dB. See Table 10. RX1BM Right Auxiliary #1 Bypass Mute. In MODE 3, when set, the right Auxiliary #1 input, RAUX1, (bypassing the gain) to the input mixer is muted. In MODEs 1 & 2, this bit is not available and is internally controlled by RSS1,0 in I1. RX1IM Right Auxiliary #1 Mute. When set to 1, the right Auxiliary #1 input, RAUX1, to the input mixer through the gain stage, is muted. In MODEs 1 & 2, this bit is not available and internally forced on (muted). RX1OM Right Auxiliary #1 Mute. When set to 1, the right Auxiliary #1 input, RAUX1, to the output mixer through the gain stage, is muted. LX1G4-LX1G0 Left Auxiliary #1, LAUX1, Mix Gain. The least significant bit represents 1.5 dB, with 01000 = 0 dB. See Table 10. Left Auxiliary #1 Bypass Mute. In MODE 3, when set, the left Auxiliary #1 input, LAUX1, (bypassing the gain) to the input mixer, is muted. In MODEs 1 & 2, this bit is not available and is internally controlled by LSS1,0 in I0. LX1IM Right Auxiliary #1 Volume (I3) Default = 11101000 LX1OM LX1IM LX1BM LX1G4 LX1G3 LX1G2 LX1G1 LX1G0 LX1BM To Output Mixer LX1BM Left Auxiliary #1 Volume (I2) Default = 11101000 D7 LX1G4-G0 LX1OM RAUX1 (Line In) RX1G4-G0 +12 to -34.5 dB RX1OM To Output Mixer RX1IM To Input Mixer RX1BM DS213PP4 CS4237B RX2OM Left Auxiliary #2 Volume (I4) Default = 11x01000 D7 D6 D5 LX2OM LX2IM res D4 D3 D2 D1 D0 LX2G4 LX2G3 LX2G2 LX2G1 LX2G0 LX2G4-LX2G0 Left Auxiliary #2, LAUX2, Mix Gain. The least significant bit represents 1.5 dB, with 01000 = 0 dB. See Table 10. Left DAC (PC Wave) Volume (I6) Default = 10000000 res Reserved. Must write 0. LX2IM Left Auxiliary #2 Mute. In MODE 3, when set to 1, the left Auxiliary #2 input, LAUX2, to the input mixer through the gain stage, is muted. In MODEs 1 & 2, this bit is not available and internally forced on (muted). LX2OM Left Auxiliary #2 Mute. When set to 1, the left Auxiliary #2 input, LAUX2, to the output mixer through the gain stage, is muted. LAUX2 (Line In) LX2G4-G0 RAUX2 (Line In) LX2OM To Output Mixer LX2IM To Input Mixer D7 D6 LDOM LDG6 LPM res Right Auxiliary #2 Volume (I5) Default = 11x01000 D6 D5 D4 D3 D2 D1 D0 D5 D4 D3 D2 D1 D0 LDG5 LPA5 LDG4 LPA4 LDG3 LPA3 LDG2 LPA2 LDG1 LPA1 LDG0 LPA0 If both IFM (X4 or Global Config. byte) and WTEN (C8 or Global Config. byte) are cleared, this register is the master digital audio volume for the left channel with the following bit definitions: LDG6-LDG0 Left DAC Master Volume. The least significant bit represents 1.5 dB, with 0000000 = 0 dB. The total range is +12 to -94.5 dB. See Table 12. LDOM Left DAC Master Mute. When set, the left DAC to the output mixer is muted. +12 to -34.5 dB D7 Right Auxiliary #2 Mute. When set to 1, the right Auxiliary #2 input, RAUX2, to the output mixer through the gain stage, is muted. To Output Mixer RX2OM RX2G4-G0 To Input Mixer RX2IM +12 to -34.5 dB If IFM or WTEN is set, this register controls the left channel volume for data coming from the ISA bus only (and X14 is the left channel digital audio master volume) with the following bit descriptions. RX2OM RX2IM res RX2G4 RX2G3 RX2G2 RX2G1 RX2G0 RX2G4-RX2G0 Right Auxiliary #2, RAUX2, Mix Gain. The least significant bit represents 1.5 dB, with 01000 = 0 dB. See Table 10. res Reserved. Must write 0. Could read as 0 or 1. RX2IM Right Auxiliary #2 Mute. In MODE 3, when set, the right Auxiliary #2 input, RAUX2, to the input mixer through the gain stage, is muted. In MODEs 1 & 2, this bit is not available and internally forced on (muted). DS213PP4 LPA5-LPA0 Left PC Wave Attenuation. The least significant bit represents -1.5 dB, with 000000 = 0 dB. The total range is 0 to -94.5 dB. See Table 6. res Reserved. Must write 0. Could read as 0 or 1. LPM Left PC Wave Mute. When set, the left PCM input to the digital mixer summer will be muted. 37 CS4237B See Table below. Right DAC (PC Wave) Volume (I7) Default = 10000000 D7 D6 D5 RDOM RDG6 RDG5 RPM res RPA5 CFS2-CFS0 D4 D3 D2 D1 D0 RDG4 RPA4 RDG3 RPA3 RDG2 RPA2 RDG1 RPA1 RDG0 RPA0 If both IFM (X4 or Global Config. byte) and WTEN (C8 or Global Config. byte) are cleared, this register is the master digital audio volume for the right channel with the following bit definitions: RDG6-RDG0 Right DAC Master Volume. The least significant bit represents 1.5 dB, with 0000000 = 0 dB. The total range is +12 to -94.5 dB. See Table 12. RDOM Right DAC Master Mute. When set, the right DAC to the output mixer is muted. If IFM or WTEN is set, this register controls the right channel volume for data coming from the ISA bus only (and X15 is the right channel digital audio master volume) with the following bit descriptions. RPA5-RPA0 Right PC Wave Attenuation. The least significant bit represents -1.5 dB, with 000000 = 0 dB. The total range is 0 to -94.5 dB. See Table 6. res Reserved. Must write 0. Could read as 0 or 1. RPM Right PC Wave Mute. When set, the right PCM input to the digital mixer summer will be muted. Fs and Playback Data Format (I8) Default = 00000000 D7 D6 D5 D4 D3 D2 D1 D0 FMT1 FMT0 C/L S/M CFS2 CFS1 CFS0 C2SL C2SL 38 DIVIDE 0 - 3072 1 - 1536 2 - 896 3 - 768 4 - 448 5 - 384 6 - 512 7 - 2560 S/M Clock Frequency Divide Select: These bits select the audio sample frequency for both capture and playback. The actual audio sample frequency depends on which clock base (C2SL) is selected. Note that these bits can be disabled by setting SRE in I22 or IFSE in X11. CAUTION: CFS2-CFS0 can only be changed while MCE (R0) is set. C2SL = 0 8.0 kHz 16.0 kHz 27.42 kHz 32.0 kHz N/A N/A 48.0 kHz 9.6 kHz C2SL = 1 5.51 kHz 11.025 kHz 18.9 kHz 22.05 kHz 37.8 kHz 44.1 kHz 33.075 kHz 6.62 kHz Stereo/Mono Select: This bit determines how the audio data streams are formatted. Selecting stereo will result in alternating samples representing left and right audio channels. Mono playback plays the same audio sample on both channels. Mono capture only captures data from the left channel. In MODE 1, this bit is used for both playback and capture. In MODEs 2 and 3, this bit is only used for playback, and the capture format is independently selected via I28. MCE (R0) or PMCE (I16) must be set to modify S/M. See Changing Audio Data Formats section for more details. Clock 2 Source Select: This bit selects the clock base used for the audio sample rates for both capture and playback. Note that this bit can be disabled by setting SRE in I22 or by setting IFSE in X11. CAUTION: C2SL can only be changed while MCE (R0) is set. DS213PP4 CS4237B 0 - Mono 1 - Stereo CEN C/L, FMT1, and FMT0 bits set the audio data format as shown below. In MODE 1, FMT1, which is forced low, FMT0, and C/L are used for both playback and capture. In MODEs 2 and 3, these bits are only used for playback, and the capture format is independently selected via register I28. MCE (R0) or PMCE (I16) must be set to modify the upper four bits of this register. See Changing Audio Data Formats section for more details. FMT1† FMT0 C/L D7 D6 D5 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 - Capture Disabled (capture DRQ and PIO inactive) 1 - Capture Enabled SDC Audio Data Format Linear, 8-bit unsigned µ-Law, 8-bit companded Linear, 16-bit two’s complement, Little Endian A-Law, 8-bit companded RESERVED ADPCM, 4-bit, IMA compatible Linear, 16-bit two’s complement, Big Endian RESERVED CAL1,0 Interface Configuration (I9) Default = 00x01000 D7 D6 D5 D4 D3 D2 D1 D0 PPIO res CAL1 CAL0 SDC CEN PEN PEN Playback Enable. This bit enables playback. The WSS Codec will generate a DRQ and respond to DACK signal when this bit is enabled and PPIO=0. If PPIO=1, PEN enables PIO playback mode. PEN may be set and reset without setting the MCE bit. 0 - Playback Disabled (playback DRQ and PIO inactive) 1 - Playback Enabled DS213PP4 Single DMA Channel: This bit will force BOTH capture and playback DMA requests to occur on the Playback DMA channel. This bit forces the WSS Codec to use one DMA channel. Should both capture and playback be enabled in this mode, only the playback will occur. See the DMA Interface section for further explanation. 0 - Dual DMA channel mode 1 - Single DMA channel mode † FMT1 is not available in MODE 1 (forced to 0). CPIO Capture Enabled. This bit enables the capture of data. The WSS Codec will generate a DRQ and respond to DACK signal when CEN is enabled and CPIO=0. If CPIO=1, CEN enables PIO capture mode. CEN may be set and reset without setting the MCE bit. Calibration: These bits determine which type of calibration the WSS Codec performs whenever the Mode Change Enable (MCE) bit, R0, changes from 1 to 0. The number of sample periods required for calibration is listed in parenthesis. 0 1 2 3 PPIO - No calibration (0) Converter calibration (321) DAC calibration (120) Full calibration (450) Playback PIO Enable: This bit determines whether the playback data is transferred via DMA or PIO. 0 - DMA transfers 1 - PIO transfers CPIO Capture PIO Enable: This bit determines whether the capture data is transferred via DMA or PIO. 0 - DMA transfers 1 - PIO transfers 39 CS4237B 00 - 12kHz < Fs ≤ 24kHz 01 - Fs > 24kHz 10 - Fs ≤ 12kHz 11 - reserved Caution: This register, except bits CEN and PEN, can only be written while in Mode Change Enable (either MCE or PMCE). See the Changing Sampling Rate section for more details. Pin Control (I10) Default = 0000000x D7 D6 D5 D4 D3 D2 D1 D0 XCTL1 XCTL0 OSM1 OSM0 DEN DTM IEN res res Reserved. Must write 0. Could read as 0 or 1. IEN Interrupt Enable: This bit enables the interrupt pin. The Interrupt pin will reflect the value of the INT bit of the Status register (R2). The interrupt pin is active high. 0 - Interrupt disabled 1 - Interrupt enabled DTM DEN DMA Timing Mode. MODE 2 & 3 only. When set, causes the current DMA request signal to be deasserted on the rising edge of the IOW or IOR strobe during the next to last byte of a DMA transfer. When DTM = 0 the DMA request is released on the falling edge of the IOW or IOR during the last byte of a DMA transfer. XCTL1-XCTL0 XCTL Control: These bits are reflected on the XCTL1,0 pins of the part. NOTE: These pins are multiplexed with other functions; therefore, they may not be available on a particular design. 0 - TTL logic low on XCTL1,0 pins 1 - TTL logic high on XCTL1,0 pins Error Status and Initialization (I11, Read Only) Default = 00000000 D7 D6 D5 D4 COR PUR ACI DRS ORL1-ORL0 ORR1-ORR0 Dither Enable: When set, triangular pdf dither is added before truncating the ADC 16-bit value to 8-bit, unsigned data. Dither is only active in the 8-bit unsigned data mode. 40 These bits are enabled by setting SRE = 1 in I22. These bits in combination with DIV5-DIV0 and CS2 (I22) determine the current sample rate of the WSS Codec when SRE = 1. Note that these bits can be disabled by setting IFSE in X11. D2 D1 D0 ORL1 ORL0 Overrange Left Detect: These bits determine the overrange on the left ADC channel. These bits are updated on a sample by sample basis. 0 - Less than -1.5 dB 1 - Between -1.5 dB and 0 dB 2 - Between 0 dB and 1.5 dB overrange 3 - Greater than 1.5 dB overrange Overrange Right Detect: These bits determine the overrange on the Right ADC channel. 0 - Less than -1.5 dB 1 - Between -1.5 dB and 0 dB 2 - Between 0 dB and 1.5 dB overrange 3 - Greater than 1.5 dB overrange 0 - Dither enabled 1 - Dither disabled OSM1-OSM0 D3 ORR1 ORR0 DRS DRQ Status: This bit indicates the current status of the DRQs assigned to the WSS Codec. 0 - Capture AND Playback DRQs are presently inactive 1 - Capture OR Playback DRQs are presently active DS213PP4 CS4237B ACI Auto-calibrate In-Progress: This bit indicates the state of calibration. 00 - MODE 1 01 - Reserved 10 - MODE 2 11 - MODE 3 0 - Calibration not in progress 1 - Calibration is in progress PUR Playback underrun: This bit is set when playback data has not arrived from the host in time to be played. As a result, if DACZ = 0, the last valid sample will be sent to the DACs. This bit is set when an error occurs and will not clear until the Status register (R2) is read. COR Capture overrun: This bit is set when the capture data has not been read by the host before the next sample arrives. The old sample will not be overwritten and the new sample will be ignored. This bit is set when an error condition occurs and will not clear until the Status register (R2) is read. The SER bit in the Status register (R2) is simply a logical OR of the COR and PUR bits. This enables a polling host CPU to detect an error condition while checking other status bits. Monitor Loopback Volume (I13) Default = 000000x0 D7 D6 D5 D4 D3 D2 D1 D0 LBA5 LBA4 LBA3 LBA2 LBA1 LBA0 res LBE LBE Loopback Enable: When set to 1, the ADC data is digitally mixed with data sent to the DACs. This bit controls the loopback enable for both channels regardless of how SLBE in X10 is set. 0 - Loopback disabled 1 - Loopback enabled res Reserved. Must write 0. Could read as 0 or 1. LBA5-LBA0 Loopback Attenuation: These bits determine the attenuation of the loopback from ADC to DAC. The least significant bit represents -1.5 dB, with 000000 = 0 dB. See Table 6. MODE and ID (I12) Default = 100x1010 D7 D6 D5 D4 D3 D2 D1 D0 1 CMS1 CMS0 res ID3 ID2 ID1 ID0 ID3-ID0 Codec ID: These four bits indicate the ID and initial revisions of the codec. Further revisions are expanded in indirect register I25 through the CS4236 and C1 for newer chips. These bits are read only. 0001 - Rev B CS4248/CS4231 1010 - All other revisions and parts. See Registers X25 or C1. res Reserved. Must write 0. Could read as 0 or 1. CMS1,0 Codec Mode Select bits: Enables the Extended registers and functions of the part. DS213PP4 LBA5-LBA0 control left and right channels when SLBE in X10 is clear. When SLBE = 1, these bits only control the left channel and RLBA5- RLBA0 in X10 control the right. Playback Upper Base (I14) Default = 00000000 D7 D6 D5 D4 D3 D2 D1 D0 PUB7 PUB6 PUB5 PUB4 PUB3 PUB2 PUB1 PUB0 PUB7-PUB0 Playback Upper Base: This register is the upper byte which represents the 8 most significant bits of the 16-bit Playback Base register. Reads from this register return the same value 41 CS4237B which was written. The Current Count registers cannot be read. When set for MODE 1 or SDC, this register is used for both the Playback and Capture Base registers. 1 - 64-bit. Figure 10. 2 - 32-bit. Figure 11. 3 - ADC/DAC. Figure 12. PMCE Playback Mode Change Enable. When set, it allows modification of the stereo/mono and audio data format bits (D7-D4) for the playback channel, I8. MCE in R0 must be used to change the sample frequency. CMCE Capture Mode Change Enable. When set, it allows modification of the stereo/mono and audio data format bits (D7-D4) for the capture channel, I28. MCE in R0 must be used to change the sample frequency in I8. TE Timer Enable: This bit, when set, will enable the timer to run and interrupt the host at the specified frequency in the timer registers. OLB Output Level Bit: Provided for backwards compatibility with the CS4236. This bit does nothing on this chip. Playback Lower Base (I15) Default = 00000000 D7 D6 D5 D4 D3 D2 D1 D0 PLB7 PLB6 PLB5 PLB4 PLB3 PLB2 PLB1 PLB0 PLB7-PLB0 Lower Base Bits: This register is the lower byte which represents the 8 least significant bits of the 16-bit Playback Base register. Reads from this register return the same value which was written. When set for MODE 1 or SDC, this register is used for both the Playback and Capture Base registers. Alternate Feature Enable I (I16) Default = 00000000 D7 D6 OLB TE DACZ D5 D4 CMCE PMCE D3 D2 D1 D0 SF1 SF0 SPE DACZ DAC Zero: This bit will force the output of the playback channel to AC zero when an underrun error occurs 1 - Go to center scale 0 - Hold previous valid sample SPE DSP Serial Port Enable. When set, audio data from the ADCs is sent out SDOUT and audio data from SDIN is sent to the DACs. MCE in R0 must be set to change this bit. 1 - Enable serial port 0 - Disable serial port. ISA Bus used for audio data. SF1,SF0 Serial Format. Selects the format of the serial port when enabled by SPE. MCE in R0 must be set to change these bits. Alternate Feature Enable II (I17) Default = 0000x000 D7 D6 D5 D4 D3 D2 D1 D0 TEST TEST TEST TEST APAR res XTALE HPF HPF High Pass Filter: This bit enables a DC-blocking high-pass filter in the digital filter of the ADC. This filter forces the ADC offset to 0. 0 - disabled 1 - enabled XTALE Crystal Enable. Provided for backwards compatibility with the CS4231A. This bit does nothing on the this part. res Reserved. Must write 0. Could read as 0 or 1. 0 - 64-bit enhanced. Figure 9. 42 DS213PP4 CS4237B APAR ADPCM Playback Accumulator Reset. While set, the Playback ADPCM accumulator is held at zero. Used when pausing a playback stream. TEST Factory Test. These bits are used for factory testing and must remain at 0 for normal operation. the input mixer is muted. In MODEs 1 & 2, this bit is not available and internally forced on (muted). LLOM Left Line (Synthesizer) Volume (I18) Default = xxxxxxxx D7 D6 D5 D4 D3 D2 D1 D0 LLOM LR7 LLIM LR6 LLBM LR5 LLG4 LR4 LLG3 LR3 LLG2 LR2 LLG1 LR1 LLG0 LR0 This register controls either the left LINE input or is remapped to control the internal FM (X6) or external CS9236 Wavetable synthesizer (X16), or both. When no remapping occurs, the bit definitions are: LLG4-LLG0 LLBM LLIM Left LINE Output Mute. When set to 1, the Left Line Input, LLINE, from the volume control to the output mixer is muted. When IFM=1 (X4 or Global Config. byte) and FMRM=1 (X4), FM remapping is enabled. When WTEN=1 (C8 or Global Config. byte) and WTRMD=0 (X4), Wavetable remapping is enabled. If either synthesizer remap is enabled, left LINE analog volume is controlled through X0. With remapping the bit definitions are: LR7-LR0 When IFM=1 and FMRM=1, writes to I18 will write the Internal FM register X6. Left LINE Volume. This register is used to control the LLINE analog input volume to the mixers. The least significant bit represents 1.5 dB, with 01000 = 0 dB. See Table 10. Left LINE Bypass Mute. In MODE 3, when set to 1, the analog Left Line Input, LLINE, (bypassing the gain block) to the input mixer is muted. In MODEs 1 & 2, this bit is not available and is internally controlled by LSS1,0 in I0. Left LINE Input Mute. In MODE 3, when set to 1, the Left Line Input, LLINE, from the volume control to When WTEN=1 and WTRMD=0, writes to I18 will write the Wavetable synthesis register X16. Right Line (Synthesizer) Volume (I19) Default = xxxxxxxx D7 D6 RLOM RLIM RR7 RR6 LLINE (Synthesis) LLG4-G0 To Output Mixer LLIM To Input Mixer D5 D4 D3 D2 D1 D0 RLBM RR5 RLG4 RR4 RLG3 RR3 RLG2 RR2 RLG1 RR1 RLG0 RR0 This register controls either the right LINE input or is remapped to control the internal FM (X7) or external CS9236 Wavetable synthesizer (X17), or both. When no remapping occurs, the bit definitions are: RLG4-RLG0 LLOM Left Remapped Register. Right LINE Volume. This register is used to control the RLINE analog input volume to the mixers. The least significant bit represents 1.5 dB, with 01000 = 0 dB. See Table 10. +12 to -34.5 dB LLBM DS213PP4 43 CS4237B RLBM Right LINE Bypass Mute. In MODE 3, when set to 1, the analog Right Line Input, RLINE, (bypassing the gain block) to the input mixer is muted. In MODEs 1 & 2, this bit is not available and is internally controlled by RSS1,0 in I1. RLIM Right LINE Input Mute. In MODE 3, when set to 1, the Right Line Input, RLINE, from the volume control to RLINE (Synthesis) To Output Mixer RLOM RLG4-G0 To Input Mixer RLIM into the internal timer; therefore, the upper timer register should be loaded before the lower. Once the count reaches zero, an interrupt is generated, if enabled, and the timer is automatically reloaded with these base registers. Timer Upper Base (I21) Default = 00000000 D7 D6 D5 D4 D3 D2 D1 D0 TU7 TU6 TU5 TU4 TU3 TU2 TU1 TU0 TU7-TU0 +12 to -34.5 dB RLBM the input mixer is muted. In MODEs 1 & 2, this bit is not available and internally forced on (muted). RLOM Right LINE Output Mute. When set to 1, the Right Line Input, RLINE, from the volume control to the output mixer is muted. When IFM=1 and FMRM=1, FM remapping is enabled. When WTEN=1 and WTRMD=0, Wavetable remapping is enabled. If either synthesizer remap is enabled, right LINE analog volume is controlled through X1. With remapping the bit definitions are: RR7-RR0 C2SL = 0 - 24.576MHz / 245 (9.969 µs) C2SL = 1 - 16.9344MHz / 168 (9.92 µs) Alternate Sample Frequency Select (I22) Default = 00000000 D7 D6 D5 D4 D3 D2 D1 D0 SRE DIV5 DIV4 DIV3 DIV2 DIV1 DIV0 CS2 CS2 Right Remapped Register. When IFM=1 and FMRM=1, writes to I19 will write the Internal FM register X7. When WTEN=1 and WTRMD=0, writes to I19 will write the Wavetable synthesis register X17. D7 D6 D5 D4 D3 D2 D1 D0 TL7 TL6 TL5 TL4 TL3 TL2 TL1 TL0 TL7-TL0 44 Clock 2 Base Select. This bit selects the base clock frequency used for generating the audio sample rate. Note that the part uses only one crystal to generate both clock base frequencies. This bit can be disabled by setting IFSE in X11. 0 - 24.576 MHz base 1 - 16.9344 MHz base DIV5 - DIV0 Timer Lower Base (I20) Default = 00000000 Upper Timer Bits: This is the high order byte of the 16-bit timer. The time base is determined by the frequency base selected from either C2SL in I8 or CS2 in I22. Clock Divider. These bits select the audio sample frequency for both capture and playback. These bits can be overridden by IFSE in X11. Fs = (2*XT)/(M*N) Lower Timer Bits: This is the low order byte of the 16-bit timer base register. Writes to this register cause both timer base registers to be loaded DS213PP4 CS4237B XT = 24.576 MHz CS2 = 0 XT = 16.9344 MHz CS2 = 1 XA3-XA0 Extended Register Address. Along with XA4, sets the register number (X0-X17+X25) accessed when XRAE is set. MODE 3 only. See the WSS Extended Register section for more details. N = DIV5-DIV0 16 ≤ N ≤ 49 for XT = 24.576 MHz 12 ≤ N ≤ 33 for XT = 16.9344 MHz (M set by OSM1,0 in I10) M = 64 for Fs > 24 kHz M = 128 for 12 kHz < Fs ≤ 24 kHz M = 256 for Fs ≤ 12 kHz SRE Alternate Sample Rate Enable. When this bit is set to a one, bits 0-3 of I8 will be ignored, and the sample frequency is then determined by CS2, DIV5-DIV0, and the oversampling mode bits OSM1, OSM0 in I10. Note that this register can be overridden (disabled) by IFSE in X11. Extended Register Access (I23) Default = 00000xx0 D7 D6 D5 D4 D3 D2 D1 D0 XA3 XA2 XA1 XA0 XRAE XA4 res ACF ACF ADPCM Capture Freeze. When set, the capture ADPCM accumulator and step size are frozen. This bit must be set to zero for adaptation to continue. This bit is used when pausing a ADPCM capture stream. res Reserved. Must write 0. Could read as 0 or 1. XA4 Extended Register Address bit 4. Along with XA3-XA0, enables access to extended registers X16, X17, and X25. MODE 3 only. XRAE Extended Register Access Enable. Setting this bit converts this register from the extended address register to the extended data register. To convert back to an address register, R0 must be written. MODE 3 only. DS213PP4 Alternate Feature Status (I24) Default = x0000000 D7 D6 D5 D4 D3 D2 D1 D0 res TI CI PI CU CO PO PU PU Playback Underrun: When set, indicates the DAC has run out of data and a sample has been missed. PO Playback Overrun: When set, indicates that the host attempted to write data into a full FIFO and the data was discarded. CO Capture Overrun: When set, indicates that the ADC had a sample to load into the FIFO but the FIFO was full. In this case, this bit is set and the new sample is discarded. CU Capture Underrun: Indicates the host has read more data out of the FIFO than it contained. In this condition, the bit is set and the last valid byte is read by the host. PI Playback Interrupt: Indicates an interrupt is pending from the playback DMA count registers. CI Capture Interrupt: Indicates an interrupt is pending from the capture DMA count registers. TI Timer Interrupt: Indicates an interrupt is pending from the timer registers 45 CS4237B res summed into the mixer. MIA0 is the least significant bit and represents 3 dB attenuation, with 0000 = 0 dB. See Table 7. Reserved. Must write 0. Could read as 0 or 1. The PI, CI, and TI bits are reset by writing a "0" to the particular interrupt bit or by writing any value to the Status register (R2). Compatibility ID (I25) Default = 00000011 D7 D6 D5 D4 D3 D2 D1 D0 V2 V1 V0 CID4 CID3 CID2 CID1 CID0 CID4-CID0 All Chips: V2-V0 Chip Identification. Distinguishes between this chip and previous codec chips that support this register set. This register is fixed to indicate code compatibility with the CS4236. X25 or C1 should be used to further differentiate between parts that are compatible with the CS4236. res Reserved. Must write 0. Could read as 0 or 1. MBY Mono Bypass. MBY connects MIN directly to MOUT with an attenuation of 9 dB. When MBY = 1, MIM should be set to 1. 0 - MIN not connected directly to MOUT. 1 - MIN connected directly to MOUT. MOM 00011 - CS4236, CS4237B 00010 - CS4232/CS4232A 00000 - CS4231/CS4231A Mono Output Mute. In MODE 3, MOM will mute the left Line Out to the mono mix output, MOUT. The right Line Out mute, MOMR, is in X5. In MODE 2, MOM mutes left and right Line Out to MOUT. This mute is independent of the line output mute. 0 - no mute 1 - mute Version number. As enhancements are made to the part, the version number is changed so software can distinguish between the different versions. 000 - Compatible with the CS4236 MIM Mono Input Mute. In MODE 3, MIM mutes the MIN analog input to the left output mixer channel. MIMR in X4 mutes MIN analog input to the right output mixer channel. In MODE 2, MIM mutes both left and These bits are fixed for compatibility with the CS4236. Register X25 or C1 may be used to differentiate between the CS4236 and newer chips. Mono Input and Output Control (I26) Default = 101x0000 D7 D6 D5 D4 D3 D2 D1 D0 MIM MOM MBY res MIA3 MIA2 MIA1 MIA0 MIA3-MIA0 46 Mono Input Attenuation. When MIM is 0, these bits set the level of MIN DS213PP4 CS4237B right channels. The mono input provides mix for the "beeper" function in most personal computers. sample frequency must be the same and is set in I8. MCE (R0) or CMCE (I16) must be set to modify this register. See Changing Audio Data Formats section for more details. 0 - no mute 1 - muted Reserved (I29) Default = xxxxxxxx Reserved (I27) Default = xxxxxxxx D7 D6 D5 D4 D3 D2 D1 D0 res res res res res res res res D7 D6 D5 D4 D3 D2 D1 D0 res res res res res res res res res res Reserved. Must write 0. Could read as 0 or 1. Reserved. Must write 0. Could read as 0 or 1. Capture Upper Base (I30) Default = 00000000 Capture Data Format (I28) Default = 0000xxxx D7 D6 D5 D4 D3 D2 D1 D0 FMT1 FMT0 C/L S/M res res res res D7 D6 D5 D4 D3 D2 D1 D0 CUB7 CUB6 CUB5 CUB4 CUB3 CUB2 CUB1 CUB0 CUB7-CUB0 res Reserved. Must write 0. Could read as 0 or 1. S/M Stereo/Mono Select: This bit determines how the capture audio data stream is formatted. Selecting stereo will result with alternating samples representing left and right audio channels. Selecting mono only captures data from the left audio channel. MCE (R0) or CMCE (I16) must be set to modify S/M. See Changing Audio Data Formats section for more details. 0 - Mono 1 - Stereo C/L, FMT1, FMT0 set the capture data format in MODEs 2 and 3. See Table 11 or register I8 for the bit settings and data formats. The capture data format can be different than the playback data format; however, the DS213PP4 Capture Upper Base: This register is the upper byte which represents the 8 most significant bits of the 16-bit Capture Base register. Reads from this this register returns the same value that was written. Capture Lower Base (I31) Default = 00000000 D7 D6 D5 D4 D3 D2 D1 D0 CLB7 CLB6 CLB5 CLB4 CLB3 CLB2 CLB1 CLB0 CLB7-CLB0 Lower Base Bits: This register is the lower byte which represents the 8 least significant bits of the 16-bit Capture Base register. Reads from this register returns the same value which was written. 47 CS4237B WSS EXTENDED REGISTERS The Windows Sound System codec contains three sets of registers: R0-R3, I0-I31, and X0X25. R0-R3 are directly mapped to the ISA bus through WSSbase+0 through WSSbase+3 respectively. R0 and R1 provide access to the indirect registers I0-I31. The third set of registers are extended registers X0-X25 that are indirectly mapped through the WSS register I23. I23 acts as both the extended address and extended data register. These extended registers are only available when in MODE 3. Accessing the X registers requires writing the register address to I23 with XRAE set. When XRAE is set, I23 changes from an address register to a data register. Subsequent accesses to I23 access the extended data register. To convert I23 back to the extended address register, R0 must be written which internally clears XRAE. Assuming the part is in MODE 3, the following steps access the X registers: 1. Write 17h to R0 (to access I23). R1 is now the extended address register. 2. Write the desired X register address to R1 with XRAE = 1. R1 is now the extended data register. 3. Write/Read X register data from R1. To read/write a different X register: 4. Write 17h to R0 again. (resets XRAE) R1 is now the extended address register. 5. Write the new X register address to R1 with XRAE = 1. R1 is now the new extended data register. 6. Read/Write new X register data from R1. 48 Address WSSbase+0 WSSbase+1 Reg. R0 R1 I23 Register Name Reset Address Address/Data access Indexed Address/Data Extended Register Access (I23) D7 D6 D5 D4 D3 D2 D1 D0 XA3 XA2 XA1 XA0 XRAE XA4 res ACF Table 16. WSS Extended Register Control Index X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18-X24 X25 Register Name Left LINE Alternate Volume Right LINE Alternate Volume Left MIC Volume Right MIC Volume Synthesis and Input Mixer Control Right Input Mixer Control Left FM Synthesis Volume Right FM Synthesis Volume Left DSP Serial Port Volume Right DSP Serial Port Volume Right Loopback Monitor Volume DAC Mute and IFSE Enable Independent ADC Sample Freq. Independent DAC Sample Freq. Left Master Digital Audio Volume Right Master Digital Audio Volume Left Wavetable Serial Port Volume Right Wavetable Serial Port Volume Reserved Chip Version and ID Table 17. WSS Extended Registers DS213PP4 CS4237B Control Registers for the Extended Registers ADDRESS WSSbase+0 R0 WSSbase+1 R1 D7 D6 D5 D4 D3 D2 D1 D0 INIT MCE TRD IA4 IA3 IA2 IA1 IA0 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 I23 XA3 XA2 XA1 XA0 XRAE XA4 - ACF Extended Registers: (X0-X17, X25) XA4 - XA0 X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X25 D7 D6 D5 D4 D3 D2 D1 D0 LLAOM LLAIM LLABM LLAG4 LLAG3 LLAG2 LLAG1 LLAG0 RLAOM RLAIM RLABM RLAG4 RLAG3 RLAG2 RLAG1 RLAG0 LMIM LMOM LMBST LMG4 LMG3 LMG2 LMG1 LMG0 RMIM RMOM RMBST RMG4 RMG3 RMG2 RMG1 RMG0 MIMR LIS1 LIS0 IFM WTRMD FMRM - - MOMR RIS1 RIS0 - - - - - LFMM - LFMA5 LFMA4 LFMA3 LFMA2 LFMA1 LFMA0 RFMM - RFMA5 RFMA4 RFMA3 RFMA2 RFMA1 RFMA0 LSPM - LSPA5 LSPA4 LSPA3 LSPA2 LSPA1 LSPA0 RSPM - RSPA5 RSPA4 RSPA3 RSPA2 RSPA1 RSPA0 SLBE - RLBA5 RLBA4 RLBA3 RLBA2 RLBA1 RLBA0 LDMIM RDMIM IFSE - - - - - SRAD7 SRAD6 SRAD5 SRAD4 SRAD3 SRAD2 SRAD1 SRAD0 SRDA7 SRDA6 SRDA5 SRDA4 SRDA3 SRDA2 SRDA1 SRDA0 LDMOM LDMG6 LDMG5 LDMG4 LDMG3 LDMG2 LDMG1 LDMG0 RDMOM RDMG6 RDMG5 RDMG4 RDMG3 RDMG2 RDMG1 RDMG0 LWM - LWG5 LWG4 LWG3 LWG2 LWG1 LWG0 RWM - RWG5 RWG4 RWG3 RWG2 RWG1 RWG0 V2 V1 V0 CID4 CID3 CID2 CID1 CID0 Table 18. Extended Register Bit Summary DS213PP4 49 50 DSP SERIAL PORT Gain X2L X3R Mute X2L, X3R DSP Audio Data Serial Port s s NOTE: The symbol shows the active bit(s) for the register function specified s s s s s Mute I2L, I3R s Gain I2L I3R Mute I2L, I3R s Gain I18L * I19R s LINE (Syn.) s s s s s s s s s s s s s s Mute X2L, X3R Output Loopback I0L, I1R Mute I2L, I3R s 16 bit D/A DSP 20dB X2L Gain X3R s Digital Mixer Master Digital Volume Gain X14L X15R s s s s s s s s s Mute I4L, I5R s s PnP ISA Interface s s s s s s s Mute I18L, I19R * Mute I18L, I19R * s X10R Loopback enable I13 Mute I6L I7R AUX 2 (CDROM) Mute X11L X11R s Mute X8L X9R Gain I4L I5R Mute I4L, I5R s s s s s s s s s s s Loopback Atten. I13L & (R) X10 Stereo Enable s s s s s s Atten. X8L X9R AUX1 (LINE IN) s s s s s SRC Atten. X4L X5R s 16-bit A/D Analog Input Mixer Gain I0L I1R MIC s Mute X6L * X7R Mute X14L X15R s s s s s s s Mute I18L, I19R * Master Volume LINE OUT Mute Mixer I26L X5R s s s s s s Mute I26L X4R Mono Bypass Atten. -9db s s WAVETABLE SERIAL PORT MIN MONO OUT s s s s Atten. I26 s Mute I26 s UP/DOWN/MUTE Figure 4. MODE 3 Mixer (assumes IFM or WTEN is set) CS4237B DS213PP4 Wavetable Serial Port C8 s Gain X16L * X17R FM Synthesizer enable X4 * I18/I19 can be remapped to control X6/X7 and X16/X17. If remapping is enabled, X0/X1 control LINE inputs Analog Output s Atten. X6L * X7R s s s s s s SRC Mute X16L * X17R s s Atten. I6L I7R CS4237B Left LINE Alternate Volume (X0) Default = 11101000 D7 D6 D5 D4 D3 D2 Right LINE Alternate Volume (X1) Default = 11101000 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 LLAOM LLAIM LLBAM LLAG4 LLAG3 LLAG2 LLAG1 LLAG0 RLAOM RLAIM RLABM RLAG4 RLAG3 RLAG2 RLAG1 RLAG0 LLAG4-LLAG0 Left LINE Alternate Volume. This register is used to control the LLINE analog input volume to the mixers when I18 is remapped to control FM and/or Wavetable Serial Port volume. The remapping bits are FMRM and WTRMD (X4). The least significant bit represents 1.5 dB, with 01000 = 0 dB. See Table 10. RLAG4-RLAG0 Right LINE Alternate Volume. This register is used to control the RLINE analog input volume to the mixers when I19 is remapped to control FM and/or Wavetable Serial Port volume. The remapping bits are FMRM and WTRMD in X4. The least significant bit represents 1.5 dB, with 01000 = 0 dB. See Table 10. LLABM LLAIM LAOM LLINE (Synthesis) Left LINE Alternate Bypass Mute. When set to 1, the analog Left Line Input, LLINE, (bypassing the gain block) to the input mixer is muted. Left LINE Alternate Input Mute. When set to 1, the Left Line Input, LLINE, from the volume control to the input mixer is muted. Left LINE Alternate Output Mute. When set to 1, the Left Line Input, LLINE, from the volume control to the output mixer is muted. LLAG4-G0 LLAOM To Output Mixer LLAIM To Input Mixer +12 to -34.5 dB Right LINE Alternate Bypass Mute. When set to 1, the analog Right Line Input, RLINE, (bypassing the gain block) to the input mixer is muted. RLAIM Right LINE Alternate Input Mute. When set to 1, the Right Line Input, RLINE, from the volume control to the input mixer is muted. RLAOM Right LINE Alternate Output Mute. When set to 1, the Right Line Input, RLINE, from the volume control to the output mixer is muted. RLINE (Synthesis) RLAG4-G0 RLAOM To Output Mixer RLAIM To Input Mixer +12 to -34.5 dB LLABM DS213PP4 RLABM RLABM 51 CS4237B Left MIC Volume (X2) Default = 11001111 D7 D6 D5 D4 LMIM LMOM LMBST LMG4 LMG4-LMG0 RMIC Input D3 D2 D1 D0 LMG3 LMG2 LMG1 LMG0 Left Microphone Gain. The least significant bit represents 1.5 dB, with 01111 = 0 dB. See Table 13. LMBST Left Microphone 20 dB boost. When set to 1, the signal to the output mixer is given a 20 dB boost. LMOM Left Microphone Output Mixer Mute. When set to 1, the signal to the output mixer is muted. LMIM Left Microphone Input Mixer Mute. When set to 1, the signal to the input mixer is muted. LMIC Input LMOM LMG4-G0 LMBST LMIM Synthesis and Input Mixer Control (X4) Default = 100001xx D7 D6 D5 D4 D3 D2 D1 D0 MIMR LIS1 LIS0 IFM WTRMD FMRM res res res Reserved. Must write 0. Could be read as 0 or 1. FMRM FM Volume Control Remap. This bit only functions when IFM = 1. If FMRM = 1, internal FM Synthesis volume is controlled by I18/I19 (writes to I18/I19 get remapped to X6/X7). Analog LINE volume is controlled by X0/X1. If FMRM = 0, internal FM synthesis volume is controlled by X6/X7 only. WTRMD Right MIC Volume (X3) Default = 11001111 D7 D6 D5 D4 RMIM RMOM RMBST RMG4 RMG4-RMG0 D3 D2 D1 D0 RMG3 RMG2 RMG1 RMG0 Right Microphone 20 dB boost. When set to 1, the signal to the output mixer is given a 20 dB boost. RMOM Right Microphone Output Mixer Mute. When set to 1, the signal to the output mixer is muted. RMIM 52 Right Microphone Input Mixer Mute. When set to 1, the signal to the input mixer is muted. WaveTable Volume Remap Disable. This bit only functions when WTEN = 1 (C8/Global Config. byte). If WTRMD = 0, the Wavetable Serial Port volume is controlled by I18/I19 (writes to I18/I19 get remapped to X16/X17). Analog LINE volume is controlled by X0/X1. Right Microphone gain. The least significant bit represents 1.5 dB, with 01111 = 0 dB. See Table 13. RMBST To Input Mixer RMIM To Input Mixer +22.5 to -22.5 dB RMBST +22.5 to -22.5 dB To Output Mixer +20 dB RMOM RMG4-G0 To Output Mixer +20 dB If WTRMD = 1, the Wavetable Serial Port volume is controlled by X16/X17 only. NOTE: If FMRM = 1, and WTRMD = 0, I18/I19 control both internal FM and Wavetable Serial Port volume. IFM Internal FM enable. When set to 1, the internal FM synthesis engine is enabled. Setting this bit also changes I6/7 from the master digital audio volume to the ISA bus wave volume control. X14/15 becomes the DS213PP4 CS4237B master digital audio volume. This bit can be set through the Hardware Configuration data in the EEPROM. LIS1-LIS0 MIMR Left Input Mixer Summer Attenuator. This attenuates the inputs to the left input mixer to enable overload protection when multiple input sources are utilized. The least significant bit represents 6 dB of attenuation, where 00 yields 0 dB of attenuation. See Table 8. Mono Input Mute to the Right Output mixer. When set to 1, the MIN signal to the right output mixer is muted. Right Input Mixer Control (X5) Default = 000xxxxx D7 D6 D5 D4 D3 D2 D1 D0 MOMR RIS1 RIS0 res res res res res res Reserved. Must write 0. Could be read as 0 or 1. RIS1-RIS0 Right Input Mixer Summer Attenuator. This attenuates the inputs to the right input mixer to enable overload protection when multiple input sources are utilized. The least significant bit represents 6 dB of attenuation, where 00 yields 0 dB of attenuation. See Table 8. MOMR Mono Output Mute from the Right Line Out, ROUT, to the mono output mixer. When set to 1, the signal to the mono output mixer from the Right Line Out is muted. D6 LFMM res D5 D4 D3 LFMM Left FM mute. When set to 1, the left internal FM input to the digital mixer is muted. Internal FM Synthesizer LFMA5-A0 LFMM To Digital Mixer Summer 0 to -94.5 dB Right FM Synthesis Volume (X7) Default = 1x000000 D7 D6 RFMM res D5 D4 D3 D2 D1 D0 RFMA5 RFMA4 RFMA3 RFMA2 RFMA1 RFMA0 NOTE: This FM volume register can also be controlled through I19 when IFM = 1 and FMRM = 1. RFMA5-RFMA0 Right Internal FM Synthesis Volume. The least significant bit represents 1.5 dB, with 000000 = 0 dB. See Table 6. res Reserved. Must write 0. Could read as 0 or 1. RFMM Right FM mute. When set to 1, the right internal FM input to the digital mixer is muted. Internal FM Synthesizer RFMA5-A0 RFMM To Digital Mixer Summer 0 to -94.5 dB D7 D2 D1 D0 LSPM D6 D5 D4 D3 D2 D1 D0 res LSPA5 LSPA4 LSPA3 LSPA2 LSPA1 LSPA0 LFMA5 LFMA4 LFMA3 LFMA2 LFMA1 LFMA0 NOTE: This FM volume register can also be controlled through I18 when IFM = 1 and FMRM = 1. LFMA5-LFMA0 Left Internal FM Synthesis Volume. The least significant bit represents 1.5 dB, with 000000 = 0 dB. See Table 6. DS213PP4 Reserved. Must write 0. Could read as 0 or 1. Left DSP Serial Port Volume (X8) Default = 0x000000 Left FM Synthesis Volume (X6) Default = 1x000000 D7 res LSPA4-LSPA0 Left DSP Serial Port Attenuation. The least significant bit represents 1.5 dB, with 000000 = 0 dB. See Table 6. res Reserved. Must write 0. Could read as 0 or 1. 53 CS4237B LSPM Left DSP Serial Port Mute. When set to 1, the Left DSP Serial Port input (SDIN) to the digital mixer is muted. Serial Port LSPA5-A0 SLBE Stereo LoopBack Enable. When set to 1, control over the Left and Right loopback volume is separated. RLBA5-RLBA0 (X10) control the Right channel, and LBA5-LBA0 (I13) control the Left channel. When set to 0, LBA5-LBA0 (I13) control both channels. To Digital Mixer Summer LSPM 0 to -94.5 dB DAC Mute and IFSE Enable (X11) Default = 110xxxxx Right DSP Serial Port Volume (X9) Default = 0x000000 D7 D6 RSPM res D5 D4 D3 D2 D1 D0 D6 D5 D4 D3 D2 D1 D0 RDMIM IFSE res res res res res RSPA5 RSPA4 RSPA3 RSPA2 RSPA1 RSPA0 RSPA4-RSPA0 Right DSP Serial Port Attenuation. The least significant bit represents 1.5 dB, with 000000 = 0 dB. See Table 6. res Reserved. Must write 0. Could read as 0 or 1. RSPM Right DSP Serial Port Mute. When set to 1, the Right DSP Serial Port input (SDIN) to the digital mixer is muted. Serial Port D7 LDMIM RSPA5-A0 To Digital Mixer Summer RSPM res Reserved. Must write 0. Could read as 0 or 1. IFSE Independent Sample Freq. Enable. When set to 1, the extended registers X12 and X13 are used to set the sample rate, and registers I8, I10 (OSM1,0), and I22 are ignored. X12 and X13 cannot be modified unless this bit is set to 1. RDMIM Right Digital Master Input Mixer Mute. When set to 1, the output from the Right DAC is Muted to the Right input mixer. See Figure 4. LDMIM Left Digital Master Input Mixer Mute. When set to 1, the output from the Left DAC is Muted to the Left input mixer. See Figure 4. 0 to -94.5 dB Right Loopback Monitor Volume (X10) Default = 0x111111 D7 D6 SLBE res D5 D4 D3 D2 D1 D0 RLBA5 RLBA4 RLBA3 RLBA2 RLBA1 RLBA0 Independent ADC Fs (X12) Default = xxxxxxxx D7 D6 D5 D4 D3 D2 D1 D0 SRAD7 SRAD6 SRAD5 SRAD4 SRAD3 SRAD2 SRAD1 SRAD0 RLBA5-RLBA0 Right Channel Loopback Attenuation. These bits determine the attenuation of the loopback from the right ADC to the right digital mixer. LBE in I13 must be set to enable loopback. The least significant bit represents -1.5 dB, with 000000 = 0 dB. See Table 6. res 54 SRAD7-SRAD0 Sample Rate frequency select for the A/D converter. This register is only in effect (and can only be written) while IFSE=1 in X11. See Table 14. Reserved. Must write 0. Could read as 0 or 1. DS213PP4 CS4237B Independent DAC Fs (X13) Default = xxxxxxxx D7 D6 D5 D4 D3 Right Master Digital Audio Volume (X15) Default = 00000000 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 SRDA7 SRDA6 SRDA5 SRDA4 SRDA3 SRDA2 SRDA1 SRDA0 RDMOM RDMG6 RDMG5RDMG4RDMG3RDMG2RDMG1RDMG0 SRDA7-SRDA0 Sample Rate frequency select for the D/A converter. This register is only in effect (and can only be written) while IFSE=1 in X11. See Table 15. This register becomes the master digital audio volume control for the left channel when either IFM or WTEN is set to one. Left Master Digital Audio Volume (X14) Default = 00000000 D7 D6 D5 D4 D3 D2 D1 D0 RDMG6-RDMG0 Right Digital Master Mixer Attenuation. The least significant bit represents 1.5 dB, with 000000 = 0 dB. See Table 12. RDMOM Right Digital Master Output Mixer Mute. When set, the Right DAC output is muted to the Right output mixer. LDMOM LDMG6 LDMG5 LDMG4 LDMG3 LDMG2 LDMG1 LDMG0 Note: This bit is controlled by register (X11) This register becomes the master digital audio volume control for the left channel when either IFM or WTEN is set to one. LDMG6-LDMG0Left Digital Master Mixer Attenuation. The least significant bit represents 1.5 dB, with 000000 = 0 dB. See Table 12. LDMOM Digital Analog From Digital Mixer Summer DAC 0 to -60dB RDMIM To Input Mixer RDMOM To Output Mixer +12 to -34.5dB RDMG6-G0 Left Digital Master Output Mixer Mute. When set to 1, the output of the Left DAC is muted to the Left output mixer. Note: This bit is controlled by register (X11) Digital Analog From Digital Mixer Summer DAC 0 to -60dB LDMIM To Input Mixer LDMOM To Output Mixer +12 to -34.5dB LDMG6-G0 DS213PP4 55 CS4237B Left Wavetable Serial Port Volume (X16) Default = 00000000 Chip Version and ID (X25) Default = 11001000 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 LWM res LWG5 LWG4 LWG3 LWG2 LWG1 LWG0 V2 V1 V0 CID4 CID3 CID2 CID1 CID0 This Wavetable volume register can also be controlled through I18 when WTEN=1 (C8 or Global Config. byte) & WTRMD=0 (X4). This register was added to Revision C silicon. In revision B, this register read 0x00. LWG5-LWG0 Left Wavetable Serial Port Gain. Least significant bit represents 1.5 dB, with 01000 = 0 dB. See Table 6. CID5-CID0 Chip Identification. Distinguishes between this chip and other codec chips that support this register set. This register is identical to C1 and replaces the ID register in I25. res Reserved. Must write 0. Could read as 0 or 1. 00000 - CS4237B, Revision B 01000 - CS4237B LWM Left Wavetable Serial Port Mute. When set, the Left Wavetable Serial Input to the digital mixer is muted. Right Wavetable Serial Port Volume (X17) Default = 00000000 D7 D6 RWM res D5 D4 D3 D2 D1 D0 RWG5 RWG4 RWG3 RWG2 RWG1 RWG0 V2-V0 Version Number. As enhancements are made, the version number is changed so software can distinguish between the different versions of the same chip. 000 - Revision B 110 - Revision C/D 111 - Revision E This Wavetable volume register can also be controlled through I19 when WTEN=1 (C8 or Global Config. byte) & WTRMD=0 (X4). RWG5-RWG0 Right Wavetable Serial Port Gain. Least significant bit represents 1.5 dB, with 01000 = 0 dB. See Table 6. res Reserved. Must write 0. Could read as 0 or 1. RWM Right Wavetable Serial Port Mute. When set, the Right Wavetable Serial Input to the digital mixer is muted. 56 DS213PP4 CS4237B SOUND BLASTER INTERFACE The Sound Blaster Pro compatible interface is the third physical device in logical device 0. Since the WSS Codec and the Sound Blaster are mutually exclusive, the WSS Codec interrupt and playback DMA channel are shared with the Sound Blaster interface. To map volume controls properly, the external devices: synthesizer (when used), CDROM, etc., must be connected to the proper analog inputs as illustrated in Figure 5. Mode Switching To facilitate switching between different functional modes (i.e. Sound Blaster and Windows Sound System), logic is included to handle the switch transparently to the host. No special software is required on the host side to perform the mode switch. Address SBbase+0 SBbase+0 SBbase+1 SBbase+2 SBbase+2 SBbase+3 SBbase+4 SBbase+5 SBbase+6 SBbase+8 SBbase+8 SBbase+9 SBbase+A SBbase+C SBbase+C SBbase+E Sound Blaster Direct Register Interface The Sound Blaster software interface utilizes 10bit address decoding and is compatible with Sound Blaster and Sound Blaster Pro interfaces. 10-bit addressing requires that the upper address bits be 0 to decode a valid address, i.e. no aliasing occurs. This device requires 16 I/O locations located at the PnP address ’SBbase’. The following registers, shown in Table 19, are provided for Sound Blaster compatibility. Left/Right FM Registers, SBbase+0 - SBbase+3 These registers are mapped directly to the appropriate FM synthesizer registers. Mixer Address Register, SBbase+4, write only This register is used to specify the index address for the mixer. This register must be written before any data is accessed from the mixer registers. The mixer indirect register map is shown in Table 20. Description Left FM Status Port Left FM Register Status Port Left FM Data Port Right FM Status Port Right FM Register Status Port Right FM Status Port Mixer Register Address Mixer Data Port Reset FM Status Port FM Register port FM Data Port Read Data Port Command/Write Data Write Buffer Status (Bit 7) Data Available Status (Bit 7) Type Read Write Write Only Read Write Write Only Write Only Read/Write Write Only Read Only Write Write Only Read Only Write Read Read Table 19. Sound Blaster Pro Compatible I/O Interface DS213PP4 57 CS4237B MIC LINE FM MIC A D C V O L AUX1 LINE CD VOL DIG ATTN A U X 1 A U X 2 Σ LINE OUT L I N E DIG VOICE Σ PC SPEAKER D A C MONO IN V O L V O L Figure 5. SBPro Mixer Mapping Register 00H 02H 04H 06H 08H 0AH 0CH 0EH 20H 22H 24H 26H 28H 2AH 2CH 2EH D7 D6 D5 D4 D3 DATA RESET RESERVED VOICE VOLUME LEFT X X X X X X X X D2 D1 D0 VOICE VOLUME RIGHT RESERVED RESERVED X X X X X RESERVED MASTER VOLUME LEFT MIC MIXING INPUT SELECT X VSTC X X MASTER VOLUME RIGHT RESERVED FM VOLUME LEFT CD VOLUME LEFT FM VOLUME RIGHT CD VOLUME RIGHT RESERVED RESERVED LINE VOLUME LEFT LINE VOLUME RIGHT Table 20. SBPro Compatible Mixer Interface 58 DS213PP4 CS4237B Mixer Data Register, SBbase+5 This register provides read/write access to a particular mixer register depending on the index address specified in the Mixer Address Register. Reset SBbase+6, write only When bit D[0] of this register is set to a one and then set to a zero, a reset of the Sound Blaster interface will occur. Read Data Port SBbase+A, read only When bit D[7] of the Data Available Register, SBbase+E, is set =1 then valid data is available in this register. The data may be the result of a Command that was previously written to the Command/Write Data Register or digital audio data. Command/Write Data SBbase+C, write only The Command/Write Data register is used to send Sound Blaster Pro commands. Write Buffer Status, SBbase+C, read only The Write Buffer Status register bit D[7] indicates when the SBPro interface is ready to accept another command to the Command/Write Data register. D[7]=1 indicates ready. D[7]=0 indicates not ready. Sound Blaster Mixer Registers The Sound Blaster mixer registers are shown in Table 20. The Sound Blaster mixer to WSS Codec mixer mapping is shown in Figure 5. Reset Register, Mixer Index 00H Writing any value to this register will reset the mixer to default values. DS213PP4 Voice Volume Register, Mixer Index 04H, Default = 99H This register provides 8 steps of voice volume control each for the right and left channels. Microphone Mixing Register, Mixer Index 0AH, Default = 01H This register provides 4 steps of microphone volume control. Input Control Register, Mixer Index 0CH This register selects the input source to the ADC. D2,D1 - 00 - Microphone 01 - CD Audio 10 - Microphone 11 - Line In Output Control Register, Mixer Index 0EH VSTC - 0 - Mono Mode 1 - Stereo Mode Master Volume Register, Mixer Index 22H, Default = 99H This register provides 8 steps of master volume control each for the right and left channels. FM Volume Register, Mixer Index 26H, Default = 99H This register provides 8 steps of FM volume control each for the right and left channels. CD Volume Register, Mixer Index 28H, Default = 01H This register provides 8 steps of CD volume control each for the right and left channels. Line-In Volume Register, Mixer Index 2EH, Default = 01H This register provides 8 steps of line-in volume control each for the right and left channels. 59 CS4237B GAME PORT INTERFACE The Game Port logical device software interface utilizes 10-bit address decoding and is located at PnP address ’GAMEbase’. 10-bit addressing requires that the upper address bits be 0 to decode a valid address, i.e. no aliasing occurs. For backwards compatibility, the Game Port consists of 8 I/O locations where the lower 6 alias to the same location, which consists of one read and one write register. Plug and Play configuration capability will allow the joystick I/O base address, GAMEbase, to be located anywhere within the host I/O address space. Currently most games software assume that the joystick I/O port is located at 200h. A write to the GAMEbase register triggers four timers. A read from the same register returns four status bits corresponding to the joystick fire buttons and four bits that correspond to the output from the four timers. A button value of 0 indicates the button is pressed or active. The button default state is 1. When GAMEbase is written, the X/Y timer bits go high. Once GAMEbase is written, each timer output remains high for a period of time determined by the current joystick position. The number in parenthesis below is the joystick connector pin number. GAMEbase+0 - GAMEbase+5 D7 D6 D5 D4 D3 D2 D1 D0 JBB2 JBB1 JAB2 JAB1 JBCY JBCX JACY JACX JACX Joystick A, Coordinate X (pin 3) JACY Joystick A, Coordinate Y (pin 6) JBCX Joystick B, Coordinate X (pin 11) JBCY Joystick B, Coordinate Y (pin 13) 60 JAB1 Joystick A, Button 1 (pin 2) JAB2 Joystick A, Button 2 (pin 7) JBB1 Joystick B, Button 1 (pin 10) JBB2 Joystick B, Button 2 (pin 14) Two bits, JR1 and JR0, are located in the Control register space (CTRLbase+0) for defining the speed of the Game Port Interface. Four different rates are software selectable for use with various joysticks and to support older software timing loops with aliasing (roll-over) problems. GAMEbase+6 D7 D6 D5 D4 D3 D2 D1 D0 res res res res res res res res res Must not write any value to this register. May read any value. GAMEbase+7 D7 D6 D5 D4 D3 D2 D1 D0 res res res res res res res res res Must not write any value to this register. May read any value. The Game Port hardware interface consists of 8 pins that connect directly to the standard game port connector. Buttons must have a 4.7 kΩ pullup resistor and a 1000 pF capacitor to ground. X/Y coordinates must have a 5.6 nF capacitor to ground and a 2.2 kΩ series resistor to the appropriate joystick connector pin. For a detailed hardware description, see the Reference Design Data Sheet. DS213PP4 CS4237B CONTROL INTERFACE The Control logical device includes registers for controlling various functions of the part that are not included in the other logical device blocks. These functions include game port rate control and programmable power management, as well as extra mixing functions. Control Register Interface The Control logical device software interface occupies 8 I/O locations, utilizes 12-bit address decoding, and is located at PnP address ’CTRLbase’. If the upper address bits, SA12SA15 are used, they must be 0 to decode a valid address. This device can also support an interrupt. Table 21 lists the eight Control registers. Address CTRLbase+0 CTRLbase+1 CTRLbase+2 CTRLbase+3 CTRLbase+4 CTRLbase+5 CTRLbase+6 CTRLbase+7 Register Joystick & Power Control E2PROM Interface Block Power Down Control Indirect Address Reg. Control Indirect Data Register Control/RAM Access RAM Access End Global Status Table 21. Control Logical Device Registers Joystick and Power Control CTRLbase + 0, Default = 00000000 D7 D6 D5 D4 D3 D2 PM1 PM0 CONSW PDC PDP PDM JR1,0 JR0 Joystick rate control. Selects operating speed of the joystick (changes the trigger threshold for the X/Y coordinates). 00 - slowest speed 01 - medium slow speed 10 - medium fast speed 11 - fastest speed DS213PP4 D1 D0 JR1 PDM Power Down Mixer. When set, the analog mixer is powered down and all mixer control registers (in WSSbase space) are reset to default values. PDP* Power Down Processor. When set, places the internal processor in an idle state. This effects the PnP interface, MPU-401, and SBPro devices. PDC* Power Down Codec. When set, ADCs and DACs are powered down. CONSW controls host interrupt generation when a context switch occurs 0 - no interrupt on context switch 1 - Control interrupt generated on context switch PM1,0 Power Management. These bits are provided for backwards compatibility. For new designs, the bits in CTRLbase+2 should be used. 00 - All functions active. 01 - A/D and D/A powered down. Mixer still active, but volume registers are frozen. Disables PDC and PDM bits. 10 - Full part power down. All functions are disabled except reads and writes to this register. All internal logic, including PnP config. registers are reset. To exit this power-down mode, PM1/0 must be reset, through CTRLbase+ 0, and then the entire chip must be reinitialized. 11* - WSS Codec, SBPro, MPU-401, and PnP interfaces, and the analog mixer are powered down. * NOTE: The SBPro, PnP, and MPU-401 interfaces are linked together. Setting PM1,0 or PDP will power all three interfaces down; however, if any one of the interfaces is written to, they will all power back up automatically. PM1,0 and PDP always reflects the value written, not whether the three devices are powered up or not. 61 CS4237B E2PROM Interface CTRLbase+1, Default = 10000000 D7 D6 D5 D4 D3 D2 D1 D0 ICH ISH ADC1 ADC0 IMH DIN/ EEN DOUT CLK CLK This bit is used to generate the clock for the Plug and Play E2PROM. EEN must be set to 1 to make this bit operational. DOUT This bit is used to output serial data to the Plug and Play E2PROM. EEN must be set to 1 to make this bit operational. DIN/EEN When read (DIN), this bit reflects the XD0 pin, which should be serial data output from the Plug and Play E2PROM. EEN and DOUT must be 1 for this bit to function. 10 - Codec Input mux is mixed into output mixer. A/D input is from line outputs. This facilitates the Mic mixed to output, and the output recorded by the ADCs. 11 - reserved. When written (EEN), enables the E2PROM interface: CLK and DOUT onto the peripheral port pins. Writing: 0 - E2PROM interface disabled 1 - E2PROM interface enabled IMH* Interrupt polarity - Modem. When set, the MINT pin is an active high signal. When low, MINT is an active low signal. ADC1,0 These two bits are used to control an additional A/D mux and enable for an analog loopback path. These two mixing paths provide Karaoke support. These bits are provided for backwards compatibility. New software should use the MIC volume control in MODE 3 registers X2/X3 to support MIC mix to the output mixer. See Figure 6. 00 - Normal. A/D input from the input mux. 01 - Codec Input mux is mixed into output mixer. A/D input is from the input mux. This facilitates the Mic mixed to output, but only Mic recorded. 62 Figure 6. MODE 2 Mixer Addition ISH* Interrupt polarity - External Synthesizer. When set, the SINT pin is an active high signal. When low, SINT is an active low signal. ICH* Interrupt polarity - CDROM. When set, the CDINT pin is an active high signal. When low, CDINT is an active low signal. * Note: These bits can be initialized through the Hardware Configuration data. DS213PP4 CS4237B PDWN Global Power Down. When set, the entire chip is powered down, except reads and writes to this register. When this bit is cleared, a full calibration is initiated. All registers retain their values; therefore, normal operation can resume after calibration is completed. When clearing this bit, the internal processor stays in powerdown until accesses occur to processor interface (Sound Blaster, MPU, or PnP accesses). If hardware volume control is enabled, this bit should be written to 0 twice causing the processor to go active (which reenables the hardware volume). Block Power Down CTRLbase+2, Default = 00000000 D7 D6 D5 D4 D3 D2 D1 D0 PDWN SRC VREF MIX ADC DAC PROC FM FM Internal FM synthesizer powered down when set. PROC Processor set to idle mode. When set, places the internal processor in an idle state. This effects the PnP interface, MPU401, and SBPro devices. Any command to any one of these interfaces will cause the processor to go active. DAC DAC power down. When set, powers down the D/A converters, serial ports, and internal FM synthesizer. The DACs should be muted prior to setting this bit to prevent audible pops. ADC ADC power down. When set, powers down the A/D Converters. MIX Mixer power down. All analog input and output channels are powered down, except MIN and MOUT (assuming VREF is not powered down). If MIX is 1 and VREF is 0, the MBY bit in the WSS I26 register is forced on. The outputs should be muted prior to setting this bit to prevent audible pops. VREF SRC DS213PP4 VREF power down. When set, powers down the entire mixer. Since powering down VREF, powers down the entire analog section, some audible pops can occur. Internal Sample-Rate Converters are powered down. Only 44.1 kHz sample frequency is allowed when this bit is set. NOTE: Software should mute the DACs and Mixers and FM volume when asserting any power down modes to prevent clicks and pops. Control Indirect Address Register CTRLbase+3 D7 D6 D5 D4 D3 D2 D1 D0 res res res res CA3 CA2 CA1 CA0 CA3-CA0 Address bits to access the Control Indirect registers C0-C8 through CTRLbase+4 res Reserved. Could read as 0 or 1. Must write as 0. Control Indirect Data Register CTRLbase+4 D7 D6 D5 D4 D3 D2 D1 D0 CD7 CD6 CD5 CD4 CD3 CD2 CD1 CD0 CD7-CD0 Control Indirect Data register. This register provides access to the indirect registers C0-C8, where CTRLbase+3 selects the actual register. See the Control Indirect Register section for more details. 63 CS4237B Control/RAM Access CTRLbase+5, Default = xxxxxxxx Global Status CTRLbase+7, Default = xxxxxxxx D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 CR7 CR6 CR5 CR4 CR3 CR2 CR1 CR0 CWSS ICTRL ISB IWSS IMPU res res res CR7-CR0 Commands: This register controls the loading of the part’s internal RAM. RAM support includes hardware configuration and PnP default resource data, as well as program memory. See the Hostload Procedure section for more information. Commands are followed by address and data information. res Reserved. Could read as 0 or 1. IMPU MPU-401 Interrupt status. 0 - no interrupt pending 1 - an interrupt is pending IWSS 0x55 - Disable PnP Key 0 - no interrupt pending 1 - an interrupt is pending 0x56 - Disable Crystal Key 0x57 - Jump to ROM ISB 0x5A - Update Hardware Configuration Data. 0xAA - Download RAM. Address followed by data. (Stopped by writing 0 to CTRLbase+6) ICTRL Control Logical Device 2 Interrupt status. Interrupts are generated on a context switch between WSS and SBPro modes. 0 - no interrupt pending 1 - an interrupt is pending D7 D6 D5 D4 D3 D2 D1 D0 RE7 RE6 RE5 RE4 RE3 RE2 RE1 RE0 64 Sound Blaster Interrupt status. 0 - no interrupt pending 1 - an interrupt is pending RAM Access End CTRLbase+6, Default = xxxxxxxx RE7-RE0 Windows Sound System Interrupt status. A 0 written to this location resets the previous location, CTRLbase+5, from data download mode to command mode. CWSS Context - WSS. Indicates the current context. 0 - Sound Blaster Emulation 1 - Windows Sound System DS213PP4 CS4237B Control Indirect Registers The Control Indirect registers are accessed thr ough CTRLbase+3 and CTRLbase+4. CTRLbase+3 is the address register and CTRLbase+4 is the data register used to access C0 through C8 indirect registers. WSS Master Control (C0) Default = 0xxxxxxx D7 D6 D5 D4 D3 D2 D1 D0 RWSS res res res res res res res res Reserved. Must write 0. Could read as 0 or 1. RWSS Reset WSS registers. Setting this bit forces the WSS registers to zero, then clearing this bit forces the WSS registers to their default state. Address CTRLbase+3 CTRLbase+4 Register Name Control Indirect Address Control Indirect Data Table 22. Control Indirect Access Registers Index C0 C1 C2 C3 C4 C5 C6 C7 C8 Register Name WSS Master Control Version / Chip ID 3D Space and Center 3D Enable Consumer Serial Port Enable Lower Channel Status Upper Channel Status Reserved CS9236 Wavetable Control Table 23. Control Indirect Registers Version / Chip ID (C1) Default = 11001000 D7 D6 D5 D4 D3 D2 D1 D0 V2 V1 V0 CID4 CID3 CID2 CID1 CID0 CID4-CID0 Chip Identification. Distinguishes between this chip and other codec chips that support this register set. This register is identical to the WSS X25 register. 01000 - CS4237B V2-V0 Version number. As enhancements are made, the version number is changed so software can distinguish between the different versions of the same chip. 100 - Revision A 101 - Revision B 110 - Revision C/D 111 - Revision E DS213PP4 65 CS4237B 3DM 3D Mono Enable. When set, the SRS Mono-to-Stereo DSP is enabled. (3DEN must also be enabled). This allows a mono signal to be SRS processed into a pseudo stereo image. 3DEN 3D Enable. Must be set to enable the SRS 3D Sound DSP. 3D Space and Center (C2) Default = 00000000 D7 D6 SPC3 SPC2 CTR3-CTR0 SPC3-SPC0 D5 D4 SPC1 SPC0 D3 D2 D1 D0 CTR3 CTR2 CTR1 CTR0 SRS processed "Center" gain term. The least significant bit represents 1.5 dB attenuation, with 0000=0 dB. See Table 24. When 3DM is on, this value is forced to 0000. SRS processed "Space" gain term. The least significant bit represents 1.5 dB attenuation, with 0000=0 dB. See Table 24. When 3DM is on, this value is forced to 0010. 3D Enable (C3) Default = 000xxxxx D7 D6 D5 D4 D3 D2 D1 D0 3DEN 3DM 3DSO res res res res res res Reserved. Must write 0. Could read as 0 or 1. 3DSO 3D Serial Output. When set, SDOUT data comes from the DAC inputs which includes 3D effects. Typically used when CSPE in C4 is set and determines the data used on the Consumer Serial Port output pin. Consumer Serial Port Enable (C4) Default = 0000xxxx D7 D6 D5 D4 D3 D2 D1 D0 CSPE CSBR U V res res res res V The Validity bit in a sub-frame of digital audio data. U The User bit in a sub-frame of digital audio data. CSBR Channel Status Block Reset. When set, resets the channel status block boundary. CSPE Consumer Serial Port Enable. When set, the serial port output format, on SDOUT, converts to the consumer standard for digital audio transmission, compatible with the consumer portion of IEC-958. An older version of the standard is also called S/PDIF. Note that the serial port is still enabled using the SPE bit in WSS I16. For more information on the consumer digital audio transmission format see Crystal’s Application Note 22 titled Overview of Digital Audio Interface Data Structures. 0 - The output is from the ADCs. 1 - The output is from the SRS DSP. 0 1 2 3 . 8 . 12 13 14 15 bit3 bit2 bit1 bit0 0 0 0 0 . 1 . 1 1 1 1 0 0 0 0 . 0 . 1 1 1 1 0 0 1 1 . 0 . 0 0 1 1 0 1 0 1 . 0 . 0 1 0 1 Space (SPC3-SPC0) 0.0 dB -1.5 dB -3.0 dB -4.5 dB -12.0 dB -18.0 dB -19.5 dB -21.0 dB -22.5 dB Center (CTR3-CTR0) 0.0 dB -1.5 dB -3.0 dB -4.5 dB -12.0 dB -18.0 dB -19.5 dB -21.0 dB -22.5 dB Table 24. SRS 3D Sound Control 66 DS213PP4 CS4237B Lower Channel Status (C5) Upper Channel Status (C6) D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 CS9 CS8 CS5 CS4 CS3 CS2 CS1 res CS25 CS24 CS15 CS14 CS13 CS12 CS11 CS10 res Reserved. Must write 0. Could read as 0 or 1. CS1 Channel Status bit 1: Audio. When clear, indicates that the transmitted data is digital audio and suitable for conversion to an analog signal. CS8-CS14 0000000 - General 0000001 - Experimental 0001xxx - Solid State Memory 001xxxx - Broadcast 010xxxx - Digital/Digital Converters 01100xx - ADCs w/o copy protection 01101xx - ADCs with copy protection 0111xxx - Broadcast 100xxxx - Laser-Optical 101xxxx - Musical Instruments 110xxxx - Magnetic Tape or Disk 111xxxx - Reserved. 0 - Digital Audio 1 - Non-Audio Data CS2 Channel Status bit 2: Copy/Copyright This bit, along with the L bit and the category codes, form the SCMS copy protection scheme. 0 - copy inhibited/copyright asserted 1 - copy permitted/copyright not asserted. CS4, CS3 Channel Status bits 4,3: Pre-emphasis CS15 L or Generation Status. This bit changes polarity based on the category codes above. For most categories: 00 - None 01 - 50/15µs - 2 channel audio CS5 0 - No indication, 1st generation or higher. 1 - Original/Commercially prerecorded data. Channel Status bit 5: Lock 0 - Source Fs Locked 1 - Source Fs Unlocked. CS8, CS9 The above definition is reversed for category codes: 001xxxx - Broadcast 0111xxx - Broadcast 100xxxx - Laser-Optical The first two bits of the Category code. See the next register description for more details. NOTE: More information on copy protection can be found in the Sanchez AES paper titled An Understanding and Implementation of the SCMS Serial Copy Management System for Digital Audio Transmission. Category Code channel status bits. Note: CS8 and CS9 are in the previous register. These bits define the type of product transmitting and are used in the SCMS copy protection scheme to interpret the L bit. CS25, CS24 Channel Status bits 25, 24. Sample frequency. 00 - 44.1 kHz Sample Frequency. This is the only Fs supported. Reserved (C7) D7 D6 D5 D4 D3 D2 D1 D0 res res res res res res res res res DS213PP4 Reserved. Must write 0. Could read as 0 or 1. 67 CS4237B CS9236 Wavetable Control (C8) Default = xxxx0000 D7 D6 D5 D4 D3 D2 D1 D0 res res res WTEN SPS DMCLK BRES res BRES Force BRESET low. When set, the BRESET pin is forced low. Typically used for power management of peripheral devices. DMCLK Disable MCLK. When set, the MCLK pin of the CS9236 Wavetable Synthesizer serial interface is forced low providing a power savings mode. SPS DSP Serial Port Switch. When set, switches the DSP serial port pins from the 2nd joystick to the XD4XD1 pins. When SPE in I16 is set, XD4-XD1 convert to the DSP serial port pins. Once SPS is enabled, the SD<7:0> bus will not be driven when accesses occur to peripheral port devices. SPS can also be set in the E2PROM Hardware Configuration data, Global Configuration byte. WTEN res Wavetable Serial Port Enable. When, set, forces XD7-XD5 pins to convert to the CS9236 Single-Chip Wavetable Music Synthesizer serial port pins. Once WTEN is enabled, the SD<7:0> bus will not be driven when accesses occur to peripheral port devices. WTEN can also be set in the E2PROM Hardware Configuration data, Global Configuration byte. Setting this bit also changes I6/I7 from the master digital audio volume to the ISA bus wave volume control. X14/15 becomes the master digital audio volume. Reserved. Must write 0. Could read as 0 or 1. SRS 3D Sound Overview The SRS 3D Stereo DSP engine is designed to retrieve and restore spacial information, directional cues, and other sonic nuances which are 68 either missing or altered by the electronic reproduction of stereo and/or the microphone mixing process. SRS 3D Mono processing, when used in conjunction with the SRS 3D Stereo system, synthesizes a 3D stereo signal from a monaural source. SRS stands for Sound Retrieval System. It differs from stereo and other sound expansion techniques because it is based on the human hearing system. The ears are complex instruments that allow us to hear in three dimensions. Microphones and traditional stereo playback systems only produce flat, two dimensional sound images which are somewhat limited compared to "real live sound". SRS compensates for these limitations by re-establishing the necessary information that allows us to hear in three dimensions. The results are surprisingly close to real live sound. SRS is unique because it does not rely on special recording techniques. It works with any audio signal whether it is mono, stereo, surround sound, or even signals encoded with a sound-enhancement process. Most importantly, SRS does not alter the original program material by adding any form of time delay, phase shift, or harmonic distortion. With SRS 3D sound there is no critical listening position or sweet spot. The listener can move around the room and continue to be immersed in full three-dimensional sound. Speakers are no longer the discernible point source of sound. SRS is a patented process that differs from stereo and surround sound in that it works with any existing recorded material: mono, stereo, surround-encoded, or other encoding technologies. SRS is not required in the recording process. This means a listener’s entire audio library can be enhanced by SRS by simply playing it through the CS4237B Crystal chip. Like stereo, any two-speaker stereo system is adequate. DS213PP4 CS4237B Hearing Basics It has long been known that the hearing system uses several methods to determine from which direction a particular sound is coming. Since human hearing is binaural (two ears), these methods include relative phase shift for low frequency sounds, relative intensity for sounds in the voice range, and relative time of arrival for sounds having fast rise times and high frequency components. The outer ear plays a significant role in the determination of direction. Due to the complex nature of the ear’s shape, sound is subject to reflection, reinforcement, and cancellation at various frequencies. Effectively, the human hearing system functions as a multiple filter, emphasizing some frequencies, attenuating others, and letting some get through with no change. The response changes with both azimuth and elevation, and together with the binaural capabilities helps determine whether a sound is coming from up, down, left, right, ahead, or behind. The frequency response of microphones is not dependent on azimuth in the same way as the ear. Omni-directional microphones exhibit flat response in all directions. Cardioid microphones exhibit flat response to sounds coming from the front and sides and are dead at the rear. As no microphone behaves like the human ear, the sounds picked up by a microphone are accurate as far as the microphone is concerned but are not the same as the sounds impinging on the human eardrum under similar circumstances. When the sound is reproduced by speakers, the situation is further altered by speaker location. If sounds which originally came from one side or the other are reproduced by speakers which are frontally located, these side sounds are heard with the incorrect spectral response. The same is true for frontal sounds which are coming from DS213PP4 side-mounted loudspeakers. The result is spacial distortion of the sound field which prevents the user from hearing what was originally performed with the proper spatial cues. The SRS 3D Stereo Process The Crystal SRS DSP, illustrated in Figure 7, processes the signal in such a manner that the spacial cues lost in the record/playback process are restored. Since the human hearing system is involved and is actually part of the loop, its transfer function is made part of the system transfer function. At the same time, SRS 3D Stereo processing avoids an objectionable buildup of frequencies of increased phase sensitivity and is effective over a wide area so that the listener is not restricted to a favorable listening position (sweet spot) between two speakers. In the stereophonic signal, frontal sounds produce equal amplitudes in the left and right channels and are therefore present in the "sum" or L+R signal. Ambient sounds, which include reflected and side sounds, produce a complex sound field and do not appear equally in the left and right channels. They are therefore present in the "difference" or L-R signal. Although these two signals are normally heard as a composite signal, it is possible to separate and process them independently and then remix them into a new composite signal which contains the required spatial cues that the stereo recording and playback processes do not provide. The directional cues are mostly contained in the difference signals, so these can be processed, (L-R)p, to bring the missing directional cues back to their normal levels. The processed difference signal can then be increased in amplitude, using SPC3-0, in order to increase apparent image width. SRS Space Control The SRS Space adjustment, SPC3-0 in C2, controls the amount of processed difference signal, (L-R)p, that is added to the final left and right digital signals going to the DACs. The difference 69 CS4237B Σ L+R Digital Mixer Stereo 16-bit ∆-Σ DAC CTR3-0 L-R Perspective Correction 3DEN (L-R)p SPC3-0 Σ R Master Digital Volume L To Analog Mixers Figure 7. SRS Block Diagram signal contains the spatial information that allows us to perceive sounds from coming all around and the directional cues that we use to determine the localization of those sounds. Turning up the Space control increases the amount of corrected directional information, restores the proper localization of the original sounds, and expands the width of the overall sound stage. Turning down the Space control results in having no processed difference signal component and thus limits the intensity of these effects. When SRS 3D sound is first turned on (3DEN in C3), the Space control (SPC3-SPC0) should be adjusted before the Center control. Space should be set to approximately 75% (SPC3-0 = 0011, or -4.5 dB) with the Center control set to 50%. As the level of Space is increased, the sound stage expands both in width and depth. The proper listening level is subjective and program dependent. If centered sound information (such as vocals) seem too low as a result of the Space control setting, they can be adjusted using the Center control. SRS Center Control The SRS Center adjustment, CTR3-0 in C2, determines the amount of sum signal (L+R) that is added to the final left and right digital signals going to the DACs. The sum signal contains information common to both channels that is intended to appear in front or at the center of the sound stage. Vocals, dialog, solo instruments, bass, and kick drums are examples of sounds that are often placed at the center. When SRS 3D sound is first turned on (3DEN in C3), the Space control should be adjusted before the Center control (CTR3-0). Space should be set to approximately 75% with the Center control set to 50% (CTR3-0 = 1000, or -12.0 dB). Turning up the Center control emphasizes the centered sounds so that their perceived level is increased and they are brought out and into the center of the room. Once Space is set, the Center control should be adjusted to provide a pleasant balance between the ambient sounds and the centered sounds. If adjusting the Space control yields no change in the sound image, the input signal is probably mono and the Mono-to-Stereo switch, 3DM, should be enabled. 70 DS213PP4 CS4237B SRS Mono-to-Stereo Synthesis In addition to creating 3D Stereo images from stereo program material, the 3DM bit in C3 expands monaural signals to a wider image format. The first step in the conversion of a monaural audio signal to 3D sound is the creation of a synthetic stereo signal. This is accomplished in the SRS 3D Mono system (3DM=1) through a technique that makes use of constant phase filters. The original mono signal is applied to two banks of filters which create two outputs with one shifted 90 degrees relative to the other. Due to the precedence effect, the ear will perceive the leading signal as the direct sound (analogous to L+R) and the lagging signal as ambience information (analogous to L-R or difference signal). The lead and lag signals are dematrixed using conventional sum and difference techniques, into synthetic left and right stereo signals. These signals are then applied to the SRS 3D Stereo process. Because the synthetic L, R, L+R, and processed L-R signals are generated synthetically from a mono input, their relationships remain constant, and user control of the L+R and L-R signal levels ("Center" and "Space") are not required and are internally fixed. Consumer IEC-958 Digital Output The CS4237B supports the industry standard IEC-958 consumer digital interface. Sometimes this standard is referred to S/PDIF which refers to an older version of this standard. This output provides an interface, external to the PC, for storing digital audio (as in a DAT or recordable CD-ROM) or playing digital audio from digital speakers. The interface is enabled by turning on the CSPE bit in C4 and SPE in I16. The data is sent out the SDOUT DSP serial interface pin. The other DSP serial interface pins still function properly when SDOUT is used for the IEC-958 interface. DS213PP4 The SDOUT pin can either be on joystick B’s CX pin or it can be on the peripheral port data bus pin XD3, controlled by the SPS bit in the Hardware Configuration data or register C8. The data going out SDOUT can come from the ADC or from the DAC interface (which includes QSound 3D Sound if enabled). This functionality is controlled by the 3DSO bit in register C3. For the receiving device to function properly, the Channel Status bits in C5 and C6 must be set properly. See the Sanchez AES paper An Understanding and Implementation of the SCMS Serial Copy Management System for Digital Audio Transmission for more details on setting the Channel Status information. Figure 8 illustrates the circuit necessary for implementation of the IEC-958 consumer interface. An external buffer is required to drive the current needed to drive the 75 Ω interface (415 Ω or 12 mA). 374 Ω SDOUT 90.9 Ω RCA Phono Figure 8. IEC-958 Consumer Interface The transformers can be obtained from: Pulse Engineering Telecom Products Group San Diego, CA (619) 268-2400 or Schott Corporation Wayzata, MN (612) 475-1173 71 CS4237B MPU-401 INTERFACE The MPU-401 is an intelligent MIDI interface that was introduced by Roland in 1984. Voyetra Technologies subsequently introduced an IBMPC plug in card that incorporated the MPU-401 functionality. The MPU-401 has become the defacto standard for controlling MIDI devices via IBM-PC compatible personal computers. Although the MPU-401 does have some intelligence, a non-intelligent mode is available in which the MPU-401 operates as a basic UART. By incorporating hardware to emulate the MPU401 in UART mode, MIDI capability is supported. MPU-401 Register Interface The MPU401 logical device software interface occupies 2 I/O locations, utilizes 10-bit address decoding, and is located at PnP address ’MPUbase’. 10-bit addressing requires that the upper address bits be 0 to decode a valid address, i.e. no aliasing occurs. The standard base address is 330h. This device also uses an interrupt, typically 9. The PnP alignment for the MPU-401 must be a multiple of 8. MPUbase+0 is the MIDI Transmit/Receive port and MPUbase+1 is the Command/Status port. In addition to I/O decodes the only additional functionality required from an ISA bus viewpoint is the generation of a hardware interrupt whenever data has been received into the receive buffer. MIDI Transmit/Receive Port, MPUbase+0, default = xxxxxxxx D7 D6 D5 D4 D3 D2 D1 D0 TR7 TR6 TR5 TR4 TR3 TR2 TR1 TR0 TR7-TR0 72 The MIDI Transmit/Receive Port is used to send and receive MIDI data as well as status information that was returned from a previously sent command. All MIDI transmit data is transferred through a 16-byte FIFO and receive data through a 16-byte FIFO. The FIFO gives the ISA interface time to respond to the asynchronous MIDI transfer rate of 31.25K baud. The Command/Status Registers occupy the same address and are used to send instructions to and receive status information from the MPU-401. Command Register, write only MPUbase+1 D7 D6 D5 D4 D3 D2 D1 D0 CS7 CS6 CS5 CS4 CS3 CS2 CS1 CS0 CS7-CS0 Each write to the Command/Status Register must be monitored and the appropriate acknowledge generated. Status Register, read only MPUbase+1, Default = xxxxxxxx D7 D6 D5 D4 D3 D2 D1 D0 RXS TXS CS5 CS4 CS3 CS2 CS1 CS0 CS5-CS1 D0-D5 are the 6 LSBs of the last command written to this port. TXS Transmit Buffer Status Flag. 0 - Transmit buffer not full 1 - Transmit buffer full RXS Receive Buffer Status Flag 0 - Data in Receive buffer 1 - Receive buffer empty When in "UART" mode, data is received into the receive buffer FIFO and a hardware interrupt is generated. Data can be received from two sources: MIDI data via the UART serial input or acknowledge data that is the result of a write to the Command Register (MPUbase+1). The interrupt is cleared by a read of the MIDI Receive Port (MPUbase+0). DS213PP4 CS4237B UART mode operation is defined as follows: MIDI UART The UART is used to convert parallel data to the serial data required by MIDI. The serial data rate is fixed at 31.25K baud (±1%). The serial data format is RS-232 like: 1 start bit, 8 data bits, and 1 stop bit. In multimedia systems, the MIDI pins are typically connected to the joystick connector. See the Reference Design Data Sheet for detailed information. MPU-401 "UART" Mode Operation After power-up reset, the interface is in "nonUART" mode. Non-UART mode operation is defined as follows: 1. All writes to the Transmit Port, MPUbase+0, are ignored. 2. All reads of the Receive Port, MPUbase+0, return the last received buffer data. 3. All writes to the Command Port, MPUbase+1, are monitored and acknowledged as follows: a. A write of 3Fh sets the interface into UART operating mode. An acknowledge is generated by putting an FEh into the receive buffer FIFO which generates an interrupt. b. A write of A0-A7, ABh, ACh, ADh, AFh places an FEh into the receive buffer FIFO (which generates an interrupt) followed by a one byte write to the receive buffer FIFO of 00h for A0-A7, and ABh commands, 15h for ACh, 01h for ADh, and 64h for AFh commands. c. All other writes to the Command Port are ignored and an acknowledge is generated by putting an FEh into the receive buffer FIFO which generates an interrupt. DS213PP4 1. All writes to the Transmit Port, MPUbase+0, are placed in the transmit buffer FIFO. Whenever the transmit buffer FIFO is not empty, the next byte is read from the buffer and sent out the MIDOUT pin. The Status Register, MPUbase+1, bit 6, TXS is updated to reflect the transmit buffer FIFO status. 2. All reads of the Receive Port, MPUbase+0, return the next byte in the receive buffer FIFO. When serial data is received from the MIDIN pin, it is placed in the next receive buffer FIFO location. If the buffer is full, the last location is overwritten with the new data. The Status Register, MPUbase+1, bit 7, RXS is updated to reflect the new receive buffer FIFO state. 3. A write to the Command Register, MPUbase+1, of FFh will return the interface to non-UART mode. 4. All other writes to the Command Register, MPUbase+1, are ignored. FM SYNTHESIZER (Internal) This part contains a games-compatible internal FM synthesizer. When enabled, this internal FM synthesis engine responds to both the SBPro FM synthesis addresses as well as the SYNbase addresses. To enable the internal FM synthesis engine, the IFM bit in the Hardware Configuration data, byte 8 (Global Configuration Byte) must be set. This bit is also available in WSS register X4. Volume control for the internal FM synthesizer is supported through X6 and X7 in the WSS extended register space. The volume range is 0 dB to -94.4 dB with 000000 equal to 0 dB. After 73 CS4237B volume is applied to the PCM FM data, it is summed into the digital mixer which is then summed into the analog output mixer. as the Yamaha OPL3LS, or the Crystal Semiconductor CS9233 wave-table synthesizer chip. This interface consists of: For backwards compatibility with analog-mixed external FM devices, I18 and I19 in the WSS logical device can be remapped to control the volume of internal FM. Remapping is controlled through the FMRM bit in X4 register. When IFM = 1, and FMRM = 1, writes to I18 and I19 are remapped to X6 and X7 respectively. When remapping is enabled, the LINE analog input volume is controlled through X0/1. When FMRM = 0, internal FM volume is only controlled through X6/7. SCS - chip select SINT - Synthesizer Interrupt The synthesizer interface is compatible with the Adlib and Sound Blaster standards. The typical Adlib I/O address is SYNbase = 388h. Standard Adlib Synthesizer I/O Map Address SYNbase+0 SYNbase+0 SYNbase+1 SYNbase+2 SYNbase+3 Name FM Status FM Address 0 FM Data 0 FM Address 1 FM Data 1 Type Read Only Write Only Write Only Write Only Read Only EXTERNAL PERIPHERAL PORT An external peripheral port is provided for interfacing devices external to the part. These may include the CS9233 Wavetable synthesizer, CDROM interface, modem interface, and Plug and Play E2PROM. The External Peripheral Port consists of the following signals: 8-bit data bus, 2 or 3 address lines, read strobe, write strobe, and reset signal. External Synthesizer Interface This part contains an internal FM synthesis engine. For backwards compatibility the default is to use an external FM-type synthesizer chip such 74 The other signals such as address bits, data strobes, data, and reset are provided by the External Peripheral Port. The interface allows the host computer to access up to eight I/O mapped locations. When using an external FM synthesizer, SCS will respond to the SYNbase decode addresses as well as the SBPro mapped FM synthesizer addresses. The PnP synthesizer alignment must be a multiple of 8. The polarity of SINT is programmable via Hardware Configuration data, IHS in byte 7, or through CTRLbase+1. The default is active low (IHS = 0). Since the typical FM interface only requires four I/O address and does not use an interrupt, the XA2 address and the SINT pins are multifunction pins that default to XCTL0 and XCTL1. To use XCTL0/XA2 as an address pin, the hardware resource data must be changed. See the Hardware Configuration Data section for more information. To use XCTL1/SINT/ACDCS/ DOWN as an interrupt for the synthesizer, VCEN (in the Hardware Configuration data) must be zero, a pulldown resistor must be placed on the XIOW pin. Since XCTL1 and SINT are rarely used the pin has a third multiplexed function, ACDCS, which is described in the CDROM section below. The fourth multiplexed function is the hardware volume control pin DOWN which is controlled through the VCEN bit. See the Volume Control Interface section for more details. Note that ACDCS takes precedence over XCTL1/SINT. Also DOWN, when VCEN is set, takes precedence over all other functions. DS213PP4 CS4237B CDROM Interface An IDE CDROM controller interface is provided that supports Enhanced as well as Legacy IDE CDROM drives. This interface includes two programmable chip selects and on-chip hardware to map DMA and interrupt signals to the ISA bus. There are five pins that make up the CDROM interface which consist of: CDCS - chip select, COMbase address CDINT - interrupt, COMint CDRQ - DMA request, COMdma CDACK - DMA acknowledge, COMdma ACDCS - alternate chip select, ACDbase The four basic CDROM interface pins are multifunction pins that default to the upper address bits SA12 - SA15. To use the pins as a CDROM interface, a pulldown resistor must be placed on XIOR (XIOR must be buffered if driving TTL logic). Once the CDROM interface is selected, the CDROM DMA pins are further multiplexed with the Modem pins. Therefore, a fifth logical device, typically a modem, can be used if the CDROM doesn’t support DMA. See the Modem Interface section for more details. The fifth CDROM pin ACDCS is multiplexed with XCTL1/SINT/DOWN. This chip select supports the alternate CDROM chip select used for status in legacy IDE drives. The volume control pin DOWN has the highest precedence; therefore, the VCEN bit must be zero to use this pin for the CDROM interface. Given that VCEN is zero, if the base address for ACDCS, which is ACDbase, is programmed to a non-zero value, this pin converts to ACDCS. ACDbase, base address 1 in LD4, is programmed via PnP or via the SLAM method. Once this pin is set to ACDCS, the only way to revert to XCTL1 or SINT is to reset the part. The range of addresses that ACDCS will respond to is programmable via the Hardware Configuration data, byte 5, DS213PP4 from one to eight bytes. The default is 1 byte. In legacy IDE CDROM drives, the alternate CDROM address plus 1, ACDbase+1, is typically shared with the floppy controller, which only drives data bit 7. Therefore, a bit in the Hardware Configuration data keeps the SD7 pin from driving data bit 7 when that address is decoded. This bit is labeled ACDB7D and is located in the Hardware Configuration data, byte 7. When using ACDCS, the SINT function should be selected and a pullup placed on this line, which will allow this pin to powerup inactive. If XCTL1 is selected, it will powerup low; therefore, ACDCS will be low until ACDbase is programmed to a non-zero value. The default address space for the peripheral port is 4 I/O locations where XCTL0/XA2 defaults to the control pin XCTL0. To use XCTL0/XA2 as the XA2 address pin, thereby increasing the address range of the peripheral port to 8 locations, the hardware resource data must be changed. See the Hardware Configuration Data section. Even though the default address space is only 4 locations, the alignment for CDbase must be a division of 8. To make the CDROM interface more flexible, two global bits, located in the Hardware Configuration data section - byte 7, allow control over the polarity of the CDROM interrupt pin CDINT, and whether the SD<7-0> pins drive the ISA bus or not. The first bit is IHC which defaults to 1 indicating that CDINT is an active high interrupt. IHC is also controllable through CTRLbase+1. The second bit is SDD - SD<7:0> bus Disable. When this bit is set, the part will not drive the ISA Data bus SD<7:0> pins, on reads from either CDbase or ACDbase addresses. This bit allows external data buffers to be used for a CDROM that bypasses the XD<7:0> bus and connects directly to the ISA bus. Note that SDD affects any peripheral port device which includes the external FM and modem interfaces. 75 CS4237B Modem Interface The modem interface, Logical Device 5 (LD5) consist of: MCS - Modem Chip Select MINT - Modem Interrupt The other signals such as address bits, data strobes, data, and reset are provided by the External Peripheral Port. The interface allows the host computer to access up to eight I/O mapped locations. The Modem signals are multiplexed with both the upper ISA address pins, and the CDROM DMA pins. To enable the Modem, first a pulldown resistor must be placed on XIOR which disables the upper ISA address pins. Second, the Modem base address, COMbase, must be programmed to a non-zero value which will convert the SA13/CDACK/MCS pin to the modem chip select MCS, and the SA15/CDRQ/MINT pin to the modem interrupt pin MINT. Once these two pins switch to modem pins, they can only be changed by resetting the part. COMbase, Logical Device 5 base address 0, is programmed via PnP or the SLAM method. The polarity of MINT is programmable via Hardware Configuration data, IHM in byte 7, or through CTRLbase+1. The default is active low (IHM = 0). DSP SERIAL AUDIO DATA PORT The WSS Codec includes a DSP serial audio interface for transferring digital audio data between the part and an external serial device such as a DSP processor. The DSP serial port pins are multiplexed with either the #2 joystick inputs of the Game Port interface or a portion of the XD peripheral bus. The selection is made via the SPS bit located in Control register C8, or the Global Config. byte in the Hardware Configuration data. If SPS is 0, the joystick B pins convert 76 to the DSP serial port when SPE is set (MCE must be 1 to change SPE). If SPS is 1, XD<4:1> convert to the DSP serial port when SPE is set. In this case, SD<7:0> is disabled on reads of peripheral port addresses (CDROM, modem, etc.) since XD<7:0> is no longer available. The DSP audio serial port is software enabled via the SPE bit in the WSS Codec indirect register I16. The ISA interface is fully active in this mode. While the serial port is enabled, audio data may still be read from the ADCs over the ISA bus, and the DACs will sum data from the SDIN pin, the parallel ISA bus data, and the internal FM synthesizer engine. The serial port sample frequency is always 44.1 kHz regardless of the ISA bus sample frequency, and the data format is always two’s complement 16-bit linear. FSYNC and SCLK are always output from the part when the serial port is enabled. The serial port can be configured in one of four serial port formats, shown in Figures 9-12. SF1 and SF0 in I16 select the particular format. MCE in R0 must be set to change SF1/0. Both left and right audio words are always 16 bit two’s complement. When the mono audio format is selected, the right channel output is set to zero and the left channel input is summed to both DAC channels. The first format - SPF0, shown in Figure 9, is called 64-bit enhanced. This format has 64 SCLKs per frame with a one bit period wide FSYNC that precedes the frame. The first 16 bits occupy the left word and the second 16 bits occupy the right word. The last 32 bits contain four status bits and 28 zeros. This is the only mode that contains status information. The second serial format - SPF1, shown in Figure 10, is called 64-bit mode. This format has 64 SCLKs per frame, with FSYNC high transitions at the start of the left data word and low transitions at the start of the right data word. Both the left and right data words are followed by 16 zeros. DS213PP4 CS4237B FSYNC SCLK SDOUT ... ... 0 15 14 13 12 15 14 16 Bits Left Data SDIN ... 8 zeros 0 INT 7 zeros 16 Bits Right Data ... 0 15 14 13 12 15 14 16 Bits Left Data ... CEN PEN OVR 13 zeros 32 Bits 0 16 Bits Right Data INT = Interrupt Bit CEN = Capture Enable PEN = Playback Enable OVR = Left Overrange or Right Overrange Figure 9. 64-bit Enhanced Mode (SF1,0 = 00) FSYNC SCLK SDOUT/ SDIN ... ... 15 14 13 ... 0 15 14 13 16 Clocks 16 Clocks ... 16 Clocks Left Data 0 15 16 Clocks Right Data Figure 10. 64-bit Mode (SF1,0 = 01) FSYNC SCLK SDOUT/ SDIN ... 15 14 13 32 No-Clock bit periods ... ... 0 16 Clocks 15 14 13 ... 0 ... 15 14 16 Clocks Left Data Right Data Left Data Figure 11. 32-bit Mode (SF1,0 = 10) DS213PP4 77 CS4237B ADC and DAC data on the SDOUT allows external modem DSPs to cancel the local audio source from the local microphone signal. The third serial format - SPF2, shown in Figure 11, is called 32-bit mode. This format has 32 SCLKs per frame and FSYNC is high for the left channel and low for the right channel. The absolute time is similar to the other two modes but SCLK is stopped after the right channel is finished. SCLK is held stopped until the start of the next frame (stopped for 32 bit period times). This mode is useful for DSPs that do not want the interrupt overhead of the 32 unused bit periods. As an example, if a DSP serial word length is 16 bits, then four interrupts will occur in SPF0 and SPF1 modes. In mode SPF2 the DSP will only be interrupted twice. CS9236 WAVETABLE SERIAL PORT A digital interface to the Crystal CS9236 SingleChip Wavetable Music Synthesizer is provided that allows the CS9236 PCM audio data to be summed digitally into the output digital mixer. The Wavetable Serial port pins are multiplexed with the XD7-XD5 external bus pins; therefore, when this serial interface is enabled, any external peripheral (CDROM, modem, etc.) will need an external buffer to the ISA bus. This serial port is enabled via the WTEN bit located in Control register C8 or in the Global Configuration byte in the Hardware Configuration data. The hardware connections to the CS9236 are illustrated in Figure 13. The fourth serial format - SPF3, shown in Figure 12, is called ADC/DAC mode. This format has 64 SCLKs per frame, with FSYNC high transitions at the start of the left ADC data word and low transitions at the start of the right ADC data word. For serial data in, SDIN, both the left and right 16-bit DAC data word should be followed by zeros. For serial data out, SDOUT, both the left and right ADC data words are followed by 16 bits of the DAC data words. The DAC data words are tapped off the data stream right before the data enters the Codec DACs (after all digital summing is done). Having the Volume control for the serial port is supported through X16 and X17 in the WSS extended register space. The volume range is +12 dB to -82.5 dB with 001000 equal to 0 dB. After volume is applied to the PCM data, it is summed into the digital mixer which is then summed into the analog output mixer. FSYNC ... SCLK SDIN 15 14 13 ... ... 0 15 14 13 DAC 16 Clocks SDOUT 15 14 13 ... 0 ADC 16 Clocks ... 15 0 DAC 16 Clocks 15 14 13 ... 0 DAC 16 Clocks 15 14 13 ... 0 ADC 16 Clocks Left Data 15 14 13 ... 0 15 DAC 16 Clocks Right Data Figure 12. ADC/DAC Mode (SF1,0 = 11) 78 DS213PP4 CS4237B For backwards compatibility with analog-mixed wavetable devices, I18 and I19 in the WSS logical device can be remapped to control the volume of the Wavetable serial port. Remapping is controlled through the WTRMD bit in X4 register. When WTEN = 1, and WTRMD = 0, writes to I18 and I19 are remapped to X16 and X17 respectively. When remapping is enabled, the LINE analog input volume is controlled through X0/1. When WTRMD = 1, the Wavetable Serial Port volume is only controlled through X16/17. CS9236 100 Ω MCLK MCLK5I LRCLK LRCLK SDATA SOUT BRESET RST 100k Ω 100k Ω MIDOUT XTAL3I Midi In The completion of calibration can be determined by polling the Auto-Calibrate In-Progress bit in the Error Status and Initialization register (ACI, I11). This bit will be high while the calibration is in progress and low once completed. Transfers enabled during calibration will not begin until the calibration cycle has completed. Since the part always operates at 44.1 kHz internally, all calibration times are based on 44.1 kHz sample periods. The Calibration procedure is as follows: PDN MIDI_IN MIDIN Calibration The WSS Codec has four different calibration modes. The selected calibration occurs whenever the Mode Change Enable (MCE, R0) bit goes form 1 to 0. Midi Out 1) Place the WSS Codec in Mode Change Enable using the MCE bit of the Index Address register (R0). 2) Set the CAL1,0 bits in the Interface Configuration register (I9). Joystick Connector Figure 13. CS9236 Wavetable Serial Port Interface WSS CODEC SOFTWARE DESCRIPTION The WSS Codec must be in Mode Change Enable Mode (MCE=1) before any changes to the Interface Configuration register (I9) or the Sample Frequency (lower four bits) in the Fs & Playback Data Format registers (I8) are allowed. The actual audio data formats, which are the upper four bits of I8 for playback and I28 for capture, can be changed by setting MCE (R0) or PMCE/CMCE (I16) high. The exceptions are CEN and PEN which can be changed "on-thefly" via programmed I/O writes. All outstanding DMA transfers must be completed before new values of CEN or PEN are recognized. DS213PP4 3) Return from Mode Change Enable by resetting the MCE bit of the Index Address register (R0). 4) Wait until 80h NOT returned 5) Wait until ACI (I11) cleared to proceed NO CALIBRATION (CAL1,0 = 00) This is the fastest mode since no calibration is performed. This mode is useful for games which require the sample frequency be changed quickly. This mode is also useful when the codec is operating full-duplex and an ADC data format change is desired. This is the only calibration mode that does not affect the DACs (i.e. mute the DACs). The No Calibration mode takes zero sample periods. 79 CS4237B CONVERTER CALIBRATION (CAL1,0 = 01) This calibration mode calibrates the ADCs and the DACs, but does not calibrate any of the analog mixing channels. This is the second longest calibration mode, taking 321 sample periods at 44.1 kHz. Because the analog mixer is not calibrated in this mode, any signals fed through the mixer will be unaffected. The calibration sequence is as follows: The DACs are muted The ADCs are calibrated The DACs are calibrated The DACs are unmuted DAC CALIBRATION (CAL1,0 = 10) This calibration mode only clears the DACs (playback) interpolation filters leaving the ADC unaffected. This is the second fastest calibration mode (no cal. is the fastest) taking 120 sample periods at 44.1 kHz to complete. The calibration sequence is as follows: The DACs are muted The DAC filters are cleared The DACs are unmuted FULL CALIBRATION (CAL1, 0 = 11) This calibration mode calibrates all offsets, ADCs, DACs, and analog mixers. Full calibration will automatically be initiated on power up or anytime the WSS Codec exits from a full power down state. This is the longest calibration mode and takes 450 sample periods at 44.1 kHz to complete. The calibration sequence is as follows: All outputs are muted (DACs and mixer) The mixer is calibrated The ADCs are calibrated The DACs are calibrated All outputs are unmuted Changing Sampling Rate The internal states of the WSS Codec are synchronized by the selected sampling frequency. The sample frequency can be set in one of three fashions. The standard WSS Codec method uses the Fs & Playback Data Format register (I8) to set the sample frequency. The changing of either the clock source or the clock frequency divide requires a special sequence for proper WSS Codec operation: 1) Place the WSS Codec in Mode Change Enable using the MCE bit of the Index Address register (R0). 2) During a single write cycle, change the Clock Frequency Divide Select (CFS) and/or Clock 2 Base Select (C2SL) bits of the Fs & Playback Data Format register (I8) to the desired value. (The data format may also be changed.) 3) The WSS Codec resynchronizes its internal states to the new frequency. During this time the WSS Codec will be unable to respond. Writes to the WSS Codec will not be recognized and reads will always return the value 80 hex. 4) The host now polls the WSS Codec’s Index Address register (R0) until the value 80 hex is no longer returned. On slow processor systems, 80h may occur to fast; therefore, it may never be seen by software. 5) Once the WSS Codec is no longer responding to reads with a value of 80 hex, normal operation can resume and the WSS Codec can be removed from MCE. A second method of changing the sample frequency is to disable the sample frequency bits in I8 (lower four bits) by setting SRE in I22. When this bit is set, OSM1 and OSM0 in I10, along 80 DS213PP4 CS4237B with the rest of the bits in I22, are used to set the sample frequency. Once enabled, these bits can be changed without doing an MCE cycle. The third method supports independent sample frequencies (Fs) for capture and playback. The independent sample frequency mode is enabled by setting IFSE in X11. Once enabled, the other two methods for setting Fs (I8, I10, and I22) are disabled. The capture (ADC) Fs is set in X12 and the playback (DAC) Fs is set in X13. Changing Audio Data Formats In MODE 1, MCE must be used to select the audio data format in I8. Since MCE causes a calibration cycle, it is not ideal for full-duplex operation. In MODE 2 and 3, individual Mode Change Enable bits for capture and playback are provided in register I16. MCE (R0) must still be used to select the sample frequency, but PMCE (playback) and CMCE (capture) allow changing the respective data formats without causing a calibration to occur. Setting PMCE (I16) clears the playback FIFO and allows the upper four bits of I8 to be changed. Setting CMCE (I16) clears the capture FIFO and allows the upper four bits of I28 to be changed. Audio Data Formats In MODE 1 operation, all data formats of the WSS Codec are in "little endian" format. This format defines the byte ordering of a multibyte word as having the least significant byte occupying the lowest memory address. Likewise, the most significant byte of a little endian word occupies the highest memory address. The sample frequency is always selected in the Fs & Playback Data Format register (I8). In MODE 1 the same register, I8, determines the audio data format for both playback and capture; however, in MODE 2 and 3, I8 only selects the playback data format and the capture data format is independently selectable in the Capture Data Format register (I28). DS213PP4 The WSS Codec always orders the left channel data before the right channel. Note that these definitions apply regardless of the specific format of the data. For example, 8-bit linear data streams look exactly like 8-bit companded data streams. Also, the left sample always comes first in the data stream regardless of whether the sample is 16-bit or 8-bit in size. There are four data formats supported by the WSS Codec during MODE 1 operation: 16-bit signed (little endian), 8-bit unsigned, 8-bit companded µ-Law, and 8-bit companded A-Law. See Figures 14-17. Additional data formats are supported in MODE 2 and 3: 4-bit ADPCM, and 16-bit signed Big Endian. See Figures 18 through 21. With the addition of the Big Endian and ADPCM audio data formats, the WSS Codec is compliant with the IMA recommendations for digital audio data formats (and sample frequencies). 16-BIT SIGNED The 16-bit signed format (also called 16-bit 2’s complement) is the standard method of representing 16-bit digital audio. This format gives 96 dB theoretical dynamic range and is the standard for compact disk audio players. This format uses the value -32768 (8000h) to represent maximum negative analog amplitude, 0 for center scale, and 32767 (7FFFh) to represent maximum positive analog amplitude. 8-BIT UNSIGNED The 8-bit unsigned format is commonly used in the personal computer industry. This format delivers a theoretical dynamic range of 48 dB. This format uses the value 0 (00h) to represent maximum negative analog amplitude, 128 for center scale, and 255 (FFh) to represent maximum positive analog amplitude. The 16-bit signed and 8-bit unsigned transfer functions are shown in Figure 22. 81 CS4237B 32-bit Word sample 6 sample 5 MONO sample 4 MONO 31 sample 3 Time sample 2 MONO 24 23 sample 1 MONO 16 15 8 7 0 Figure 14. 8-bit Mono, Unsigned Audio Data 32-bit Word sample 3 sample 3 RIGHT sample 2 LEFT 31 sample 2 sample 1 RIGHT 24 23 Time sample 1 LEFT 16 15 8 7 0 Figure 15. 8-bit Stereo, Unsigned Audio Data 32-bit Word Time sample 6 sample 5 sample 4 sample 3 sample 2 MONO 31 24 23 sample 1 MONO 16 15 8 7 0 Figure 16. 16-bit Mono, Signed Little Endian Audio Data 32-bit Word Time sample 3 sample 3 sample 2 sample 2 sample 1 RIGHT 31 24 23 sample 1 LEFT 16 15 8 7 0 Figure 17. 16-bit Stereo, Signed Little Endian Audio Data 82 DS213PP4 CS4237B 32-bit Word sample 8 MONO 31 MONO 28 27 sample 7 MONO 24 23 sample 6 MONO 20 19 sample 5 MONO 16 15 Time sample 4 sample 3 MONO 12 11 sample 2 MONO 8 7 sample 1 MONO 4 3 0 Figure 18. 4-bit Mono, ADPCM Audio Data 32-bit Word sample 4 RIGHT 31 LEFT 28 27 sample 4 RIGHT 24 23 sample 3 LEFT 20 19 sample 3 RIGHT 16 15 Time sample 2 sample 2 LEFT 12 11 sample 1 RIGHT 8 7 sample 1 LEFT 4 3 0 Figure 19. 4-bit Stereo, ADPCM Audio Data 32-bit Word sample 4 sample 4 sample 3 MONO LO 23 sample 3 sample 2 MONO HI 16 31 sample 2 sample 1 MONO LO 24 7 Time sample 1 MONO HI 0 15 8 Figure 20. 16-bit Mono, Signed Big Endian Audio Data 32-bit Word sample 2 sample 2 sample 2 RIGHT LO 23 sample 2 sample 1 RIGHT HI 16 31 sample 1 sample 1 LEFT LO 24 7 Time sample 1 LEFT HI 0 15 8 Figure 21. 16-bit Stereo, Signed Big Endian Audio Data DS213PP4 83 CS4237B 8-BIT COMPANDED The 8-bit companded formats (A-Law and µLaw) come from the telephone industry. µ-Law is the standard for the United States/Japan while A-Law is used in Europe. Companded audio allows either 64 dB or 72 dB of dynamic range using only 8-bits per sample. This is accomplished using a non-linear companding transfer function which assigns more digital codes to lower amplitude analog signals with the sacrifice of precision on higher amplitude signals. The µLaw and A-Law formats of the WSS Codec conform to the CCITT G.711 specifications. Figure 23 illustrates the transfer function for both A- and µ-Law. Please refer to the standards mentioned above for an exact definition. ADPCM COMPRESSION/DECOMPRESSION In MODE 2 and 3, the WSS Codec also contains Adaptive Differential Pulse Code Modulation (ADPCM) for improved performance and compression ratios over µ-Law or A-Law. The ADPCM format is compliant with the IMA standard and provides a 4-to-1 compression ratio (i.e. 4 bits are saved for each 16-bit sample captured). For more information on the specifics of the format, contact the IMA at (410) 626-1380. Figures 18 and 19 illustrate the ADPCM data flow. The ADPCM format is unique with respect to the FIFO depth and the DMA Base register value. The ADPCM format fills the FIFOs completely (64 bytes); therefore, the FIFOs hold 64 stereo samples and 128 mono samples. When samples are being transferred using DMA, the DMA request stays active for four bytes, similar to the 16-bit stereo data mode. In PIO mode, the Status register (R2) indicates which of the four bytes is being transferred. When CEN is 0 (capture disabled), the ADPCM block’s accumulator and step size are cleared. When CEN is enabled, the ADPCM block will start converting. Care should be taken to insure that the "overrun" condition never occurs, otherwise the data may not be constructed properly upon playback. If pausing the capture sequence is desired, the ADPCM Capture Freeze bit (ACF, I23) should be set. When this bit is set, the ADPCM algorithm will continue to operate until a complete word (4 bytes) is written to the FIFO. Then the ADPCM’s block accumulator and step size will be frozen. The software must continue ANALOG VALUE +FS 0 -FS A-Law: 2Ah u-Law: 00h Figure 22. Linear Transfer Functions 84 15h 3Fh 55h/D5h 7Fh/FFh DIGITAL CODE 95h BFh AAh 80h Figure 23. Companded Transfer Functions DS213PP4 CS4237B reading until the FIFO is empty, at which time the requests will stop. When ACF is cleared, the ADPCM adaptation will continue. When PEN is cleared (playback disabled), the ADPCM block’s accumulator and step size are cleared. When PEN is set, the ADPCM block will start converting. When pausing the playback stream is desired, audio data should not be sent to the codec which will cause a data underrun. This can be accomplished by disabling the DMA controller or not sending data in PIO mode. The underrun will be detected by the WSS Codec and the adaptation will freeze. When data is sent to the codec, adaptation will resume. It is critical that all playback ADPCM samples are sent to the codec, since dropped samples will cause errors in adaptation. Whereas toggling PEN resets the accumulator and step size, the APAR bit (I17) only resets the accumulator without affecting the step size. DMA Registers The DMA registers allow easy integration of this part into ISA systems. Peculiarities of the ISA DMA controller require an external count mechanism to notify the host CPU of a full DMA buffer via interrupt. The programmable DMA Base registers provide this service. The act of writing a value to the Upper Base register causes both Base registers to load the Current Count register. DMA transfers are enabled by setting the PEN/CEN bit while PPIO/CPIO is clear. (PPIO/CPIO can only be changed while the MCE bit is set.) Once transfers are enabled, each sample that is transferred by a DMA cycle will decrement the Current Count register (with the exception of the ADPCM format) until zero is reached. The next sample after zero generates an interrupt and reloads the Current Count registers with the values in the Base registers. DS213PP4 For all data formats except ADPCM, the DMA Base registers must be loaded with the number of samples, minus one, to be transferred between "DMA Interrupts". Stereo data contains twice as many samples as mono data; however, 8-bit data and 16-bit data contain the same number of samples. Symbolically: DMA Base register16 = NS - 1 Where NS is the number of samples transferred between interrupts and the "DMA Base register16" consists of the concatenation of the upper and lower DMA Base registers. For the ADPCM data format, the contents of the DMA Base registers is calculated differently from any other data format. The Base registers must be loaded with the number of BYTES to be transferred between "DMA interrupts", divided by four, minus one. The same equation is used whether the data format is stereo or mono ADPCM. Symbolically: DMA Base register16 = Nb/4 - 1 Where Nb is the number of BYTES transferred between interrupts and the "DMA Base register16" consists of the concatenation of the upper and lower DMA Base registers. PLAYBACK DMA REGISTERS The playback DMA registers (I14/15) are used for sending playback data to the DACs in MODE 2 and 3. In MODE 1, these registers (I14/15) are used for both playback and capture; therefore, full-duplex DMA operation is not possible. When the playback Current Count register rolls under, the Playback Interrupt bit, PI, (I24) is set causing the INT bit (R2) to be set. The interrupt is cleared by a write of any value to the Status register (R2), or writing a "0" to the Playback Interrupt bit, PI (I24). 85 CS4237B CAPTURE DMA REGISTERS The Capture DMA Base registers (I30/31) provide a second pair of Base registers that allow full-duplex DMA operation. With full-duplex operation capture and playback can occur simultaneously. These registers are provided in MODE 2 and 3 only. When the capture Current Count register rolls under, the Capture Interrupt bit, CI, (I24) is set causing the INT bit (R2) to be set. The interrupt is cleared by a write of any value to the Status register (R2), or writing a "0" to the Capture Interrupt bit, CI (I24). Digital Loopback Digital Loopback is enabled via the LBE bit in the Loopback Control register (I13). This loopback routes the digital data from the ADCs to the DACs. There are two Methods of controlling this loopback. The first method does not allow separate control over the attenuation level of the left and right channels. Changes to the attenuation bits of register I13 will simultaneously affect both the left and the right channels. The other method of controlling loopback, is to set the SLBE bit in register X10. This separates the attenuation levels of the left and right channels. With SLBE enabled, the attenuation bits of register I13 only control the left channel, and the attenuation bits of register X10 control the right channel. The LBE bit in register I13 still enables, or disables digital loopback for both channels. Loopback is then summed into the digital mixer. The digital loopback is illustrated in Figure 4. Since the WSS Codec allows selection of different data formats between capture and playback, if the capture channel is set to mono and the playback channel set to stereo, the mono input (mic) data will be mixed into both channels of the output mixer. 86 If the sum of the digital mixer inputs is greater than full scale, WSS Codec will send the appropriate full scale value to the DACs (clipping). Timer Registers The Timer registers are provided for synchronization, watch dog and other functions where a high resolution time reference is required. This counter is 16 bits and the exact time base, listed in the register description, is determined by the clock base frequency selected. The Timer register is set by loading the high and low registers to the appropriate values and setting the Timer Enable bit, TE, in the Alternate Feature Enable register (I16). This value will be loaded into an internal Current Count register and will decrement at approximately a 10 µsec rate. When the value of the Current Count register reaches zero, an interrupt will be posted to the host and the Timer Interrupt bit, TI, is set in the Alternate Feature Status register (I24). On the next timer clock the value of the Timer registers will be loaded into the internal Current Count register and the process will begin again. The interrupt is cleared by any write to the Status register (R2) or by writing a "0" to the Timer Interrupt bit, TI, in the Alternate Feature Status register (I24). WSS Codec Interrupt The INT bit of the Status register (R2) always reflects the status of the WSS Codec’s internal interrupt state. A roll-over from any Current Count register (DMA playback, DMA capture, or Timer) sets the INT bit. This bit remains set until cleared by a write of ANY value to Status register (R2), or by clearing the appropriate bit or bits (PI, CI, TI) in the Alternate Feature Status register (I24). DS213PP4 CS4237B The Interrupt Enable (IEN) bit in the Pin Control register (I10) determines whether the interrupt assigned to the WSS Codec responds to the interrupt event. When the IEN bit is low, the interrupt is masked and the IRQ pin assigned to the WSS Codec is held low. However, the INT bit in the Status register (R2) always responds to the counter. Error Conditions Data overrun or underrun could occur if data is not supplied to or read from the WSS Codec in an appropriate amount of time. The amount of time for such data transfers depends on the frequency selected within the WSS Codec. Should an overrun condition occur during data capture, the last whole sample (before the overrun condition) will be read by the DMA interface. A sample will not be overwritten while the DMA interface is in the process of transferring the sample. Should an underrun condition occur in a playback case the last valid sample will be output (assuming DACZ = 0) to the digital mixer. This will mask short duration error conditions. When the next complete sample arrives from the host computer the data stream will resume on the next sample clock. The overrun and underrun error bits in the Alternate Feature Status register, I24, are cleared by first clearing the condition that caused the overrun or underrun error, followed by writing the particular bit to a zero. As an example, to clear the playback underrun bit PU, first a sample must be sent to the WSS Codec, and then the PU bit must be written to a zero. DIGITAL HARDWARE DESCRIPTION The best example of hardware connection for the different sections of this part such as joystick connector, ISA bus, and peripheral port connections is the Reference Design Data Sheet. The DS213PP4 Reference Design Data Sheet contains all the schematics, layout plots and a Bill of Materials; thereby providing a complete example. Bus Interface The ISA bus interface is capable of driving a 24mA data bus load and therefore does not require any external data bus buffering. See the Reference Design Data Sheet for a typical connection diagram. Volume Control Interface Three hardware master volume control pins are supported: volume up, volume down, and mute. Hardware volume control is enabled by setting the VCEN bit in the Hardware Configuration data, byte 7 (Misc. Config. Byte). Once VCEN is set, the SCS/UP pin converts to the volume up function and the XTAL1/SINT/ACDCS/DOWN pin converts to the volume down function. The volume control pins affect the master volume control output after the analog output mixer. The UP and DOWN pins, when low, increment and decrement the master volume. These two pins would use SPST momentary switches. The MUTE pin supports three options: push-on/pushoff, momentary (similar to the up/down functions), and non-existent where pressing up and down simultaneously mutes the output volume. As shown in Figure 24, the three pins require external pullups and are active low. The circuit also contains an optional RC for EMI and ESD protection. The volume control range is +12 to -36 dB in 2 dB steps. Pressing the up button, increments the volume. Pressing the down button, decrements the volume. Holding either of these buttons in the low state causes the volume to to continue changing. The mute function is supported using three formats. These formats are selected using the VCF1 and VCF0 bits in the Hardware Configuration data, Global Config. byte. 87 CS4237B The three formats listed above as illustrated in Figure 25. VDF 10 k Ω 10 k Ω 10 k Ω UP 100 Ω Up 100 Ω DOWN Down 100 Ω MUTE A four th format for mute exists, where VCF1,0 = 11, which is backwards compatible with the CS4236. This mode is similar to the two button mode, except the MUTE pin is used as the up function and the UP pin is not used. Mute 100 pF 100 pF 100 pF GND Figure 24. Volume Control Circuit In the first format, where VCF1,0 = 00, the mute function is a toggle or push-on/push-off style. When the MUTE pin is low, the master out volume is muted. Pressing the up or down buttons have no effect while the mute switch is on. In the second format, where VCF1,0 = 01, the mute function is a momentary switch (similar to up and down). When MUTE goes low the master out volume mutes if it was un-muted and vise-versa (the mute button alternates between mute and un-mute). If the master volume is muted and up or down is pressed, the volume automatically un-mutes. In the third format, where VCF1,0 = 10, the MUTE pin is not used. This is a two-button format where pressing up and down simultaneously mutes the master volume. If the master volume is muted and up or down is individually pressed, the volume automatically un-mutes. Crystal / Clock Two pins have been allocated to allow the interfacing of a crystal oscillator: XTALI and XTALO. The crystal should be designed as fundamental mode, parallel resonant, with a load capacitor of between 10 and 20 pF. The capacitors connected to each of the crystal pins should be twice the load capacitance specified to the crystal manufacturer. An external CMOS clock may be connected to the crystal input XTALI in lieu of the crystal. When using an external CMOS clock, the XTALO pin must be left floating with no trace or external connection of any kind. General Purpose Output Pins Two general purpose outputs are provided to enable control of external circuitry (i.e. mute function). XCTL1 and XCTL0 in the WSS Codec register I10 are output directly to the appropriate pin when enabled. Pin XCTL0/XA2 becomes an output for XCTL0 whenever the resource data for the CDROM or Synthesizer specifies a logical device address Up Up Up Down Down Down Mute Mute Mute GND GND GND VCF1,0 = 00 VCF1,0 = 01 VCF1,0 = 10 Figure 25. Volume Control Formats 88 DS213PP4 CS4237B range that is four bytes. If the address range is specified to be eight bytes, then XA2 becomes an output for SA2 from the ISA bus. Pin XCTL1/SINT/ACDCS/DOWN is initially controlled by the VCEN bit in the Hardware Configuration data. If VCEN is zero, this pin becomes an output for XCTL1 when the state of the XIOW pin is sampled high during a high to low transition of the RESDRV pin. This pin also becomes an output for ACDCS if ACDbase is programmed to a non-zero value. If XIOW is sampled low and ACDbase is never programmed to a non-zero value, SINT becomes an input for the external Synthesizer interrupt. XIOW has an internal pullup resistor. ACDCS takes precedence over the other two functions. The first time ACDbase is programmed to a non-zero value, the pin converts to ACDCS. The only way to convert back to XTAL1 or SINT is to reset the part. VCEN has the highest precedence and will cause this pin to convert to the DOWN function whenever VCEN is set. Reset and Power Down A RESDRV pin places the part into maximum power conservation mode. When RESDRV goes high, the PnP registers are reset - all logical devices are disabled, all analog outputs are muted, and the voltage reference then slowly decays to ground. When RESDRV is brought low, an initialization procedure begins which causes a full calibration cycle to occur. When initialization is completed, the registers will contain their reset value and the part will be isolated from the bus. RESDRV is required whenever the part is powered up. The initialization time varies based on whether an E2PROM is present or not and the size of the data in the E2PROM. After RESDRV goes low, the CS4236 should not be written to for approximately one and one half second to guarantee that the part is ready to respond to commands. The exact timing is specified in the Timing Section in the front of this data sheet. DS213PP4 Software low-power states are available through bits in the Control logical device register space. This part supports the same power down bits contained in the CS4232; however, new power down modes are provided in CTRLbase+2 that allow for a more efficient power management routine. This register allows individual blocks within the part to be powered down. See the CONTROL INTERFACE section for more information. Multiplexed Pin Configuration On the high to low transition of the RESDRV pin, the part samples the state of the XIOR and XIOW pins. Both of these pins have internal 100kΩ pullups to +5V. If either of these pins is pulled low externally, they must be buffered before connecting to a TTL input (as in a CDROM port) since TTL cannot be pulled low. The state of XIOR at the time RESDRV is brought low determines the function of the CDROM interface pins. If XIOR is sampled high, then CDCS, CDACK, CDINT, CDRQ are used to input SA12, SA13, SA14, SA15 respectively. If XIOR is sampled low (external pulldown) then CDCS, CDACK, CDINT, CDRQ become the standard CDROM interface pins. Since many CDROM drives do not use DMA, the CDRQ and CDACK pins are further multiplexed with MCS and MINT respectively. MCS is the Modem chip select that responds to COMbase addresses, and MINT is the modem interrupt input. These two pins comprise logical device 5. The first time COMbase is programmed to non-zero (assuming XIOR was sampled low), CDACK/MCS and CDRQ/MINT switch to MCS and MINT respectively. Once this switch occurs, the only way to revert to the CDROM DMA pins is to reset the part or remove power. The XCTL1/SINT/ACDCS/DOWN pin state is first determined by VCEN. If VCEN is set this pin is forced to the DOWN volume control pin. 89 CS4237B If VCEN is zero, then if ACDbase is ever programmed to a non-zero value, this pin converts to the ACDCS pin and keeps this function until the part is reset (or VCEN is set to one). If ACDbase is never programmed non-zero, then the state of XIOW at the time RESDRV is brought low determines whether the pin is XCTL1 or SINT. If XIOW is sampled low (external pulldown) then XCTL1/SINT/ ACDCS/DOWN functions as an input for the synthesizer interrupt. If XIOW is sampled high (pin left unconnected) then XCTL1/SINT/ ACDCS/DOWN becomes an output for XCTL1. This part contains another multiplexed pin, SCS/UP. This pin provides the FM synthesizer chip select or the hardware volume control "volume up" feature. Since an internal FM synthesizer exists, this pin would normally be used for the volume control feature. Setting VCEN forces this pin to the UP volume control function. When VCEN is clear, this pin is the SCS chip select function. ANALOG HARDWARE DESCRIPTION The analog hardware consist of an MPC Level 2-compatible mixer (four stereo mix sources), three line-level stereo inputs, a stereo microphone input, a mono input, a mono output, and a stereo line output. This section describes the analog hardware needed to interface with these pins. Line-Level Inputs Plus MPC Mixer The analog inputs consist of four stereo analog inputs, and one mono input. As shown in Figure 4, the input to the ADCs comes from the Input Mixer that selects any combination of the following: LINE, AUX1, AUX2, MIC, the DAC output, and the output from the analog output mixer. Unused analog inputs should be connected together and then connected through a capacitor to analog ground. The analog input interface is designed to accommodate four stereo inputs and one mono input. Four of these sources are mixed to the ADC. These inputs are: a stereo line-level input (LINE), a stereo microphone input (MIC), a stereo CD-ROM input (AUX2), and a stereo auxiliary line-level input (AUX1). The LINE and AUX1 inputs have two paths to the Input Mixer. One path is direct with no volume control. The other path goes through an inverting amplifier, which enables volume control. Care should be taken to select only one of these dual paths, because the inverting path will cancel the signal of the non-inverting path at the Input Mixer. The LINE, MIC, AUX1, and AUX2 inputs have paths after their volume controls, to the output mixer. The output mixer has the additional input of a mono input channel. All audio inputs should be capacitively coupled. To obtain Sound Blaster mixer compatibility, the mapping of external devices to analog inputs is important. An external FM or Wavetable synthesizer analog output must be connected to the LINE input. The internal FM’s volume control, when enabled, maps to the LINE analog mixer registers. The CDROM analog outputs must be connected to the AUX2 inputs, and the external Line Inputs must be connected to the AUX1 analog inputs. Since some analog inputs can be as large as 2 VRMS, the circuit shown in Figure 26 can be used to attenuate the analog input to 1 VRMS which is the maximum voltage allowed for the line-level inputs. 6.8 kΩ 1.0 µF R 1.0 µF 6.8 kΩ 6.8 kΩ L 6.8 kΩ Figure 26. Line Inputs 90 DS213PP4 CS4237B The AUX2 line-level inputs have an extra pin, CMAUX2, which provides a pseudo-differential input for both LAUX2 and RAUX2. This pin takes the common-mode noise out of the AUX2 inputs when connected to the ground coming from the AUX2 analog source. Connecting the AUX2 pins as shown in Figure 27 provides extra noise attenuation coming from the CDROM drive, thereby producing a higher quality signal. Since the better the resistors match, the better the common-mode attenuation, one percent resistors are recommended. If CMAUX2 is not used, it should be connected through an AC cap to analog ground. 1.0 µF 3.4 kΩ 6.8 kΩ 6.8 kΩ 1.0 µF 3.4 kΩ 47 kΩ VREF + 47 kΩ 0.1 µF MC33078 or MC33178 1 µF 0.33 µF LMIC 4.7 kΩ X7R RMIC 600 Ω + 2.7 nF NPO 0.33 µF 10 µF Figure 28. Left or Mono Microphone Input (All resistors 1%) 6.8 kΩ 2 kΩ RAUX2 CMAUX2 LAUX2 1.0 µF 6.8 kΩ Figure 27. Differential CDROM In Microphone Level Inputs The microphone level inputs, LMIC and RMIC, include a selectable -22.5 dB to +22.5 dB gain stage for interfacing to an external microphone. An additional 20 dB gain block is available in the path to the output mixer. The 20 dB gain block can be switched off to provide another stereo line-level input. Figure 28 illustrates a single-ended microphone input buffer circuit that will support lower gain mics. If a mono microphone is all that is desired, the RMIC input should be connected to the output of the mono op amp, used for LMIC, through its own AC coupling capacitor. The circuit in Figure 28 supports dynamic mics and phantom-powered mics that use the right channel of the jack for power. Mono Input The mono input, MIN, is useful for mixing the output of the "beeper" (timer chip), provided in all PCs, with the rest of the audio signals. The attenuation control allows 16 levels in -3dB steps. In addition, a mute control is provided. The attenuator is a single channel block with the resulting signal sent to the output mixer where it is mixed with the left and right outputs. Figure 29 illustrates a typical input circuit for the Mono In. If MIN is driven from a CMOS gate, the 4.7kΩ should be tied to AGND instead of VA+. Although this input is described for a lowquality beeper, the input is of the same high-quality as all other analog inputs and may be used for other purposes. At power-up, the MIN line is connected directly to the MOUT pin (with 9 dB of attenuation) allowing the initial beeps, heard when the computer is initializing, to pass through. +5VA (Low Noise) or AGND - if CMOS Source 4.7 kΩ 1 47 kΩ 0.1 µF MIN 2.7 nF Figure 29. Mono Input DS213PP4 91 CS4237B Line Level Outputs The analog output section provides a stereo linelevel output. The other output types (headphone and speaker) can be implemented with external circuitry. LOUT and ROUT outputs should be capacitively coupled to external circuitry. Both LOUT and ROUT need 1000 pF NPO capacitors between the pin and AGND. Mono Output with Mute Control The mono output, MOUT, is a sum of the left and right output channels, attenuated by 6dB to prevent clipping at full scale. The mono out channel can be used to drive the PC-internal mono speaker using an appropriate drive circuit. This approach allows the traditional PC-sounds to be integrated with the rest of the audio system. Figure 30 illustrates a typical speaker driver circuit. The mute control is independent of the line outputs allowing the mono channel to mute the speaker without muting the line outputs. The power-up default has MIN connected to MOUT providing a pass-through for the beeps heard at power-up. +5V Ferrite Bead 470 pF 0.1 µF 10 kΩ MOUT 0.22 µF RESDRV 1 µF + 4 3 6 5 8 16 kΩ the ADCs. By placing these filters at the input to the ADCs, low-pass filters at each analog input pin are avoided. The REFFLT pin is used to lower the noise of the internal voltage reference. A 1µF (must not be greater than 1µF) and 0.1µF capacitor to analog ground should be connected with a short wide trace to this pin. No other connection should be made, as any coupling onto this pin will degrade the analog performance of the codec. Likewise, digital signals should be kept away from REFFLT for similar reasons. The VREF pin is typically 2.2 V and provides a common mode signal for single-supply external circuits. VREF only supports light DC loads and should be buffered if AC loading is needed. For typical use, a 0.1 µF in parallel with a 10 µF capacitor should be connected to VREF. GROUNDING AND LAYOUT Figure 31 is a suggested layout for motherboard designs and Figure 32 is a suggested layout for add-inn cards. For optimum noise performance, the device should be located across a split analog/digital ground plane. The digital ground plane should extend across the ISA bus pins as well as the internal digital interface pins. DGND1 is ground for the data bus and should be electrically connected to the digital ground plane which will minimize the effects of the bus 2 1 7 MC34119 or LM4861 Figure 30. Mono Output Miscellaneous Analog Signals The LFILT and RFILT pins must have a 1000 pF NPO capacitor to analog ground. These capacitors, along with an internal resistor, provide a single-pole low-pass filter used at the inputs to 92 DS213PP4 CS4237B interface due to transient currents during bus switching. SGND1-4 are the substrate grounds and should also be connected to the digital ground plane to minimize coupling into the analog section. Figure 33 shows the recommended positioning of the decoupling capacitors. The capacitors must be on the same layer as, and close to, the part. The vias shown go through to the ground and power plane layers. Vias, power supply traces, and REFFLT traces should be as large as possible to minimize the impedance. POWER SUPPLIES The power supply providing analog power should be as clean as possible to minimize coupling into the analog section and degrading analog performance. The VD1 is isolated from the rest of the power supply pins and provide digital power for the asynchronous parallel ISA bus (except for DRQA). The VD1 pin can be connected directly Di g it al Digital Ground to the system digital power supply. VD1 can also be connected to a 3.3V supply providing a 3.3V ISA interface. When connected to a 3.3V supply, all ISA bus input pins (SA15-0, SD7-0, DACKs, etc.) must be at 3.3V levels (not 5V), with the exception of the DRQA pin. DRQA is internally connected to the VDF supplies and remains a 5 Volt pin even when the ISA bus is run at 3.3 Volts. When the ISA bus is powered from 3.3 Volts, DRQA can be be used through a level translator, or DRQA can remain used. If DRQA is not used, all references to this pin should be removed in the PnP Resource data. Even though the ISA bus is at 3.3V, the peripheral port is still at a 5V potential including XD7-0 and all chip select and address pins. VDF1 through VDF4 provide power to internal digital sections of the codec and should be quieter than VD1. This can be achieved by using a Gr o Analog Ground Crystal Part un d No ise 1 Digital Ground Noise G al gi t i D ro un e ois N d Power Connector Figure 31. Suggested Motherboard Layout DS213PP4 93 CS4237B CD-ROM Speaker Out Speaker In Analog Ground Crystal Part 1 Digital Ground Figure 32. Suggested Add-In Card Layout 1µF PIN 98 VDF3 .1µ F PIN 97 SGND3 PIN 81 VA PIN 80 AGND PIN 1 XD7 + PIN 79 .1µ F REFFLT .1µF Analog PIN 71 TEST PIN 66 SGND2 .1µF Digital PIN 17 VDF1 PIN 65 VDF2 = vias through to power/ground plane .1µF PIN 54 VDF4 PIN 18 SGND1 .1µF PIN 53 SGND4 PIN 45 VD1 .1µ F PIN 46 DGND1 Figure 33. Recommended Decoupling Capacitor Positions 94 DS213PP4 CS4237B ferrite bead to the VD1 supply as shown in the Reference Design Data Sheet. These pins must be connected to a 5V supply. VA provides power to the sensitive analog sections of the chip and should have a clean, regulated supply to minimize power supply coupled noise in the analog inputs and outputs. 10 0 -10 -20 Magnitude (dB) ADC/DAC FILTER RESPONSE PLOTS Figures 34 through 39 show the overall frequency response, passband ripple, and transition band for the ADCs and DACs. Figure 40 shows the DACs’ deviation from linear phase. Since the filter response scales based on sample frequency selected, all frequency response plots x-axis are shown from 0 to 1, where 1 is equivalent to Fs. Therefore, for any given sample frequency, multiply the x-axis values by the sample frequency selected to get the actual frequency. -30 -40 -50 -60 -70 -80 -90 -100 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Input Frequency ( x Fs) 0.2 0 0.1 -10 0.0 -20 -0.1 -30 Magnitude (dB) Magnitude (dB) Figure 34. ADC Filter Response -0.2 -0.3 -0.4 -40 -50 -60 -0.5 -70 -0.6 -80 -0.7 -90 -0.8 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 Input Frequency ( x Fs) Figure 35. ADC Passband Ripple DS213PP4 0.45 0.50 -100 0.40 0.45 0.50 0.55 0.60 0.65 0.70 Input Frequency ( x Fs) Figure 36. ADC Transition Band 95 CS4237B 10 0.2 0 0.1 -10 0.0 Magnitude (dB) Magnitude (dB) -20 -30 -40 -50 -60 -0.1 -0.2 -0.3 -0.4 -0.5 -70 -80 -0.6 -90 -0.7 -100 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 -0.8 0.00 1.0 0.05 0.10 Input Frequency ( x Fs) 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.45 0.50 Input Frequency ( x Fs) Figure 37. DAC Filter Response Figure 38. DAC Passband Ripple 2.0 0 -10 1.5 -20 1.0 ∆ Phase (degrees) Magnitude (dB) -30 -40 -50 -60 -70 0.5 0.0 -0.5 -1.0 -80 -1.5 -90 -100 0.40 0.45 0.50 0.55 0.60 Input Frequency ( x Fs) Figure 39. DAC Transition Band 96 0.65 0.70 -2.0 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 Input Frequency ( x Fs) Figure 40. Deviation from Linear Phase DS213PP4 CS4237B AGND REFFLT VREF LFILT RFILT 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 XTALI XTALO VDF3 SGND3 CMAUX2 MUTE SA12*/CDCS SA13*/CDACK/MCS SA14*/CDINT SA15*/CDRQ/MIN T RESDRV MOUT MIN LLINE RLINE LAUX2 RAUX2 LMIC RMIC VA PIN DESCRIPTIONS CS4237B (TOP VIEW) 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 LAUX1 RAUX1 LOUT ROUT TEST JAB1 JBB1*/FSYNC JACX JBCX*/SDOUT SGND2 VDF2 JBCY*/SDIN JACY JBB2*/SCLK JAB2 MIDOUT MIDIN DACKA (DACK0*) DACKC (DACK3*) DACKB (DACK1*) DRQA (DRQ0*) VDF4 SGND4 DRQC (DRQ3*) DRQB (DRQ1*) AEN IOCHRDY SD0 SD1 SD2 SD3 VD1 DGND1 SD4 SD5 SD6 SD7 IOR IOW SA1 SA2 SA3 SA4 SA5 SA6 SA7 SA8 SA9 SA10 SA11 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 100-PIN TQFP XD7/SDATA XD6/LRCLK XD5/MCLK XD4/FSYNC XD3/SDOUT XD2/SDIN XD1SCLK SDA/XD0 SCS/UP XIOR XIOW XCTL0*/XA2 XA1 SCL/XA0 BRESET XCTL1*/SINT/ACDCS/DOWN VDF1 SGND1 (INT15*) IRQF (INT12*) IRQE (INT11*) IRQD (INT9*) IRQC (INT7*) IRQB (INT5*) IRQA SA0 * Defaults - See individual pin descriptions for more details DS213PP4 97 CS4237B ISA Bus Interface Pins SA<11:0> - System Address Bus, Inputs These signals are decoded during I/O cycles to determine access to the various functional blocks within the part as defined by the configuration data written during a Plug and Play configuration sequence. SA<15:12> - Upper System Address Bus, Inputs These signals are multi-function pins, shared with the CDROM and modem interface, that default to the upper address bits SA12 through SA15. These pins are generally used for motherboard designs that want to eliminate address decode aliasing. Using these pins as upper address bits forces the part to only accept valid address decodes when A12-A15 = 0. If these pins are not used for address decodes (or for CDROM support), they should be tied to SGND. SD<7:0> - System Data Bus, Bi-directional, 24mA drive These signals are used to transfer data to and from the part and associated peripheral devices. Reads from peripheral devices can be disabled (the part does not drive the SD<7:0> pins) by setting the SDD bit in the Hardware Configuration data. Reads from peripheral devices are automatically disabled whenever the XD pins are used as serial port pins (SPS/SPE or WTEN set to one). AEN - Address Enable, Input This signal indicates whether the current bus cycle is an I/O cycle or a DMA cycle. This signal is low during an I/O cycle and high during a DMA cycle. IOR - Read Command Strobe, Input This active low signal defines a read cycle to the part. The cycle may be a register read or a read from the part’s DMA registers. IOW - Write Command Strobe, Input This active low signal indicates a write cycle to the part. The cycle may be a write to a control register or a DMA register. IOCHRDY - I/O Channel Ready, Open Drain Output, 8mA drive This signal is driven low by the part during ISA bus cycles in which the part is not able to respond within a minimum cycle time. IOCHRDY is forced low to extend the current bus cycle. The bus cycle is extended until IOCHRDY is brought high. DRQ<A,B,C> - DMA Requests, Outputs, 24mA drive These active high outputs are generated when the part is requesting a DMA transfer. This signal remains high until all the bytes have been transferred as defined by the current transfer data type. The DRQ<A,B,C> outputs must be connected to 8-bit DMA channel request signals only. The defaults on the ISA bus are DRQA = DRQ0, DRQB = DRQ1, and DRQC = DRQ3. The defaults can be changed by modifying the Hardware Resource data. Note that DRQA is a 5 Volt-only pin. When the ISA bus is run at 3.3 Volts, DRQA can either be used with the proper level translator, or DRQA can be left unconnected and not used. 98 DS213PP4 CS4237B DACK<A,B,C> - DMA Acknowledge, Inputs The assertion of these active low signals indicate that the current DMA request is being acknowledged and the part will respond by either latching the data present on the data bus (write) or putting data on the bus (read). The DACK<A,B,C> inputs must be connected to 8-bit DMA channel acknowledge lines only. The defaults on the ISA bus are DACKA = DACK0, DACKB = DACK1, and DACKC = DACK3. The defaults can be changed by modifying the Hardware Resource data. IRQ <A:F>- Host Interrupt Pins, Outputs, 24mA drive These signals are used to notify the host of events which need servicing. They are connected to specific interrupt lines on the ISA bus. The IRQ<A:F> are individually enabled as per configuration data that is generated during a Plug and Play configuration sequence. The defaults on the ISA bus are IRQA = INT5, IRQB = INT7, IRQC = INT9, IRQD = INT11, IRQE = INT12, IRQF = INT15. The defaults can be changed by modifying the Hardware Configuration data loaded from the E2PROM. Analog Inputs LLINE - Left Line Input Nominally 1 VRMS max analog input for the Left LINE channel, centered around VREF. A programmable gain block provides volume control and is located in either I18 or X0 based on how synthesis is mapped. LLINE is typically used for Left Channel Synthesis (FM or Wavetable). RLINE - Right Line Input Nominally 1 VRMS max analog input for the Right LINE channel, centered around VREF. A programmable gain block provides volume control and is located in either I19 or X1 based on how synthesis is mapped. RLINE is typically used for Right Channel Synthesis (FM or Wavetable). LMIC - Left Mic Input Microphone input for the Left MIC channel, centered around VREF. A programmable gain block provides volume control and is located in X2. In MODE 3, the output mixer has an extra selectable 20 dB of gain controlled by the LMBST bit. RMIC - Right Mic Input Microphone input for the Right MIC channel, centered around VREF. A programmable gain block provides volume control and is located in X3. In MODE 3, the output mixer has an extra selectable 20 dB of gain controlled by the RMBST bit. LAUX1 - Left Auxiliary #1 Input Nominally 1 VRMS max analog input for the Left AUX1 channel, centered around VREF. A programmable gain block provides volume control and is located in I2. Typically used for an external Left line-level input. DS213PP4 99 CS4237B RAUX1 - Right Auxiliary #1 Input Nominally 1 VRMS max analog input for the Right AUX1 channel, centered around VREF. A programmable gain block provides volume control and is located in I3. Typically used for an external Right line-level input. LAUX2 - Left Auxiliary #2 Input Nominally 1 VRMS max analog input for the Left AUX2 channel, centered around VREF. A programmable gain block provides volume control and is located in I4. Typically used for the Left channel CDROM input. RAUX2 - Right Auxiliary #2 Input Nominally 1 VRMS max analog input for the Right AUX2 channel, centered around VREF. A programmable gain block provides volume control and is located in I5. Typically used for the Right channel CDROM input. CMAUX2 - Common Mode Auxiliary #2 Input Common mode ground input for the LAUX2 and RAUX2 inputs. Typically connected to the CDROM ground input to provide common-mode noise rejection. The impedance on this pin should be one half the impedance on the LAUX2 and RAUX2 inputs. MIN - Mono Input Nominally 1 VRMS max analog input, centered around VREF, that goes through a programmable gain stage (I26) into both channels of the output mixer. This is a general purpose mono analog input that is normally used to mix the typical "beeper" signal on most computers into the audio system. Analog Outputs LOUT - Left Line Level Output Analog output from the mixer for the left channel. Nominally 1 VRMS max centered around VREF. This pin needs a 1000 pF NPO capacitor attached and tied to analog ground. ROUT - Right Line Level Output Analog output from the mixer for the Right channel. Nominally 1 VRMS max centered around VREF. This pin needs a 1000 pF NPO capacitor attached and tied to analog ground. MOUT - Mono Output MOUT is nominally 1 VRMS max analog output, centered around VREF. This output is a summed analog output from both the left and right output channels of the mixer. MOUT typically is connected to a speaker driver that drives the internal speaker in most computers. In MODE2, MOM in I26 mutes both channels going into MOUT. In MODE 3, MOM in I26 mutes the left channel and MOMR in X5 mutes the right channel. 100 DS213PP4 CS4237B MIDI Interface MIDOUT - MIDI Out Transmit Data, Output, 4mA drive This output is used to send MIDI data serially out to a external MIDI device. Normally connected to pin 12 of the joystick connector for use with breakout boxes. MIDIN - MIDI In Receive Data, Input This input is used to receive serial MIDI data from an external MIDI device. This pin should have a 4.7 kΩ pullup attached and is normally connected to pin 15 of the joystick connector for use with breakout boxes. External FM Synthesizer Interface SCS - Synthesizer Chip Select, Output, 4 mA drive By default, SCS/UP is an active low output forced low when a valid address decode to an external FM synthesizer, as defined in the Plug and Play configuration registers, has occurred. When the internal FM synthesizer is enabled, this pin is no longer used as an FM synthesizer chip select. This pin can be used for a hardware volume up pin by setting VCEN in the Hardware Configuration data. SINT - Synthesizer Interrupt, Input This pin, XCTL1/SINT/ACDCS/DOWN, defaults to the XCTL1 output which is controlled by the XCTL1 bit in the WSS register I10. If VCEN in the Hardware Configuration data is set, this pin converts to the DOWN volume control function. If VCEN is zero, and ACDbase is never programmed to a non-zero value, this pin can be changed to SINT input by connecting a 10 kΩ resistor between the XIOW pin and SGND. The polarity of SINT can be programmed through CTRLbase+1 register, the ISH bit, or the Hardware Configuration data. SINT defaults to an active low input that should be driven by the external FM synthesizer interrupt output pin. This pin can also be configured at a second CDROM Chip Select, ACDCS, to support the alternate IDE CDROM decode. (See the CDROM section for more information.) The pin is switched to the CDROM alternate chip select when VCEN is zero and the base address is first programmed to non-zero through the E2PROM data or PnP commands. External Peripheral Port XD<7:1> - External Data Bus bits 7 through 1, Bi-directional, 4mA drive These pins are used to transfer data between the ISA bus and external devices such as the modem and CDROM. These pins are also multiplexed with two serial ports. A DSP serial port can be connected through the XD4-XD1 pins. This interface is multiplexed onto these external data bus pins OR the 2nd Joystick pins based on the SPS (Serial Port Switch) bit. The second serial port connects to the CS9236 Single-Chip Wavetable Music Synthesizer and uses pins XD7-XD5. This serial port is enabled via the WTEN bit. Both SPS and WTEN are located in either C8 in the Control logical device, or the Global Configuration byte in the E2PROM Hardware Configuration data. DS213PP4 101 CS4237B SDA/XD0 - External Data Bus bit 0/E2PROM Data Pin, Bi-directional, Open Drain,4mA sink This open-drain pin must have an external pullup (3.3 kΩ) and is used to transfer data between the ISA bus bit 0, SD0, and external devices such as a modem or CDROM. SDA/XD0 is also used in conjunction with SCL/XA0 to access an external serial E2PROM. When an E2PROM is used, the SDA/XD0 pin should be connected to the data pin of the E2PROM device and provides a bi-directional data port. The E2PROM is used to set the Plug and Play resource data. XCTL0/XA2 - XCTL0 or External Address SA2, Output, 4mA drive This pin either outputs ISA bus address SA2 or XCTL0 depending on the Hardware Configuration data. The default is XCTL0 which is controlled by the XCTL0 bit in the WSS register I10. This pin changes to address bit XA2 if the Hardware Configuration data indicates that the peripheral port requires more than four I/O addresses. XA1 - External Address, Output, 4mA drive This pin outputs ISA bus address SA1. XA0/SCL - External Address, Output/Serial Clock, Output, 4mA drive This pin outputs the ISA bus address SA0. When E2PROM access is enabled, via EEN in CTRLbase+1, then SCL is used as a clock output to the E2PROM. BRESET - Buffered Reset, Output, 4mA drive This active low signal goes low whenever the RESDRV pin goes high. This pin is also software controllable through the BRES bit in register C8 in the Control Logical Device space. BRES provides a software power down and reset control over devices connected to the Crystal Codec such as the CS9236 Single-Chip Wavetable Music Synthesizer. XIOR - External Read Strobe, Output, 4mA drive (SA12-SA15/CDROM selection) This active low signal goes low whenever (SCS, CDCS, or MCS) and IOR goes low. When RESDRV goes low, this pin also selects either the CDROM/Modem port or SA12 - SA15 and contains an internal pullup of approximately 100 kΩ. When XIOR is left high (default), pins 91-94 are SA15-SA12 respectively. To enable the CDROM and Modem ports, an external 10kΩ resistor must be tied between this pin and SGND. XIOW - External Write Strobe, Output, 4mA drive (XCTL1/SINT/ACDCS/DOWN selection) This active low signal goes low whenever (SCS or CDCS or MCS) and IOW goes low. When RESDRV goes low, this pin also selects either XCTL1 or SINT and contains an internal pullup of approximately 100 kΩ. When XIOW is left high (default), pin 16 is the XCTL1 function (or ACDCS, based on a non-zero value being programmed into the alternate CDROM address register). To change the pin to SINT, an external 10kΩ resistor must be tied between this pin and SGND. 102 DS213PP4 CS4237B Joystick/DSP Serial Port Interface JACX, JACY - Joystick A Coordinates, Input These pins and are the X/Y coordinates for Joystick A. They should have a 5.6nF capacitor to ground and a 2.2kΩ resistor to the joystick connector pins 3 and 6, respectively. JAB1, JAB2 - Joystick A Buttons, Input These pins are the switch inputs for Joystick A. They should be connected to joystick connector pins 2 and 7, respectively; as well as have a 1nF capacitor to ground, and a 4.7kΩ pullup resistor. JBCX/SDOUT - Joystick B Coordinate X/Serial Data Output, Input/Output When this pin is used as a second joystick, it is the X coordinates input for Joystick B; and should have a 5.6nF capacitor to ground and a 2.2kΩ resistor to the joystick connector pin 11. When the serial port is enabled, SPE = 1 in I16, this pin is the serial data output. The DSP serial port SDOUT pin can be switched to XD3 via the SPS bit. This would facilitate using the DSP serial port and the second joystick simultaneously. JBCY/SDIN - Joystick B Coordinate Y/Serial Data Input, Input When this pin is used as a second joystick, it is the Y coordinates input for Joystick B; and should have a 5.6nF capacitor to ground and a 2.2kΩ resistor to the joystick connector pin 13. When the serial port is enabled, SPE = 1 in I16, this pin is the serial data input. The DSP serial port SDIN pin can be switched to XD2 via the SPS bit. This would facilitate using the DSP serial port and the second joystick simultaneously. JBB1/FSYNC - Joystick B Button 1/Frame Sync, Input/Output When this pin is used as a second joystick, it is the switch 1 input for Joystick B; and should be connected to joystick connector pin 10; as well as have a 1nF capacitor to ground, and a 4.7kΩ pullup resistor. When the serial port is enabled, SPE = 1 in I16, this pin is the serial frame sync output. The DSP serial port FSYNC pin can be switched to XD4 via the SPS bit. This would facilitate using the DSP serial port and the second joystick simultaneously. JBB2/SCLK - Joystick B Button 2/Serial Clock, Input/Output When this pin is used as a second joystick, it is the switch 2 input for Joystick B; and should be connected to joystick connector pin 14; as well as have a 1nF capacitor to ground, and a 4.7kΩ pullup resistor. When the serial port is enabled, SPE = 1 in I16, this pin is the serial clock output. The DSP serial port SCLK pin can be switched to XD1 via the SPS bit. This would facilitate using the DSP serial port and the second joystick simultaneously. DS213PP4 103 CS4237B CS9236 Wavetable Serial Port Interface A digital interface to the Crystal CS9236 Single-Chip Wavetable Music Synthesizer is provided that allows the CS9236 PCM audio data to be summed digitally on the Crystal Codec without the need for an external DAC. The Wavetable Serial Port interface pins are multiplexed with the XD7-XD5 external bus pins. This serial port is enabled via the WTEN bit which is located in the Global Configuration byte in the E2PROM Hardware Configuration data, or C8. The interface typically consists of the three pins listed below as well as: connecting the Crystal Codec MIDOUT pin to the CS9236 MIDI_IN pin, and connecting the Crystal Codec BRESET pin to the CS9236 PDN and RST pins. (The BRES bit in C8 provides a maximum software power-down mode for the CS9236 by driving the BRESET signal low whenever BRES is set.) SDATA - Wavetable Serial Audio Data, Input This pin is multiplexed with the XD7 external data bus pin. When use as SDATA, this input supplies the serial audio PCM data to be digitally mixed to the DACs of the Crystal codec. The data consists of left and right channel 16-bit data delineated by LRCLK. This pin should be connected to the SOUT output pin on the CS9236. This pin should also have a weak pull-down resistor of approx. 100 kΩ to minimize power-down currents and allow for stuffing options. LRCLK - Wavetable Serial Left/Right Clock, Input This pin is multiplexed with the XD6 external data bus pin. When use as LRCLK, this input supplies the serial data alignment signal that delineates left from right data. This pin should be connected to the LRCLK output pin on the CS9236. This pin should also have a weak pull-down resistor of approx. 100 kΩ to minimize power-down currents and allow for stuffing options. MCLK - Wavetable Master Clock, Output This pin is multiplexed with the XD5 external data bus pin. When use as MCLK, this output supplies the 16.9344 MHz master clock that controls all the timing on the CS9236. This pin should be connected to the MCLK5I input pin on the CS9236. MCLK can be disabled in software using the DMCLK bit in C8 in the Control logical device space. DMCLK provides a partial software power-down mode for the CS9236. 104 DS213PP4 CS4237B CDROM and Modem Interface The four CDROM pins are multi-function and default to ISA upper address bits SA12-SA15. To enable the CDROM port, an external 10kΩ resistor must be tied between XIOR and SGND. XIOR is sampled on the falling edge of RESDRV. If the CDROM interface doesn’t support DMA, the two CDROM DMA pins can be converted to support Logical Device 5, a modem interface. CDCS - CDROM Chip Select, Output, 4mA drive This output goes low whenever an address is decoded that matches the value programmed into the CDROM base address register. ACDCS - Alternate CDROM Chip Select, Output, 4mA drive This pin, XCTL1/SINT/ACDCS/DOWN, is multiplexed with three other functions, and defaults to the XCTL1 output which is controlled by the XCTL1 bit in the WSS I10. This pin can also be configured at a second CDROM Chip Select, ACDCS, to support the alternate IDE CDROM decode. The pin is switched to the CDROM alternate chip select when the base address ACDbase is first programmed to non-zero through the E2PROM data or PnP commands. This output then goes low whenever an address is decoded that matches the value programmed into the CDROM alternate base address register, ACDbase. This pin can also be used as the volume up pin DOWN by setting VCEN in Control register C0 or the Hardware Configuration data. VCEN has the highest precedence over the other pin functions. CDINT - CDROM Interrupt, Input This pin is used to input an interrupt signal from the CDROM interface. The part can be programmed, through the plug-and-play resource data, to output this signal to the appropriate ISA bus interrupt line. The polarity if this input can be programmed through CTRLbase+1 register, bit ICH, or the Hardware Configuration data; the default is active high. CDRQ/MINT - CDROM DMA Request, or Modem Interrupt, Input This pin can be used to input the DMA request signal from the CDROM interface. The part can be programmed, through the plug-and-play resource data, to output this signal to the appropriate ISA bus DRQ line. This pin can also be used to input an interrupt signal from a modem. The pin is switched to MINT when the LD5 base address, COMbase, is first programmed to non-zero through the PnP data or a hostload. The polarity of MINT can be programmed through CTRLbase+1 register, IMH bit, or the Hardware Configuration data; the default is active low. CDACK/MCS - CDROM DMA Acknowledge, or Modem Chip Select, Output, 4mA drive This pin can be used to output the ISA bus-generated DMA acknowledge signal to the CDROM interface. Alternately, this pin can be used to output an active low Modem chip select, MCS. The pin is switched to the modem chip select when the LD5 base address, COMbase, is first programmed to non-zero through the PnP data or a hostload. DS213PP4 105 CS4237B Volume Control The volume control pins are enabled by setting VCEN in the Hardware Configuration data, Misc. Hardware Config. byte. The VCF1,0 bits in the Hardware Configuration data, Global Configuration byte, set the format for the volume control pins. Each pin must have an external pullup resistor (10kΩ) and either a momentary or toggle style switch based on format. Typically a 100Ω series resistor and a capacitor to ground, capacitor on the switch side of the series resistor, would be included on each pin for ESD protection and to help with EMI emissions. UP - Volume Up The SCS/UP pin is multiplexed with the external Synthesizer chip select. This pin is switched to the UP function when VCEN is set. When UP is low, the master volume output for left and right channels are incremented. DOWN - Volume Down The XCTL1/SINT/ACDCS/DOWN is a multiplexed pin that can be used as XCTL1, the external FM synthesizer interrupt, the alternate CDROM chip select, or the Volume Down pin. This pin is switched to the DOWN function when VCEN is set. When DOWN is low, the master volume output for left and right channels are decremented. MUTE - Volume Mute The MUTE pin function can be toggle, momentary, or non-existent based on the VCF1,0 bits. The MUTE function is enabled when VCEN is set. Miscellaneous XTALI - Crystal Input This pin will accept either a crystal, with the other pin attached to XTALO, or an external CMOS clock. XTAL must have a crystal or clock source attached for proper operation. The crystal frequency must be 16.9344 MHz and designed for fundamental mode, parallel resonance operation. XTALO - Crystal Output This pin is used for a crystal placed between this pin and XTALI. If an external clock is used on XTALI, this pin must be left floating with no traces or components connected to it. RESDRV - Reset Drive, Input Places the part in lowest power consumption mode. All sections of the part are shut down and consuming minimal power. The part is reset and in power down mode when this pin is logic high. The falling edge also latches the state of XIOR and XIOW to determine the functionality of dual mode pins. This signal is typically connected to the ISA bus signal RESDRV. RESDRV must be asserted whenever the part is powered up to initialize the internal registers to a known state. This pin, when high, also drives the BRESET pin low. 106 DS213PP4 CS4237B VREF - Voltage Reference, Output All analog inputs and outputs are centered around VREF which is nominally 2.1 Volts. This pin may be used to level shift external circuitry, although any AC loads should be buffered. REFFLT - Reference Filter, Input Voltage reference used internal to the part. A 0.1 µF and a 1 µF (must not be bigger than 1 µF) capacitor with short fat traces must be connected to this pin. No other connections should be made to this pin. LFILT - Left Channel Antialias Filter Input This pin needs a 1000 pF NPO capacitor attached and tied to analog ground. RFILT - Right Channel Antialias Filter Input This pin needs a 1000 pF NPO capacitor attached and tied to analog ground. TEST - Test This pin must be tied to ground for proper operation. Power Supplies VA - Analog Supply Voltage Supply to the analog section of the codec. AGND - Analog Ground Ground reference to the analog section of the codec. This pin should be placed on an analog ground pin separate from other chip grounds. VD1 - Digital Supply Voltage Digital supply for the parallel data bus section of the codec. DGND1 - Digital Ground Digital ground reference for the parallel data bus section of the part. These pins are isolated from the other grounds and should be connected to the digital ground section of the board (see Figure 33). VDF1, VDF2, VDF3, VDF4 - Digital Filtered Supply Voltage Digital supply for the internal digital section of the codec (except for the parallel data bus). These pins should be filtered, using a ferrite bead, from VD1. SGND1, SGND2, SGND3, SGND4 - Substrate Ground Substrate ground reference for the codec . These pins are connected to the substrate of the die. Optimum layout is achieved by placing SGND1/2/3/4 on the digital ground plane with the DGND pin as shown in Figure 33. DS213PP4 107 CS4237B PARAMETER DEFINITIONS Resolution The number of bits in the input words to the DACs, and in the output words in the ADCs. Differential Nonlinearity The worst case deviation from the ideal code width. Units in LSB. Total Dynamic Range TDR is the ratio of the RMS value of a full scale signal to the lowest obtainable noise floor. It is measured by comparing a full scale signal to the lowest noise floor possible in the codec (i.e. attenuation bits for the DACs at full attenuation). Units in dB. Instantaneous Dynamic Range IDR is the ratio of a full-scale RMS signal to the RMS noise available at any instant in time, without changing the input gain or output attenuation settings. It is measured using S/(N+D) with a 1 kHz, -60 dB input signal, with 60 dB added to compensate for the small input signal. Use of a small input signal reduces the harmonic distortion components to insignificance when compared to the noise. Units in dB. Total Harmonic Distortion (THD) THD is the ratio of the test signal amplitude to the RMS sum of all the in-band harmonics of the test signal. THD is measured using an input signal which is 3dB below typical full-scale, and referenced to typical full scale. Interchannel Isolation The amount of 1 kHz signal present on the output of the grounded input channel with 1 kHz 0 dB signal present on the other channel. Units in dB. Interchannel Gain Mismatch For the ADCs, the difference in input voltage that generates the full scale code for each channel. For the DACs, the difference in output voltages for each channel with a full scale digital input. Units in dB. Offset Error For the ADCs, the deviation in LSBs of the output from mid-scale with the selected input grounded. For the DACs, the deviation in volts of the output from VREF with mid-scale input code. 108 DS213PP4 CS4237B PACKAGE PARAMETERS D 100-pin TQFP - Package Code ’Q’ MIN Symbol Description N Lead Count A Overall Height A1 0.00 Stand Off 0.14 Lead Width b Lead Thickness 0.077 c Terminal Dimension 15.70 D Package Body D1 Terminal Dimension 15.70 E Package Body E1 0.40 Lead Pitch e1 0.30 Foot Length L1 0.0° Lead Angle T D1 E1 100 E 1 L1 e1 b c T A1 DS213PP4 A NOM 100 MAX 1.66 0.20 0.127 16.00 14.0 16.00 14.0 0.50 0.50 0.26 0.177 16.30 16.30 0.60 0.70 12.0° Notes: 1) Dimensions in millimeters. 2) Package body dimensions do not include mold protrusion, which is 0.25 mm. 3) Coplanarity is 0.004 in. 4) Lead frame material is AL-42 or copper, and lead finish is solder plate. 5) Pin 1 identification may be either ink dot or dimple. 6) Package top dimensions can be smaller than bottom dimensions by 0.20 mm. 7) The "lead width with plating" dimension does not include a total allowable dambar protrusion of 0.08 mm (at maximum material condition). 8) Ejector pin marks in molding are present on every package. 109 CS4237B APPENDIX A: TYPICAL MOTHERBOARD E2PROM DATA ; EEPROM Validation Bytes DB 055H, 0BBH DB DB ; EEPROM Validation Bytes: CS4237B 001H 00FH ; EEPROM data length upper byte ; lower byte, Listed Size = 271 ; Hardware DB DB DB DB DB DB DB DB DB DB DB DB Configuration Data 000H 003H 080H 080H 00BH 020H 004H 008H 010H 080H 000H 000H ; ; ; ; ; ; ; ; ; ; ; ; ACDbase Addr. Mask Length = 1 bytes COMbase Addr. Mask Length = 4 bytes MCB: IHCD GCB1: IFM Code Base Byte RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED ; Hardware DB DB DB DB DB DB DB Mapping Data 000H 048H 075H 0B9H 0FCH 010H 003H ; ; ; ; ; ; ; 00=4/08=8 peripheral RESERVED IRQ selection A & B IRQ selection C & D IRQ selection E & F DMA selection A & B DMA selection C port size, XCTL0/XA2 - B= 7, D=11, F=15, B= 1, A=5 C=9 E=12 A=0 C=3 ; PnP Resource Header - PnP ID for CS4237B IC, OEM ID = 42 DB 00EH, 063H, 042H, 037H, 0FFH,0FFH,0FFH,0FFH,030H ; CSC4237 FFFFFFFF DB 00AH, 010H, 001H ; PnP version 1.0, Vender version 0.1 DB 082H, 009H, 000H, ’CMB4237B’, 000H ; ANSI ID ; LOGICAL DEVICE 0 (Windows Sound System & SBPro) DB 015H, 00EH, 063H, 000H, 000H, 000H ; EISA ID: CSC0000 DB DB DB DB DB DB DB DB 082H, 031H, 02AH, 02AH, 022H, 047H, 047H, 047H, 007H, 000H 002H, 009H, 020H, 001H, 001H, 001H, DB DB DB DB 031H, 02AH, 02AH, 022H, 001H 00AH, 028H 00BH, 028H 0A0H, 09AH 110 000H, ’WSS/SB’, 000H ; ANSI ID ; DF Best Choice 028H ; DMA: 1 - WSS & SBPro 028H ; DMA: 0,3 - WSS & SBPro 000H ; IRQ: 5 Interrupt Select 034H, 005H, 034H, 005H, 004H, 004H ;16b 088H, 003H, 088H, 003H, 008H, 004H ;16b 020H, 002H, 020H, 002H, 020H, 010H ;16b capture 0 WSSbase: 534 SYNbase: 388 SBbase: 220 ; DF Acceptable Choice 1 ; DMA: 1,3 - WSS & SBPro ; DMA: 0,1,3 - WSS & SBPro capture ; IRQ: 5,7,9,11,12,15 Interrupt Select 0 DS213PP4 CS4237B DB DB DB 047H, 001H, 034H, 005H, 0FCH, 00FH, 004H, 004H ;16b WSSbase: 534-FFC 047H, 001H, 088H, 003H, 088H, 003H, 008H, 004H ;16b SYNbase: 388 047H, 001H, 020H, 002H, 060H, 002H, 020H, 010H ;16b SBbase: 220-260 DB DB DB DB DB DB 031H, 02AH, 022H, 047H, 047H, 047H, DB 038H 002H 00BH, 0A0H, 001H, 001H, 001H, ; DF Suboptimal Choice 1 028H ; DMA: 0,1,3 - WSS & SBPro 09AH ; IRQ: 5,7,9,11,12,15 Interrupt Select 0 034H, 005H, 0FCH, 00FH, 004H, 004H ;16b WSSbase: 534-FFC 088H, 003H, 0F8H, 003H, 008H, 004H ;16b SYNbase: 388-3F8 020H, 002H, 000H, 003H, 020H, 010H ;16b SBbase: 220-300 ; End of DF for Logical Device 0 ; LOGICAL DEVICE 1 (Game Port) DB 015H, 00EH, 063H, 000H, 001H, 000H ; EISA ID: CSC0001 DB DB DB 082H, 005H, 000H, ’GAME’, 000H ; ANSI ID 031H, 000H ; DF Best Choice 047H, 001H, 000H, 002H, 000H, 002H, 008H, 008H ;16b GAMEbase: 200 DB DB 031H, 001H ; DF Acceptable Choice 1 047H, 001H, 008H, 002H, 008H, 002H, 008H, 008H ;16b GAMEbase: 208 DB 038H ; End of DF for Logical Device 1 ; LOGICAL DEVICE 2 (Control) DB 015H, 00EH, 063H, 000H, 010H, 000H ; EISA ID: CSC0010 DB DB 082H, 005H, 000H, ’CTRL’, 000H ; ANSI ID 047H, 001H, 020H, 001H, 0F8H, 00FH, 008H, 008H ;16b CTRLbase: 120-FF8 ; LOGICAL DEVICE 3 (MPU-401) DB 015H, 00EH, 063H, 000H, 003H, 000H ; EISA ID: CSC0003 DB DB DB DB 082H, 031H, 022H, 047H, DB DB DB 031H, 001H ; DF Acceptable Choice 1 022H, 000H, 09AH ; IRQ: 9,11,12,15 Interrupt Select 0 047H, 001H, 030H, 003H, 060H, 003H, 008H, 002H ;16b MPUbase: 330-360 DB DB 031H, 002H ; DF Suboptimal Choice 1 047H, 001H, 030H, 003H, 0E0H, 003H, 008H, 002H ;16b MPUbase: 330-3E0 DB 038H DB 079H, 09FH DS213PP4 004H, 000H, ’MPU’, 000H ; ANSI ID 000H ; DF Best Choice 000H, 002H ; IRQ: 9 Interrupt Select 0 001H, 030H, 003H, 030H, 003H, 008H, 002H ;16b MPUbase: 330 ; End of DF for Logical Device 3 ; End of Resource Data, Checksum 111 CS4237B APPENDIX B: DIFFERENCES BETWEEN THE CS4236 AND THE CS4237B This part is designed to be hardware and software backwards compatible with the CS4236 and will drop into an existing CS4236 socket without any hardware modifications. Properly written code for the CS4236 will run on the this Codec. However, the CS4237B has enhancements over the CS4236 that provide extra functionality. The differences are as follows: 1. CTRLbase+3 is redefined to be an indirect address register and CTRLbase+4 is redefined to be an indirect data register. These registers allows access to C0 through C8 indirect registers. 2. CDSDD in the Global Configuration byte of the Hardware Configuration data has been renamed SDD and its function expanded. On this part, setting SDD disables peripheral port reads from driving the ISA data bus for ALL peripheral port devices, e.g. CDROM and MODEM. On the CS4236, setting CDSDD disables peripheral port reads for the CDROM device ONLY. 3. The Serial Port works continuously once enabled. CEN and PEN do not have any effect on the serial port. On the CS4236, CEN and PEN disabled their respective part of the serial port when set to zero. 4. The GAME Logical Device (Joystick) only aliases from GAMEbase+0 to GAMEbase+5. GAMEbase+6 and GAMEbase+7 are reserved. This Codec also contains support for Digital Assist of analog joysticks to support the Microsoft Direct Input initiative. 5. I25 was defined as a Version and Chip ID register in the CS4236. This register is now redefined as a Compatibility register and is identical to the CS4236 to allow software written to the CS4236 to work properly on this part. The Version and Chip ID for this chip has been moved to Control indirect register C1 and WSS indirect register X25 (Revision C or greater). 6. I27 and I29 in the WSS space are reserved. 7. When IFM is enabled (and remapping is enabled) I18/I19 return the same value written when mute is enabled. On the CS4236, I18/19 returns 0xBF when mute is enabled. 8 The OLB bit in I16 is no longer functional and internally is set as if OLB is on. 9. The MIC input impedance is now 8 kΩ minimum. 112 DS213PP4 CS4237B The added features over the CS4236 are as follows: 10. SRS 3D Sound Technology is added and is controlled through C2 and C3 registers. 11. A Wavetable Serial Port interface is added for connection to the CS9236 Single-Chip Wavetable Music Synthesizer. The pins are multiplexed with the XD7-XD5 pins and are controlled by the WTEN bit in C8 or the Global Configuration byte in the Hardware Configuration data. 12. The DSP serial port can be multiplexed to the XD4-XD1 pins to allow the DSP serial port and the second joystick to be used simultaneously. The multiplexing is controlled by the SPS bit in C8 or the Global Configuration byte in the Hardware Configuration data. 13. Hardware volume control supports 4 formats. 14. New bits are added to the Global Configuration byte of the Hardware Configuration data: VCF1 and VCF0 Hardware Volume Control Format bits SLAD which disables Sound Blaster Synthesis volume changes from affecting LINE volume. WTEN to enable the Wavetable Serial Port SPS to switch the DSP serial port pins from the second joystick to the XD4-XD1 pins 15. The Consumer digital audio transmission format supported on the DSP serial port through the C4C6 registers is new. 16. Serial Port Format 3 (I16) is a new DSP serial port format. 17. A symmetrical mixer (the input mixer is new) is included and is supported by a new mode, MODE 3. This mode is enabled by setting the CMS1,0 bits in WSS I12 to 11. Note that the CS4236 MODE2 bit has been renamed CMS1 (Codec Mode Select 1). CMS1 is backwards compatible with the CS4236 MODE2 bit. 18. The MIC can be mixed directly to the output mixer with full volume control. 19. Hardware Configuration byte 9 was reserved in the CS4236 (at 0x43) and is now used as a Code Base Byte that determines the firmware code compatibility in the E2PROM. When firmware code for this part is loaded in the E2PROM this byte must be changed to 0x0B. This provides backwards compatibility by ignoring CS4236-based firmware code, which has this byte set to 0x43, while still reading the Hardware Configuration and PnP data from CS4236-programmed E2PROM. 20. 3.3 Volt ISA bus support is added. This includes all ISA pins except DRQA (which still runs at 5 Volts). When the VD1 pin is powered from a 3.3 Volt supply, the ISA bus connected to it must also run at 3.3 Volts. DS213PP4 113