INTEGRATED CIRCUITS DATA SHEET SAA2500 MPEG Audio Source Decoder Preliminary specification File under Integrated Circuits, IC01 Philips Semiconductors September 1994 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 FEATURES APPLICATIONS • Advanced error protection • Cable and satellite digital radio decoders • Integrated audio post processing for control of signal level and inter-channel crosstalk • Video CD • Demultiplexing of ancillary data in the input bitstream • Sold-state audio • Compact Disc Interactive (CD-I) • Automatic digital de-emphasis of the decoded audio signal • Multimedia Personal Computer (PC). • Separate master and slave inputs GENERAL DESCRIPTION • Automatic sample frequency and bit-rate switching in master input mode The SAA2500 supports all audio modes (joint stereo, stereo, single channel and dual channel) bit rates and sample frequencies of ISO/MPEG-1 layers I and II, as standardized in “ISO/IEC 11172-3”. • Automatic synchronization of input and output interface clocks in master input mode • Selectable audio output precision; 16, 18, 20 or 22 bit • Low power consumption. ORDERING INFORMATION PACKAGE TYPE NUMBER NAME SAA2500H QFP44(1) DESCRIPTION Plastic quad flat package; 44 leads (lead length 1.3 mm); body 10 × 10 × 1.75 mm VERSION SOT307-2 Note 1. When using IR reflow soldering it is recommended that the Drypack instructions in the “Quality Reference Pocketbook” (order number 9398 510 34011) are followed. Supply of this “ISO/IEC 11172-3” audio standard Layer I or layer II compatible IC does not convey a licence nor imply a right under any patent, or any Industrial or Intellectual Property Right, to use this IC in any ready-to-use electronic product. September 1994 2 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 5 TDI TDO TCK TMS TRST CDS CDSEF CDSCL CDSWA CDSSY CDM CDMEF CDMCL CDMWS 34 8 4 10 9 2 URDA STOP L3CLK 24 25 23 11 12 1 DECODING CONTROL RESET SAA2500 TC0 35 SYNTHESYS SUBBAND FILTER BANK AND OUTPUT PROCESSING DEQUANTIZATION AND SCALING PROCESSOR INPUT PROCESSOR 36 17 28 6 GND GND GND TC1 27 33 31 32 TA TB TO TI 3 29 26 30 MGB489 Fig.1 Functional block diagram. September 1994 L3DATA 42 43 L3MODE FSCLKM FSCLK384 FSCLK 3 CLOCK GENERATOR 19 20 18 21 22 15 14 16 13 FSCLKIN X22IN 44 41 37 39 40 38 X22OUT MCLK 7 MCLK24 MCLKIN MCLKOUT handbook, full pagewidth V DD1 V DD2 BLOCK DIAGRAM SCK WS SD Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 PINNING SYMBOL PIN DESCRIPTION TYPE RESET 1 master reset I FSCLK 2 sample rate clock; buffered signal O FSCLKIN 3 sample rate clock input I MCLK 4 master clock; buffered signal O VDD1 5 supply voltage − GND 6 supply ground − MCLKOUT 7 master clock oscillator output O MCLKIN 8 master clock oscillator input or signal input I X22OUT 9 22.579 MHz clock oscillator output O X22IN 10 22.579 MHz clock oscillator input or signal input I STOP 11 stop decoding I URDA 12 unreliable data input; interrupt decoding I CDMWS 13 coded data (master input) word select output O CDMEF 14 coded data (master input) error flag input I CDM 15 ISO/MPEG coded data (master input) I CDMCL 16 coded data (master input) bit clock output O GND 17 supply ground − CDSCL 18 coded data (slave input) bit clock I CDS 19 ISO/MPEG coded data (slave input) I CDSEF 20 coded data (slave input) error flag I CDSWA 21 coded data (slave input) window signal I CDSSY 22 coded data (slave input) frame sync I L3CLK 23 L3 interface bit clock I L3DATA 24 L3 interface serial data L3MODE 25 L3 interface address/data select input I 26 I2S O SD baseband audio I/O data output TA 27 do not connect; reserved O GND 28 supply ground − SCK 29 baseband audio data I2S clock output O I2S word select output O WS 30 baseband audio data TO 31 connect to TI (pin 32) O TI 32 connect to TO (pin 31) I TB 33 do not connect; reserved O VDD2 34 supply voltage − TC1 35 do not connect; factory test control 1 input, with integrated pull-down resistor I TC0 36 do not connect; factory test control 0 input, with integrated pull-down resistor I TDO 37 boundary scan test data output O TRST 38 boundary scan test reset input; this pin should be connected to ground for normal operation I TCK 39 boundary scan test clock input I September 1994 4 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SYMBOL TMS SAA2500 PIN 40 DESCRIPTION TYPE boundary scan test mode select input I I handbook, full pagewidth 42 44 MCLK24 handbook, full pagewidth V DD master clock frequency indication TC1 44 34 MCLK24 35 I 37 TDO sample rate clock source selection for the master input 36 TC0 43 38 TRST FSCLKM 39 TCK I 40 TMS I sample rate clock frequency indication input 41 TDI boundary scan test data input 42 FSCLK384 41 FSCLK384 43 FSCLKM TDI RESET 1 33 TB FSCLK 2 32 TI FSCLKIN 3 31 TO MCLK 4 30 WS V DD 5 GND 29 SCK SAA2500 (QFP44) 6 28 GND CDSWA 21 23 L3CLK CDSSY 22 24 L3DATA 11 CDS 19 10 STOP CDSEF 20 X22IN CDSCL 18 25 L3MODE GND 17 9 CDMCL 16 X22OUT CDM 15 26 SD CDMEF 14 27 TA 8 CDMWS 13 7 MCLKIN URDA 12 MCLKOUT MGB490 Fig.2 Pin configuration. For layers I and II of ISO/MPEG the broadband audio signal spectrum is split into 32 sub-bands of equal bandwidth. For each sub-band signal a masking threshold is calculated. The sub-band samples are then re-quantized to such an accuracy that the spectral distribution of the re-quantization noise does not exceed the masking threshold. It is this reduction of representation accuracy which yields the data reduction. The re-quantized sub-band signals are multiplexed, together with ancillary information regarding the actual re-quantization, into a MPEG audio bitstream. FUNCTIONAL DESCRIPTION Coding system The perceptual audio encoding/decoding scheme defined within the “ISO/IEC 11172-3 MPEG Standard” allows for a high reduction in the amount of data needed for digital audio whilst maintaining a high perceived sound quality. The coding is based upon a psycho-acoustic model of the human auditory system. The coding scheme exploits the fact that the human ear does not perceive weak spectral components that are in the proximity (both in time and frequency) of loud components. This phenomenon is called masking. September 1994 5 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 During decoding, the SAA2500 de-multiplexes the MPEG audio bitstream, and with knowledge of the ancillary information, reconstructs and combines the sub-band signals into a broadband audio output signal. configure the SAA2500, to read its decoding status, to read Ancillary Data, and so on. Several pins are reserved for Boundary Scan Test and Scan Test purposes. Basic functionality SAA2500 clocks From a functional point of view, several blocks can be distinguished in the SAA2500. A clock generator section derives the internally and externally required clock signals from its clock inputs. The SAA2500 can switch between a master and a slave input interface to receive the coded input data. The input processor parses and de-multiplexes the input data stream. The de-quantization and scaling processor performs the transformation and scaling operations on the sample representations in the input bitstream to yield sub band domain samples. The SAA2500 clock interfacing is designed for application versatility. It consists of 10 signals (see Table 1). From a functional point of view, the clock generator inside the device can be represented as shown in Fig.3. As described above, the SAA2500 incorporates a master input interface on which it requests for coded input data itself, as well as a slave input interface for an imposed coded data input bitstream. The input interface is selected with flags MSEL0 and MSEL1, controlled via the L3 microcontroller interface. The sub band samples are transferred via an external detour to the synthesis sub band filter bank processor. The detour can be used to process the decoded audio in the sub band domain. The baseband audio samples, reconstructed by the sub band filter bank, can be processed before being output. Depending on the selected input interface, only a limited number of the three possible input clocks (MCLKIN, X22IN and FSCLKIN) is actually required. The various clock options are selected with the 3 external control signals MCLK24, FSCLKM and FSCLK384. These control signals must be stationary while the device reset signal RESET is de-activated; changing any of these 3 signals without simultaneously resetting the SAA2500 can result in malfunctioning. The decoding control block houses the L3 control interface, and handles the response to external control signals. The L3 control interface enables the application to Table 1 Clock interfacing signals. SIGNAL DIRECTION FUNCTION MCLKIN input master clock oscillator input or signal input MCLKOUT output master clock oscillator output MCLK output master clock; buffered signal MCLK24 input master clock frequency indication: MCLK24 = 0; MCLKIN frequency is 12.288 MHz (256 × 48 kHz) MCLK24 = 1; MCLKIN frequency is 24.576 MHz (512 × 48 kHz) X22IN input 22.5792 MHz (512 × 44.1 kHz) clock oscillator input or signal input X22OUT output 22.5792 MHz (512 × 44.1 kHz) clock oscillator output FSCLKIN input sample rate clock signal input FSCLK output sample rate clock signal; buffered signal FSCLK384 input sample rate clock signal frequency indication: FSCLK384 = 0; FSCLKIN frequency is 256 times the sample rate FSCLK384 = 1; FSCLKIN frequency is 384 times the sample rate FSCLKM input sample rate clock source selection when using the master input: FSCLKM = 0; use MCLKIN or X22IN as source FSCLKM = 1; use FSCLKIN as source September 1994 6 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 handbook, full pagewidth MCLK24 control MCKDIS (L3) MCLK MCLKIN 12.288 or 24.576 MHz MCLKOUT in CONTROL out DIVIDER 2 OSC C = 48 kHz 3 X22OUT X22IN FSCLKIN FSCLKM internal master clocks 256f s C = 44.1 kHz OSC C=0 2 22.5792 MHz decoded sample rate index C C = 32 kHz 256f s or 384f s C=1 C control 1 FCKENA (L3) 256f s or 384f s FSCLK FSCLK384 SCK control C 64f s C=0 4 C=1 6 00 WS fs 64 A A=B B MSEL1 0: use master input 1: use slave input to input interfaces MSEL0 (L3) MGB491 Italics: internal signal designation. Fig.3 SAA2500 clock generator. Crystal oscillator The recommended crystal oscillator configuration is shown in Fig.4. The specified component values only apply to crystals with a low equivalent series resistance of <40 Ω. September 1994 7 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 handbook, pagewidth handbook, fullfull pagewidth C2 10 C1 X1 R1 9 R2 8 SAA2500 C3 X2 R4 7 R3 C4 C1 =C2 = 33 pF; R1 = R4 = 1 MΩ; R2 = R3 = 1 kΩ; X1 = 22.5792 MHz; X2 = 24.5760 MHz or 12.2880 MHz The specified component values only apply to crystals with a low equivalent series resistance of <40 Ω. MGB492 Fig.4 Crystal oscillator components. advantage of this configuration is that the SAA2500 determines automatically which sample rate is active from the sampling rate setting of the input data bitstream, and then selects either MCLKIN or X22IN as the clock source for the I2S clocks SCK and WS. This configuration is therefore particularly suited in applications with more than one possible sample rate setting. Clock frequencies when using the slave input If the slave input is used (MSEL1 and MSEL0 = 10 or 11), the SAA2500 clock sources are MCLKIN and FSCLKIN and X22IN is not used. The I2S clocks SCK and WS are generated by the SAA2500 from FSCLKIN. FSCLKIN may be designated to have a frequency of 256 times (indicated by FSCLK384 = 0) or 384 times (indicated by FSCLK384 = 1) the sample frequency of the coded input data. Master clock signal MCLKIN may be chosen to have a frequency of 12.288 MHz (indicated by MCLK24 = 0) or 24.576 MHz (indicated by MCLK24 = 1). MCLKIN and FSCLKIN do not have to be phase or frequency locked. If the application is based on a sample frequency of 48 kHz or 32 kHz, and a sample rate related clock of 12.288 MHz (256 × 48 kHz; 384 × 32 kHz) is available, this can be taken advantage of by using this signal for both MCLKIN and FSCLKIN. 2. If FSCLKM = 1, the configuration is comparable to the configuration when using the slave input (see Section “Clock frequencies when using the slave input”). MCLKIN and FSCLKIN are used as the clock sources, and X22IN is not required. MCLKIN may again have a frequency of 12.288 MHz (indicated by MCLK24 = 0) or 24.576 MHz (indicated by MCLK24 = 1), and FSCLKIN may have a frequency of 256 times (indicated by FSCLK384 = 0) or 384 times (indicated by FSCLK384 = 1) the sample frequency of the input data. MCLKIN and FSCLKIN do not have to be phase or frequency locked. Clock frequencies when using the master input If the master input is used (MSEL1 and MSEL0 = 00), one out of two configurations is selected with signal FSCLKM with respect to the clock sources: Target applications; applying the SAA2500 with 2 ISO/MPEG sources 1. If FSCLKM = 0, MCLKIN and X22IN are the clock sources. FSCLKIN is not used in this configuration. FSCLK384 must be set to 0 for reasons of internal connections in the clock generator circuitry. MCLKIN may have only frequency 24.576 MHz (so mandatory accompanied by MCLK24 = 1), and X22IN must have a frequency of 22.5792 MHz. MCLKIN and X22IN do not have to be phase or frequency locked. The main September 1994 In Table 2 the three target applications of the SAA2500 are summarised. The slave input application is labelled S, and the master input applications are labelled M0 and M1. 8 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder Table 2 SAA2500 Target applications. APPLICATION ATTRIBUTE CONDITIONS S M0 M1 SLAVE INPUT MASTER INPUT MASTER INPUT X 0 1 MCLK24 = 1 24.576 MHz 24.576 MHz 24.576 MHz MCLK24 = 0 12.288 MHz illegal 12.288 MHz note 1 22.579 MHz note 1 FSCLK384 = 1 384fs illegal 384fs FSCLK384 = 0 256fs note 1 256fs copy of FSCLKIN 256fs copy of FSCLKIN note 2 note 3 − INPUT INTERFACE CONDITIONS FSCLKM MCLKIN X22IN FSCLKIN FSCLK FCKENA = 1 (L3) Remarks Notes 1. Must be electrically defined; e.g.: LOW. 2. FSCLKIN must be locked to input data clock CDSCL; see Section “The coded data slave input interface”. 3. FSCLKIN is not used, but FSCLK384 must be LOW. format bit rate. Several aspects of the decoding process, as well as the audio post-processing features, offered by the SAA2500, are described in more detail below. Sections “Clock frequencies when using the slave input” and “Clock frequencies when using the master input” explain which clock sources are activated by the SAA2500 depending on the selected input interface. This automatic clock source selection makes it easy to apply the SAA2500 in systems with two ISO/MPEG coded data sources (one connected to the master input, an one to the slave input), even if these data sources use different clocks. Synchronization to input data bitstreams After a reset, the SAA2500 mutes both sub band and baseband audio data. After data inputting has started, the SAA2500 searches either for a sync pattern or a sync pulse. The speed at which input data is read by the master input to search for synchronisation is described below. If the application is such that the SAA2500 starts at a random moment in time compared to the bitstream, maximal one frame is skipped before a synchronisation pattern or pulse is encountered. Buffered clock outputs The SAA2500 provides a signal MCLK which is a buffered version of MCLKIN. MCLK can be set to 3-state by setting the L3 control interface flag MCKDIS to 1 in applications where MCLK is not needed. When the SAA2500 has detected the first synchronisation word or pulse, a number of frames are decoded in order to verify synchronisation; the input data for these frames is read and decoded, but meanwhile the audio output is muted. The number of muted frames depends on whether the ISO/MPEG CRC is active, and whether the bit rate is free format. If the synchronisation is found to be false, the SAA2500 resumes the initial synchronisation as described above. If the detected pulse/pattern is concluded to be a real synchronisation pulse/pattern, Table 3 indicates the number of muted frames. Signal FSCLK is copied from the FSCLKIN input for application types S and M1 or generated with a frequency of 256fs by the SAA2500 for application type M0. After a device reset, FSCLK must be enabled explicitly by setting L3 flag FCKENA, or can alternatively be left 3-stated in applications where it is not needed. After a device reset, MCLK is enabled; FSCLK is disabled (i.e. both MCKDIS and FCKENA are set to 0). Functionality issues The SAA2500 fully complies with ISO/MPEG layer I and II with the slave input. With the master input, the SAA2500 complies with ISO/MPEG layer I and II, excluding the free September 1994 9 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder Table 3 SAA2500 Muted frames. Master input bit rate selection As explained above, the SAA2500 can be used to alternate between two applications: one with the slave input, and one with the master input. When using the master input, the SAA2500 should fetch data with the effective bit rate, but cannot know what the bit rate of the input data is until it has established synchronisation. To overcome this paradox, the input requesting is done at the last selected bit rate. MINIMUM NUMBER OF MUTED FRAMES DURING SYNCHRONIZATION CRC FREE FORMAT BIT RATE NON-FREE-FORMAT BIT RATE No CRC 2 1 CRC 1 0 After a device reset, the master input bit rate selection defaults to the value indicated in Table 4. Table 4 Defaults master input bit rate. FSCLKM FSCLK384 FSCLKIN 0 0 X(1) 1 0 256 × 32 kHz 1 384 × 32 kHz 0 256 × 44.1 kHz 1 384 × 44.1 kHz 0 256 × 48 kHz 1 384 × 48 kHz DEFAULT MASTER INPUT BIT RATE kbits/s 384 278.64 384 417.96 Note 1. X = don’t care. When FSCLKM = 0, the default master input bit rate is 384 kbits/s. When FSCLKM = 1, the SAA2500 uses signal FSCLKIN to derive the selected bit rate, but it has no indication concerning the sample rate corresponding to FSCLKIN. Therefore, a bit rate of 384 kbits/s is selected at an assumed sample rate of 44.1 kHz; with other sample rates, the bit rate changes proportionally. 2. When the active input interface is changed from the master to the slave input, or the signal STOP is activated; in these cases input requesting stops. 3. When the active input interface is changed from the slave to the master input, or the signal STOP is deactivated; the bit rate is set to the last selected master input bit rate (the last selected master input bit rate is memorised while using the slave input). The consequence is that while the SAA2500 synchronises (e.g. after a device reset), the application must at least be able to supply at the given default bit rate the required number of frames plus one additional frame (because of the random decoding start point in the input bitstream). Buffers in the application must thus be chosen sufficiently large to prevent under or overflows. In all other cases (e.g. when the SAA2500 goes and stays out of synchronisation), the data requesting speed of the master input is maintained. Sample rate selection When using the slave input, or when using the master input with FSCLKM = 1, the application must know the sample rate: FSCLKIN must be applied, which has a frequency which is a multiple of the sample rate; the (sample rate dependent) I2S timing signals SCK and WS are generated from FSCLKIN. These configurations will normally be used in applications with a fixed sample rate. Should the sample rate change, then the SAA2500 must be reset. The speed with which input data is requested by the master input is changed by the SAA2500 in each of the following cases: 1. When input synchronization is established after checking a number of frames and the bit rate index of the newly decoded bitstream indicates a different bit rate than that currently selected. In this case, the bit rate is adapted to the newly decoded index. September 1994 10 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 When using the master input with FSCLKM = 0, the SAA2500 selects the active sample rate autonomously, and generates the signals SCK and WS from its crystal clocks. After a device reset, the SAA2500 selects a sample rate of 44.1 kHz by default. allocation or scale factor select information field in a frame (then the SAA2500 will mute) or inside the scale factor field (then the previous scale factor will be copied). Errors in other data fields are not handled explicitly. If the ISO/MPEG CRC is active, only the CRC result is interpreted: CDSEF/CDMEF un-reliability indications for bit allocation and scale factor select information are neglected. SCK and WS may, and will only, show phase or frequency changes in any of the following 3 situations: 1. When the SAA2500 establishes synchronization with the coded data input bitstream. In applications where the ISO/MPEG CRC is always present, the protection bit (which itself is not protected) in the ISO/MPEG header may be overruled by making L3 settings flag CRCACT HIGH. In this manner, the SAA2500 is made robust for data errors on the protection bit. 2. When the active input interface is changed from the master input with FSCLKM = 0 to the slave input (i.e. the timing source for the generation of SCK and WS is switched from the crystal clocks to FSCLKIN). 3. When the active input interface is changed from the slave input to the master input with FSCLKM = 0 (i.e. the timing source for the generation of SCK and WS is switched from FSCLKIN to the crystal clocks); the sample rate is set to the last selected sample rate that was used with the master input (the last selected sample rate is memorised while using the slave input). Subband filter signals In all other cases, SCK and WS keep on running without phase or frequency changes, and the sample rate selection remains unchanged. The baseband audio de-emphasis as indicated in the ISO/MPEG input data is performed digitally inside the SAA2500. The incorporated 'Audio Processing Unit' (see Fig.5) can be used to apply inter-channel crosstalk or independent volume control per channel. The APU attenuation coefficients LL, LR, RL and RR may be changed dynamically by the host microcontroller, writing their 8 bit indices to the SAA2500 over the L3 control bus. The coefficient changes become effective within one sample period after the coefficient index writing. The decoded subband signals are output, so that they can be processed. The optionally processed subband signals are put back into the SAA2500 for synthesis filtering. Baseband audio processing Handling of errors in the coded input data The SAA2500 can handle errors in the input data. Errors are assumed to be present in 3 cases: 1. If errors are indicated with the coded input data error flag CDSEF and/or CDMEF. 2. On CRC failure if ISO/MPEG error protection is active. To avoid clicks at coefficient changes, the transition from the current attenuation to the next is smoothed. The relation between the APU coefficient index and the actual coefficient (i.e. the gain) is given in Table 5. 3. If input bitstream syntax errors are detected. Errors in the input data have an effect on the decoding process if the corrupted data is inside the header, bit September 1994 11 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder Table 5 SAA2500 From Table 5 we learned that up to coefficient index 64 the step size is approximately −0.5 dB per coefficient increment, and from coefficient index 64 to index 126 the step size is approximately −1 dB per increment. APU coefficient index and actual coefficient. APU COEFFICIENT INDEX C BINARY DECIMAL 00000000 to 00111111 0 to 63 APU COEFFICIENT 2 01000000 to 01111110 64 to 126 2 01111111 1XXXXXXX audio samples ( C – 32 ) – ----------------------6 127 0 128 to 255 reserved lefthalfpage decoded handbook, Note that the APU has no built-in overflow protection, so the application must take care that the output signals of the APU cannot exceed 0 dB level. For an update of the APU coefficients, it may be required to increase some of the coefficients and decrease some others. The APU coefficients are always written sequentially in the fixed sequence LL, LR, RL and RR. Therefore, to prevent internal APU data overflow due to non-simultaneous coefficient updating, the following steps can be followed: C – -----12 1. Write LL, LR, RL, RR once, but change only those coefficients that must decrease; overwrite the coefficients that must increase with their old value (so do not change these yet). left output audio samples LL 2. Write LL, LR, RL, RR again, but now change those coefficients that must increase, keeping the other coefficients unchanged. LR RL right decoded audio samples The consequence of this two-pass coefficient updating is that the application must keep a shadow of the current APU coefficients (the L3 APU coefficients data item is write-only). right output audio samples RR MGB493 Fig.5 Audio Processing Unit (APU). APU coefficient index handbook, full pagewidth 0 0 126 64 32 127 (2) (1) gain (dB) 94 MGB494 (1) Step −0.5 dB per coefficient increment. (2) Step −1 dB per coefficient increment. Fig.6 Relation between APU coefficient index and gain. September 1994 12 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 thus causing re-synchronization when STOP is de-activated again. Then the SAA2500 mutes, meanwhile searching for a frame sync pattern or frame sync pulse (the synchronisation mode is selected via the L3 control bus) at the input. Decoding control signals The decoding is performed by 3 signals as shown in Table 6. Table 6 Signals for decoding control. SIGNAL RESET DIRECTION input If synchronisation is found, the SAA2500 starts producing output data. The maximum response time to the activation of signal STOP is half a sample period; the re-synchronisation time after STOP going LOW again differs in various situations. FUNCTION reset SAA2500 to default state STOP input stop decoding URDA input unreliable input data; interrupt decoding An ‘unreliable data’ indication can be given to the SAA2500 by making signal URDA HIGH. URDA, like STOP, mutes the subband signals and forces the SAA2500 out of synchronisation. However, in contrast to STOP, master input data requesting continues at the bit rate that was decoded before URDA became active. The maximum response time to URDA is half a sample period. The master reset signal RESET forces the SAA2500 into its default state when HIGH. RESET must stay HIGH during at least 24 MCLKIN periods if MCLKIN has frequency 24 MHz (i.e. MCLK24 = 1) or 12 MCLKIN periods if MCLKIN has frequency 12 MHz (MCLK24 = 0). At a reset, the SAA2500 synchronization to the input bitstream is lost, the subband filter and baseband audio output signals are muted, and the SAA2500 settings are initialised. Coded data interfaces The SAA2500 contains: • A coded data master input interface • A coded data slave input interface. The decoding can be stopped by making input signal STOP HIGH. Stopping the decoding forces the SAA2500 to end decoding of input data, yet feeding zeroed subband samples to the synthesis subband filter bank to create a soft muting. When using the master input, input requesting is also stopped. CDMWS stays in its current state while STOP is asserted. The SAA2500 assumes the input synchronisation to be lost when the decoding is stopped, September 1994 THE CODED DATA MASTER INPUT INTERFACE When using the master input, the SAA2500 requests for input data. With the master input, the coded input data may not use the ISO/MPEG free format bit rate. The coded data master input interface consists of 4 signals (see Fig.7). 13 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder Table 7 SAA2500 Signals of coded data master input interface. SIGNAL DIRECTION FUNCTION CDM input ISO/MPEG coded input data (master input) CDMEF input coded data (master input) error flag CDMCL output coded data (master input) clock CDMWS output coded data (master input) word select 1 handbook, full pagewidth 2 16 17 n 1 2 CDM CDMCL CDMWS 1 unreliable data bit (example) CDMEF MGB495 valid data valid but unreliable data invalid data Fig.7 Input data serial transfer format (master input). Data clock CDMCL is being output, having a fixed frequency of 768 kHz. Signal CDM carries the coded data in bursts of 16 valid bits. Coded data input frames may only start either at the first or at the ninth bit of a 16 bit valid data burst (i.e. only at a byte boundary). The value of word select signal CDMWS is changed every time new input data is needed: one CDMCL period after each transition in CDMWS, 16 bits of valid data are read serially. Assume N is the number of CDMCL periods between two transitions of CDMWS, and R is the number of CDMCL periods to obtain the effective bit rate E (in kbits/s) at a transferring data rate of 768 kbits/s, i.e. R = 16*768/E. The SAA2500 keeps N close to R, but N can vary plus or minus two: N ∈ {round(R)-2,...,round(R)+2}. September 1994 Error flag CDMEF is used to indicate input data insecurities (e.g. due to erratic channel behaviour). In Fig.7, an example with one unreliable bit is shown. The value of CDMEF may vary for each valid data bit, but is combined by the SAA2500 for every group of 8 input bits. THE CODED DATA SLAVE INPUT INTERFACE The coded data slave input interface signals are shown in Fig.8. The coded data master input interface consists of 5 signals (see Table 8). 14 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder Table 8 SAA2500 Signals of coded data slave input interface. SIGNAL DIRECTION FUNCTION CDS input ISO/MPEG coded input data (slave input) CDSEF input coded data (slave input) error flag CDSCL input coded data (slave input) clock CDSWA input coded data (slave input) burst windowing signal CDSSY input coded data (slave input) frame sync frame start handbook, full pagewidth CDS CDSCL CDSWA CDSSY 1 unreliable data bit (example) CDSEF MGB496 valid data valid but unreliable data invalid data CDSSY indicates frame start during valid data. Fig.8 Input data serial transfer format (slave input). CDS is the SAA2500 input data bitstream. Data clock CDSCL must have a frequency equal to or higher than the bit rate. The maximum CDSCL frequency is 768 kHz. Error flag CDSEF is handled in the same way as CDMEF is handled for the master input (in Fig.8, one unreliable data bit is shown as an example). The value of CDSEF is neglected for those bits where CDSWA is LOW. Window signal CDSWA being HIGH indicates valid data; in this way, burst input data is allowed. The constraints for the ability to use ‘burst signals’ are explained below. Frame sync signal CDSSY indicates the start of each input data frame. CDSSY is synchronous with CDSCL. CDSSY may be present or not: as described below. The first valid CDS bit after a leading edge of CDSSY is interpreted to be the first frame bit. September 1994 The minimum time for CDSSY to stay HIGH is one CDSCL period; the maximum HIGH period is constrained by the requirement that CDSSY must be LOW at least during one CDSCL period per frame (a leading edge, i.e. a frame start indication, must be present every frame). Leading edges of CDSSY can occur while CDSWA is HIGH, as in Fig.8. Alternatively, a situation as shown in Fig.9 is also allowed, where CDSSY has a leading edge while CDSWA is LOW, i.e. during invalid data. The first CDS bit after CDSWA going HIGH is now interpreted to be the first frame bit. 15 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 frame start handbook, full pagewidth CDS CDSCL CDSWA CDSSY MGB497 valid data invalid data CDSSY indicates frame start at next valid data. Fig.9 Input data serial transfer format (slave input). Whether frame sync signal CDSSY is present or not must be selected with L3 settings flags MSEL1 and MSEL0 (see Section “SAA2500 settings item”). With respect to the presence of CDSSY, two situations can be distinguished: It shows the transferring of nf bits in one frame between time 0 and t, where t corresponds to 384 sample periods (ISO/MPEG layer I input data) or 1152 sample periods (ISO/MPEG layer II input data). Buffer margin B equals 16 bytes (128 bits). In Fig.10 an effective transferring characteristic is drawn, representing any of the possible ISO/MPEG bit rates. However, input data may be transferred at a higher-than-effective speed (in other words: CDSCL may have a higher frequency than the effective bit rate) in periods during which CDSWA is HIGH, interleaved with invalid data periods where CDSWA is LOW. In the example of Fig.9 this is used to transfer the data of the frame in two bursts, as shown by the actual transferring characteristic. The actual transferring characteristic has a slope equal to the CDSCL frequency while CDSWA is HIGH, and is horizontal during the periods in which CDSWA is LOW (no bits are being transferred). 1. If CDSSY is supplied, CDSWA may change each CDSCL period. 2. If CDSSY is not supplied, CDSCL must have a frequency higher than the bit rate (i.e. CDSWA cannot be continuously HIGH), and CDSWA HIGH periods may have only lengths of a multiple of 8 CDSCL periods: data is input in byte bursts. Furthermore, these bursts must be byte aligned with the frame bounds: frames are only allowed to start at the 1st, 9th, 17th etc. bit in a valid data burst. For applications where data is input in bursts of exactly one frame, and where CDSCL has a higher frequency than the bit rate, CDSWA and CDSSY may be interconnected. SLAVE INPUT TRANSFER SPEED OF FIRST FRAME Both the average and the instantaneous speed at which data is transferred to the slave input interface are limited. The data transferring of the first ISO/MPEG frame after starting to decode is shown in Fig.10. September 1994 16 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 MGB498 andbook, full pagewidth (1) slope: maximum input bit rate transferred input frame bits B n B slope: CDSCL frequency slope: effective input bit rate (2) (3) B B 0 t time (1) The actual transferring characteristics of all frames are restricted to this area. (2) Effective transferring characteristic (example). (3) Actual transferring characteristic of the first frame (example). Fig.10 Slave input data transferring for the first frame. The shaded area in Fig.10 represents the restrictions to the actual transferring characteristic of all frames. The actual transferring characteristic may not undercut the effective transferring characteristic by more than B bits to avoid an input underflow. On the other hand, the actual transferring characteristic may not cross the shown upper limit of the shaded area to prevent an input buffer overflow. The slope of this upper limit is determined by the maximum effective input bit rate (depending on the input data format). Table 9 summarizes the slopes as determined by the bit rates supported by ISO/MPEG. Table 9 SLAVE INPUT TRANSFER SPEED OF SUBSEQUENT FRAMES The SAA2500 starts decoding as soon as enough data of the first ISO/MPEG input data frame has been received. Thus the start moment of decoding depends on the actual transferring characteristic of the first frame. Decoding start times of subsequent input data frames are also governed by this initial start time. For this reason the transferring characteristic of all subsequent frames must approximate the characteristic of the first frame within the buffer margin ±B. For the example shown in Fig.10, subsequent frames must be transferred within the shaded area shown in Fig.11. Slopes determined by bit rates supported by ISO/MPEG. ISO/MPEG LAYER EFFECTIVE INPUT BIT RATE (kbits/s) TRANSFERRING UPPER LIMIT SLOPE (kbits/s) ISO/MPEG layer I ±13.3(1) to 448 448 ISO/MPEG layer II 3.5(1) to 384 384 Note 1. Achieved using the free format option and the minimum amount of the side information that must be transmitted (this means using single channel mode, no CRC and 32 kHz sample rate). September 1994 17 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 MGB499 handbook, full pagewidth (1) transferred input frame bits B n slope: CDSCL frequency B slope: effective input bit rate (3) (2) B B 0 t time (1) The actual transferring characteristics of all subsequent frames are restricted to this area. (2) Effective transferring characteristic (example). (3) Actual transferring characteristic of the first frame (example). Fig.11 Slave input data transferring for subsequent frames, referenced to the first frame. Note that the actual transferring characteristics of all frames must also remain inside the shaded area of Fig.11. The subband filter interface As mentioned earlier, decoded signals in the subband domain (before synthesis filtering) are available externally for processing. The associated interface has an I2S-like format (see Fig.12). September 1994 18 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder MSB 1 handbook, full pagewidth SAA2500 left sample 2 LSB 24 25 32 26 MSB 1 right sample 2 TO TI SCK WS valid data undefinied data subband 0 WS L R 1 L 2 30 31 0 1 R TB MGB500 Fig.12 Filter data serial transfer format. The filter data interface uses 6 signals as shown in Table 10. Table 10 Signals of filter data interface. SIGNAL DIRECTION FUNCTION TO output filter data output TA output filter data error flag TI input filter data input (optionally processed) SCK output filter data (output/input common) bit clock WS output filter data (output/input common) word select TB output filter data output frame synchronization Two subband samples (one per channel) are transmitted per sample period with output TO. The transmission pattern of the samples S [sb, ch] (sb: subband index; ch: channel) is: S [0, L], S [0, R], S [1, L], S [1, R],..., S [31, R], S [0, L], S [0, R], etc. Word select signal WS indicates the channel of each sample. (WS is also used for the baseband audio output interfacing). transmitted in 24 bit two's complement PCM form, MSB first. Thus, of the available 32 TO bits per sample per channel, only 24 are used. The MSB of a sample follows one SCK period after each transition in WS. The 8 unused bits between individual samples in TO are zero. (SCK is used for the baseband audio output interface as well.) The optionally processed subband data signal is fed back as input TI in a similar format as TO, but now the 8 unused bits between individual samples are undefined; they are neglected by the SAA2500. The subband sample bit clock SCK has a frequency of 64 times the sample frequency. The subband samples are September 1994 19 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 A leading edge in signal TB indicates the start of each TO frame. The length of each TB pulse is one sample period; TB is HIGH during a S[0,L] and S[0,R] pair. Signal TA being HIGH indicates muting of TO due to input data errors (see Fig.13). index of the TI samples must be synchronised to TB: a subband 0 sample pair must be input when TB is HIGH (as shown in Fig.12). This means that the delay of the external processing is allowed to be any integer multiple of 32 sample periods. If no external processing is to be applied, TO must be input back directly to TI. TA can only change value at each TB leading edge, i.e. after each 384 sample periods (ISO/MPEG layer I input data) or 1152 sample periods (ISO/MPEG layer II input data): only whole frames are marked to be correct or muted. As shown in detail in Fig.13, transitions of TB and TA take place one SCK period before a trailing edge of WS. The baseband output interface The decoded baseband audio data is output in an I2S-like format (see Fig.14). The output interfacing consists of 3 signals (see Table 11). The optionally processed subband data TI must be synchronous to SCK and WS. Furthermore, the subband handbook, full pagewidth 1 2 3 4 384 (layer I) 1152 (layer II) 1 2 WS TB TA WS WS TB TB TA TA SCK SCK MGB501 Fig.13 Filter data error flag (TA) timing. September 1994 20 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 left sample handbook, full pagewidth MSB right sample MSB LSB LSB SD 1 16/18/20/22 32 1 16/18/20/22 32 SCK WS MGB502 valid data Fig.14 Baseband output data serial transfer format. information). In the programming sections a general transfer protocol outline is presented. In Section “SAA2500 L3 protocol enhancement options” several optional protocol enhancements are given, which on the one hand are less transparent from the applicant's point of view, but on the other hand increase the efficiency of the L3 interfacing. Table 11 Signals of output interfacing. SIGNAL DIRECTION FUNCTION SD output baseband audio data SCK output data clock WS output word select The frequency of clock SCK is 64 times the sample frequency. (SCK is also used for the subband filter interface). L3 SIGNALS The signal SD is the serial baseband audio data, sample by sample (left/right interleaved. The left sample and the right immediately following it form one stereo pair). 32 bits are transferred per sample per channel. The samples are transmitted in two's complement, MSB first. The output samples are rounded to either 16, 18, 20 or 22 bit precision, selectable by the host with L3 control interface flags RND1 and RND0. The remainder of the 32 transferred bits per sample per channel are zero. Table 12 Signals of L3 protocol. The L3 protocol uses 3 signals (see Table 12). SIGNAL FUNCTION L3DATA input/output L3 interface serial data L3CLK input L3 interface bit clock L3MODE input L3 interface address/data select The signals operate according to the L3 protocol description. After each device reset, the L3 interface of the SAA2500 must be initialised and as a consequence, the L3 interface cannot be used while the device reset signal is activated. The word select signal WS indicates the channel of the output samples (LOW if left, HIGH if right). (WS is used for the subband filter interface as well.) If indicated in the coded input data, de-emphasis filtering is performed digitally on the output data, thus avoiding the need of analog de-emphasis filter circuitry. L3 TRANSFER TYPES The L3 control interface The L3 protocol enables the reading and writing of control, status and data. In the L3 protocol, the host first issues an 8 bit wide ‘operational address’ on L3DATA while keeping L3MODE LOW. All devices connected to the L3 bus read the operational address. Next, data transfers from or to the The SAA2500 uses the L3 protocol with the associated bus as the control interface with an optional host microcontroller (see Chapter “Appendix” for more September 1994 DIRECTION 21 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 host are done while keeping L3MODE HIGH. The devices with an L3 operational address differing from the issued one must ignore these data transfers until the next operational address is issued. Only the device with an address equal to the issued operational address performs the transfer. The SAA2500 has the L3 operational address as shown in Table 13. Table 13 L3 operational address. 7 6 0 5 1 4 1 3 0 0 2 1 0 0 DOM1(1) DOM0(1) Note 1. The ‘Data Operation Mode’ bits DOM1 and DOM0 determine the mode in which the SAA2500 L3 interface will stay until the next time an L3 operational address is issued (see Table 14). item data itself is transferred, always as an integer number of bytes. Table 14 DOM1 and DOM0 bits. DOM1 DOM0 TRANSFER TYPE 0 0 write item data 0 1 read item data 1 0 write control to SAA2500 1 1 read SAA2500 status The status of the SAA2500 can be read via L3. The SAA2500 status flag L3RDY must be monitored before transferring data item bytes to avoid transferring bytes faster than the L3 interface of the SAA2500 can handle. L3 INTERFACE INITIALISATION AT AN SAA2500 DEVICE RESET Figure 15 shows the mandatory actions that must be taken for correct L3 interface start-up at a device reset. Control bytes can be written to the SAA2500. Data is transferred to or from the SAA2500 in so-called data items. The items can be a readable or writeable type. A data item transfer is initiated by writing the corresponding control byte to the SAA2500 first. Next, the handbook, full pagewidth RESET L3MODE L3CLK 1 2 Fig.15 L3 interface initialisation procedure. September 1994 22 3 MGB503 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 The actions shown in Fig.15 are: the SAA2500 itself must always be either the writing of a control word or the reading of the SAA2500 status; the first transfer may never be a data item byte transfer. 1. In order for the SAA2500 to keep L3DATA in 3-state, L3MODE must be kept LOW during the whole period that reset signal RESET is asserted; meanwhile, no transfers can be performed (L3CLK stays HIGH). Remark: any deviation from these steps may result in illegal L3 protocol behaviour of the SAA2500, even with the possibility of disturbing transfers to other devices connected to the L3 bus. 2. For a proper initialisation of the L3 interface logic of the SAA2500, it is mandatory to make L3MODE HIGH and LOW again after the device reset has been de-activated. This must be done before any L3 transfer, even to or from other devices than the SAA2500, is performed. Figure 14 shows that L3CLK stays HIGH during this step. L3 INTERFACE CONTROL The control of the SAA2500 L3 interface is performed with one-byte control words. Status polling is not necessary before writing control bytes. After writing the SAA2500 ‘write control’ operational address, one or more control bytes may be written. Each written control byte overrules the previously sent control byte. 3. Now the first transfer can be performed on the L3 bus. This transfer must be a operational address (indicated in Fig.14 by L3MODE = 0), addressing any of the devices connected to the L3 bus. The first transfer to Table 15 L3 control. 7 6 5 4 3 2 1 0 CTRL7 CTRL6 CTRL5 CTRL4 CTRL3 CTRL2 CTRL1 CTRL0 The definitions of the control bytes (CTRL7 to CTRL0) are given in Table 16. Table 16 Explanation of control bytes CTRL7 TO CTRL0 DEFINITION TYPE(1) 00000000 read/write SAA2500 settings item I 00000001 read decoded frame header item I 00000010 read used frame header item I 00000011 read error report item I 00000100 reserved I 00000101 read ancillary Data item I 00000110 write APU coefficients item I 00000111 continue previous transfer C 00001000 to 11111111 reserved − Note 1. Control bytes of type I initiate the transfer of a data item. The control byte of type C may be used after interrupting a transfer, in order to write APU coefficients, to return to the interrupted transfer. SAA2500 STATUS The host can check the status of the SAA2500 by reading the one-byte status word. After writing the SAA2500 ‘read status’ operational address, the status byte may be read an arbitrary number of times. If status is read more than once, it is updated by the SAA2500 between the individual readings. The status flags of the SAA2500 have the definition as shown in Table 17. September 1994 23 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 Table 17 Status flag definitions. 7 6 5 4 3 2 1 0 DST2(1) DST1(1) DST0(1) undefined undefined undefined INSYNC(2)(3) L3RDY(4) Notes 1. By interpreting DST2 to DST0, the host can synchronize to the input frame frequency, and also determine at which moment which L3 data item is available to be read. The value of DST2 to DST0 is only valid if flag INSYNC is set. a) DST2 is a modulo 2 frame counter, i.e. DST2 inverts at the moment the decoding of a new frame is started. DST2 enables to host to sample the decoding subprocess DST1 to DST0 less frequently, meanwhile enabling the host to see if it missed a state. b) DST1 and DST0 values are explained in Table 18. 2. INSYNC is synchronization indication: a) INSYNC = 0; the SAA2500 is not synchronized to the input data. b) INSYNC = 1; the SAA2500 is synchronized to the input data. 3. As indicated in Section “Input data frame header items”, some of the readable data item bits only have significance if INSYNC = 1. 4. L3RDY is L3 interface ready indication: a) L3RDY = 0; the L3 interface cannot perform a new item data transfer yet. b) L3RDY = 1; the L3 interface is ready for the next item data transfer. After a device reset, L3RDY is cleared and will only become set after writing the first L3 control byte to the SAA2500. The value of L3RDY can be tested by polling signal L3DATA instead of transferring the whole status byte. Table 18 Status bytes DST1 and DST0. DST1 DST0 FUNCTION 0 0 subprocess 0; reading Ancillary Data or decoding header 0 1 subprocess 1; decoding bit allocation or scale factor select information 1 0 subprocess 2; decoding scale factors 1 1 subprocess 3; decoding samples The DST1 and DST0 values in general do not have a determined duration. However, subprocess 3 takes at least a 1⁄ frame period when ISO/MPEG layer I data is decoded, and 5⁄ frame period when ISO/MPEG layer II data is decoded. 2 6 Table 19 indicates the validity of the SAA2500 readable data items with respect to the decoding subprocess. Reading of a data item in a period when it is not valid renders undefined data. September 1994 24 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 Table 19 Validity of SAA2500 readable data items with respect to the decoding subprocess (notes 1 and 2). SAA2500 IS DECODING FRAME n SAA2500 IS DECODING FRAME n + 1 DST2 = 0 DST2 = 1 DST1 AND DST0 = 0 not valid DST1 AND DST0 = 1 DST1 AND DST0 = 2 DST1 AND DST0 = 3 Ancillary Data item (frame n − 1) DST1 AND DST0 = 0 not valid frame header items (frame n) − not valid − error report: BALOK (frame n) not valid error report: DECFM (frame n) DST1 AND DST0 = 1 DST1 AND DST0 = 2 DST1 AND DST0 = 3 − − − − − − not valid − − not valid − Notes 1. The Table shows following: a) The received Ancillary Data that was multiplexed in frame n−1 becomes valid after subprocess 0 of frame n, and may be read during subprocesses 1, 2 and 3 of frame n. b) The decoded and used frame headers for frame n become valid after subprocess 0 of frame n, and may be read during subprocesses 1, 2 and 3 of frame n. c) Flag BALOK for frame n in the error report item becomes valid after subprocess 1 of frame n, and may be read during subprocesses 2 and 3 of frame n and subprocess 0 of frame n+1. d) Flag DECFM for frame n in the error report item becomes valid after subprocess 2 of frame n, and may be read during subprocesses 3 of frame n and 0 of frame n+1. 2. Note that during subprocess 3 all data items can be read. initiated by writing the corresponding type I control byte (see Section “L3 interface control”) to the SAA2500. The transfer of every subsequent item data byte must be preceded by reading the status until status flag L3RDY (see Section “SAA2500 status”) is HIGH. DATA ITEMS Data can be transferred to or from the SAA2500 in data items. This section describes the general protocol to accomplish item data transfer, followed by the individual SAA2500 data items. Optional enhancements on the general protocol are described in Chapter “Appendix” Section “SAA2500 L3 protocol enhancement options”. L3RDY may be tested alternatively by polling L3DATA, avoiding the need to transfer the whole status byte. Status polling is not required while transferring the APU coefficients item. Table 20 shows an example of how bytes ‘DDDDDDDD’ of a 2 byte data item, with the corresponding control byte ‘CCCCCCCC’, can be read. The writing of item data bytes occurs in a similar way. General data items The data items of the SAA2500 are transferred (i.e. read or written, depending on whether the data item is of readable or writeable type) in bytes. A data item transfer is September 1994 25 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 Table 20 Example of a 2 byte data item. TRANSFER SOURCE L3DATA L3MODE EXPLANATION 01100010 host 0 1; indicates ‘write control’ transfer CCCCCCCC host 1 2; write transfer initiating (type I) control byte 01100011 host 0 3; indicates ‘read status’ transfer SSSSSSSS SAA2500 1 4; read status (repeat step 4 until L3RDY = 1) 01100001 host 0 5; indicates ‘read item data’ transfer DDDDDDDD SAA2500 1 6; read first item data byte 01100011 host 0 7; indicates ‘read status’ transfer SSSSSSSS SAA2500 1 8; read status (repeat step 8 until L3RDY = 1) 01100001 host 0 9; indicates ‘read item data’ transfer DDDDDDDD SAA2500 1 10; read second item data byte Each data item has its own length in bytes. It is allowed to transfer less bytes than the data item length, skipping the last one or more bytes (it is even allowed to transfer no bytes at all). It is not allowed to transfer more bytes than the item length. This restriction does not hold for the APU coefficient item. After writing all APU coefficients (i.e. after writing all APU coefficient item bytes), they may be rewritten by continuing writing bytes to the APU coefficient item. Writing more than the specified number of bytes to a writeable data item or writing bytes to a read-only data item may cause the SAA2500 to malfunction. The reading of a write-only data item yields irrelevant data. September 1994 26 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 SAA2500 SETTINGS ITEM The SAA2500 is configured with the SAA2500 settings. The initial value of the SAA2500 settings after reset is all zeros. Table 21 SAA2500 settings item; 1 byte (read/write). 7 6 5 4 3 2 1 0 MSEL1(1) MSEL0(1) CRCACT(2) MCKDIS(3) FCKENA(4) SELCH2(5) RND1(6) RND0(6) Notes 1. MSEL1 and MSEL0; these bits select the used input interface, the input data format and the input synchronization type (see Table 22). 2. CRCACT; automatic/forced CRC activity: a) CRCACT = 0; the SAA2500 uses the protection bit in the ISO/MPEG frame header to determine the presence of the CRC. b) CRCACT = 1; the SAA2500 assumes the CRC always to be present. The protection bit in the used ISO/MPEG frame header is forced to 0. 3. MCKDIS; buffered master clock MCLK disabling: a) MCKDIS = 0; enable MCLK. b) MCKDIS = 1; disable (3-state) MCLK. 4. FCKENA; buffered 256fs or 384fs output signal FSCLK enabling: a) FCKENA = 0; disable (3-sate) FSCLK. b) FCKENA = 1; enable FSCLK. 5. SELCH2; with dual channel mode input data (with other modes of input data ‘don’t care’: a) SELCH2 = 0; select channel I. b) SELCH2 = 1; select channel II. 6. RND1 and RND0; these bits select the rounding of the baseband audio output samples (see Table 23). Table 22 MSEL1 and MSEL0. MSEL1 MSEL0 USED INPUT INTERFACE INPUT SYNCHRONIZATION 0 0 master to ISO/MPEG synchronization pattern 0 1 reserved reserved 1 0 slave to ISO/MPEG synchronization pattern 1 1 slave to synchronization signal CDSSY Table 23 RND1 and RND0. RND1 RND0 0 0 16 bits 0 1 18 bits 1 0 20 bits 1 1 22 bits September 1994 OUTPUT SAMPLE ROUNDING LENGTH 27 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 INPUT DATA FRAME HEADER ITEMS Information about the input data, derived by the SAA2500 from the input data frame headers, may be read from the frame header items. Both the frame header bytes decoded from the input bitstream and the header bytes used for the actual decoding may be read. The decoded frame header item is valid independent of the value of status flag INSYNC, it e.g. shows the decoded headers while the SAA2500 is in the process of synchronising. The used frame header item is only valid if status flag INSYNC is set. The used header bytes are derived by the SAA2500 from the decoded header bytes by overruling NOPROT to 0 if settings bit CRCACT = 1, and overruling detected errors. Table 24 Decoded input data frame header item; 3 bytes (read-only). SUBSEQUENT BYTES 7 6 5 4 3 2 1 0 Decoded header byte 1 SY3(1) SY2(1) SY1(1) SY0(1) ID(2) LAY1(3) LAY0(4) NOPR(5) Decoded header byte 2 BR3(6) BR2(6) BR1(6) BR0(6) FS1(7) FS0(7) undefined undefined Decoded header byte 3 MOD1(8) MOD0(8) COPR(10) ORIG(11) EMPH1(12) EMPH0(12) MODX1(9) MODX0(9) Notes to Tables 24 and 25 1. SY3 to SY0; last 4 bits of the synchronization word. 2. ID; algorithm identification. 3. LAY1; layer Most Significant Bit (MSB). 4. LAY0; layer Least Significant Bit (LSB). 5. NOPR; CRC on header, bit allocation and scale factor select information activity flag. 6. BR3 to BR0; bit rate index. 7. FS1 and FS0; sample rate index. 8. MOD1 and MOD0; mode. 9. MODX1 and MODX0; mode extension. 10. COPR; copyright flag. 11. ORIG; original or home copy flag. 12. EMPH1 and EMPH0; audio de-emphasis, these bits are only meant to monitor the current de-emphasis mode; the corresponding de-emphasis is performed by the SAA2500 automatically before the baseband audio signal is output. Table 25 Used input data frame header item; 3 bytes (read-only). SUBSEQUENT BYTES 7 6 5 4 3 2 Used header byte 1 1 1 1 1 1 1 Used header byte 2 BR3 BR2 BR1 BR0 FS1 FS0 Used header byte 3 MOD1 MOD0 MODX1 MODX0 COPR ORIG 1 0 LAY0 NOPR undefined undefined EMPH1 EMPH0 ERROR REPORT ITEM The validity of bit allocation plus scale factor select information may be read from the error report item. The error report item is only valid if status flag INSYNC is set. September 1994 28 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 Table 26 Error report item; 1 byte (read-only). SUBSEQUENT BYTES Error report 7 6 5 BALOK(1) DECFM(2) undefined 4 3 2 1 0 undefined undefined undefined undefined undefined Notes 1. BALOK; bit allocation and scale factor select information validity indication: a) BALOK = 0; bit allocation or scale factor select information are incorrect, or the CRC (if active) over header, bit allocation and scale factor select information fail. b) BALOK = 1; bit allocation or scale factor select information are correct, and the CRC (if active) over header, bit allocation and scale factor select information passes. 2. DECFM; frame skipping/decoding indication: a) DECFM = 0; the current input data frame is skipped, and the corresponding baseband audio output frame is muted due to input data errors or inconsistencies. However, synchronization to the input data is maintained. b) DECFM = 1; the current frame is decoded normally. ANCILLARY DATA ITEM The last 54 bytes of each ISO/MPEG frame, which may carry Ancillary Data (AD), are buffered by the SAA2500 to be read by the host. The subsequent Ancillary Data bytes are read in reversed order with respect to their order in the input data bitstream. The first item data byte is the last frame byte in the input bitstream. The Ancillary Data item is refilled at every frame. The host must either know or determine itself how many of the Ancillary Data bytes are valid per frame. The Ancillary Data item only has significance if status flag INSYNC is set. Table 27 Ancillary data item; 54 bytes (read-only). SUBSEQUENT BYTES AD byte 1 to AD byte 54 7 6 5 4 3 2 1 0 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 APU COEFFICIENTS ITEM The APU coefficients are set by writing their 8 bit indices to the 4-byte APU coefficient item. Only the 7 LSBs are valid. The MSB must be zero. At a device reset, indices LL and RR are set to 00000000 (‘no attenuation’) and indices LR and RL to 01111111 (infinite attenuation; no crosstalk). Table 28 APU coefficients item; 4 bytes (write-only); see note 1. SUBSEQUENT BYTES 7 APU coefficient LL 0 LL.6 LL.5 LL.4 LL.3 LL.2 LL.1 LL.0 APU coefficient LR 0 LR.6 LR.5 LR.4 LR.3 LR.2 LR.1 LR.0 APU coefficient RL 0 RL.6 RL.5 RL.4 RL.3 RL.2 RL.1 RL.0 APU coefficient RR 0 RR.6 RR.5 RR.4 RR.3 RR.2 RR.1 RR.0 6 5 4 3 2 1 0 Note 1. Multiple options are supplied by the SAA2500 to increase the timing accuracy of the APU coefficient writing (see Section “SAA2500 L3 protocol enhancement options”). September 1994 29 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 SPEED LIMITATIONS OF THE L3 INTERFACE DEFAULT ITEM DATA VALUES AFTER RESET When reading the status of, or writing control bytes to the SAA2500, no status polling is necessary, so the speed of these transfers is only limited by the maximum frequency of signal L3CLK and the timing constraints of the L3 protocol. At a device reset, the L3 interface initialisation procedure must be followed. All writeable data items are pre-loaded with a defined default value after the device reset signal has been de-activated. These default values are summarised in Table 29. When reading or writing data item bytes, status polling is necessary. In addition to the speed limitation this poses, the application must take precautions that individual data item bytes are transferred at an interval of at least 200 µs. Neither the status polling nor a minimum interval between transfers is required when transferring the APU coefficient item. Table 29 SAA2500 settings item; default value after device reset (notes 1 to 6.) SUBSEQUENT BYTES SAA2500 settings Value 7 6 5 4 3 2 1 0 MSEL1 MSEL0 CRCACT MCKDIS FCKENA SELCH2 RND1 RND0 0 0 0 0 0 0 0 0 Notes 1. MSEL1 = 0 and MSEL0 = 0; the master input is selected. The SAA2500 synchronizes to the ISO/MPEG synchronization pattern. 2. CRCACT = 0; the SAA2500 uses the protection bit in the ISO/MPEG frame header to determine if the CRC is active. 3. MCKDIS = 0; the buffered master clock output MCLK is enabled. 4. FCKENA = 0; the buffered 256fs or 384fs clock output is disabled. 5. SELCH2 = 0; when decoding input data with dual channel mode, channel I is output on both baseband audio output channels. 6. RND1 = 0 and RND0 = 0; the baseband audio output signals are rounded to 16 bit. Table 30 APU coefficients item; default values after device reset. SUBSEQUENT BYTES 7 6 5 4 3 2 1 0 APU coefficient LL(1) 0 LL.6 = 0 LL.5 = 0 LL.4 = 0 LL.3 = 0 LL.2 = 0 LL.1 = 0 LL.0 = 0 APU coefficient LR(2) 0 LR.6 = 1 LR.5 = 1 LR.4 = 1 LR.3 = 1 LR.2 = 1 LR.1 = 1 LR.0 = 1 APU coefficient RL(3) 0 RL.6 = 1 RL.5 = 1 RL.4 = 1 RL.3 = 1 RL.2 = 1 RL.1 = 1 RL.0 = 1 APU coefficient RR(4) 0 RR.6 = 0 RR.5 = 0 RR.4 = 0 RR.3 = 0 RR.2 = 0 RR.1 = 0 RR.0 = 0 Notes 1. LL = 00000000; no attenuation in the left-to-left APU path. 2. LR = 01111111; infinite attenuation in the left-to-right APU path. 3. RL = 01111111; infinite attenuation in the right-to-left APU path. 4. RR = 00000000; no attenuation in the right-to-right APU path. September 1994 30 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 All slave devices in the system can be addressed using a 6 bit address. This allows for up to 63 different slave devices, as the all ‘0’ address is reserved for special purposes. In addition it is possible to extend the number of addressable devices using ‘extended addressing’. APPENDIX Preliminary specification 3-line ‘L3’ interface INTRODUCTION The main purpose of the new interface definition is to define a protocol that allows for the transfer of control information and operational details between a microcontroller (µC) and a number of slave devices, at a rate that exceeds other common interfaces, but with a sufficient low complexity for application in consumer products. It should be clearly noted that the current interface definition is intended for use in a single apparatus, preferably restricted to a single printed circuit board. In operation 2 modes can be identified: 1. Addressing mode (AM). During addressing mode a single byte is sent by the microcontroller. This byte consists of 2 data operation mode (DOM) bits and 6 operational address (OA) bits. Each of the slave devices evaluates the operational address. Only the device that has been issued the same operational address will become active during the following data mode. The operation to be executed during the data mode is indicated by the two data operation mode bits. The new interface requires 3 signal lines (apart from a return ‘ground’) between the microcontroller and the slave devices (from this the name ‘L3’ is derived). These 3-lines are common to all ICs connected to the bus: L3MODE, L3DATA and L3CLK. L3MODE and L3CLK are always driven by the microcontroller, L3DATA is bidirectional: 2. Data mode (DM). During data mode information is transferred between microcontroller and slave device. The transfer direction may be from microcontroller to slave (‘write’) or from slave to microcontroller (‘read’). However, during one data mode the transfer direction can not change. Table 31 The 3-lines common to all ICs; L3MODE, L3CLK and L3DATA. SIGNAL MICROCONTROLLER L3MODE(1) output SLAVE DEVICE Addressing mode input L3CLK(2) output input L3DATA(3) output/input input/output In order to start an addressing mode the microcontroller will make the L3MODE line LOW. The L3CLK line is lowered 8 times and the DATA line will carry 8 bits. The addressing mode is ended by making the L3MODE line HIGH. Notes 1. L3MODE is used for the identification of the operation mode. 2. L3CLK is the bitclock to which the information transfer will be synchronized. 3. L3DATA will carry the information to be transferred. September 1994 31 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 handbook, halfpage L3MODE L3CLK L3DATA 0 1 2 3 4 5 6 7 MGB505 The meaning of the bits on L3DATA. Bit 0 and bit 1; these are the data operation mode (DOM) bits that indicate the nature of the following data transfer. Each slave device may have its own allocation of operation modes to the 4 possible codes of these bits. For correct information about the operation the device will perform, refer to the descriptions of the individual IC's. For new designs the preferred allocations are given in Table 32. Bit 2 to bit 7; these bits act as 6 bit (special function) operational IC address, with bit 7 as MSB and bit 2 as LSB. Bit 7 to bit 5 act as system identification and bit 4 to bit 2 as identification of the device within the system. Fig.16 Addressing mode. Table 32 Preferred allocations. DOM1 DOM0 FUNCTION REMARKS 0 0 data from microcontroller to SAA2500 general purpose data transfer 0 1 data from SAA2500 to microcontroller general purpose data transfer 1 0 control from microcontroller to SAA2500 e.g. register selection for data transfer 1 1 status from SAA2500 to microcontroller short device status message transfer the L3MODE line is HIGH. The L3CLK line is lowered 8 times during which the L3DATA line carries 8 bits. The information is presented LSB first and remains stable during the LOW phase of the L3CLK signal. Special function operational address Operational address 000000 (bit 2 to bit 7) is the special function address, and is used for the L3 device reset, as well as for the declaration and invalidation of the extended addressing. Both will be explained in Sections “Device interface reset” and “Extended addressing”. The preferred basic data transfer unit is an 8 bit byte. Some implementations that are modifications of older circuits with 16 bit registers may use a basic unit of 16 bits, transferred as 2 bytes, with the most significant byte presented first. No other basic data transfer unit is allowed. Data mode In the data mode the microcontroller sends or receives information to or from the selected device. During data September 1994 32 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 Halt mode handbook, halfpage L3MODE L3CLK L3DATA 0 1 2 3 4 5 6 7 MGB504 Fig.17 Data transfer mode. interfere with any communication on these lines as long as L3MODE remains HIGH (e.g. the L3CLK and L3DATA lines are normally connected to USART circuits in the microcontrollers which allow for convenient communication between microcontrollers). In between units the L3MODE line will be driven LOW by the microcontroller to indicate the completion of a basic unit transfer. This is called ‘halt mode’ (HM). During halt mode the L3CLK line remains HIGH (to distinguish it from an addressing mode). The halt mode allows an implementation of an interface module without a bit counter. However, an implementation using a bit counter in the interface module may allow for the L3MODE line to be kept HIGH in between units (not using the halt mode). Any addressing mode with a valid L3 operational address will re-enable the communication with the corresponding device. Devices with a fixed operational address (‘Primary L3 devices’) will react with a device reset condition regardless of the state of DOM1 and DOM0. This implementation must also operate correctly if the halt mode is used. The documentation of the device will have to indicate clearly whether or not the ‘halt mode’ is necessary for correct operation of the interface. Devices with a programmable operational address (‘Secondary L3 devices’) can only be put in the interface reset condition if the DOM1 and DOM0 bits are ‘0’. Other combinations of DOM1 and DOM0 initiate data transfers for ‘extended addressing’. DEVICE INTERFACE RESET If the microcontroller sends an operational address ‘000000’ with DOM1 and DOM0 also equal to ‘0’ this indicates that none of the L3 interface devices is allowed to communicate with the microcontroller during the following data mode. This enables a different application of the L3CLK and L3DATA lines as the L3 devices will not September 1994 EXTENDED ADDRESSING L3 Devices with a programmable address can be informed of their operational address using a special data transfer. 33 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 designs may have a range of identification codes, one of which can be selected by a hardware solution, to enable the connection of more than one device of the same design to the L3 interface. It is also possible to use separate L3MODE lines for multiple devices of the same design, but the same L3 identification code (this also enables ‘parallel programming’ of these devices). Bit 0 of any identification code byte will indicate whether or not an additional byte follows: Operational address declaration For the declaration (programming) of the operational address of an L3 device with a ‘secondary L3 identification code’ the following action is required: 1. First the microcontroller must issue an L3 operational address ‘000000’ (special function address) with DOM1 = 0 and DOM0 = 1. This combination defines the operational address declaration operation. Next the microcontroller will start a data transfer mode in which it first sends the secondary L3 identification code for the device that is to be issued an operational address, followed by a byte containing the operational address (the DOM bits in this byte are don't cares). Bit 0 = 0; no additional byte as part of the identification code. Bit 0 = 1; additional byte follows. With this the number of secondary L3 identification codes is (theoretically) unlimited. 2. Next the microcontroller will start a data transfer mode in which it first sends the secondary L3 identification code for the device that is to be issued an operational address, followed by a byte containing the operational address (the DOM bits in this byte are don't cares). The operational address for the programmable device is preferable in the range 111000 to 111111. However, it is possible in a given application to issue any operational address that is not used to address primary L3 devices or other secondary L3 devices. An example is given in Table 33. A secondary L3 identification code is unique for any design. Devices of the same design have the same identification code of one or more bytes. However, special Table 33 Example of L3 devices; notes 1 to 4. ADDRESSING MODE DATA MODE SECONDARY L3 IDENTIFICATION CODE BYTE 1 BYTE 2 BYTE 3 OPERATIONAL ADDRESS (ONE BYTE) 1XXXXXXX 1XXXXXXX 0XXXXXXXX MMYYYYYY SPECIAL ADDRESS 10000000 Notes 1. Bits are shown in the order they appear on L3DATA (bit 0 first, bit 7 last). 2. X = bit of the identification code. 3. M = DOM bit of operational address (don’t care). 4. Y = bit of the operational address. moment on the device will not be able to communicate with the microcontroller until it is issued a new operational address by an OA declaration (it will enter a ‘device interface reset’ condition). Operational address invalidation In order to re-allocate an operational address that has been allocated to a secondary L3 device it is possible to invalidate an operational address: Remark: the combination of a special function address (000000) and DOM1 and DOM0 equal to ‘1’ is reserved for future applications. Designs based on this specification will react with a ‘device interface reset’. • First the microcontroller must issue an L3 operational address ‘000000’ (special function address) with DOM1 = 1 and DOM0 = 0. This combination defines the operational address invalidation operation. • Next the microcontroller will start a data transfer mode in which it only sends the secondary L3 identification code for the device that will no longer be addressed. From this September 1994 34 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 EXAMPLE OF A DATA TRANSFER handbook, full pagewidth L3MODE L3CLK (1) L3DATA (2) address data byte 1 data byte 2 data byte 3 data byte 4 address MGB506 (1) L3CLK is triggered by L3MODE. (2) For more details see Fig.20. Fig.18 Example of transfer of 4 bytes. A data transfer starts when the microcontroller sends an address on the bus. All ICs will evaluate this address, but only the IC addressed will be an active partner for the microcontroller in the following data transfer mode. make L3MODE LOW in between transfers. It is suggested that new designs only use bytes as basic data transfer units. After the data transfer the microcontroller does not need to send a new address until a new data transfer is necessary. Alternatively it may also send the ‘special address’ 000000 to indicate the end of the data transfer operation. During the data transfer mode bytes will be sent from or to the microcontroller. In this example the L3MODE line is made LOW (‘halt mode’) in between byte transfers. This is the default operation, although some ICs may allow the L3MODE line to be kept HIGH. This exception must be specified clearly in the IC documentation, and such ICs must be able to communicate with microcontrollers that TIMING REQUIREMENTS These are requirements for the slave devices designed according to the 'L3' interface definitions. Addressing mode t d1 handbook, full pagewidth t h2 L3MODE t cL t cH L3CLK L3DATA t su t h1 MGB507 Fig.19 Timing (addressing mode). September 1994 35 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 Table 34 Requirements for timing (addressing mode); see Fig.19. SYMBOL PARAMETER REQUIREMENT UNIT td1 L3CLK HIGH to L3CLK LOW delay time after L3MODE LOW ≥190 ns tcL L3CLK LOW time ≥250 ns tcH L3CLK HIGH time ≥250 ns tsu1 L3DATA set-up time before L3CLK HIGH ≥190 ns th1 L3DATA hold time after L3CLK HIGH ≥30 ns th2 L3CLK hold time before L3MODE HIGH ≥190 ns Data mode t d1 andbook, full pagewidth t h2 L3MODE t cL t cH L3CLK t su L3DATA microcontroller to IC t h1 L3DATA IC to microcontroller t d2 t d3 t h3 t d5 t d4 MGB508 Fig.20 Timing (data mode). Table 35 Requirements for timing (data mode); see Fig.20. SYMBOL PARAMETER REQUIREMENT UNIT td1 L3CLK HIGH to L3CLK LOW delay time after L3MODE HIGH ≥190 ns tcL L3CLK LOW time ≥250 ns tcH L3CLK HIGH time ≥250 ns Microcontroller to slave device tsu1 L3DATA set-up time before L3CLK HIGH ≥190 ns th1 L3DATA hold time after L3CLK HIGH ≥30 ns th2 L3CLK hold time before L3MODE HIGH ≥190 ns ns Slave device to microcontroller td2 L3DATA enable time after L3MODE HIGH 0 < td2 ≤ 50 td3 L3DATA stable time after L3MODE HIGH ≤380 ns th3 L3DATA hold time after L3CLK HIGH ≥50 ns td4 L3DATA stable time after L3CLK HIGH ≤360 ns td4 L3DATA stable time after L3CLK HIGH between bit 7 of a byte and bit 0 of next byte if no halt mode is used ≤530 ns td5 L3DATA disable time after L3MODE LOW 0 < td5 ≤ 50 ns September 1994 36 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 Halt mode tL handbook, full pagewidth L3MODE t d1 t h2 L3CLK td5 t d2 L3DATA IC to microcontroller MGB509 Fig.21 Timing (halt mode). Table 36 Requirements for timing (halt mode); see Fig.21. SYMBOL PARAMETER REQUIREMENT UNIT td1 L3CLK HIGH to L3CLK LOW delay time after L3MODE HIGH ≥190 ns tL L3MODE LOW time ≥190 ns th2 L3CLK hold time before L3MODE LOW ≥190 ns Slave device to microcontroller td2 L3DATA enable time after L3MODE HIGH 0 < td2 ≤ 50 ns td5 L3DATA disable time after L3MODE LOW 0 < td5 ≤ 50 ns SAA2500 ‘read status’ operational address, after which the status byte can be transferred. To avoid these status byte transfers (thus reducing the host's load), after writing the SAA2500 ‘read status’ operational address, L3RDY is continuously copied to signal L3DATA during the period in which no L3 transfers (i.e. status byte readings) are performed. Meanwhile, L3MODE must be kept HIGH (no L3 operational addresses may be written). As a result, L3RDY can be tested as shown in Table 37. SAA2500 L3 protocol enhancement options The L3 interface on the SAA2500 is limited in speed, dictated both by the maximum SAA2500 handling speed and the upper frequencies of the L3 interfacing standard. On the other hand, the SAA2500 offers several enhancements, described in this section, to make a better use of the SAA2500 L3 interface capacity. The enhancements are optional. The applicant chooses whether to use them or not. TESTING L3RDY BY POLLING L3DATA The host must test status flag L3RDY to make sure whether the SAA2500 L3 interface is ready to transfer data item bytes. According to the general protocol, described in Section “Data items”, the status is read by first writing the September 1994 37 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 Table 37 Status bytes DST1 and DST0; note 1. L3DATA TRANSFER SOURCE L3MODE EXPLANATION 01100011 host 0 write ‘read status’ operational address polled SAA2500 1 test L3DATA; repeat this step until L3DATA = 1 Note 1. No status byte transfers are needed; the load of the host (microcontroller) can thus be reduced. the writing of APU coefficients without having to wait for the current item transfer to finish. In order to do so, a running transfer can be interrupted by an APU coefficient write transfer, and then be resumed with the ‘continue current transfer’ control byte. OPTIONS TO INCREASE THE TIMING ACCURACY OF THE APU COEFFICIENT WRITING The SAA2500 offers three enhancements to increase the timing accuracy with which APU coefficients can be updated by the application: An item transfer may be interrupted at any time to write APU coefficients. After the ‘continue previous transfer’ control byte, a operational address must always follow, indicating the type of L3 transfer that will follow. An APU coefficient write transfer itself cannot be interrupted. 1. Status polling is not required when APU coefficients are written. L3 status flag L3RDY, when read anyhow, will always be HIGH, indicating that the next APU coefficient transfer may be done. The transfer speed is only limited by the maximum allowed frequency of L3CLK. As a result, also no ‘write item data’ operational address is needed any more before writing each APU coefficient index. The 3 mentioned options are all illustrated in Table 38, where a data item transfer is interrupted between the reading of the nth and (n + 1)th data item byte. 2. Normally, no more bytes may be written to a writeable data item than the length of that specific item. An exception is formed by the APU coefficients. They may be written continuously with a coefficient wrap. After the writing of all 4 coefficients, the writing can be continued at the first APU coefficient without having to write a new control byte. 3. The data item transfer protocol, described in Section “Data items”, although transparent, allows only for the reading or writing of data items from their first data byte onwards. This approach can lead to situations where e.g. 54 Ancillary Data item bytes must all be read (which takes at least 54 × 200 µs = 10.8 ms, due to the interface speed limitations: see Section “Data items”) before the next data item can be transferred. The SAA2500 enables September 1994 38 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 Table 38 Example of 3 options to increase the timing accuracy of the APU coefficient writing. L3DATA TRANSFER SOURCE L3MODE EXPLANATION DDDDDDDD SAA2500 1 read nth item data byte 01100010 host 0 indicate ‘write control’ transfer 00000110 host 1 write ‘write APU coefficients’ control byte 01100000 host 0 indicate ‘write item data’ transfer DDDDDDDD host 1 write APU coefficient LL DDDDDDDD host 1 write APU coefficient LR DDDDDDDD host 1 write APU coefficient RL DDDDDDDD host 1 write APU coefficient RR DDDDDDDD host 1 write APU coefficient LL DDDDDDDD host 1 write APU coefficient LR DDDDDDDD host 1 write APU coefficient RL DDDDDDDD host 1 write APU coefficient RR 01100010 host 0 indicate ‘write control’ transfer 00000111 host 1 write ‘continue previous transfer’ control byte 01100011 host 0 indicate ‘read status’ transfer SSSSSSSS SAA2500 1 read status; repeat this step until L3RDY = 1 01100001 host 0 indicate ‘read item data’ transfer DDDDDDDD SAA2500 1 read (n + 1)th item data byte etc. etc. September 1994 etc. etc. 39 40 22 21 20 19 18 17 16 SAA2500 VDD2 TC1 TC0 TDO TRST TCK TMS TDI FSCLK384 FSCLKM 23 24 25 26 27 28 29 30 31 32 33 L3CLK CDSSY CDSWA CDSEF CDS CDSCL GND CDMCL CDM CDMEF CDMWS MCLK24 RESET 1 C R R R 34 35 36 37 38 39 40 41 42 43 44 R 5V 5V handbook, full pagewidth C 14 13 12 11 10 9 8 7 6 5 4 3 2 1 (1) Fig.22 Typical application diagram. 5V (1) C 4.7 µH 5V DEEM2 MUSB DSMB ATSB VOL FILTCL FILTCR VOR V ref V SSO V DDO n.c. n.c. VSSD SYSCLKO SYSCLKI DEEM1 TEST2 VDDD VSSD CLKS2 CLKS1 DATA WS BCK TEST1 V SSA V DDA TDA1305 DAC 15 16 17 18 19 20 21 22 23 24 25 26 27 28 5V 100 µF 1 nF 1 nF 100 µF C 5V 1 kΩ 10 k Ω 10 k Ω 1 kΩ 1 µF left output right output MGB510 C MPEG Audio Source Decoder C = 100 nF; R = 47 Ω. (1) The supply voltage (+5 V) and GND links should be located close to the supply connector. L3 bus MPEG slave interface 15 14 13 X22IN L3DATA URDA 2 3 4 5 6 7 TA 12 8 GND STOP X22OUT L3MODE C MCLKOUT SCK 11 10 9 MCLKIN SD 5V GND CLOCK CIRCUIT V DD1 WS MPEG master interface MCLK TI FS256 FSCLK FSCLKIN TO September 1994 TB RESET Philips Semiconductors Preliminary specification SAA2500 APPLICATION INFORMATION Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 LIMITING VALUES In accordance with the Absolute Maximum Rating System (IEC 134). SYMBOL PARAMETER VDD supply voltage Vi input voltage IDD supply current II input current IO output current CONDITIONS note 1 MIN. MAX. UNIT −0.5 +6.5 V −0.5 VDD + 0.5 V − 100 mA − 10 mA 2 mA outputs − 10 mA 4 mA outputs − 20 mA VDD = 5 V±5% − 165 mW Ptot total power dissipation Tstg storage temperature −65 +150 °C Tamb operating ambient temperature −40 +85 °C Ves1 electrostatic handling note 2 −2000 +2000 V Ves2 electrostatic handling note 3 −200 +200 V Notes 1. Input voltage should not exceed 6.5 V unless otherwise specified. 2. Equivalent to discharging a 100 pF capacitor through a 1.5 kΩ series resistor. 3. Equivalent to discharging a 200 pF capacitor through a 0 Ω series resistor. DC CHARACTERISTICS VDD = 5 V ±10%; Tamb = −40 to +85 °C; unless otherwise specified. SYMBOL PARAMETER CONDITIONS MIN. TYP. MAX. UNIT Supply IDD quiescent supply current note 1 100 − − µA Inputs; notes 2 and 3 VIH HIGH level input voltage (CMOS) 0.7VDD − VDD V VIL LOW level input voltage (CMOS) 0 − 0.3VDD V VIH HIGH level input voltage (TTL) 2 − VDD V VIL LOW level input voltage (TTL) 0 − 0.8 V VtLH positive going threshold voltage (CMOS Schmitt trigger) − − 0.8VDD V VtHL negative going threshold voltage (CMOS Schmitt trigger) 0.2VDD − − V Vhys hysteresis voltage (CMOS Schmitt trigger) − 0.3VDD − V |II| input current − − 1 µA Rpull pull-up resistor 14 − 140 kΩ September 1994 41 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SYMBOL PARAMETER SAA2500 CONDITIONS MIN. TYP. MAX. UNIT Outputs VOH HIGH level output voltage IO = 4 mA VDD − 0.5 − − V VOL LOW level output voltage IO = 4 mA − − 0.5 V |IOZ| 3-state off leakage current − − 5 µA Notes 1. TDI, TMS, TRST and L3DATA not driven; TC0 and TC1 driven HIGH; all other inputs driven LOW. 2. Inputs TRST, TCK, TMS and TDI are TTL level compatible; all other inputs are CMOS level compatible. 3. Input TRST (pin 38) should be connected to ground for normal operation and connected to VDD for boundary scan testing. AC CHARACTERISTICS VDD = 5 V ±10%; Tamb = −40 to +85 °C; unless otherwise specified. SYMBOL PARAMETER CONDITIONS MIN. TYP. MAX. UNIT Clocks CI − − 10 pF MCLK24 = 1 − 24.576 − MHz MCLK24 = 0 − 12.288 − MHz − 12 − ns input capacitance MCLKIN fclk clock frequency tr rise time tf fall time − 12 − ns tH HIGH time 12 − − ns tL LOW time 12 − − ns fclk clock frequency − 22.579 − MHz tr rise time − 12 − ns tf fall time − 12 − ns tH HIGH time 12 − − ns tL LOW time 12 − − ns FSCLK384 = 1 − 384fs − Hz X22IN FSCLKIN fclk clock frequency FSCLK384 = 0 − 256fs − Hz tr rise time note 1 − 5 − ns tf fall time note 1 − 5 − ns tH HIGH time 12 − − ns tL LOW time 12 − − ns September 1994 42 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SYMBOL PARAMETER SAA2500 CONDITIONS MIN. TYP. MAX. UNIT CDSCL fclk clock frequency − − 768 kHz tr rise time note 1 − 12 − ns tf fall time note 1 − 12 − ns tH HIGH time note 2 Tm + 20 − − ns tL LOW time note 2 Tm + 20 − − ns clock frequency note 2 − − Hz CDMCL fclk 1 ----------8T m L3CLK tH HIGH time Tm + 10 − − ns tL LOW time Tm + 10 − − ns − MHz FSCLK fclk clock frequency MSEL = 00; FSCLKM = 0; fs = 44.1 kHz − MSEL = 00; FSCLKM = 0; fs = 48 kHz − f MCLKIN − -------------------2 MHz MSEL = 00; FSCLKM = 0; fs = 32 kHz − f MCLKIN − -------------------3 MHz − fMCLKIN − MHz − MHz − MHz f X22IN --------------2 MCLK fclk clock frequency SCK fclk clock frequency September 1994 FSCLK384 = 0; fSCK = 64fs − FSCLK384 = 1; fSCK = 64fs − 43 f FSCLK ----------------4 f FSCLK ----------------6 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SYMBOL PARAMETER SAA2500 CONDITIONS MIN. TYP. MAX. UNIT Inputs CI input capacitance − − 10 pF tsu1 set-up time TI to SCK HIGH CL < 25 pF 33 − − ns tsu2 set-up time CDM and CDMEF to CDMCL, CDS, CDSEF and CDSWA HIGH CL < 25 pF 42 − − ns tsu3 set-up time CDSSY to CDSCL HIGH Tm + 10 − − ns td1 delay time L3MODE to L3LCK LOW 0 − − ns th1 hold time TI to SCK HIGH 0 − − ns th2 hold time CDM, CDMEF to CDMCL, CDS, CDSEF and CDSWA HIGH 0 − − ns th3 hold time CDSSY to CDSCL HIGH 10 − − ns th4 input hold time 0 − − ns tL L3MODE LOW time Tm + 10 − − ns CO output capacitance − − 50 pF th hold time SD, WS, TO, TB and TA to SCK LOW notes 3 and 4 −22 − − ns th hold time CDMWS to CDMCL LOW notes 3 and 4 −15 − − ns td delay time SD, WS, TO, TB and TA to CDMCL LOW note 3 − − 10 ns td delay time CDMWS to CDMCL LOW note 3 − − 0 ns − − 50 pF Outputs Inputs/outputs CO output capacitance tsu input set-up time note 5 Tm + 10 − − ns th input hold time note 5 10 − − ns th output hold time notes 3 and 5 Tm − − ns td output delay time notes 3 and 5 − − 2Tm + 30 ns td2 3-state enable time notes 3 and 6 − − 20 ns td3 3-state stable time notes 3 and 6 − − 20 ns td5 3-state disable time L3DATA to L3MODE LOW note 3 − − 20 ns Notes 1. Short rise and fall times improve the tolerance of clocks to signal and supply noise. 4 2 2. If MCLK24 = 1 then T m = -------------------- else T m = -------------------- . f MCLKIN f MCLKIN 3. To allow for the effects of load capacitance the timing values should be de-rated by 0.5 ns/pF. 4. For maximum clock signal load of 25 pF. 5. L3DATA to L3CLK HIGH. 6. L3DATA to L3MODE HIGH. September 1994 44 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 handbook, full pagewidth CLOCK DATA DATA INPUT 50% VIH VIH V IL V IL t su t h1 DATA OUTPUT 70% 70% 30% 30% t h2 td Fig.23 Timing diagram. September 1994 45 MGB511 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 PACKAGE OUTLINE handbook, full pagewidth seating plane S 0.1 S 12.9 12.3 44 1.2 (4x) 0.8 34 B 33 1 pin 1 index 0.15 M B 0.8 11 23 12 10.1 9.9 12.9 12.3 0.40 0.20 22 0.8 0.40 0.20 1.2 (4x) 0.8 0.15 M A 10.1 9.9 X A 0.85 0.75 1.85 1.65 0.25 0.14 0.25 0.05 MBB944 - 2 detail X 0.95 0.55 2.10 1.70 0 to 10 o Dimensions in mm. Fig.24 Plastic quad flat package; 44 leads (lead length 1.3 mm); body 10 × 10 × 1.75 mm (QFP44; SOT307-2). September 1994 46 Philips Semiconductors Preliminary specification MPEG Audio Source Decoder SAA2500 applied to the substrate by screen printing, stencilling or pressure-syringe dispensing before device placement. SOLDERING Plastic quad flat-packs Several techniques exist for reflowing; for example, thermal conduction by heated belt, infrared, and vapour-phase reflow. Dwell times vary between 50 and 300 s according to method. Typical reflow temperatures range from 215 to 250 °C. BY WAVE During placement and before soldering, the component must be fixed with a droplet of adhesive. After curing the adhesive, the component can be soldered. The adhesive can be applied by screen printing, pin transfer or syringe dispensing. Preheating is necessary to dry the paste and evaporate the binding agent. Preheating duration: 45 min at 45 °C. Maximum permissible solder temperature is 260 °C, and maximum duration of package immersion in solder bath is 10 s, if allowed to cool to less than 150 °C within 6 s. Typical dwell time is 4 s at 250 °C. REPAIRING SOLDERED JOINTS (BY HAND-HELD SOLDERING IRON OR PULSE-HEATED SOLDER TOOL) Fix the component by first soldering two, diagonally opposite, end pins. Apply the heating tool to the flat part of the pin only. Contact time must be limited to 10 s at up to 300 °C. When using proper tools, all other pins can be soldered in one operation within 2 to 5 s at between 270 and 320 °C. (Pulse-heated soldering is not recommended for SO packages.) A modified wave soldering technique is recommended using two solder waves (dual-wave), in which a turbulent wave with high upward pressure is followed by a smooth laminar wave. Using a mildly-activated flux eliminates the need for removal of corrosive residues in most applications. For pulse-heated solder tool (resistance) soldering of VSO packages, solder is applied to the substrate by dipping or by an extra thick tin/lead plating before package placement. BY SOLDER PASTE REFLOW Reflow soldering requires the solder paste (a suspension of fine solder particles, flux and binding agent) to be DEFINITIONS Data sheet status Objective specification This data sheet contains target or goal specifications for product development. Preliminary specification This data sheet contains preliminary data; supplementary data may be published later. Product specification This data sheet contains final product specifications. Limiting values Limiting values given are in accordance with the Absolute Maximum Rating System (IEC 134). Stress above one or more of the limiting values may cause permanent damage to the device. These are stress ratings only and operation of the device at these or at any other conditions above those given in the Characteristics sections of the specification is not implied. Exposure to limiting values for extended periods may affect device reliability. Application information Where application information is given, it is advisory and does not form part of the specification. LIFE SUPPORT APPLICATIONS These products are not designed for use in life support appliances, devices, or systems where malfunction of these products can reasonably be expected to result in personal injury. Philips customers using or selling these products for use in such applications do so at their own risk and agree to fully indemnify Philips for any damages resulting from such improper use or sale. September 1994 47