MT90502 Multi-Channel AAL2 SAR Preliminary Datasheet Features • • • • • • • • • • DS5420 AAL2 Segmentation Reassembly device capable of simultaneously processing up to 1023 active CIDs (AAL2 Channel Identifier) and 1023 active VCs (Virtual Circuits). Support for up to 255 CIDs per VC. Maximum of 1023 CIDs. Implements AAL2 Common Part Sub-layer (CPS) functions specified in ITU I.363.2. Implements AAL2 Service Specific Convergence Sub-layer (SSCS) functions for G.711 PCM and G.726 ADPCM voice. Supports 44-byte PCM or ADPCM packet profiles specified in AF-VMOA-0145.00. CPS packet payload can support up to 64-bytes. Supports over-subscription of 10:1. H.100/H.110 compatible TDM bus for PCM or ADPCM data. Supports both master and slave TDM bus clock operation. TDM bus also supports compressed voice such as ITU G.723, G.728 and G.729 through HDLC encapsulation. Three UTOPIA Level 1 ports configurable as November 2001 Ordering Information MT90502AG 456 Pin Plastic BGA 0 to +70°C • • • • • • • PHY or ATM allowing for connection to an external AAL5 SAR processor, or for chaining multiple MT90502 devices. Ports A & B are configurable as a single 8-bit UTOPIA Level 2 PHY port with 5 ADDR lines. UTOPIA module provides a cell switching function with a header translation. Performs silence suppression for PCM and ADPCM. Comfort noise generation. Capability to inject and recover CPS packets through the CPU host processor bus. 8-bit or 16-bit microprocessor port, configurable to Motorola or Intel timing. Single rail 3.3 V, 456 PBGA. IEEE 1149 (JTAG) interface. Memory Bank A SSRAM (max: 1M x18) ISSUE 1 Memory Bank B (Optional) SDRAM (max: 8M x16) SSRAM (max: 1M x18) SDRAM (max: 8M x16) MT90502 Dual Memory Controller UTOPIA Module TDM Bus 4096 x 64 kbps TDM Module RX CPS Packets AAL2 SAR Receiver Port A Port B AAL2 SAR Transmitter TX CPS Packets Clock and Frame Pulse Clock Recovery and Generation CPU Interface Port C RxA Port TxA Port RxB Port TxB Port RxC Port TxC Port JTAG Interface Figure 1 - MT90502 Functional Block 1 MT90502 Preliminary Datasheet Applications • • • • • Gateway ATM Edge Switch Next Generation Digital Loop Carrier Multiservice Switching Platform 3rd Generation Mobile System Equipment Description The MT90502 Multi-Channel AAL2 SAR bridges a standard TDM (Time Division Multiplexed) backplane to a standard ATM (Asynchronous Transfer Mode) bus. The device provides the CPS (Common Part Sublayer) and SAR (Segmentation and Reassembly) engines. The MT90502 has the capability of simultaneously processing 1023 bi-directional CIDs (AAL2 Channel Identifiers) and 1023 bi-directional VCs (Virtual Circuits). The device can be connected directly to an H.110 compatible bus. The TDM bus consists of 32 bi-directional serial data streams operating at 2.048, 4.096, or 8.192 Mbits/s. The MT90502 directly accepts G.711 PCM (Pulse Code Modulation) and G.726 ADPCM (Adaptive Differential Pulse Code Modulation) traffic for packetisation. For these two data formats, the device also implements silence suppression and comfort noise generation. To support other voice compression algorithms, the MT90502 connects directly to commercially available DSPs through synchronous serial data streams. The Variable Bit Rate (VBR) traffic is HDLC encapsulated and carried over the serial data streams. The interface to the ATM domain is provided by three UTOPIA Level 1 ports (Ports A, B, and C). All three of the UTOPIA ports can operate in ATM (master) or PHY (slave) mode. Ports A and B combined, architects a compliant UTOPIA Level 2 Multi-PHY port. The MT90502 provides the capability of routing ATM cells to different UTOPIA interfaces, SAR engine or CPU. This feature can be used to connect another MT90502 (to support up to 2046 CID channels or 2046 phone calls) and/or to connect an external AAL1 and/or AAL5 SAR. 2 Preliminary Datasheet MT90502 1.0 Pin-out..................................................................................................................................7 1.1 Pin Description Tables ................................................................................................................................ 8 2.0 Functional Description .....................................................................................................15 2.1 CPU Interface............................................................................................................................................ 15 2.1.1 CPU Interrupts ..................................................................................................................................... 15 2.1.1.1 Example Interrupt Flow .................................................................................................................. 15 2.1.1.1.1 Interrupt Initialisation ................................................................................................................ 16 2.1.1.1.2 Interrupt Servicing ................................................................................................................... 16 2.1.2 Intel/Motorola Interface ........................................................................................................................ 16 2.1.2.1 Extended Indirect Accessing .......................................................................................................... 18 2.1.2.1.1 Extended Indirect Writes ......................................................................................................... 18 2.1.2.1.2 Extended Indirect Reads ......................................................................................................... 19 2.1.2.2 Extended Direct Accessing ............................................................................................................ 19 2.1.2.2.1 Extended Direct Writes ............................................................................................................ 19 2.1.2.2.2 Extended Direct Reads ............................................................................................................ 19 2.1.3 MT90502 Reset Procedure.................................................................................................................. 20 2.2 TDM Transmission .................................................................................................................................... 21 2.2.1 Low-Latency Loopback Channels........................................................................................................ 22 2.2.2 Treatment of PCM/ADPCM Data ......................................................................................................... 22 2.2.2.1 CPS-Packet Length ........................................................................................................................ 24 2.2.2.2 TDM Data Formats ......................................................................................................................... 24 2.2.2.3 Phase Alignment ............................................................................................................................ 29 2.2.2.4 PCM/ADPCM CPS-Packet Assembly Structure ............................................................................ 31 2.2.3 Treatment of HDLC Data ..................................................................................................................... 32 2.2.3.1 HDLC Streams ............................................................................................................................... 32 2.2.3.2 Address Bytes ................................................................................................................................ 32 2.2.3.3 Control Bytes and Length ............................................................................................................... 34 2.2.3.4 “Raw” AAL2 CPS-Packets ............................................................................................................. 34 2.2.4 CPS-Packet Final Assembly ................................................................................................................ 35 2.2.4.1 CPU CPS-Packets ......................................................................................................................... 36 2.2.4.2 CPS-Packet Descriptor Queue ...................................................................................................... 38 2.2.4.3 TDM Frame Buffer ......................................................................................................................... 39 2.3 TX SAR ..................................................................................................................................................... 40 2.3.1 Overview.............................................................................................................................................. 40 2.3.2 AAL2 Cell Assembly Process .............................................................................................................. 40 2.3.2.1 AAL2 Cell Assembly Procedure ..................................................................................................... 42 2.3.3 AAL0 Cells ........................................................................................................................................... 43 2.4 RX SAR ..................................................................................................................................................... 44 2.4.1 RX AAL2 VC Structure ........................................................................................................................ 44 2.4.2 CID Structure ....................................................................................................................................... 45 2.4.3 CPS-Packet Disassembly Structures .................................................................................................. 46 2.4.4 CPS-Packet Loss Compensation ........................................................................................................ 52 2.4.5 CPU CPS-Packets ............................................................................................................................... 52 2.4.6 Treatment of Data Cells ....................................................................................................................... 53 2.4.7 Errors and Events ................................................................................................................................ 53 2.5 TDM Reception ......................................................................................................................................... 56 2.5.1 Overview.............................................................................................................................................. 56 2.5.2 RX Channel Association Memory ........................................................................................................ 57 2.5.3 RX Channel Underrun Condition ......................................................................................................... 57 2.5.4 Compression........................................................................................................................................ 59 2.5.5 HDLC ................................................................................................................................................... 60 2.6 UTOPIA ..................................................................................................................................................... 62 2.6.1 Overview.............................................................................................................................................. 62 3 MT90502 Preliminary Datasheet 2.6.2 UTOPIA Interfaces............................................................................................................................... 63 2.6.3 LED Operation ..................................................................................................................................... 63 2.6.4 Errors on Received Cells ..................................................................................................................... 63 2.6.5 Cell Routing ......................................................................................................................................... 64 2.6.5.1 Mask & Match Process .................................................................................................................. 64 2.6.5.2 Look-Up Tables Entries ................................................................................................................. 65 2.6.5.3 LUT Addressing ............................................................................................................................. 66 2.6.6 UTOPIA Clocks.................................................................................................................................... 67 2.6.7 External Interface Signals.................................................................................................................... 69 2.6.8 UTOPIA Flow Control .......................................................................................................................... 69 2.7 H.100/H.110 Interface ................................................................................................................................70 2.7.1 Overview.............................................................................................................................................. 70 2.7.2 Bus Signaling....................................................................................................................................... 70 2.7.3 H.100/H.110 Slave............................................................................................................................... 70 2.7.4 Operating as a Slave ........................................................................................................................... 71 2.7.5 Operating as a Master ......................................................................................................................... 71 2.7.6 H.100/H.110 Clock Selection Guide .................................................................................................... 72 2.8 Clock Recovery ..........................................................................................................................................75 2.8.1 Overview.............................................................................................................................................. 75 2.8.1.1 Adaptive Clock Recovery Modules ................................................................................................ 75 2.8.1.1.1 adapx_ref clock generation ...................................................................................................... 75 2.8.1.2 Multiplexers .................................................................................................................................... 75 2.8.2 Adaptive Clock Recovery Modules ...................................................................................................... 75 2.8.2.1 adapx_ref Clock Generation .......................................................................................................... 78 2.8.3 Multiplexers.......................................................................................................................................... 78 2.9 Silence Suppression ..................................................................................................................................83 2.9.1 Overview.............................................................................................................................................. 83 2.9.2 Simple Silent Suppression................................................................................................................... 83 2.9.2.1 Silent Bit Indication ........................................................................................................................ 83 2.9.2.2 Last Byte Indication ........................................................................................................................ 83 2.9.2.3 Match and Mask Determines Silence ............................................................................................ 83 2.9.3 Complex Silent Suppression................................................................................................................ 84 2.9.3.1 Complex Silent Suppression Operation ......................................................................................... 85 2.9.3.1.1 PCM Law Table ........................................................................................................................ 85 2.9.3.1.2 DC Offset Calculation ............................................................................................................... 86 2.9.3.1.3 Signal Energy Calculation ........................................................................................................ 86 2.9.3.2 CPS-Packet Silence State ............................................................................................................. 87 2.9.3.2.1 Silence Suppression State Table ............................................................................................. 87 2.9.3.2.2 SID Transmission Operation .................................................................................................... 87 2.9.3.2.3 SID Reception Operation ......................................................................................................... 87 2.9.4 Voice/Silence Timer............................................................................................................................. 90 2.10 HDLC .......................................................................................................................................................94 2.10.1 HDLC Overview ................................................................................................................................. 94 2.10.2 HDLC Format..................................................................................................................................... 94 2.10.3 HDLC Bit-Wise Format ...................................................................................................................... 97 2.10.4 HDLC Byte-Wise Format ................................................................................................................... 97 2.11 Memory ....................................................................................................................................................97 2.11.1 Memory Map...................................................................................................................................... 97 2.11.2 Memory Structures ............................................................................................................................ 98 2.11.3 Mem_Clk and Upclk......................................................................................................................... 103 2.11.4 Memory Controller ........................................................................................................................... 104 2.11.4.1 Overview .................................................................................................................................... 104 2.11.4.2 Functionality ............................................................................................................................... 104 2.11.5 Initializing SSRAM and SDRAM ...................................................................................................... 104 2.11.6 Memory Configuration ..................................................................................................................... 105 4 Preliminary Datasheet MT90502 3.0 Register List ....................................................................................................................107 3.1 CPU Register .......................................................................................................................................... 107 3.2 Main Registers ........................................................................................................................................ 110 3.3 TX Registers............................................................................................................................................ 125 3.4 RX Registers ........................................................................................................................................... 126 3.5 TX TDM Registers................................................................................................................................... 131 3.6 UTOPIA Registers................................................................................................................................... 136 3.7 H.100/H.110 Registers ............................................................................................................................ 152 3.8 Miscellaneous Registers ......................................................................................................................... 166 3.9 RX TDM Registers .................................................................................................................................. 169 4.0 Electrical Specification...................................................................................................171 4.1 DC Characteristics .................................................................................................................................. 171 4.2 AC Characteristics................................................................................................................................... 173 4.3 Intel/Motorola Interface............................................................................................................................ 173 4.3.1 UTOPIA Interface .............................................................................................................................. 181 4.3.2 External Memory Interface................................................................................................................. 181 4.3.3 H.100/H.110 Interface........................................................................................................................ 182 5.0 Glossary of Terminology................................................................................................186 5.1 Standard Terms and Abbreviations......................................................................................................... 186 5.2 Terms specific to AAL2 ........................................................................................................................... 187 5.3 Terms specific to this specification.......................................................................................................... 187 5.4 Register types ......................................................................................................................................... 187 5.5 Units and Conventions ............................................................................................................................ 188 6.0 Mechanical Drawing .......................................................................................................189 5 MT90502 6 Preliminary Datasheet MT90502 Preliminary Datasheet 1.0 Pin-out 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 A B C D E F G H J K L M N P R T U V W Y AA AB AC AD AE AF Figure 2 - 456 PBGA The following tables contain each pin of the MT90502’s main functional areas. A description of each pin is also provided. Notes: • • • • • • • • All outputs are +3.3 VDC. All input and output pins that are designated (F) can withstand 5 VDC being applied to them. All input and output pins that are designated (F) are tested with a 50 pF load unless otherwise specified. Designations under the “rst” (reset condition) table column are: X = undefined; Z = high impedance; 1 = high (+3.3 V DC). I/O types include: Output (O), Input (I), Bidirectional (I/O), Power (PWR) and Ground (GND). All buses have pins listed in order from MSB to LSB. Pins with more than one function have their functions numbered. Unused H.100/H.110 input pins should be tied high with an external pull-up. 7 MT90502 1.1 Preliminary Datasheet Pin Description Tables Pin rst Name I/O Type Description AC3 upclk I LVTTL (F) CPU Clock. F25, F23, J24, J23 cpu_mode[3:0] I LVTTL (F) CPU Interface Mode Select (4 bits). AA3, AA4, Y1, Y2, Y3, Y4, W1, W2, W3, W4, V1, V2, V3, V4, U1 cpu_a[14:0] I LVTTL (F) CPU Address bus. T2 cpu_wr_r/w I LVTTL (F) Intel Write or Motorola Read/Write T1 cpu_rd_ds I LVTTL (F) Intel Read or Motorola Data Strobe U4 cpu_ale I LVTTL (F) Address Latch Enable T4 cpu_a_das I LVTTL (F) Direct Access Select. ‘1’ selects the direct address space. ‘0’ selects the indirection registers contained in the CPU interface. This pin can be connected to the MSB of an address bus. U3 cpu_cs I LVTTL (F) CPU chip select T3, R1, R2, R3, R4, P1, P2, P3, P4, N1, N2, N3, N4, M1, M2, M3 Z cpu_d[15:0] I/O LVTTL 6 mA (F) CPU Data bus U2 Z cpu_rdy_dtack I/O LVTTL 6 mA (F) Intel Ready or Motorola Data Ack. AC2 Z interrupt1 O LVTTL 6 mA (F) Interrupt 1 (configurable polarity) AC1 Z interrupt2 O LVTTL 6 mA (F) Interrupt 2 (configurable polarity) Table 1 - CPU Bus Interface Pins rst Name I/O Type Description C21 Z txa_led I/O LVTTL 12 mA (F) UTOPIA port A TX LED A19 Z rxa_led I/O LVTTL 12 mA (F) UTOPIA port A RX LED LVTTL (F) UTOPIA port A PHY alarm D21 rxa_alarm I D12 Z txa_clk I/O LVTTL 6 mA (F) UTOPIA port A TX clock D14 Z txa_soc O LVTTL 6 mA (F) UTOPIA port A TX Start of Cell A13 Z 1. txa_enb O LVTTL 6 mA (F) 1. UTOPIA port A TX Enable in ATM mode 2. UTOPIA port A TX Cell Available in PHY mode I LVTTL (F) 1. UTOPIA port A TX Cell Available in ATM mode 2. UTOPIA port A TX Enable in PHY mode 2. txa_clav B13 1. txa_clav 2. txa_enb C15, B15, A15, C14, B14, A14, D13, C13 Z txa_d[7:0] O LVTTL 6 mA (F) UTOPIA port A TX Data bus D15 Z txa_prty O LVTTL 6 mA (F) UTOPIA port A TX Parity A9 Z rxa_clk I/O LVTTL 6 mA (F) UTOPIA port A RX clock rxa_soc I LVTTL (F) UTOPIA port A RX Start of Cell C12 Table 2 - UTOPIA Interface Pins 8 MT90502 Preliminary Datasheet Pins B9 rst Z Name 1. rxa_enb I/O Type O LVTTL 6 mA (F) 1. UTOPIA port A RX Enable in ATM mode 2. UTOPIA port A RX Cell Available in PHY mode I LVTTL (F) 1. UTOPIA port A RX Cell Available in ATM mode 2. UTOPIA port A RX Enable in PHY mode 2. rxa_clav C9 1. rxa_clav Description 2. rxa_enb A12, C11, B11, A11, D10, C10, B10, A10 rxa_d[7:0] I LVTTL (F) UTOPIA port A RX Data bus B12 rxa_prty I LVTTL (F) UTOPIA port A RX Parity D17 Z txb_led I/O LVTTL 12 mA (F) UTOPIA port B TX LED C17 Z rxb_led I/O LVTTL 12 mA (F) UTOPIA port B RX LED LVTTL (F) UTOPIA port B PHY alarm B17 rxb_alarm I D5 Z txb_clk I/O LVTTL 6 mA (F) UTOPIA port B TX clock D8 Z txb_soc O LVTTL 6 mA (F) UTOPIA port B TX Start of Cell A6 Z 1. txb_enb O LVTTL 6 mA (F) 1. UTOPIA port B TX Enable in ATM mode 2. UTOPIA port B TX Cell Available in PHY mode I LVTTL (F) 1. UTOPIA port B TX Cell Available in ATM mode 2. UTOPIA port B TX Enable in PHY mode 2. txb_clav B6 1. txb_clav 2. txb_enb B8, A8, D7, C7, B7, A7, D6, C6 Z txb_d[7:0] O LVTTL 6 mA (F) UTOPIA port B TX Data bus C8 Z txb_prty O LVTTL 6 mA (F) UTOPIA port B TX Parity E4 Z rxb_clk I/O LVTTL 6 mA (F) UTOPIA port B RX clock I LVTTL (F) 1. UTOPIA port B RX Start of Cell 2. txa_addr[4] when port A and B are combined O LVTTL 6 mA (F) 1. UTOPIA port B RX Enable in ATM mode 2. UTOPIA port B RX Cell Available in PHY mode I LVTTL (F) 1. UTOPIA port B RX Cell Available in ATM mode 2. UTOPIA port B RX Enable in PHY mode I LVTTL (F) 1. UTOPIA port B RX Data bus [4:0] 2. rxa_addr[4:0] when port A and B are combined I LVTTL (F) 1. UTOPIA port B RX Data bus [7:5] 2. txa_addr[2:0] when port A and B are combined I LVTTL (F) 1. UTOPIA port B RX Parity. 2. txa_addr[3] when port A and B are combined. A4 1. rxb_soc 2. txa_addr[4] D3 Z 1. rxb_enb 2. rxb_clav C1 1. rxb_clav 2. rxb_enb A2, D4, A1, B1, C2 1. rxb_d[4:0] 2. rxa_addr[4:0] A3, B3, B2 1. rxb_d[7:5] 2. txa_addr[2:0] B4 1. rxb_prty 2. txa_addr[3] Table 2 - UTOPIA Interface Pins (continued) 9 MT90502 Preliminary Datasheet Pins rst Name I/O Type Description J4 Z txc_clk I/O LVTTL 6 mA (F) UTOPIA port C TX clock D2 Z txc_soc O LVTTL 6 mA (F) UTOPIA port C TX Start of Cell G1 Z 1. txc_enb O LVTTL 6 mA (F) 1. UTOPIA port C TX Enable in ATM mode 2. UTOPIA port C TX Cell Available in PHY mode I LVTTL (F) 1. UTOPIA port C TX Cell Available in ATM mode 2. UTOPIA port C TX Enable in PHY mode 2. txc_clav G2 1. txc_clav 2. txc_enb E3, E2, E1, F3, F2, F1, G4, G3 Z txc_d[7:0] O LVTTL 6 mA (F) UTOPIA port C TX Data bus D1 Z txc_prty O LVTTL 6 mA (F) UTOPIA port C TX Parity L1 Z rxc_clk I/O LVTTL 6 mA (F) UTOPIA port C RX clock rxc_soc I LVTTL (F) UTOPIA port C RX Start of Cell 1. rxc_enb O LVTTL 6 mA (F) 1. UTOPIA port C RX Enable in ATM mode 2. UTOPIA port C RX Cell Available in PHY mode I LVTTL (F) 1. UTOPIA port C RX Cell Available in ATM mode 2. UTOPIA port C RX Enable in PHY mode H3 L2 Z 2. rxc_clav L3 1. rxc_clav 2. rxc_enb H1, J3, J2, J1, K4, K3, K2, K1 rxc_d[7:0] I LVTTL (F) UTOPIA port C RX Data bus H2 rxc_prty I LVTTL (F) UTOPIA port C RX Parity Table 2 - UTOPIA Interface Pins (continued) Pin rst Name I/O Type Description A22 Z ct_c8_a I/O LVTTL 24 mA (F) H.100 8MHz clock A A21 Z ct_c8_b I/O LVTTL 24 mA (F) H.100 8MHz clock B A24 Z ct_frame_a I/O LVTTL 24 mA (F) H.100 Frame A B22 Z ct_frame_b I/O LVTTL 24 mA (F) H.100 Frame B A17 Z ct_netref1 I/O LVTTL 24 mA (F) H.100 Netref 1 A16 Z ct_netref2 I/O LVTTL 24 mA (F) H.100 Netref 2 D18 Z ct_mc I/O LVTTL 24 mA (F) H.100 Message Channel. If this pin is connected to the H100 bus, gpio[2] must be used to drive it. C25, D25, E26, E25, E24, F26, F24, G26, G25, G24, G23, H24, J26, J25, K26, K24, L23, L24, M25, M24, N25, P24, P23, R24, R25, T26, U23, U26, V23, V24, V26, W23 Z ct_d[31:0] I/O PCI (F) H.100 serial data bus Table 3 - H.100/H.110 Interface Pins 10 MT90502 Preliminary Datasheet Pin rst Name I/O Type Description B20 Z sclk O LVTTL 24 mA (F) H.100 SCBUS system clock C20 Z sclkx2 O LVTTL 24 mA (F) H.100 SCBUS system clock x 2 C18 Z c16p O LVTTL 24 mA (F) H.100 H-MVIP 16 MHz clock positive output A18 Z c16n O LVTTL 24 mA (F) H.100 H-MVIP 16 MHz clock negative output D20 Z c2 O LVTTL 24 mA (F) H.100 MVIP-90 2 MHz clock C19 Z c4 O LVTTL 24 mA (F) H.100 MVIP-90 4 MHz clock B21 Z frcomp O LVTTL 24 mA (F) H.100 compatibility frame pulse Table 3 - H.100/H.110 Interface Pins (continued) Pin rst AF2 Name mem_clk I/O I Type Description LVTTL memory clock (common to both bank A and B). It is also employed as the internal master clock. AF11, AD10, AF10, AD9, AF9, AE8, AC7, AE7, AD7, AF8, AD8, AE9, AC9, AE10, AC10, AE11 Z mema_d[15:0] I/O LVTTL 6 mA SDRAM/SSRAM bank A data bus AD11, AF7 Z mema_p[1:0] I/O LVTTL 6 mA SDRAM/SSRAM bank A parity bits AF4, AE3 1 mema_cs[1:0] O LVTTL 6 mA SSRAM bank A Chip selects 1, 0 AE5 Z mema_r/w O LVTTL 6 mA SSRAM bank A Read/Write AE4, AF5 Z mema_bws[1:0] O LVTTL 6 mA SSRAM bank A Byte Write Selects 1:0 AE12 Z mema_cas O LVTTL 6 mA SDRAM bank A Column Address Select AD12 Z mema_ras O LVTTL 6 mA SDRAM bank A Row Address Select AF12 Z mema_we O LVTTL 6 mA SDRAM bank A Write Enable AD6, AE6, AF6, AD5, AF3, AC12, AE13, AF13, AF14, AD13, AE14, AC14, AE15, AC15, AE16, AF16, AD15, AF15, AD14 mema_a[18:0] O LVTTL 6 mA SDRAM/SSRAM bank A address bus AE22, AD22, AF24, Z AE24, AD25, AC25, AB24, AB26, AB25, AC26, AD26, AE26, AE23, AF23, AD21, AE21 memb_d[15:0] I/O LVTTL 6 mA SDRAM/SSRAM bank B data bus AF22, AA24 Z memb_p[1:0] I/O LVTTL 6 mA SDRAM/SSRAM bank B parity bits W25, W26 1 memb_cs[1:0] O LVTTL 6 mA SSRAM bank B Chip selects 1,0 Y25 Z memb_r/w O LVTTL 6 mA SSRAM bank B Read/Write W24, Y26 Z memb_bws[1:0] O LVTTL 6 mA SSRAM bank B Byte Write Selects 1,0 AC20 Z memb_cas O LVTTL 6 mA SDRAM bank B Column Address Select AD20 Z memb_ras O LVTTL 6 mA SDRAM bank B Row Address Select Table 4 - Memory Interface Pins 11 MT90502 Preliminary Datasheet AF21 Z AA25, AA26, Y23, Y24, AC21, AE20, AC19, AF20, AE19, AD19, AF19, AE18, AC17, AE17, AD16, AF17, AD17, AF18, AD18 memb_we O LVTTL 6 mA SDRAM bank B Write Enable memb_a[18:0] O LVTTL 6 mA SDRAM/SSRAM bank B address bus Table 4 - Memory Interface Pins (continued) Pin rst AA1 AF26, AC24, AB23, AA23, T24, R26, N23, M23 Z Name I/O Type reset I LVTTL (F) gpio[7:0] I/O Description Global Hardware Reset (active low) LVTTL 6 mA General Purpose I/Os (F) Table 5 - Miscellaneous Pins Pin Name I/O Type Description A26 trst I LVTTL (F) JTAG Test Reset D22 tck I LVTTL (F) JTAG Test Clock A25 tdi I LVTTL (F) JTAG Test Data In C23 tms I LVTTL (F) JTAG Test Mode Select A23 tdo O LVTTL 6 mA (F) JTAG Test Data Out Table 6 - JTAG Pins Pin Name I/O Type Description AB2 pll_clk I LVTTL (F) A5 PLLVDD1 PLL Power Pin (3.3V). Place one .01uF, one 10uF and one 100pF capacitor near PLL_VDD1 / PLL_GND1 pins. AB3 PLLVDD2 PLL Power Pin (3.3V). Place one .01uF, one 10uF and one 100pF capacitor near PLL_VDD2 / PLL_GND2 pins. AE2 PLLVDD3 PLL Power Pin (3.3V). Place one .01uF, one 10uF and one 100pF capacitor near PLL_VDD3 / PLL_GND3 pins. B5 PLLGND1 PLL Ground Pin (0V). AB1 PLLGND2 PLL Ground Pin (0V). AE1 PLLGND3 PLL Ground Pin (0V). PLL reference clock used for H.100 Master clock generation Table 7 - Phase Lock Loop (PLL) Pins VSS (0V): D9, D11, E5, E6, E9, E10, E13, E14, E17, E18, E21, E22, F4, F5, F22, H4, J5, J22, K5, K22, L4, L11, L12, L13, L14, L15, L16, M4, M11, M12, M13, M14, M15, M16, N5, N11, N12, N13, N14, N15, N16, N22, P5, P11, P12, P13, P14, P15, P16, P22, R11, R12, R13, R14, R15, R16, T11, T12, T13, T14, T15, T16, U5, U22, V5, V22, AA5, AA22, AB5, AB6, AB9, AB10, AB13, AB14, AB17, AB18, AB21, AB22, AF25. Table 8 - VSS (0V) Pins VDD3 (3.3 V): C3, C24, D23, E7, E8, E11, E12, E15, E16, E19, E20, G5, G22, H5, H22, L5, L22, M5, M22, R5, R22, T5, T22, W5, W22, Y5, Y22, AB7, AB8, AB11, AB12, AB15, AB16, AB19, AB20, AC4, AC23, AD3, AD24, AF1 Table 9 - VDD3 (3.3V) Pins 12 MT90502 Preliminary Datasheet Note: If MT90502 is only connected to 3.3V devices on the H.100/H.110 bus, then 3.3V can be connected to the following pins. If any devices are 5V then these pins must be connected to 5V. VDD5 (3.3 V or 5.0 V): B25, D24, H26, L26, P25, U24 Table 10 - VDD5 (3.3V or 5.0V) Pins Not Connected (Leave Floating): A20, B16, B18, B19, B23, B24, B26, C4, C5, C16, C22, C26, D16, D19, D26, E23, H23, H25, K23, K25, L25, M26, N24, N26, P26, R23, T23, T25, U25, V25, AA2, AB4, AC5, AC6, AC8, AC11, AC13, AC16, AC18, AC22, AD1, AD2, AD4, AD23, AE25 Table 11 - Not Connected (Leave Floating) Pins Type Input Output I/O Power CPU Bus 25 2 17 44 UTOPIA Port A 13 12 4 29 UTOPIA Port B 13 12 4 29 UTOPIA Port C 12 12 2 26 H.100/H.110 0 7 39 46 Memory 1 54 36 91 Miscellaneous 1 0 8 9 JTAG 4 1 0 5 PLL 1 0 0 Power Ground 3 3 46 79 No Connect 71 101 110 48 Total 7 46 Ground Total: N/C 81 79 45 45 45 456 Note: Pins are listed under their main (default) function for UTOPIA ports A and B Table 12 - Pinout Summary 13 MT90502 14 Preliminary Datasheet Preliminary Datasheet 2.0 Functional Description 2.1 CPU Interface MT90502 The MT90502 CPU module provides an interface permitting programmability from an external microprocessor or CPU. The CPU module permits read/write access to the MT90502’s internal registers, internal memory and external memories. The CPU interface is comprised of the following: [1] Direct Access Select (DAS) as the MSB bit concatenated with a 15-bit address bus [2] 16-bit data bus [3] 2 interrupt signals [4] associated control signals. The CPU interface can be configured to operate in either Intel or Motorola mode. The MT90502 supports both 8-bit or 16-bit data bus and multiplexed or non-multiplexed address/data pins. If the CPU is operating in 16-bit byte mode with the LSB of its address bus as a byte field, then the cpu_a[14:0] pins of the MT90502 can be connected to the a[15:1] pins of the CPU. If both the MT90502 and the CPU are in 16-bit word mode, then the cpu_a[14:0] pins should be connected to the a[14:0] pins of the CPU. A reduced set of registers, the ‘CPU Interface Registers’ (000h to 00Ah), are employed to optimise access time and to permit the CPU to execute indirect read/write accesses. The CPU also engages these registers to perform direct read/write accesses. The MT90502 and CPU timing relationship is described in Section 4.3, “Intel/Motorola Interface,” on page 173. The CPU Control Register (100h) provides a software reset capability that allows the CPU to reset the MT90502 except for the CPU interface. The CPU interface can only be reset by a hardware reset. 2.1.1 CPU Interrupts The CPU interface provides a programmable global interrupt capability. The interrupt signal names are ‘interrupt1’ and ‘interrupt2’, pins AC2 and AC1 respectively. Both interrupts have programmability to select their polarity (open collector drive) via registers ‘interrupt1_conf’ and ‘interrupt2_conf’, addresses 214h and 216h respectively. Interrupt1 provides the capability to program a minimum acceptable period between interrupts. The period is programmed in µs units via the ‘interrupt1_conf’ register. This provides a ‘frequency interrupt controller’ facility and masks the assertion of further interrupts until the specified period of time has elapsed. The mask period will start when the interrupt1_treated [15] bit in the register ‘interrupt_flags’ (address 210h) is set. When Interrupt2 is enabled it is always activated when an interrupt condition occurs. The operation of the CPU interrupt network is common for all modules. When an interrupt is asserted, an interrupt flag is set to identify the module where the interrupt was generated. Each module has one or more Interrupt Enable Registers where a set interrupt enable bit enables an interrupt source. On completion of the ISR the interrupt must be cleared as the interrupt will remain asserted until it is de-asserted by the user. All Interrupt Enable Registers have a mirror Status Register. Hence, the bit positioning of the interrupt enables and the corresponding status bits are identical. Note: Interrupt pins are always tri-stated when inactive. 2.1.1.1 Example Interrupt Flow Upon the initialisation of the Global Interrupt pins the following methodology is adopted to identify the source of the interrupt. For this example Interrupt2 is employed and the CPU module will be the source of the interrupt. 15 MT90502 Preliminary Datasheet 2.1.1.1.1 Interrupt Initialisation • • • Set interrupt polarity, register interrupt2_conf[15:14]. Enable Interrupt2 for the CPU module by setting bit 0 in interrupt2_enable register (21Ah). The MT90502 will generate an interrupt on interrupt2 according to the modules enabled in interrupt2_enable. Set the individual CPU interrupt sources by enabling the respective bits in the ‘status0_ie’ register (104h). Within the ‘status0_ie’ register there are two possible interrupt sources: internal_read_timeout_ie and cpu_read_done_ie. In the MT90502 Register Description the interrupt bits are labelled IE (Interrupt Enable) in the ‘Type’ column. This register offers the facility to mask/disable unwanted interrupts. 2.1.1.1.2 Interrupt Servicing When interrupt2 is asserted (‘interrupt2’ pin): • • • Read the interrupt flags to ascertain the module raising the interrupt. The CPU module interrupt flag is located in register interrupt_flags (210h), this bit is named cpureg_interrupt_active. If the cpureg_interrupt_active bit is set, locate the source of the CPU interrupt by reading the ‘status0’ at 102h, either internal_read_timeout and/or cpu_read_done. To de-assert the interrupt the user must write a 1 to register 102h bits 3 and/or 4, internal_read_timeout and cpu_read_done respectively. Only then will the interrupt be de-asserted. 2.1.2 16 Intel/Motorola Interface 000h Control Register 004h Read/Write Data Register 008h Address High Register 00Ah Address Low Register The MT90502 CPU interface supports both Intel and Motorola modes with an 8-bit or 16-bit data bus and multiplexed or non-multiplexed address/data pins. The MT90502 supports 68MB of addressable space, therefore indirection addressing is necessary. The CPU interface directly addresses four control words, delegated for indirection accessing. The Indirection Register contents are shown in Table 14 to Table 17 inclusively. The timing relationship pertaining to the CPU Interface Registers and Extended Access is defined in Section 4.3 on page 173. MT90502 Preliminary Datasheet cpu_mode [3:0] Interface Type ale address pins data pins direct_access 0000 Intel, 16 bit data bus, non-multiplexed cpu_ale* cpu_a[14:0]** (word address) cpu_d[15:0] cpu_a_das 0001 Intel, 16 bit data bus, multiplexed cpu_ale* cpu_d[15:1]** (word address) cpu_d[15:0] cpu_a_das 0010 Intel, 8 bit data bus, non-multiplexed cpu_ale* cpu_a[14:0]** (byte address) cpu_d[7:0] cpu_a_das 0011 Intel, 8 bit data bus, multiplexed cpu_ale* cpu_a[14:8]** & cpu_d[7:0] (byte address) cpu_d[7:0] cpu_a_das 0100 Motorola, 16 bit data bus, non-multiplexed cpu_ale* cpu_a[14:0]** (word address) cpu_d[15:0] cpu_a_das 0101 Motorola, 16 bit data bus, multiplexed cpu_ale* cpu_d[15:1]** (word address) cpu_d[15:0] cpu_a_das 0110 Motorola, 8 bit data bus, non-multiplexed cpu_ale* cpu_a[14:0]** (byte address) cpu_d[7:0] cpu_a_das 0111 Motorola, 8 bit data bus, multiplexed cpu_ale* cpu_a[14:8]**& cpu_d[7:0] (byte address) cpu_d[7:0] cpu_a_das 1xxx Reserved * The cpu_ale pin is interpreted in all modes. However, it is not necessary in the non-multiplexed modes and can be tied to VCC. * *The address placed on the cpu_a[14:0] pin is a word address in 16-bit mode and a byte address in 8-bit mode. The address, when placed on the cpu_d pins, is always a byte address. Table 13 - CPU Interface Mode Selection Field Bit Type Reset Description 6:0 RW 01h Number of words to prefetch: 00h = 128; 01h= 1; 02h = 2, etc. This field is set to 01h for individual (non-sequential) reads. reserved 7 RO 0h Reserved. access_req 8 PC 0h Set by software when an extended access is initialized. Reset by hardware when the access is completed. Used for extended indirect access only. 11:9 RW 0h Extended address bits 3:1. Invalid for extended direct access. write_enable 13:12 RW 0h Active high write enables. 00 = read access. 01 = write to lower byte. 10 = write to upper byte. 11 = write to entire word. This field is ignored for extended direct reads and all byte wide extended direct accesses. extended_parity 15:14 RW 0h Read/Write Parity bits. read_burst_length extended_a[3:1] Table 14 - Control Register (000h) 17 MT90502 Preliminary Datasheet Field extended_data[15:0] Bit Type 15:0 Reset RW 0000h Description The extended indirect read/write data word register. Invalid for extended direct access. Table 15 - Read/Write Data Register (004h) Field Bit Type Reset extended_a[32:20] 12:0 RW 000h Reserved 15:13 RO 0h Description Upper extended address [32:20]. Table 16 - Address High Register (008h) Field Bit Type Reset extended_a[19:4] 15:0 RW 0000h Description Lower extended address [19:4]. In extended direct addressing, bits 19:16 are employed for 16-bit data bus; bits 19:15 are employed or 8-bit data bus. Table 17 - Address Low Register (00Ah) 2.1.2.1 Extended Indirect Accessing Extended Indirect Accessing solely employees the registers 000h to 00Ah to access the 68MB of addressable memory space. Synopsis: The access address is written to registers 000h, 008h, and 00Ah. The MT90502 will read/write to that address and fetch/place the data value from/to register 004h. For all extended indirect accesses the CPU_A_DAS bit will be held low. 2.1.2.1.1 Extended Indirect Writes The following steps must be executed to perform an extended indirect write: 1. 2. 3. 4. 5. Write the upper address, extended_a[32:20], to register 008h. This write may not be required if previous value holds true. Write the lower address, extended_a[19:4], to register 00Ah. This write may not be required if previous value holds true. Write the write data, extended_data[15:0], to register 004h. This write may not be required if previous value holds true. Write write_enable, extended_parity, access_req=‘1’ and extended_a [3:1] in a single access to register 000h. Read the access_req bit located in the Control Register[8] to determine when the write cycle has completed. The software will set access_req [8] in register 000h (see Step 4 above). The hardware will reset the bit when the data write cycle has completed. Therefore, this bit can be polled to determine when the data write cycle has completed. 18 Preliminary Datasheet MT90502 2.1.2.1.2 Extended Indirect Reads 1. 2. 3. 4. Write the upper address, extended_a[32:20], to register 008h. This write may not be required if previous value holds true. Write the lower address, extended_a[19:4], to register 00Ah. This write may not be required if previous value holds true. Write write_enable = 00, access_req=‘1’ and extended_a [3:1] in a single access to register 000h. Wait until access_req is cleared, then read the data from the data field extended_data[15:0], register 004h. Optional parity check may be ascertained by performing a read on the extended_parity[15:14], register 000h. The software will set access_req[8] register 000h and the hardware will reset it when the data is ready to be read from register 004h. 2.1.2.2 Extended Direct Accessing Extended Direct Accessing employs the high and low address registers to perform page addressing. The address within the page is provided directly by the CPU address bus. Similarly, the data is fetched/placed directly on the CPU data bus. Synopsis: The access address is written to registers 008h and 00Ah. This will perform only the page addressing. Upon assertion of the address within the page, the MT90502 will read/write the data with respect to that address. The CPU_A_DAS bit is set when the data read/write occurs. When operating the CPU interface in direct mode with a 16-bit data bus, extended_a[19:16], are employed for the lower address word register 00Ah. However, when operating the CPU interface in direct mode with an 8-bit data bus, bits [19:15] are used for the lower address word. 2.1.2.2.1 Extended Direct Writes 1. 2. 3. 4. Write the upper address, extended_a[32:20], to register 008h. This write may not be required if previous value holds true. Write the lower address extended_a[19:16] or [19:15] to register 00Ah. The remaining bits [15:4] or [14:4] are ignored. This write may not be required if previous value holds true. Write write_enable[13:12] (this write may not be required if previous value holds true) and extended_parity[15:14]. The extended parity write is optional. Write the data value to the address within the corresponding memory page with the CPU_A_DAS bit set. 2.1.2.2.2 Extended Direct Reads 1. 2. 3. 4. Write the upper address, extended_a[32:20], to register 008h. This write may not be required if previous value holds true. Write the lower address, extended_a[19:16] or [19:15], to register 00Ah. The remaining bits [15:4] or [14:4] are ignored. This write may not be required if previous value holds true. Assert the lower address within the memory page and fetch the read data with CPU_A_DAS set. An optional read may be performed to obtain the parity values, extended_parity[15:14] register 000h. 19 MT90502 2.1.3 Preliminary Datasheet MT90502 Reset Procedure The following reset procedure is required to power-up the MT90502. The reset procedure must be adhered at power-up employing the nreset pin. All register accesses in the reset procedure may be performed in either Direct or Indirect mode. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 20 Assert the nreset pin for approximately 1000 mem_clk periods. De-assert the nreset pin. Clear sreset bit in CPU Control Register (100h). Configure mem_clk, upclk, and the led flashing frequencies in the CPU Registers (108h, 10Ah and 10Ch). Configure the fast_clock PLL via registers 16Ch and 172h. Configure the H.100/H.110 PLL in the CPU Register 174h. Set active levels for interrupt pins in the Main Registers (214h and 216h). Configure the UTOPIA port clocks in the Main Registers (220h, 222h, 224h, 228h, 22Ah and 22Ch). Configure external memories in the Main Registers (230h, 232h, 234h, 240h and 242h). Wait 10µs. Set sreset bit in CPU Control Register (100h). Initialise the SDRAM in the Main Registers (250h, 252h, 254h, 256h, 258h and 25Ah). MT90502 Preliminary Datasheet 2.2 TDM Transmission The TDM transmission module reads TDM data received by the H.100/H.110 interface, arranges the data in AAL2 CPS-Packets, and places the CPS-Packets in a FIFO for treatment by the TX SAR. The TX TDM module is capable of treating PCM data, ADPCM data and HDLC packets. Each channel can be configured as PCM, ADPCM or HDLC individually. For HDLC packets, zero-extraction (bit-wise or byte-wise - see Section 2.10 on page 94), and extraction of address, control and CRC bytes is performed. The received data is formatted into CPS-Packets that include CID, LI and UUI information. TDM Byte Received from H.100/H.110 TX Channel Associated Link-List Consulted Write byte to Low Latency Loopback Memory Byte Written to xxPCM Buffer in SSRAM Byte Written to HDLC Buffer in SSRAM (after Zero Extraction) CPS-Packet Transmission Requests CPS-Packet Sent via TX CPU CPSP Buffer CPS-Packet To Cell Process Cell Sent on UTOPIA Figure 3 - TX Cell Flow There are 32 streams on the H.100/H.110 bus, running at 2.048, 4.096 or 8.192MHz. Each individual time slot or DS0 channel on the H.100/H.110 bus is assigned a unique TSST (Time Slot/STream) number, according to the time slot number, stream number and the rate of the stream. TSST= Time slot * 32 + Stream, if Stream frequency is 8.192MHz; (Time slot * 2 + 1) * 32 + Stream, if Stream frequency is 4.096MHz; (Time slot * 4 + 3) * 32 + Stream, if Stream frequency is 2.048MHz. The time slot ranges are 0 to 31 for 2.048MHz streams, 0 to 63 for 4.096MHz stream, or 0 to 127 for 8.192MHz streams. Inside the MT90502 the TSST number is used to address any TDM channel position on the H.100/H.110 bus. A TX TDM frame buffer exists in internal memory that contains the most recently received TDM bytes from each of the 4096 TSSTs. From the frame buffer, up to 1023-bytes are read each frame, according to the TSST link-list in TX Channel Association Memory (TX CAM). The TX CAM entry contains a channel number, an associated TSST, and a link to where the next valid entry exists in the TX CAM. The entries in the TX CAM must be linked sequentially according to TSST but can exist in any order in memory. Each entry in TX CAM is one of the following four types: 1. The TSST in that entry carries PCM or ADPCM data. An xxPCM Channel Number should be assigned. 2. The TSST in that entry belongs to an HDLC stream. An HDLC Stream Number should be assigned. 21 MT90502 Preliminary Datasheet 3. The TSST in that entry is a loopback channel. A Low-Latency Loopback (LLL) Channel Number should be assigned. 4. The TSST in that entry is a phasing channel. The device will use the data on that TSST to synchronize its internal phase/sub-phase operation. Each TSST that carries PCM, ADPCM or HDLC data needs a CPS-Packet assembly structure in TX TDM Control memory to have CPS-Packets assembled. The xxPCM channel number and HDLC Stream Number are used to indicate the memory location of the CPS-Packet assembly structure and the CPS-Packet final assembly structure. 2.2.1 Low-Latency Loopback Channels A low-latency loopback (LLL) is a connection between any TX TDM channel and any RX TDM channel. Up to 128 loopback connections can be established. Channels designated as LLL channels in the TX CAM are written directly into the appropriate location in the LLL memory of the RX TDM module. Once there, they are routed out to TSSTs that are assigned the same LLL channel numbers in RX CAM. 2.2.2 Treatment of PCM/ADPCM Data PCM and ADPCM data is accumulated in a CPS-Packet circular buffer in TX SSRAM until the number of bytes pending equals the length of the AAL2 CPS-Packet to be assembled, as specified in the number of EDUs (# EDU) field of the PCM/ADPCM CPS-Packet assembly structure for that xxPCM channel. The TX TDM is capable of treating PCM at 64 kbps and compressed ADPCM at 40, 32, 24, or 16 kbps. For the compressed ADPCM channels, instead of capturing all 8-bits in an incoming TDM byte, the MT90502 will only sample 5-, 4-, 3-, or 2-bits of the byte, according to the data rate. The MT90502 can be configured to sample either the MSBs or the LSBs of TDM bytes; the configuration applies to all compressed channels. 22 MT90502 Preliminary Datasheet b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 +2 0 HDLC Stream/xxPCM Channel Number TSST[11:0] +4 Link to next entry +6 HDLC Stream or xxPCM Channel Structure b15 b14 b13 b12 b11 b10 b9 b8 b7 1 0 00LL 0 b6 b5 b4 b3 b2 b1 b0 +0 +2 LLL Channel Number TSST[11:0] +4 Link to next entry +6 LLL Channel Structure b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 0 0 1 0 0 0 0 0 b1 b0 +0 +2 +4 +6 1 XPI TSST[11:0] Link to next entry Phasing Channel Structure Reserved TX CAM Notes: • • • • • • • The TX CAM consists of 1024 8-byte structures in internal memory at addresses 4000h to 5FF8h. One TX CAM entry exists for each selected TSST. The HDLC Stream/xx PCM Channel Number is used to locate the CPS-Packet assembly structure, the CPS-Packet final assembly structure (see Figures 12, 13, 14, 15 and 16) and the CPS-Packet buffer for the associated TSST. Link to next entry: A pointer to the next entry in the linked list of TX CAM entries. 000h indicates the end of the linked list (return to start). Entry 0 in the linked list is always examined at the start of frame and is never associated to a valid TDM channel. The TX CAM entries are each consulted once every frame. TX CAM entries can exist in any order in memory but must be linked in order of TSST. XPI: External Phase Indicator: “00” = 24 frame phase; “01” = 80 frame phase; “10” = 64 frame phase (also used for 8, 16 and 32 frame phase); “11” = 88 frame phase Figure 4 - TX Channel Association Memory (TX CAM) 23 MT90502 Preliminary Datasheet CPS-Packet Circular Buffers (one table only, in SSRAM) +0h +100h +(100h*(N-2)) CPS-Pk Circ Buf 0 CPS-Pk Circ Buf 1 CPS-Pk Circ Buf N-2 CPS-Pk Circ Buf N-1 +(100h*(N-1)) The TX CPS-Packet Circular Buffers are 256-bytes in size, located in TX SSRAM at addresses +4000h to +BF00h, +8000h to +17F00h, +10000h to +2FF00h and +20000h to +5FF00h for 128, 256, 512 and 1023 channels respectively. Number of consecutive Circular Buffers is N = {128, 256, 512, 1023} Figure 5 - TX CPS-Packet Circular Buffers 2.2.2.1 CPS-Packet Length An Encoding Data Unit (EDU) consists of 8 PCM or ADPCM data blocks. A data block is 8-bits for uncompressed PCM and 5-, 4-, 3-, or 2-bits for ADPCM compression rates of 40, 32, 24, or 16 kbps, respectively. AAL2 CPS-Packets may contain 1-, 2-, 3-, 4-, 5-, or 8-EDUs. The MT90502 also supports 44-byte PCM, 44-byte 32K ADPCM and 40-byte 32K-ADPCM CPS-Packets as per ATM Forum requirement for Loop Emulation Service. 40/80 frame PCM/ADPCM represents 40-byte 32K ADPCM, and 44/88 frame PCM/ADPCM represents both 44-byte PCM and 44-byte 32K ADPCM. 2.2.2.2 TDM Data Formats Two different formats are available for transferring PCM/ADPCM samples on the H.100/H.110 bus. The first format, Format A, uses a single time slot on the H.100/H.110 bus to transfer a sample. This format does not allow distinguishing between PCM and ADPCM samples and therefore does not allow automatic switching between PCM and ADPCM samples. If a channel is configured as ADPCM, its compression rate can be determined on a byte by byte basis. This is done by using a certain byte format (see Figure 8) on the TDM bus in which the nibble is placed in either the high bits or the low bits of the byte, followed by a '1' and padding the rest of the byte with '0's. By so doing, the compression rate of the sample is coded implicitly into the byte. As a CPS-Packet can contain only one encoding scheme or compression rate, the compression rate may change only on CPS-Packet boundaries. Dynamic compression can be performed between all ADPCM compression rates. The second format, Format B, uses two time slots on the H.100/H.110 bus to transfer a single PCM/ADPCM sample. Using two time slots will provide explicit indication of PCM or ADPCM sample in both the Tx and Rx direction. This will allow for dynamic switching between PCM and ADPCM encoding schemes. Both Format A and B allow the MT90502 to send a reset signal to the external decompressor to indicate the end of a silent period. For silence suppression to function properly, both the ADPCM compressor and decompressor must be synchronously reset in between continuous talk spurts. This reset must take place before each non-silent packet that was preceded by a silent packet, given that silence suppression is enabled. The external decompressor must reset itself when it sees either b7 or b0, depending on the placement of ADPCM nibbles, is set in ADPCM samples. For Format B, a reset signal (PCM-R=11) will also be given when a voice (non-padding) sample is received that was preceded by a padding sample. 24 MT90502 Preliminary Datasheet The 32 TDM streams on the H.100/H.110 bus are grouped into 8 quads (stream[3:0] is quad 0, stream[7:4] is quad 1, etc.), and the choice of data transfer format can be made on each individual quad using bits 13:6 in register 700h. Figure 6 to Figure 11 show the different data formats for PCM/ADPCM samples for each of the different compression rates, encoding schemes and transfer modes. Format A for xxPCM samples (without Auto PCM-ADPCM Switching) TSSTs on H.100/H.110 b7 TSSTx TSSTy b6 b5 b4 b3 b2 b1 b0 TX xxPCM Sample RX xxPCM Sample Italic goes from MT90502 to H.100/H.110 Plain goes from H.100/H.110 to MT90502 Figure 6 - PCM/ADPCM Data Format A 25 MT90502 Preliminary Datasheet Format A for RX xxPCM Samples (without Auto PCM-ADPCM Switching) Format of ADPCM Samples in low bits Format of ADPCM Samples in low bits (with Decompressor reset) (no Decompressor reset) b7 b6 b5 b4 b3 b2 b1 1 0 1 b7 b6 b5 b4 1 0 0 1 b7 b6 b5 b4 b3 1 0 0 0 1 b7 b6 b5 b4 b3 b2 b1 1 0 0 0 0 1 b0 b7 b6 b5 0 0 1 b7 b6 b5 b4 0 0 0 1 b7 b6 b5 b4 b3 0 0 0 0 1 b0 b7 b6 b5 b4 b3 b2 b1 16 kbps 0 0 0 0 0 1 16 kbps ADPCM 40 kbps b3 b2 b1 b0 32 kbps b2 b1 b0 24 kbps b4 b3 b2 b1 ADPCM 40 kbps b3 b2 b1 b2 b1 Format of ADPCM Samples in high bits (no Decompressor reset) b6 b5 b4 b3 b2 b1 b0 1 0 1 b7 b6 b5 b3 b2 b1 b0 1 0 0 1 b4 b3 b2 b1 b0 1 0 0 0 1 b4 32 kbps b7 b6 b5 24 kbps b7 b7 b6 b5 b4 b3 b6 b5 b1 b0 1 0 0 b3 b2 b1 b0 1 0 0 0 b4 b3 b2 b1 b0 1 0 0 0 0 b4 32 kbps b7 b6 b5 24 kbps b0 b2 ADPCM 40 kbps b7 b0 24 kbps (with Decompressor reset) ADPCM 40 kbps b0 32 kbps Format of ADCM Samples in high bits b7 b0 b6 b5 b4 b3 b2 b1 b0 b7 b6 b5 b4 b3 b2 b1 b0 16 kbps 1 0 0 0 0 1 16 kbps 1 0 0 0 0 0 b2 b1 b0 Format of PCM Padding Samples in Format of PCM samples ADPCM only time slots b7 PCM[7] b6 1 b5 b4 b3 b2 b1 b0 b7 b6 b5 PCM[5:0] It is recommended that b6 of PCM padding bytes be 1 - this is in-line with the requirement that the padding buffers contain all low energy samples, u-law max value of 471 out of 8159 and A-law max value of 252 out of 4096 - and that ADPCM samples be placed in the low bits. This will allow the decompressor to differentiate PCM padding bytes from ADPCM samples, in order to bypass the decompressor during a silence period. b3 PCM Note that switching between ADPCM and PCM requires software intervention when using Format A Figure 7 - PCM/ADPCM RX Data Format A 26 b4 MT90502 Preliminary Datasheet Format A for TX xxPCM Samples (without Auto PCM-ADPCM Switching) Format of ADPCM Samples in high bits b7 b6 b5 b4 b3 b2 b1 b0 b7 b6 b5 1 0 0 0 0 1 b3 b2 b1 b0 b7 b6 b5 b4 1 0 0 0 0 0 0 1 b4 b3 b2 b1 b0 b7 b6 b5 b4 b3 1 0 0 0 0 0 0 0 0 1 ADPCM 40 kbps b7 b6 b5 b4 32 kbps b7 b6 b5 24 kbps b7 Format of ADPCM Samples in low bits b4 b3 b2 b1 b0 ADPCM 40 kbps b3 b2 b1 b0 32 kbps b2 b1 b0 24 kbps b6 b5 b4 b3 b2 b1 b0 b7 b6 b5 b4 b3 b2 b1 16 kbps 1 0 0 0 0 0 0 0 0 0 0 1 16 kbps b0 Format of PCM Sample b7 b6 b5 b4 s b3 b2 b1 b0 PCM Note: switching between ADPCM and PCM requires software intervention in Format A. Figure 8 - PCM/ADPCM TX Data Format A MT90502 Format B for xx PCM (with Auto PCM-ADPCM Switching) TSST Grouping on H.100/H.110 b7 TSST n b6 PCM TSST n+1 TSST n+2 TSST n+3 b5 b4 b3 b2 b1 b0 TX PCM Unsigned Magnitude TX xxPCM Sample PCM-R Reserved RX xxPCM Sample Italic goes from MT90502 to H.100/H.110 Plain goes form H.100/H.110 to MT90502 Streams are assigned to this mode in groups of 4 only. n = 0, 3, 7, 11, .... Figure 9 - PCM/ADPCM Data Format B 27 MT90502 Preliminary Datasheet Format B for RX xxPCM Samples (with Auto PCM-ADPCM Switching) PCM-R 1 Format of PCM Samples Format of PCM Samples (for both padding and voice) (for both padding and voice) (with Decompressor reset indicated) (no Decompressor reset indicated) b7 b6 b5 1 b4 b3 b2 b1 b0 PCM Sample 1 b6 b5 1 0 1 PCM-R b7 b6 b5 b4 0 1 1 0 0 1 PCM-R b7 b6 b5 b4 b3 0 1 1 0 0 0 1 PCM-R b7 b6 b5 b4 b3 b2 b1 0 1 0 0 0 0 1 16 kbps 0 0 b4 b3 b2 b1 b0 ADPCM 40 kbps b2 b1 b0 b3 b2 b1 b0 32 kbps b2 b1 b0 24 kbps b0 PCM-R b7 b6 b5 0 0 0 0 1 PCM-R b7 b6 b5 b4 0 0 0 0 0 1 PCM-R b7 b6 b5 b4 b3 0 0 0 0 0 0 1 PCM-R b7 b6 b5 b4 b3 b2 b1 0 0 0 0 0 0 1 16 kbps 0 b4 b3 b2 b1 b3 b2 b1 b2 b1 b6 b5 b4 b3 b2 b1 b0 PCM-R 1 0 1 0 b7 1 b6 b5 b3 b2 b1 b0 PCM-R 1 0 0 1 0 b4 b3 b2 b1 b0 PCM-R 1 0 0 0 1 0 b4 32 kbps b7 1 b6 b5 24 kbps b7 0 b6 b5 b4 b3 b7 b6 b5 b1 b0 1 0 0 b3 b2 b1 b0 1 0 0 0 b4 b3 b2 b1 b0 1 0 0 0 0 b4 32 kbps b7 0 b6 b5 24 kbps b0 b2 ADPCM 40 kbps 0 b0 24 kbps (no Decompressor reset indicated) ADPCM 40 kbps b0 32 kbps Format of ADPCM Samples in high bits b7 b0 ADPCM 40 kbps (with Decompressor reset indicated) PCM-R b7 b6 b5 b4 b3 b2 b1 b0 PCM-R b7 b6 b5 b4 b3 b2 b1 b0 0 16 kbps 1 0 0 0 0 1 0 16 kbps 1 0 0 0 0 0 1 0 Figure 10 - PCM/ADPCM RX Data Format B 28 b3 Format of ADPCM Samples in high bits 1 PCM-R b4 PCM Sample (no Decompressor reset indicated) b7 PCM-R b5 Format of ADPCM Samples in low bits 1 0 b6 (with Decompressor reset indicated) 0 PCM-R b7 0 Format of ADPCM Samples in low bits PCM-R 1 PCM-R MT90502 Preliminary Datasheet Format B for TX xxPCM Samples (with Auto PCM-ADPCM Switching) Format of ADPCM Samples in high bits PCM b7 b6 b5 b4 1 PCM b7 b7 b5 b4 b1 b0 b3 b6 b5 b7 b6 b5 b7 b6 b5 1 b4 b3 b1 b0 PCM b7 b6 b5 0 0 0 0 0 1 b3 b2 b1 b0 PCM b7 b6 b5 b4 1 0 0 0 0 0 0 0 1 b4 b3 b2 b1 b0 PCM b7 b6 b5 b4 b3 1 0 0 0 0 0 0 0 0 0 1 b4 b2 b1 b0 b2 b1 b0 PCM 1 24 kbps b4 b3 ADPCM 40 kbps b3 b2 b1 b0 32 kbps b2 b1 b0 24 kbps b6 b5 b4 b3 b2 b1 b0 PCM b7 b6 b5 b4 b3 b2 b1 16 kbps 1 0 0 0 0 0 0 0 0 0 0 0 1 16 kbps PCM b7 b6 b5 b4 b3 b2 b1 b0 PCM b7 b6 b5 b4 b3 b2 b1 b0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b7 PCM b2 32 kbps 0 PCM b6 ADPCM 40 kbps 0 PCM b2 PCM 0 PCM b3 Format of ADPCM Samples in low bits b0 Silence packets end with this sample. (See Section 2.9.2.2.) Figure 11 - PCM/ADPCM TX Data Format B 2.2.2.3 Phase Alignment In the MT90502 CPS-Packet assembly engine, any given frame can begin a CPS-Packet. Once this frame is established, packets will always be formed every 8 x #EDU frames. In order to control the trade-off between delay and bandwidth efficiency, the MT90502 supports phasing of CPS-Packet construction. For any given EDU value the MT90502 selects a frame as phase 0 and sub-phase 0. Phase specifies the EDU relative to phase 0 and sub-phase specifies a sample offset within the EDU. For example if a 5 EDU connection opened with a phase of 1 and sub-phase of 2 then it will begin assembly 10 frames after a connection of phase 0, sub-phase 0. Internal phase and sub-phase counters exist to co-ordinate the accumulation of sufficient data for a CPS-Packet with the construction of CPS-Packets. There are multiple independent phase counters, one for each #EDU. Channels with the same setting of #EDU share the same phase counter. Phase counters count from 0 to 1, 2, 3, 4, 7, 9 and 10. One global sub-phase counter exists which counts from 0 to 7 and increments on every frame. Each time the sub-phase counter reaches 0, the phase counters increment. A CPS-Packet is created for a channel when the channel’s phase counter equals the channel’s phase number, and the sub-phase counter equals the channel’s sub-phase number. Both phase and sub-phase numbers are user programmed in the PCM/ADPCM CPS-Packet Assembly Structure, shown in Figure 12. The MT90502 has the capability of aligning the transmission of PCM and ADPCM CPS-Packets containing the same number of EDUs and destined to the same VC in order to obtain less delay and higher bandwidth efficiency. To accomplish this, the phase and sub-phase fields of the PCM/ADPCM CPS-Packet assembly structure must match the phase and sub-phase field of all other channels that are to be phase aligned on the same VC. Programming the phase and sub-phase fields is done by the CPU upon configuration of the CPS-Packet assembly structure. 29 MT90502 Preliminary Datasheet By default, all phase and sub-phase counters are free running. Each counter picks up an arbitrary frame as phase 0 or sub-phase 0, then starts its counting. The phasing information, e.g. which frame is phase 0 and sub-phase 0, is internal to the device in this case. For certain applications some external devices must be aware of what phase and sub-phase the current frame represents, so that they can know where the CPS-Packet boundary is. An example is ADPCM compressor which should only change its compression rate at CPS-Packet boundaries. To indicate a CPS-Packet boundary a phasing TSST structure is introduced to allow an external device to send phasing information to the MT90502. Once a TSST is configured as phasing channel in TX CAM, the data on that TSST will overwrite internal counter(s). When the MT90502 sees a 00h on that TSST, it takes that frame as phase 0 and sub-phase 0. When there is a 01h, it interprets it as phase 0 sub-phase 1, and so on. The external device driving a phasing channel must ensure that a proper counting pattern appears on this channel every frame. Up to four phasing channels can be created, each with a different XPI value. When loading data to internal counters, extra MSBs will be truncated. For example using a XPI value of ‘10’, a counting pattern of 0 to 63 also serves as two cycles of 0 to 31, during which two 4-EDU CPS-Packets will be assembled. XPI Counting Pattern Replacing Internal Counters 00 0 to 23 #EDU = 3 01 0 to 39 #EDU = 5, and 40/80 frame PCM/ADPCM 10 0 to 63 #EDU = 1, 2, 4, 8 11 0 to 87 #EDU = 44/88 frame PCM/ADPCM Table 18 - XPI Selection Table 30 MT90502 Preliminary Datasheet 2.2.2.4 PCM/ADPCM CPS-Packet Assembly Structure PCM/ADPCM CPS-Packet Assembly Structures are located in internal TX TDM Control Memory. Each PCM or ADPCM channel will find an entry to its CPS-Packet Assembly Structure by the xxPCM Channel Number assigned in the TX CAM. TX TDM Control Memory PCM/ADPCM CPS-Packet Assembly Structure b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 Sub Phase Phase[2:0] +2 +4 SS +6 +8 S # EDU Comp 0 0 CPSP Buf RP [7:1] Partial Byte Storage[7:x] / Phase[3] RPV 0 Fields in Italic are used by hardware only. Fields in Plain are written to by the CPU/Software. Index of structure given by PCM Channel number in TX CAM. Reserved Structures are located in internal TX TDM Control Memory (8000h to BFF0h). Each structure is 16-bytes in size. Note: The write pointer to the xxPCM Circular Buffers is global. Different write pointers exist for each compression type and phase. #EDU: The number of EDUs per PCM CPS-Packet assembled. “000” = 1 EDU, “001” = 2 EDUs; “010” = 3 EDUs; “011” = 4 EDUs; “100” = 5 EDUs; “101” = 44/88 frame PCM/ADPCM; “110” = 40/80 frame PCM/ADPCM; “111” = 8 EDUs. Compression: “000” = PCM; “001” = ADPCM 40 kbps; “010” = ADPCM 32 kbps; “011” = ADPCM 24 kbps; “100” = ADPCM 16 kbps; “101” = ADPCM auto-detect; “110” = PCM & ADPCM auto-detect (TDM Format B must be chosen); “111” = reserved. Partial Byte Storage[7:x] / Phase[3]: Used by hardware to store ADPCM samples that have not formed complete bytes yet. When #EDU indicates 44/88-frame or 40/80 frame mode, the partial byte requires only 4 bits (ADPCM-32) and is stored in bits 7:4. The LSB contains Phase[3] (programed by the CPU/Software). CPSP Buf : TX SAR’s pointer of up to where it has read in the channel’s circular buffer. Used to detect overflows. RPV : Indicates that the CPSP Buf RP is valid, and thus that Circular Buffer Overflows can be detected. Written to ‘1’ any time the CPSP Buf RP is written. S: Silent Bit. Indicates if the current CPS-Packet is silent so far or not. SS: Silence Suppression. “000” = no silence suppression; “001” = associated odd stream bit represents silence; “010” = A Match; “011” = B Match; “100” = silence indicated as in Fig 10; others = reserved Sub Phase : Phase alignment of the channel within the 8 sub-phases possible in an EDU. Phase[3:0]: Phase alignment of the channel among the different EDUs it may contain. This number ranges between 0 and #EDU field. When #EDU is 44/88-frame packets are assembled every 44 or 88 frames. Phase and sub-phase specify where assembly should start for 88 frame packets and when assembling 44 frame packets one will begin on the specified phase/sub-phase and another will begin 44 frames later by default. Therefore, there are eleven (0-10) phases in 44/88 frame mode. Similarly in 40/80 frame mode there are ten (0-9) phases. Bit 3 of the phase is encoded in Partial Byte Storage[1]. Figure 12 - PCM/ADPCM CPS-Packet Assembly Structure 31 MT90502 2.2.3 Preliminary Datasheet Treatment of HDLC Data Other than PCM and ADPCM data, MT90502 can also send/receive generic AAL2 CPS-Packets directly to/from the H.100/H.110 bus. Those CPS-Packets must be encapsulated in HDLC format before they can be put onto H.100/H.110 bus. The HDLC encapsulation of the data allows an external SSCS engine (e.g. G.723, G.728 or G.729) to pass over CPS-Packets or CPS-Packet payloads to the MT90502 through TDM bus. HDLC data is accumulated until a flag is received signifying the end of an HDLC packet (see Section 2.10 on page 94). Then, either bit-wise or byte-wise zero-extraction (configurable for the entire chip in register 500h) is performed on the HDLC data. At this stage, the HDLC packets can be re-formatted as AAL2 CPS-Packets for treatment by the TX SAR. 2.2.3.1 HDLC Streams Any number from 1 to 128 of consecutive time slots on a single H.100/H.110 stream can be grouped as a single HDLC stream to carry HDLC packets. For each TSST, an entry in TX CAM lists the HDLC stream number associated with that TSST; these stream numbers are the same for all TSSTs carrying data for a single HDLC stream. Within a single HDLC stream, one or more HDLC channels can be transported. An HDLC channel carries CPS-Packets destined to the same AAL2 channel. Up to 1023 channels, whether they are xxPCM channels or HDLC channels, are supported by MT90502. Each HDLC stream must be assigned N consecutive assembly structures in TX TDM Control Memory, as seen in Figure 13, “HDLC CPS-Packet Assembly Structure,” on page 33. N is always the same as the number of HDLC channels carried by that HDLC stream with only one exception, that is, when the number of HDLC channels is one, and the TSSTs occupied by the HDLC stream is more than one, N must be 2. 2.2.3.2 Address Bytes HDLC packets may contain zero, one, or two address bytes that immediately follow the start flag. For HDLC packets containing one or two address bytes, the last address byte can be used to indicate a channel number. If the last address byte is used to indicate a channel number, each of the 256 possible channel numbers can be directed to a different CPS-Packet final assembly structure. Each CPS-Packet, based on its HDLC channel number, can be directed to a different VC/CID. If the value of the last address byte exceeds the allowed number of HDLC channels for that HDLC stream, the channel number 0 will be used for that CPS-Packet. All address bytes not used to indicate a channel number are discarded by the TX TDM module and do not appear in an AAL2 CPS-Packet. The HDLC stream number added to the HDLC address byte will yield the HDLC channel number. Whether or not the address byte(s) will be used to indicate a channel number is determined independently for each HDLC stream using the “Header Type” field of the HDLC CPS-Packet assembly structure (see Figure 13 on page 33). 32 MT90502 Preliminary Datasheet TX TDM Control Memory (AAL2 header not present in HDLC data) HDLC CPS-Packet Assembly Structure b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 V +0h RX Control Byte +2h +4h +6h +8h b0 Header Type CPSP Buf RP [7:0] HBC Count 1s CPSP Buf SOP [7:1] CRC CPSP Buf RP [7:1] RPV History Bits & Valid [7:0] Base HDLC Structure for all HDLC Streams 1 V +10h +12h RX Control Byte CPSP Buf SOP [7:1] +14h +16h CPSP Buf WP [7:0] +18h HDLC Channel Number RPV Second HDLC Structure on a HDLC Stream Number of Channels V +20h +22h RX Control Byte CPSP Buf SOP [7:1] +24h +26h CPSP Buf RP [7:1] CPSP Buf WP [7:0] CPSP Buf RP [7:1] RPV +28h Third and up to N successive HDLC Structures on a HDLC Stream Reserved Fields in Italic are used by hardware only. Fields in Plain are written to by the CPU/Software. Index of the base structure given by HDLC Stream Number in TX CAM. Structures located in internal TX TDM Control Memory (8000h to BFF0h). Each structure is 16-bytes in size. V: Valid. When 0, this HDLC channel will be ignored. When 1, it will be processed. This valid bit has no effect on the operation of the HDLC stream. Header Type: Header type. 0000 = Plain; 0001 = One byte address; 0010 = Two byte address; 0011 = One byte address + Control; 0100 = Two byte address + Control; 0101 = One byte address (SCS); 0110 = Two byte address (SCS); 0111 = One byte address + Control (SCS); 1000 = Two byte address + Control (SCS). SCS: Sub-Channel Scheme where address byte is used to differentiate HDLC channels. Address bytes are ignored in non-SCS modes. CRC: 0 = CRC not present; 1 - 16-bit CRC present. CPSP Buf WP: CPS-Packet Buffer Write Pointer. Points to the next byte that will be written in the CPS-Packet Circular Buffer. CPSP Buf RP[7:1] Pointer to the next word that will be read by the TXSAR’s Cell Assembly Process. If a byte is written at this word, an error will be flagged. RPV: Indicates that the CPSP Buf RP is valid, and that Circular Buffer Overflows can be detected. Written to 1 any time the CPSP Buf RP is written. CPSP Buf SOP[7:1] Pointer to the start of the current CPS-Packet (being assembled now). HBC: HDLC Byte Count. Counts the first few bytes of each CPS-Packet. This counter will not increment beyond ‘1000’. It will be reset upon the reception of a flag. RX Control Byte: Control byte received in the last HDLC packet. History Bits & Valid: Eight history bits used to do zero extraction and to indicate the validity of the received data. 00000001 = no leftover bits, 1xxxxxxx=7 leftover bits. Should be initialized to 00000001. HDLC Channel Number: HDLC Channel Number of the Current HDLC Packet being received. Number of Channels: Number of channels in this HDLC Stream. Valid range is 0 to 255. 0 means 256. Figure 13 - HDLC CPS-Packet Assembly Structure 33 MT90502 Preliminary Datasheet TX TDM Control Memory (AAL2 header present in HDLC data) HDLC CPS-Packet Assembly Structure b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 V +0h UUI [4:0] +2h +4h +6h +8h CPSP Buf SOP [7:1] CPSP Buf RP [7:0] HBC Count 1s V UUI [4:0] 1 CPSP Buf SOP [7:1] +16h CPSP Buf WP [7:0] +18h HDLC Channel Number CPSP Buf RP [7:1] V +22h UUI [4:0] CPSP Buf SOP [7:1] CPSP Buf WP [7:0] Second HDLC Structure Channels on a HDLC Stream Number of HDLC Channels +20h +24h Base HDLC Structure for all HDLC Streams CPSP Buf RP [7:1] +10h +14h CRC History Bits & Valid [7:0[ +12h +26h b0 Header Type CPSP Buf RP [7:1] Third and up to N successive HDLC Structures on a HDLC Stream +28h Fields in Italic are used by hardware only. Fields in Plain are written to by the CPU/Software. Index of the base structure given by HDLC Stream Number in TX CAM. structures located in internal TX TDM Control Memory (8000h to BFF0h). Reserved Each structure is 16-bytes in size. UUI: The 5 MSBs of the control byte of the HDLC CPS-Packet. These can be used as the UUI value on AAL2. For all other fields, refer to the previous figure. Figure 14 - HDLC CPS-Packet Assembly Structure 2.2.3.3 Control Bytes and Length In addition to a zero, one, or two byte address, an HDLC packet may also contain a control byte and a two-byte CRC. The 5 MSBs of the HDLC control byte can be used as the UUI in the AAL2 CPS-Packet formed from that HDLC packet. The TX TDM calculates the length of each HDLC packet and stores it in the Length field of the each TX TDM Write Cache entry. 2.2.3.4 “Raw” AAL2 CPS-Packets The data field of an HDLC packet can contain an AAL2 CPS-Packet with or without a header. This is configured for all HDLC streams in register 500h. When the packaging_type field of register 500h is set to ‘1’, all HDLC packets will carry complete CPS-Packets with both header and payload. They will be treated as “raw” AAL2 CPS-Packets. For “raw” AAL2 CPS-Packets, the CID is ignored and replaced by the CID in the CPS-Packet final assembly structure. The LI is ignored and re-calculated by the TX TDM module. The UUI is passed on as the UUI for the AAL2 CPS-Packet. The HEC is ignored and regenerated based on the new CID/UUI/LI. 34 MT90502 Preliminary Datasheet 2.2.4 CPS-Packet Final Assembly Once PCM/ADPCM and HDLC data is segmented into CPS-Packets, the CPS-Packet final assembly structure is referenced and the packaging is completed through the addition of the CID, UUI, LI and HEC. Finally, the CPS-Packets are directed to the correct location in the CPS-Packet Buffer (according to the channel number for that CPS-Packet) from which the TX SAR will read them. The UUI can be sourced from a “raw” AAL2 CPS-Packet, the 5 MSBs of the control byte of an HDLC packet, or, the LSBs can be a one-bit to four-bit free-running counter. When the UUI is used as a counter, the MSB must be 0. CPS-Packet Final Assembly Structure (xxPCM w/o Silence Suppression) CPS-Packet Final Assembly Structure Table b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0000h CPSPFAS Channel 0 +0h +0020h CPSPFAS Channel 1 +2h +7FC0h CPSPFAS Channel 1022 +6h +7FE0h CPSPFAS Channel 1023 +8h VC Number[9:0] CID Seq I SUI Pack Del Cnt Send UU[3:0] +4h The number of structures in this table can be programmed to {128, 256, 512, 1023} Fields in Italic are used by Hardware only Fields in Plain are written to by the CPU/Software. # of EDU +Ah +Ch +Eh +10h +12h CPS-Packet Final Assembly structures are located in TX SSRAM at addresses +1000h to +1FE0h, +2000h to +3FE0h, +4000h to +7FE0h and +8000h to +FFE0h for 128, 256, 512 and 1023 channels repsectively. +14h +16h +18h CPS-Packet Byte Count[31:16] Each structure is 32 bytes in size. +1Ah CPS-Packet Byte Count[15:0] +1Ch +1Eh CPS-Packet Count[31:16] Reserved CPS-Packet Count[15:0] VC Number: Number of the VC in which the CPS-Packet of this AAL2 Channel will be routed. Packet Delete Count: Indicates the number of packet that must be deleted (not sent) before the AAL2 Channels starts. 0 means send immediately. 15 means never send. 1 to 14 means delete the first 1 to 14 CPS-Packets generated. At start-up, this field may be set to 1 or more in order to never send garbage on an AAL2 Channel. CID: Channel ID on AAL2 VCs that will be annexed to the CPS-Packets. Seq I: This value indicates by how much the sequence number should increment each time a packet is sent. If 0, incremented by 1. If 1, incremented by 2, and so on. Send UUI: Send this UUI value. These are the four lower bits of the UUI that will be sent in all AAL2 CPS-Packets. The 0 to 3 lower bits of this field can be substituted by the 0 to 3 lower bits of the CPS-Packet Count, depending on the Send UUI Increment Field. SUI: Send UUI Increment. When “000” = 4 bits used as counter; “001” = 3 bits used as counter; “010” = 2 bits used as counter; “011” = 1 bits used as counter; “100” = 0 bits used as counter; others = resereved. # EDU: Number of EDUs in each CPS-Packet. “000” = one EDU; “001” = two EDUs; “010” = three EDUs; “011” = four EDUs; “100” = five EDUs; “101” = 44/88 frame PCM/ADPCM32; “110” = 40/80 frame PCM/ADPCM32; “111” = eight EDUs. : Byte counter of all payload bytes sent (payload is defined as the LI+1 in each CPS-Packet). CPS-Packet Byte Count CPS-Packet Count: CPS-Packet counter of all sent packets. Figure 15 - CPS-Packet Final Assembly Structure (PCM/ADPCM) The CPS-Packet final assembly structure contains two monitoring fields: a 32-bit byte count and a 32-bit CPS-Packet count. The CPS-Packet count indicates the number of complete CPS-Packets that have been generated using this structure, and the byte count indicates the number of data bytes contained in all those CPS-Packets, excluding the AAL2 headers. 35 MT90502 Preliminary Datasheet CPS-Packet Final Assembly Structure (HDLC Channel) b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 +0h +2h VC Number [9:0] b2 b1 b0 Pack Del Cnt[3:0] CID SUI Send UUI [3:0] +4h +6h +8h +Ah VC Number: Number of the VC in which the CPS-Packets of this AAL2 Channel will be routed. Packet Delete Count: Indicates the number of packets that must be deleted (not sent) before the AAL2 Channel starts. 0 means send immediately. 15 means never send. 1 to 14 mean delete the first 1 to 14 first CPS-Packets generated. At start-up, this field may be set to 1 or more in order to never send garbage on an AAL2 Channel. CID: Channel ID on AAL2 VCs that will be annexed to the CPS-Packets. +Ch +Eh Send UUI: Send this UUI value. These are the four lower bits of the UUI that will be sent in all AAL2 CPS-Packets. The 0 to 4 lower bits of this field can be substituted by the 0 to 4 lower bits of the CPS-Packet Count, depending on the Send UUI Increment Field. +1h +12h +14h +16h +18h CPS-Packet Byte Count [31:16] +1Ah CPS-Packet Byte Count [15:0] +1Ch CPS-Packet Count [31:16] +1Eh CPS-Packet Count [15:0] Fields in Italic are used by hardware only. Fields in Plain are written to by the CPU/Software. CPS-Packet Final Assembly structures are fixed and are located in TX SSRAM memory at addresses +1000h to +1FE0h, +2000h to +3FE0h, +4000h to +7FE0h and +8000h to +FFE0h for 128, 256, 512 and 1023 channels respectively. SUI: Send UUI Increment. When “000” = 4 bits used as counter, “001” = 3 bits used as counter, “010” = 2 bits used as counter, “011” = 1 bit used as counter, “100” = 0 bits used as counter, “101” = send the UUI value contained in the HDLC CPS-Packet control byte. Others = reserved. Once in “raw” CPS-Packet mode, Send UUI and SUI are ignored. CPS-Packet Byte Count: Byte counter of all payload bytes sent (payload is defined as the LI+1 in each CPS-Packet). CPS-Packet Count: CPS-Packet counter of all sent packets. Each structure is 32-bytes in size. Figure 16 - CPS-Packet Final Assembly Structure (HDLC Channel) 2.2.4.1 CPU CPS-Packets The TX TDM module allows the generation of CPU sourced CPS-Packets. When the CPU requires to transmit an AAL2 CPS-Packet onto a certain VC, it programs the VC number in register 520h, and writes the CPS-Packet's descriptor structure in registers 522h to 526h. The format of the CPS-Packet descriptor structure is given in Figure 17. Word 0 must be written into register 522h, Bytes +2 and +5 to register 524h and Bytes +4 and +5 to register 526h. Finally, it writes a '1' to the cps_packet_request bit in register 520h, which begins the request. When the bit clears, the process has concluded and the CPS-Packet has been added to the TX VC's queue. The following process is used to send a CPU CPS-Packet: 1) The payload of the CPS-Packet must be written into some unused portion of the external SSRAM (bank A). The format for writing the payload to memory is shown in the following example. In the example, the CPS-Packet payload is 25-bytes. address bits [15:8] bits[7:0] cpsp_base + 0 (word 0): payload 0 payload 1 cpsp_base + 2 (word 1): payload 2 payload 3 ... ... ... cpsp_base + 24 (word 12): payload 24 xxxxxxxx Table 19 - Format for writing CPS-Packet payload to memory 36 MT90502 Preliminary Datasheet 2) A CPS-Packet descriptor is written to registers 522h, 524h, and 526h. The value to which each field must be set is indicated in Figure 17, “CPS-Packet Descriptor Queue,” on page 38. CPS-Packet base address: Base address of CPS-Packet’s payload bytes. The address is relative to the base address of bank A. Thus, if payload bytes 0 and 1 of the CPS-Packet are located at address 400126h, then the address inserted is 00126h. WB: Set to ‘1’. Write back must be disabled for CPU sourced CPS-Packets. CID: The value of the CID of the sent CPS-Packet. Any 8-bit value is valid, with the exception of 00h, which is illegal (AAL2 specification). CPU: Set to ‘1’. Indicates that the CPS-Packet is sourced by the CPU. Size: As mentioned earlier, the payload of the TX CPU CPS-Packets can be inserted in any unoccupied portion of SSRAM bank A. A portion of bank A may be reserved for a virtual buffer. This buffer may be used to store the payload bytes of all CPU sourced CPS-Packets. In the case where the payload of a CPS-Packet is inserted at the end of the buffer and wraps to the beginning, the Size field indicates where to wrap to. Take for example a CPS-Packet of 10 payload bytes, and the Size field set to “0000” (256 bytes). Thus, the CPS-Packet must reside in a 256 byte boundary of the external memory. Now suppose that the CPS-Packet is written to address 1FEh. This implies that the payload bytes must be written as follows: address bits [15:8] bits[7:0] 100h (word 1): payload 2 payload 3 102h (word 2): payload 4 payload 5 104h (word 3): payload 6 payload 7 106h (word 4): payload 8 payload 9 ... ... ... 1FEh (word 0): payload 0 payload 1 Table 20 - Example of written payload bytes Length: Set to the length of the CPS-Packet, minus 1 (i.e. LI field). UUI: The value of the UUI field of the sent CPS-Packet. Any 5-bit value is valid. Note: CPU CPS-Packets sent out on voice CIDs must use UUIs 16-31. They can use all UUIs on management CIDs (1-7). 3) Once the descriptor is written to the registers, the TX TDM module of the MT90502 is made aware of the CPS-Packet through register 520h. The VC number of an open AAL2 VC is written in bits [9:0], and the request bit, bit [10] of the register, is set to ‘1’. Finally, the register is written to. The CPU CPS-Packet has been written when the request bit of the register is cleared by hardware. 37 MT90502 Preliminary Datasheet 2.2.4.2 CPS-Packet Descriptor Queue CPSPDQ Table in SDRAM +00000h +01000h +3FE000h +3FF000h CPS-Packet Descriptor (one per pending CPS-Packet) CPS-Packet Descriptor Queue (one per VC) CPSPDQ - VC 0 CPSPDQ - VC 1 +0h Descriptor 0 +8h Descriptor 1 +10h Descriptor 2 +18h Descriptor 3 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0h +2h +4h CPSP CPS-Packet Base Address [20:5] CPSPBA [4:0] Length [5:0] UUI +6h CPSPDQ - VC 1022 CPSPDQ - VC 1023 +FF0h Descriptor 510 +FF8h Descriptor 511 The number of CPSPDQ in this table can be programmed to {128, 256, 512, 1023}. CPS-Packet Descriptor structures are fixed and are located at the beginning of SDRAM memory (2000000h). Each structure is 8-bytes in size. Note: This structure is used by the hardware only. Reserved CPSPBA: CPS-Packet Base Address [20:0]: Word pointer pointing to the beginning of a CPS-Packet. Note that the CPS-Packet as such wraps at the boundary of its circular buffer. Size: Indicates the “wrap” boundary of the CPS-Packet. “0000” = 256 bytes; “0001” = 256 x 2^ 1; “0002” = 256 x 2^2; ... “1101” = 2M bytes. CID: Channel ID that will be passed on in the AAL2 CPS-Packet. Length: Length of the data part of the packet. Defined in the same way as the LI. UUI: User to User indicator that will be passed on in the AAL2 CPS-Packet. CPU: CPU Sourced CPS-Packet. “0” = CPS-Packet from TDM bus; “1” = CPS-Packet from CPU. WB: When “1”, the TX RX SAR will NOT write back the CPSP Read Pointer in the TXTDM PCM Control Structure. Figure 17 - CPS-Packet Descriptor Queue 38 CID WB Size MT90502 Preliminary Datasheet 2.2.4.3 TDM Frame Buffer TDM Frame Buffer Stream 0 Timeslot 0 Timeslot 1 Timeslot 127 Stream 1 Timeslot 0 CPS-Packet Circular Buffers +0h . . . . . Stream 31 Timeslot 0 Timeslot 1 CPS-Packet circular buffer x CPS-Packet assembly structure -- see Figure 13 Timeslot 1 Timeslot 127 TX SAR CPSP Buf RP Write Back to LLL Buffer. . . . LLL byte . . . 8000h+0Ah*x . . . HDLC byte . . . PCM byte . . . ADPCM byte . . . . . . +x*100h History Bits & Valid [7:0] +y*100h CPS-Packet circular buffer y Zero Extractor +z*100h CPS-Packet circular buffer z CPS-Packet assembly structure -- see Figure 12 . . . 8000h+0Ah*z Partial Byte Storage [7:1] . . . CPS-Packet circular buffer N-1 Timeslot 127 TDM Frame Buffer Notes: • TDM Frame Buffer is an internal memory inaccessible to the user. It contains the latest byte to enter the chip from each TSST on the H.100/H.110 bus. • Bytes are taken from the TDM Frame Buffer and treated according to the TX CAM entry for that TSST. • TSSTs for which no TX CAM entry exists are ignored. CPS-Packet Circular Buffer Notes: • Each buffer is 256 bytes long. • N consecutive circular buffers exist in SSRAM (N = number of channels, as set by sar_capacity -- see register 0240h). • Location of buffers within SSRAM is dependent on sar_capacity. • Buffers are in order by HDLC/PCM channel number (see TX CAM). • When a CPS-Packet is assembled, data from the buffer is placed in an ATM cell and the CPS-Packet read pointer (CPSP Buf RP) in the assembly structure is adjusted. Notes: • Channels dedicated to HDLC (indicated by the CPS-Packet assembly structure for that channel) undergo zero-extraction before being placed in the correct CPS-Packet circular buffer. • ADPCM information is accumulated in the CPS-Packet assembly structure for that channel until an entire byte has been collected. • CPS-Packet assembly structures for PCM channels are consulted to direct PCM bytes to the correct CPS-Packet circular buffer • LLL (Low latency loopback) bytes are placed directly into the RX TDM Frame Buffer to exit the chip on the H.100/H.110 bus. • The TX SAR can be configured to alter the read pointer on a per-channel basis. Figure 18 - TDM Frame Buffer 39 MT90502 Preliminary Datasheet 2.3 TX SAR 2.3.1 Overview The purpose of the TX SAR Module is to assemble AAL2 CPS-Packets into AAL2 ATM cells to be transmitted to the UTOPIA Module. The TX SAR Module has no external interfaces, and does not control any of the MT90502's pins. However, it is the connecting block between the Tx TDM module and the UTOPIA Module in the data transmission direction. 2.3.2 AAL2 Cell Assembly Process The AAL2 cell assembly process is directed by the TX AAL2 VC Structure (see Figure 19 on page 40). This structure is referenced and references all the structures necessary to compile an AAL2 ATM cell. It is employed by the TX SAR module to raise an event for an AAL2 ATM cell. It constructs the ATM cell payload by referencing the CPS-Packets via the CPS-Packet Descriptor Queue (SDRAM), which contains the CPS-Packet addresses in the CPS-Packet Circular Buffer (TX SSRAM). The structure also contains the ATM header data, time-out data, next CPU transmit CPS-Packet pointer, UTOPIA port destination and a free running counter of transmitted ATM cells. It is the responsibility of the software to program the following in the TX AAL2 VC Structure (Figure 19). • time-out period • ATM header associated with the VC • the TXD (TX Destination) field Relative Mapping in SRAM Memory TX AAL2 VC Structure b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +00h VC Number 0 +0h Packet Descriptor Write Pointer[8:0] +20h VC Number 1 +2h V +4h +7FC0h VC Number 1022 +7FE0h VC Number 1023 +6h +8h +Ah The number of VC Structures in this table can be programmed to {128, 256, 512, 1023} +Ch +Eh Pending Pay load Bytes Cell Expired Time-stamp Packet Descriptor Read Pointer[8:0] PS SA Current Packet Offset[6:0] Pending Packet Timeout Period[13:0] TXD Header[31:16] Header[15:0] Transmitted Cell Count[31:16] +10h Transmitted Cell Count[15:0] +12h CPU Sourced CPS-Packet Control[16:1] The TX AAL2 VC Structures are of fixed size and are located at the beginning of the TX SSRAM memory space (+0000h) through to addresses +0FE0h, +1FE0h, +3FE0h and +7FE0h for 128, 256, 512 and 1023 channels respectively. Each structure is 32 bytes in size. Fields in Italic are used by Hardware only. Fields in Plain are written to by the CPU/Software. Reserved Figure 19 - TX AAL2 VC Structure 40 MT90502 Preliminary Datasheet Field Byte Address Offset/Bits Used Description of Field Packet Descriptor Write Pointer 0/b[15:7] Written by the TX TDM module to denote the address of next CPS-Packet Descriptor in the CPSPDQ. The CPSPDQ is deemed full when the Packet Descriptor Write Pointer is one less than the Packet Descriptor Read Pointer. Pending Payload Bytes 0/b[6:1] Indicates the number of pending payload bytes (CPS-Packet payload and header bytes) available to the associated VC. The range is 0 to 46. This field is updated by the TX TDM process with the remaining ATM cell pending payload bytes when a Cell Assembly Event is raised. Reset is performed by the TXSAR's scanning process. V: Valid Bit +2/b[15] Associated to the Cell Expired Time-Stamp. If this bit is '1', then the time-stamp must be taken into account. Otherwise, it is ignored and no cells can be assembled. Cell Expired Time Stamp +2/b[14:0] This is an absolute time stamp at which a pending cell must be transmitted. This field is set by the TDM process any time a CPS-Packet is written that starts at or overlaps a cell boundary. It will be written to the current time plus the Pending Packet Time-out Period field in this structure. This field will be cleared by the TDM process any time no CPS-Packets are pending. It will also be cleared by the TXSAR's scanning process if it is detected to have timed-out, and a cell Transmission Event is scheduled by this same process. The time unit for the time-out is 125 µs. Packet Descriptor Read Pointer +4/b[15:7] Read pointer to the current CPS-Packet (Descriptor) in the CPSPDQ. Updated by the TXSAR. Current Packet Offset +4/b[6:0] This field indicates how many bytes are remaining in a CPS-Packet when the CPS-Packet is straddling two cells. PS: Prevent Scanning +6/b[15] When this bit is '1', the pending packet time-out period will be ignored, and the V bit will never be written back to '1'. SA: Send Always +6/b[14] When '1', a maximum of one CPS-Packet will be contained in each cell. The remainder of the last cell to contain a CPS-Packet will always be zero padded to make sure that no other CPS-Packets join it. Pending Packet Time-out Period +6/b[13:0] This is the maximum period set by the software that a Pending CPS-Packet exist before transmission. The value is in multiples of 125µs. 0 means between 0 and 124µs. TXD: Transmission Destination +8/b[15:12] 000 do not send 0xx1 UTOPIA TX Port A 0x1x UTOPIA TX Port B 01xx UTOPIA TX Port C 1000 UTOPIA RX Port A 1001 UTOPIA RX Port B 1010 UTOPIA RX Port C others reserved Header[31:0] +A/b[15:0] +C/b[15:0] ATM Cell Header in the following order (starting from bit 31): GFC, VPI, VCI, PT, CLP Table 21 - AAL2 VC Structure Fields 41 MT90502 Field Preliminary Datasheet Byte Address Offset/Bits Used Description of Field Transmitted Cell Count +E/b[15:0] +10/b[15:0] Free running transmitted cell counter. CPU Sourced CPS-Packet Control +12/b[15:0] This field points to the first word of the next CPU sourced CPS-Packet. Table 21 - AAL2 VC Structure Fields (continued) 2.3.2.1 AAL2 Cell Assembly Procedure • • • • • • • • • • • • 42 The CPS-Packet Assembly Structure raises a CPS-Packet event upon the alignment of the sub-phase and phase (See Figure 12 - PCM/ADPCM CPS-Packet Assembly Structure). The CPS-Packet Assembly Structure is mapped to the CPS-Packet Final Assembly Structure by the absolute address of both structures. The CPS-Packet Final Assembly Structure reads the ‘CPS-Packet Descriptor Write Pointer’ in the AAL2 VC Structure to determine the next address to write the current CPS-Packet. The CPS-Packet Assembly Structure retrieves the payload data from the TX TDM Frame Buffer and writes it to the CPS-Packet Circular Buffer in TX SSRAM. In preparation for the next CPS-Packet, the CPS-Packet Final Assembly Structure then updates (i.e. writes) the ‘Packet Descriptor Write Pointer’ in the ‘AAL2 VC Structure’. The ‘Pending Payload Byte’ field is updated by the TX TDM module when a CPS-Packet event is raised. When more than one CPS-Packet event is raised within the same CT_FRAME, each CPS-Packet event generates its corresponding CPS-Packets Final Assembly Structure in the TX TDM process. The TX SAR sequentially steps through each CPS-Packet Final Assembly Structure and for each process consults the associated AAL2 VC Structure to determine if enough payload has accumulated to generate a VC Send Event (see Figure 20, “Cell Assembly Event Queue,” on page 43). If enough payload is present then the TX SAR raises a VC Send Event and updates the Pending Payload Byte field with the remaining number of pending payload bytes. However, a VC Send Event may also be generated via the time-out period specified in the AAL2 VC Structure. All VCs have a time-out period that specifies the maximum time that any CPS-Packet destined to that VC can wait before a cell containing them is assembled. The time-out period is defined in CT Frames (i.e. multiples of 125µs) in the AAL2 VC Structure. The ATM header information is contained within the AAL2 VC Structure. The Packet Descriptor Read Pointer in the AAL2 VC Structure points indirectly to the complete CPS-Packet via the CPS-Packet Base Address in the Descriptor of the CPS-Packet Descriptor Queue. The CPS-Packet Descriptor Queue contains Descriptors for each complete CPS-Packet. The Descriptors contained the CPS-Packet header information and the absolute address of the CPS-Packet in the TX SSRAM. The VC Number in the CPS-Packet Final Assembly Structure points to the VC Send Event structure. A VC Send Event structure is only generated when enough payload is obtained to fill an ATM cell or the cell has past the expiry period. This is denoted by the Pending Payload Byte or Cell Expiry Time Stamp field in the AAL2 VC Structure. Upon a VC Send Event, the TX SAR writes a complete ATM cell (see Figure 21 on page 43) to the TX SAR Input FIFO (4 cell depth). MT90502 Preliminary Datasheet Cell Assembly Event Queue (located in TX SSRAM) +000h Event 0 +004h Event 1 +FF8h Event 1022 +FFCh Event 1023 VC Send Event b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 +0h VC Number[9:0] b2 b1 b0 Num of Payload Bytes +2h VC Number [9:0]: Number of the VC in which a cell must be assembled. Num of Payload Bytes: Indicates the number of payload bytes that will be packaged in the cell that will be assembled. Range 1 to 47. The number of structures in this table is programmed with respect to the max. number of channels:{128, 256, 512, 1023}. The Cell Assembly Event Queue is located in TX SSRAM at addresses +2000h to +21FCh, +4000h to +43FCh, +8000h to +87FCh and +10000h to +10FFCh for 128, 256, 512 and 1023 channels respectively. Note: This structure is used by hardware only. Each structure is 4-bytes in size. Figure 20 - Cell Assembly Event Queue . Cell Format of TX SAR Input FIFO b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 +0h GFC/VPI +2h VPI VCI [11:0] b2 b0 OAM PTI CLP +4h Payload Byte 0 Payload Byte 1 +6h Payload Byte 2 Payload Byte 3 +30h Payload Byte 44 Payload Byte 45 +32h Payload Byte 46 Payload Byte 47 +34h b1 VCI [15:12] TXD +36h +38h Reserved +3Ah +3Ch +3Eh TXD: The TX Destination field, as defined in the TX AAL2 VC Structure. TX SAR Input FIFO structure is 64-bytes in size, located in internal memory at 2000h to 20C0h. The AAL0 Input FIFO structure is 64-bytes in size, located in internal memory at 2100h to 21C0h. Note: This structure used by hardware only. Figure 21 - TX Cell Format 2.3.3 AAL0 Cells The TX SAR has the ability to insert AAL0 cells in the transmission direction. AAL0 cells are generated by the CPU and are directed to a 4-cell internal FIFO memory. It is necessary for the CPU to read the AAL0_MONITOR register (310h) to ascertain if the 4-cell internal FIFO memory can accommodated the pending AAL0 cell. The destination of the AAL0 cell is determined by the TX Destination field. The aal0_input_fifo is 4 cells deep in the MT90502, however, it is the hardware that manages the pointers. The software will write the cell to the first entry (0x2100 to 0x213E) and then it will set the register indicating that there is a new cell. There is more than 1 cell to write at a time and the aal0_input_cell_written is set after each cell. 43 MT90502 2.4 Preliminary Datasheet RX SAR The RX SAR module performs processing on ATM cells received from the UTOPIA module. Cells placed in the RX SAR Output FIFO by the UTOPIA module are first read, then divided into the component CPS-Packets, and finally written into the appropriate CPS-Packet data circular buffer in external memory. The processing involves • identifying the VC corresponding to the cell • examining the cell for errors • determining the routing of each CID, and • disassembling the cell’s CPS-Packets. The status of the circular buffers is monitored for underruns and overruns. The RX SAR module also directs data cells to the data cell FIFO from which the CPU can read them. The RX SAR module supports PCM and ADPCM CPS-Packets of 1, 2, 3, 4, 5, or 8 EDUs, 32K ADPCM 80 frame CPS-Packets, 32K ADPCM 88 frame CPS-Packets, PCM 44 frame CPS-Packets, HDLC CPS-Packets of 1 to 64-bytes in length, and can accommodate packets straddling multiple cells. 2.4.1 RX AAL2 VC Structure For each VC directed to the RX SAR, an RX AAL2 VC structure exists in external memory. The RX AAL2 VC structures contain the following: • information required to detect errors • a free-running received cell counter • bytes received of from a CPS-Packet that is straddling the current and next AAL2 cells. When a VC is opened, the lost bit must be set, the error report enable bit must be set (if per-VC errors are to be reported) or reset (if no per-VC errors are to be reported), and the received cell counter must be initialized to 0. 44 MT90502 Preliminary Datasheet RX AAL2 VC Structure b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 +00h VC Number 0 +80h VC Number 1 +2h ER +100h VC Number 2 +4h Received Cell Counter [31;16] +6h Received Cell Counter [15:0] +1FE80h VC Number 1021 +1FF00h VC Number 1022 +1FF80h VC Number 1023 +0h LI[5:0] LST SN b2 b1 b0 Straddle Offset [6:0] +8h +Ah +Ch +Eh +10h The RX AAL2 VC structures are fixed structures located at the beginning of RX SSRAM memory through 0 to addresses +3F80h, +7F80h, +FF80h and +1FF80h for 128, 256, 512 and 1023 channels respectively. Each structure is 128 bytes in size. +12h CID [7:0] UUI[2:0] LI [5:0] HEC UUI [4:3] CPS-Payload 0 +14h CPS-Payload 1 CPS-Payload 2 +16h CPS-Payload 3 CPS-Payload 4 +50h CPS-Payload 59 CPS-Payload 60 +52h CPS-Payload 61 CPS-Payload 62 Reserved Fields in Italic are used by hardware only. Fields in Plain are written to by the CPU/Software. LI: Length of the packet currently in transition. LST: Lost Bit. Indicates that the RX SAR detected an error in the last cell it received. Must be set to “1” at start-up. SN: Expected Sequence Number of next cell. Straddle Offset: The number of bytes that have been received so far in the transitioning packet. ER: Error Report Enable. When “1’, the RX SAR will report cell-level errors, Sequence Number errors, Offset, Parity, and AAL2 HEC errors. Received Cell Counter: Free running counter of the number of cells received by this VC so far. Figure 22 - RX AAL2 VC Structure 2.4.2 CID Structure Once cells are received by the RX SAR, they are broken down into their component CPS-Packets, and analysed on a per-CID basis. The RX SAR contains 255 RX CID descriptor structures per VC, each one indicating where CPS-Packets containing that CID should be routed. Each CPS-Packet can be treated either as a PCM channel, an HDLC channel, a CPU CPS-Packet, or it can be discarded entirely. This routing is based on the UUI of the CPS-Packet. 45 MT90502 Preliminary Datasheet RX CID Structure +00000h VC Number 0 +00h VC Number 1 +008h CID Descriptor 1 +00800h +01000h VC Number 2 +010h CID Descriptor 2 +01800h VC Number 3 VC Number 4 +7E8h CID Descriptor 253 +02000h +7F0h CID Descriptor 254 +1FE800h VC Number 1021 +7F8h CID Descriptor 255 +1FF000h VC Number 1022 +1FF800h VC Number 1023 RX CID Descriptor Structure b15 b14 b13 b12 b11 b10 b9 b8 +0h The RX CID Structures are located in SDRAM. UUI0-15 b7 b6 b5 b4 b3 b2 b1 b0 CPS-Packet Dis. Structure Number [9:0] +2h UUI31 UUI30 UUI29 UUI28 UUI27 UUI26 UUI25 UUI24 +4h UUI23 UUI22 UUI21 UUI20 UUI19 UUI17 UUI16 UUI18 +6h Each structure is 2048-bytes in size. Fields in Plain are written to by the CPU/Software. Reserved CPS-Packet Disassembly Structure Number: Points to the CPS-Packet disassembly structure to which all PCM or HDLC packets on this CID belong. UUIx: Determines the destination of any CPS-Packet with the corresponding UUI. “00”=delete; “01”=CPU packets, sent to RX CPU CPS-Packet buffer; “10”=PCM; “11”HDLC. Figure 23 - RX CID Structure The CPS-Packet Disassembly Structure field indicates for PCM and HDLC channels the CPS-Packet disassembly structure to be used for CPS-Packets identified by the CID Descriptor Structure. UUIs 0 to 15 are routed together because the 4 LSBs of the UUI can be used as a sequence counter. The remaining 16 UUIs are routed separately. Each one can be destined to the CPU, to the PCM or HDLC channel, or deleted entirely. 2.4.3 CPS-Packet Disassembly Structures CPS-Packets routed to PCM or HDLC channels are treated by the CPS-Packet disassembly structure. Though the CPS-Packet disassembly structure is in the same location for PCM and HDLC channels, the fields are interpreted as one or the other depending on the value of the appropriate UUI field in the corresponding CID descriptor structure. The fields in the CPS-Packet disassembly structure indicate the form of the channel and the type of treatment required on the CPS-Packet to be disassembled. 46 MT90502 Preliminary Datasheet CPS-Packet Disassembly Structure (xxPCM) HDLC/xxPCM CPS-Packet Disassebly Structure Space b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0000h CPS-Packet Dis. Struct. 0 +0h +0020h CPS-Packet Dis. Struct. 1 +2h +0040h CPS-Packet Dis. Struct. 2 +4h +0060h CPS-Packet Dis. Struct. 3 +6h +0080h CPS-Packet Dis. Struct. 4 +8h I Initialization Lead[7:1] SM SE ADJ SPR A B Last UUI[3:0] Circ. Buffer Write Pointer[23:16] 2’s complement Delay Adjust[11:0] Lowest Delay Encountered (in frames) [11:0] Highest Delay Encountered (in frames) [11:0] CPS-Packet Counter[15:0] +7FA0h CPS-Packet Dis. Struct. 1021 +Ch +7FC0h CPS-Packet Dis. Struct. 1022 +Eh +7FE0h CPS-Packet Dis. Struct. 1023 +10h Index of structure is given by CPS-Packet Disassembly Structure Number (+00h [b9:b0]) in CID Descriptor Structure. Max PDV (in frames) [9:0] Circ. Buffer Write Pointer[15:0] +Ah CPS-Packet Disassembly structures located in RX SSRAM memory. Address range of strucutres is +6000h to +6FE0h, +C000h to +DFE0h, +18000h to +1BFE0h and +30000h to +37FE0h for 128, 256, 512 and 1023 channels respectively. LC LE C # of EDU LI0 SL Expected LI TDM RP / First written byte Offset RL RU # Seq Bits / UUI M Reserved Fields in Italic are used by Hardware only. Fields in Plain are written to by the CPU/Software. Each structure is 32-bytes in size. Figure 24 - CPS-Packet Disassembly Structure (PCM/ADPCM) Field Name of Field Byte Address Offset/Bits Used Description of Field C Compression Ratio +0/b15:b13 LC CPS-Packet Loss Compensation Enable +0/b11 0: CPS-Packet Loss Compensation circuit disabled. 1: CPS-Packet Loss Compensation circuit enabled. LE Loss Error Report Enable +0/b10 This bit must be set in order for CPS-Packet loss errors (e.g. losses due to silence suppression or to network quality) to be reported on this CID. CPS-Packet loss errors are detected by circular buffer overflow, or due to CPS-Packet descriptor queue overrun (in HDLC), and by sequence number errors (in PCM). +0/b9:b0 This indicates the maximum quantity of PDV that the AAL2 Channel will incur. It is measured in frames (i.e. 125 us). A value of 0 implies that there is no PDV on the AAL2 Channel. The maximum value for this field depends on the Number of EDUs and the size of the RX Circular Buffers. It is defined as ((Size of circular buffer) - 8*(Number of EDUs) -4) /2. Max PDV (in frames) [9:0] Max PDV (in frames) Circ. Buffer Write Pointer [23:0] I Circular buffer write pointer Structure Initialized bit +2/b15:b0, +4/b7:b0 +4/b15 ‘000’ = 64 kbps, ‘010’ = 40 kbps, ‘011’ = 24 kbps, ‘100’ = 16 kbps, ‘101’ = ADPCM auto-detect (can change between 16, 24, 32 and 40 kbps), ‘110’ = PCM & ADPCM auto-detect (can change between 16, 24, 32, 40, 64 kbps), others = reserved. Pointer to the next memory location to be written upon the arrival of the next CPS-Packet. Structure initialized by hardware bit. Written to ‘0’ by software upon opening the channel, written to ‘1’ by hardware upon receiving the first CPS-Packet. Table 22 - CPS-Packet Disassembly Structure (PCM/ADPCM) Fields 47 MT90502 Field Initialisation Lead [7:1] Preliminary Datasheet Name of Field Byte Address Offset/Bits Used Description of Field Initialisation Lead +4/b14:b8 Delay in frames that the first byte of the first CPS-Packet will go through before being sent on the TDM bus. This can be set to a lower value in order to minimise delay or to a higher value to avoid slips during the first CPS-Packets of the connection. Its value cannot exceed the Max PDV field. Typically, this field would be set to (Max PDV)/2 when initializing in the middle, or to 1 or 2 when initializing close to the edge. SM Slip Mode +6/b15:b14 Action to be taken upon a slip. ‘0x’ = Slip to edge of circular buffer on underruns ‘1x’ = Slip to middle of circular buffer on underruns ‘x0’ = Slip to edge of circular buffer on overruns ‘x1’ = Slip to middle of circular buffer on overruns SE Slip Error Report Enable +6/b13 When ‘0’, underrun and overrun slips will not be reported. When ‘1’, they will be reported. ADJ Delay Adjustment pending +6/b12 Written to ‘1’ by software when a delay adjustment must be done by the hardware. Hardware will clear this field once the delay adjustment has been performed. Two’s complement number that will be added to the write pointer when the next CPS-Packet arrives. A value of 0 will not modify the delay. A value of -1 will reduce the delay by one frame. A value of +1 will increase the delay by one frame. Any time an adjustment is performed the Lowest and Highest delay fields will be adjusted accordingly. 2’s complement Delay Adjust[11:0] 2’s Complement Delay Adjust +6/b11:b0 SPR Silence Suppression Enable +8/b14 When ‘1’, any byte matching the “silent_pattern” (contained in register 0410h) will not be written to the external memory, causing silent padding to be inserted instead. A Clock recovery reference A +8/b13 When ‘1’, a pulse will be sent to the clock recovery module indicating that a reference packet (a timing CPS-Packet) has been received. This bit corresponds to clock recovery channel A which is independent of clock recovery channel B. B Clock recovery reference B +8/b12 When ‘1’ a pulse will be sent to the clock recovery module indicating that a reference packet (a timing CPS-Packet) has been received. This bit corresponds to clock recovery channel B which is independent of clock recovery channel A. +8/b11:b0 Lowest delay inserted by the hardware’s buffer. This is a signed number: 0 is a valid delay of less than one frame, -1 is an invalid delay and indicates that one or more slips have occurred. Lowest Delay Encountered (in frames) [11:0] Last UUI [3:0] Lowest delay encountered Last UUI +A/b15:b12 Last received UUI bits 3:0. Table 22 - CPS-Packet Disassembly Structure (PCM/ADPCM) Fields (continued) 48 MT90502 Preliminary Datasheet Byte Address Offset/Bits Used Field Name of Field Highest Delay Encountered (in frames) [11:0] Highest delay encountered +A/b11:b0 Highest delay inserted by the hardware’s buffers. This is a signed number. All delays up to Max PDV in Frames are acceptable. Beyond this point, one or more slips have occurred. CPS-Packet counter +C/b15:b0 Free running count of received CPS-Packets (SID and non-SID included). Number of EDU +E/b15:b13 Number of data units in each packet. ‘000’ = 8 frames or 1 EDU ‘001’ = 16 frames or 2 EDU ‘010’ = 24 frames or 3EDU ‘011’ = 32 frames or 4EDU ‘100’ = 40 frames or 5 EDU ‘101’ = 44/88 frames PCM/ADPCM32 ‘110’ = 40/80 frames PCM/ADPCM32 ‘111’ = 64 frames or 8 EDU CPS-Packet Counter[15:0] # of EDU SL TDM RP / First written byte Offset SID Last TDM RP/First written byte offset Description of Field +E/b10 When ‘1’, the last packet received was a SID. This field is used to generate the ADPCM reset if the first voice packet after a SID contains ADPCM data. This bit should be initialized to ‘1’ so that the first ADPCM packet resets the decoder. +E/b9:b0 Positive offset between the circular buffer write pointer used to write the first byte of a CPS-Packet and the TDM_circular_buffer_read_pointer + 1. initialize to “00_0000_0000” LI0 Length indicator of zero +10/b15:b14 Indicates how to treat CPS-Packets with the LI field equal to 0. ‘00’ = reserved. ‘01’ = CPS-Packet is SID, discard CPS-Packet. ‘10’ = CPS-Packet is SID, treat CPS-Packet. ‘11’ = CPS-Packet is SID, treat CPS-Packet and generate report structure. Expected LI Expected LI +10/b13:b8 The LI expected in all voice packets. If the received LI does not match the Expected LI and RL = ‘1’, then an error report structure will be generated. Note: the CPS-Packet will still be treated. RL Report Length Errors +10/b7 Report each CPS-Packet received in which the LI does not match Expected LI. RU Report UUI Errors +10/b6 Report each CPS-Packet received in which the UUI does not match expected UUI. # Seq Bits/UUI M Number of Sequence Bits in the UUI and UUI Match +10/b4:b0 ‘10000’ = 4 sequence bits ‘x1000’ = 3 sequence bits & UUI[3] in match ‘xx100’ = 2 sequence bits & UUI[3:2] in match ‘xxx10’ = 1 sequence bit & UUI[3:1] in match ‘xxxx1’ = 0 sequence bits & UUI[3:0] in match Table 22 - CPS-Packet Disassembly Structure (PCM/ADPCM) Fields (continued) 49 MT90502 Preliminary Datasheet C P S -P a c k e t D is a s s e m b ly S tr u c tu r e (H D L C fo r m a t) S R A M M a p p in g - H D L C /x x P C M C P S -P a c k e t D is a s s e b ly S tr u c tu r e S p a c e b15 b14 b13 b12 b11 b10 b9 +0000h C P S -P a c k e t D is . S tru c t. 0 +0h +0020h C P S -P a c k e t D is . S tru c t. 1 +2h +0040h C P S -P a c k e t D is . S tru c t. 2 +4h +0060h C P S -P a c k e t D is . S tru c t. 3 +6h +0080h C P S -P a c k e t D is . S tru c t. 4 +8h CRC LE H b8 I b7 b6 b5 b4 b3 b2 b1 b0 C irc . B u ffe r W rite P o in te r[9 :1 ] C irc . B u ffe r R e a d P o in te r[9 :1 ] H D L C S tre a m N u m b e r[9 :0 ] H D L C A d d re s s [1 5 :0 ] A SUE B C o n tro l B y te [7 :0 ] +A h +7FA 0h C P S -P a c k e t D is . S tru c t. 1 0 2 1 +Ch +7FC 0h C P S -P a c k e t D is . S tru c t. 1 0 2 2 +E h +7FE 0h C P S -P a c k e t D is . S tru c t. 1 0 2 3 +10h C P S -P a c k e t C o u n te r[1 5 :0 ] E x p e c te d L I RL RU # S e q B its / U U I M F ie ld s in Ita lic a re u s e d b y H a rd w a re o n ly . F ie ld s in P la in a re w ritte n to b y th e C P U /S o f tw a re . C P S -P a c k e t D is a s s e m b ly s tru c tu re s lo c a te d in R X S S R A M m e m o ry . A d d re s s ra n g e o f s tru c u tre s is + 6 0 0 0 h to + 6 F E 0 h , + C 0 0 0 h to + D F E 0 h , + 1 8 0 0 0 h to + 1 B F E 0 h a n d + 3 0 0 0 0 h to + 3 7 F E 0 h f o r 1 2 8 , 2 5 6 , 5 1 2 a n d 1 0 2 3 c h a n n e ls re s p e c tiv e ly . R e s e rv e d In d e x o f s tru c tu re is g iv e n b y C P S -P a c k e t D is a s s e m b ly S tru c tu re N u m b e r (+ 0 0 h [b 9 :b 0 ]) in C ID D e s c rip to r S tru c tu re . E a c h s tru c tu re is 3 2 -b y te s in s iz e . Figure 25 - CPS-Packet Disassembly Structure (HDLC Format) Field Name of Field Byte Address Offset/Bits Used H Header Type +0/b14:b12 CRC CRC enable +0/b11 Indicates if a 16-bit trailing CRC is to be appended to the CPS-Packet. LE Loss Error Report Enable +0/b10 This bit must be set in order for CPS-Packet loss errors (e.g. losses due to silence suppression or to network quality) to be reported on this CID. CPS-Packet loss errors are detected by circular buffer overflow, or due to CPS-Packet descriptor queue overrun (in HDLC), and by sequence number errors (in PCM). I Structure Initialized bit +0/b9 Reset by software upon opening the channel, set by hardware upon receiving the first CPS-Packet. Circ. Buffer Write Pointer [9:1] Circular Buffer Write Pointer +0/b8:b0 Points to the location in the circular buffer used to contain HDLC packets where the next CPS-Packet will be written. Circ. Buffer Read Pointer [9:1] Circular Buffer Read Pointer +2/b8:b0 Points to the location in the circular buffer used to contain HDLC packets where the next byte is to be read to be sent on the TDM bus HDLC Stream Number [9:0] HDLC Stream Number +4/b9:b0 Pointer to beginning of the HDLC Stream structure in the RX_TDM control memory to which this channel must be routed. Directing many HDLC streams to the same HDLC Stream structure allows many HDLC channels to point to a single stream. Description of Field Gives the format of the HDLC header ‘000’ = no header bytes ‘001’ = one byte address ‘010’ = two byte address ‘011’ = one byte address + control ‘100’ = two byte address + control others = reserved Table 23 - CPS-Packet Disassembly Structure (HDLC format) Fields 50 MT90502 Preliminary Datasheet Byte Address Offset/Bits Used Field Name of Field HDLC Address[15:0] HDLC Address [15:0] +6/b15:b0 Address used to form the HDLC header. This field is ignored if the Header Type is ‘000’ A Clock recovery reference A +8/b13 When ‘1’, a pulse will be sent to the clock recovery module indicating that a reference packet (a timing CPS-Packet) has been received. This bit corresponds to clock recovery channel A which is independent of clock recovery channel B. B Clock recovery reference B +8/b12 When ‘1’, a pulse will be sent to the clock recovery module indicating that a reference packet (a timing CPS-Packet) has been received. This bit corresponds to clock recovery channel B which is independent of clock recovery channel A. SUE Send UUI enable +8/b8 Send UUI in control byte enable. When set and when Header Type is ‘011’ or ‘100’, the 5 MSBs of the HDLC control byte will be the UUI. Control Byte [7:0] HDLC Control Byte +8/b7:b0 Control byte used to form the HDLC control byte. This field is ignored if the Header Type is not ‘011’ or ‘100’. CPS-Packet Counter[15:0] CPS-Packet counter +C/b15:b0 Free running count of received CPS-Packets (SID included). Expected LI Expected LI +10/b13:b8 The LI expected in all voice packets. If the received LI does not match the Expected LI and RL = ‘1’, then an error report structure will be generated. Note: the CPS-Packet will still be treated. RL Report Length Errors +10/b7 Report each CPS-Packet received in which the LI does not match Expected LI. RU Report UUI Errors +10/b6 Report each CPS-Packet received in which the UUI does not match expected UUI. # Seq Bits/UUI M Number Sequence Bits in the UUI and UUI Match +10/b4:b0 Description of Field ‘10000’ = 4 sequence bits ‘x1000’ = 3 sequence bits & UUI[3] in match ‘xx100’ = 2 sequence bits & UUI[3:2] in match ‘xxx10’ = 1 sequence bit & UUI[3:1] in match ‘xxxx1’ = 0 sequence bits & UUI[3:0] in match Table 23 - CPS-Packet Disassembly Structure (HDLC format) Fields (continued) Note: A and B bits in both the PCM and HDLC CPS-Packet disassembly structures are used to signal the chip when a timing reference CPS-Packet has been received. As the UTOPIA module can also generate these signals based on timing reference cells, each of these bits should be set in only one location: either in a single LUT or in a single CPS-Packet disassembly structure. The compression rate of the ADPCM CPS-Packets can be dynamically determined using the EDU field and the LI field of the CPS-Packet. Once the compression rate is determined for a CID, the ADPCM samples will be formatted according to the compression rate (see Figure 26 on page 52) and placed in the Rx Circular Buffer. To alter the monitored delay, software can generate a delay adjustment by writing the ADJ field to ‘1’ and the 2’s Complement Delay Adjust field to the number of bytes by which the delay should be altered. 51 MT90502 Preliminary Datasheet Format of RX Circular Buffer Valid Voice Samples (nibble in upper bits): b8 b7 b6 b5 1 b8 1 b8 1 b8 1 b3 b2 b1 b0 b8 b7 b6 b5 b4 b3 b6 b5 b6 b5 24 kbps b7 b5 b4 b3 b1 b0 b8 b7 b6 b5 0 0 1 0 0 1 b3 b2 b1 b0 b8 b7 b6 b5 b4 1 0 0 0 1 0 0 0 1 b4 b3 b2 b1 b0 b8 b7 b6 b5 b4 b3 1 0 0 0 0 1 0 0 0 0 1 b4 b2 b4 b3 b2 b3 b2 b2 b4 b3 b2 b1 b0 b8 b7 b6 b5 b4 b3 b2 1 0 0 0 0 0 1 0 0 0 0 0 1 Write back bytes: b4 b3 b2 b0 b8 b7 0 1 b1 b8 b7 b6 b5 b4 b3 b2 b1 b0 0 0 0 0 0 0 0 0 0 b1 b0 b1 b0 24 kbps b5 b5 b1 32kbps b6 b6 b0 ADPCM 40kbps 16 kbps SID Entries: b1 PCM Sample 1 32kbps b7 b6 b2 ADPCM 40kbps b7 b7 1 PCM Sample 1 b8 b4 Valid Voice Samples (nibble in lower bits): b1 b0 16 kbps b0 0-127 = tones/silence/null pattern. Tone Buffer Number Write Back rx9.cdd Figure 26 - Format of RX Circular Buffer For HDLC CPS-Packets, the RX SAR performs zero-insertion and appends the HDLC header and CRC (as necessary) to the packet before writing it to the circular buffer. The RX SAR can be configured to either bit-wise or byte-wise zero-insertion (one method for all of the HDLC channels). It can also write packets either with or without an AAL2 header. 2.4.4 CPS-Packet Loss Compensation The MT90502 is capable of calculating the elapsed time between the reception of two CPS-Packets. Based on the time elapsed and the difference in the sequence number in the UUI of the received CPS-Packet and that of the previous CPS-Packet, a count of how many CPS-Packets have been lost can be found. The circular buffer write pointer is adjusted to take the number of CPS-Packets lost into account before beginning to write the received bytes. This algorithm is only successful if the PDV between packets is smaller than a complete wrap of the UUI sequence counter. An enable bit (LC) in the CPS-Packet disassembly structure allows the CPS-Packet loss compensation to be turned on or off. 2.4.5 CPU CPS-Packets If the CID Description Structure denotes a CPS-Packet as a CPU CPS-Packet, the CPS-Packet will be written into the CPU CPS-Packet FIFO in external memory and a CPU CPS-Packet report structure will be generated (see Section 2.4.7, Errors and Events on page 53). The CPU is alerted to the presence of CPU CPS-Packets through the CPU CPS-Packet report structures. The CPU CPS-Packet base address can be read from the CPS-Packet report structure. The size of the CPU CPS-Packet FIFO is programmable (register 440h) as is its base address (register 440h). The size of the FIFO can vary from 16 KB to 128 KB. The CPU is responsible for updating the read pointer (register 442h) following each read. 52 Preliminary Datasheet 2.4.6 MT90502 Treatment of Data Cells Data cells, such as those containing OAM information, are placed in a programmable length FIFO in external memory. The length of the FIFO is stored in register 430h. The CPU can read one or more data cells from the FIFO at any time, after obtaining the address of the FIFO (register 430h) and the read pointer (register 432h). The CPU is responsible for updating the read pointer following each read. The write pointer, incremented by hardware, indicates the location where the next data cell will be written. The FIFO is empty is the read pointer points to the same location as the write pointer. The CPU can be alerted to the presence of data cells via an interrupt that triggers if either of two events occur: 1. the interrupt can be generated when the FIFO becomes more than half full, or 2. the interrupt can be generated if a data cell has been present in the FIFO for longer than a programmable period of time (registers 460h, 462h). When ready to process the information, the CPU obtains a read pointer to the information from register 432h and reads the information through 26-word accesses. Cells with the OAM bit set in the PTI portion of the header can be directed to the data cell FIFO on a per VC basis. The same is true for non-OAM cells. In addition, unknown non-OAM cells and/or unknown OAM cells can also be sent to the data cell FIFO. All unknown non-OAM cells are directed to the same location(s), and all unknown OAM cells are directed to the same location(s). 2.4.7 Errors and Events An Error/Event Report FIFO exists in RX SSRAM whose base address and size are configured through register 438h. Four types of structures, as shown in Figure 26, are available to cover all errors or events listed in Table 24. Once an error or event occurs, a corresponding 4-word structure will be generated and written into Report FIFO. The error/event structure contains all the details pertaining to that error or event. Similar to the data cell FIFO, the CPU can read the error/event FIFO at any time after obtaining the base address (register 438h) and the read pointer of the error/event FIFO (register 43Ch). Again, an interrupt can be generated that triggers if either of two events occur. Those events are • the FIFO becomes more than half full, or • an error/event report structure has been present in the FIFO for longer than a programmable period of time (registers 464h, 466h). When ready to process the information, the CPU obtains a read pointer to the information from register 43Ch and reads the information through 4-word accesses. Note: Both PCM and HDLC CPS-Packets will generate a report structure when they are initialized. Apart from the generation of the error report structure, no action is taken on errors/events. 53 MT90502 Preliminary Datasheet RX SAR Report Structures Reserved Per VC Report Structure b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 0 VC Number[9:0] 0 0 +2 SN OFSHEC PAR +4 +6 Per CPU CPS-Packet Report Structure b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 0 VC Number[9:0] +2 0 0 1 CPU CPS-Packet Base Address[20:5] +4 CPU CPSPBA[4:1] +6 Per CID Report Structure (PCM CPS-Packets) b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 UUI[3:2] VC Number[9:0] +2 UUI[1:0] SID U +4 O I +6 0 1 0 CID[7:0] L ADJ First Byte of CPSP[7:0] 0 LM UM LI[5:0] CPS-Packet Loss[15:0] Per CID Report Structure (HDLC CPS-Packets) b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 UUI[3:2] VC Number[9:0] +2 UUI[1:0] PL1 PL2 +4 0 0 1 1 CID[7:0] I LM UM LI[5:0] +6 VC Number: Number of the VC on which the error occured. SN: Sequence Number Error. OFS: Offset Error. HEC: AAL2 CPS-Packet Header HEC Error. PAR: Offset Field parity error. PL1: Complete Packet Lost because of data buffer overflow (HDLC only). PL2: Complete Packet Lost because of CPSPDQ overflow (HDLC only). SID: SID CPS-packet received. U: Underrun Detected. (xxPCM only) O: Overrun Detected. (xxPCM only) I: CID Initialized. First CPS-Packet has been received. (Both HDLC and PCM) L: Loss of one or many CPS-Packet detected. See CPS-Packet Loss for a count of loss packets. (xxPCM only) ADJ: CDV Adjustment Performed. (xxPCM only) LM: LI Mismatch. UM: UUI Mismatch. First Byte of CPS-Packet : This is the first byte of the CPS-Packet. When SID = ‘1’, this is the SID byte. Figure 27 - RX Error Report FIFO Structures 54 MT90502 Preliminary Datasheet Category Cell-specific (per VC) Enable Location ER bit in each RX SAR disassembly structure Error/Event Coverage Sequence number error AAL2 cells Offset Field error AAL2 cells ATM HEC error all ATM cells Offset Field parity error AAL2 cells CPU CPS-Packet none Reception of a CPU CPS-Packet CPU directed CPS-Packets PCM CPS-Packets (per CID) LE in PCM CPS-Packet disassembly structure SID CPS-Packet received PCM CPS-Packets Underrun error PCM CPS-Packets Overrun error PCM CPS-Packets CID initialized PCM CPS-Packets Loss of one or more CPS-Packets error PCM CPS-Packets PDV adjustment performed PCM CPS-Packets LI mismatch error PCM CPS-Packets data buffer overflow error HDLC CPS-Packets CPS-Packet disassembly queue overflow error HDLC CPS-Packets CID initialized HDLC CPS-Packets LI mismatch error HDLC CPS-Packets HDLC CPS-Packets (per CID) LE in HDLC CPS-Packet disassembly structure Table 24 - RX SAR Errors and Events 55 MT90502 2.5 TDM Reception 2.5.1 Overview Preliminary Datasheet The RX TDM Module is responsible for reading bytes written to circular buffers in external memory by the RX SAR and administering the data to the H.100/H.110 interface module (see Section 2.7, “H.100/H.110 Interface,” on page 70). The RX TDM Module is capable of transmitting data in 1023 time slots on the H.100/H.110 bus. RX Cell Flow ATM Cell Received on UTOPIA Port Look-up Table Consulted Cell retransmitted on UTOPIA Port Cell sent to RX data cell buffer Cell Broken up Into CPS-Packets CPS Error Report (optional) CID/UUI Table Consulted SSCS Error Report (optional) CPS-Packet Sent to RX CPU CPS-Packet buffer CPS-Packet Written to a PCM Circular Buffer in SSRAM CPS-Packet Written to an HDLC Circular Buffer in SSRAM (after Zero Insertion) RX Channel Associated Link-List Consulted PCM/HDLC Circular Buffers in SSRAM PCM/HDLC Bytes send on H.100/H.110 H.100/H.110 Figure 28 - RX Cell Flow 56 Low Latency Loopback Memory MT90502 Preliminary Datasheet 2.5.2 RX Channel Association Memory The RX CAM generates a map that indicates which ADPCM channel, PCM channel or HDLC stream TSSTs are associated on the TDM bus. There are 1024 entries in RX CAM; the first entry is the permanent start entry for the map thus does not point to any TSST. The remaining 1023 entries are usable, each of which consists of • • • the PCM channel/ADPCM channel/HDLC stream number, or Loopback channel number. the TSST number the pointer to the next mapped entry. Note that the final entry in the map must always point back to the start entry. Like the TX CAM, all entries in the RX CAM must be linked sequentially in TSST order. RX Channel Association Memory b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 +0 +2 +4 +6 0 HDLC Stream/xxPCM Ch. Number TSST [11:0] Link to next entry +2 1 +4 LLL Ch. Number TSST [11:0] +6 Link to next entry Fields in Plain are written to by the CPU/Software. RX TDM CAM structures are 8 bytes is size, located in internal memory at addresses 6000h to 7FF8h. Reserved HDLC Stream/xxPCM Ch. No.: Used to find an entry in RX TDM Control Memory (see Figure 30 and Figure 31). Link to next entry: Pointer to the next entry in the linked list. 000h means end of linked list, return to start. Entry 0 in the linked list is always the start of frame and never points to a valid TDM channel. Figure 29 - RX Channel Association Memory (RX CAM) 2.5.3 RX Channel Underrun Condition When servicing PCM/ADPCM channels, a byte is read every frame from the external circular buffers and transmitted onto the TDM bus. PCM/ADPCM channels can be configured to perform write backs to the circular buffers after the read has been completed. This will ensure erroneous data will not be transmitted onto the TDM bus while an underrun condition occurs. The WB (Write Back type) bits in the RX Control Memory determine what is written back: tone/silent pattern (programmable in silent_pattern_reg 410h) or no Write Back. The PCM/ADPCM entry in RX Control Memory contains several fields that control underrun detection: • 16-bit free-running underrun counter which counts the number of underruns that have occurred on this channel • The UC (Underrun Count enable) bit enables the counter. The PCM/ADPCM control structure also contains the number of the PCM/ADPCM channel that is managed by the control entry. For underrun detection to work properly, all RX CPS-packet circular buffer contents, including parity bit, must be initialized to zero. 57 MT90502 Preliminary Datasheet RX TDM Control Memory Structure (PCM/ADPCM channels) b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 +0 b5 b4 +2 b2 b1 b0 Reserved Underrun Count [15:0] +4 CPS-Packet Dis. Struct Num [9:0] +6 +8 b3 Tone # to insert 1 IL OL URR WB UR UC Fields in Italic are used by Hardware only. Fields in Plain are written to by the CPU/Software. RX TDM Control Memory structures for XXPCM Channels are 16-bytes in size and are located in internal memory at addresses C000h and FFF0h. Tone # to insert: Indicates which tone/silence should be inserted when underruns occur. This can be used to generate DTMF, Dial-tones, Busy Tones, etc. 0-63 = tones in SSRAM; 64-95 = silent noises in SDRAM; 96-127 = insert programmable null byte. This number will be overwritten by SID packet. Underrun Count: Free running counter of the number of underruns detected on this channel. This field is in units of one sample being lost due to CPS-Packet loss or underrun situations. CPS-Packet Disassembly Structure Number:Pointer to the AAL2 channel associated with this TDM channel. This field is used to locate the RX Circular Buffer in SSRAM. IL: Input law (from received CPS-Packet). ‘0’ = u-law; ‘1’ = A-law OL: Output law (sent on TDM bus). ‘0’ = u-law; ‘1’ = A-law. If IL and OL are equal, bytes will not be modified. Otherwise u-law/A-law conversion will be done. URR: Underrun Counter Rollover Report Enable. WB: Write Back Type. ‘00’ = do not write back (replay buffer in case of underrun); ‘01’ = Write-back silent pattern in register 410h; ‘1x’ = reserved UR: Underrun Report Enable. UC: Underrun Count Enable (when ‘0’, the Underrun Counter is disabled; this saves interval bandwidth to the RX TDM Control memory). Figure 30 - RX TDM Control Memory Structure (PCM/ADPCM channels) 58 MT90502 Preliminary Datasheet RX TDM Control Memory Structure (HDLC Streams) b15 b14 b13 b12 b11 b10 +0h +2h b9 b8 b7 b6 Local WP Local RP +4h Fetch WP CPS-Packet Disassembly Struct Num +6h CPSPDQ RP [11:0] +8h CPSPDQ WP [11:0] b5 b4 b3 b2 b1 b0 Negative Offset [6:0] CPSP Read End of Packet Pnt [9:0] [9:0] Base HDLC structure for all HDLC Streams CPSPDQ Length [7:3] CPSPDQL [2:0] 0 +10h +12h +14h Negative Offset [5;0] NO7 CPS-Packet Dis Struct Num +16h +18h Negative Offset [5:0] NO7 CPS-Packet Dis Struct Num CPSP Read End of Packet Pnt [9:0] [9:0] CPSP Read Second HDLC structure on a HDLC stream End of Packet Pnt [9:0] [9:0] +20h +22h +24h Negative Offset [5:0] NO7 CPS-Packet Dis Struct Num +26h +28h Negative Offset [5:0] NO7 CPS-Packet Dis Struct Num CPSP Read End of Packet Pnt [9:0] [9:0] CPSP Read End of Packet Pnt [9:0] [9:0] +30h +32h +34h Negative Offset [5:0] NO7 CPS-Packet Dis Struct Num +36h +38h Negative Offset [5:0] NO7 CPS-Packet Dis Struct Num CPSP Read End of Packet Pnt [9:0] [9:0] CPSP Read End of Packet Pnt [9:0] [9:0] Third and up to N successive HDLC structures on a HDLC stream +40h +42h +44h Negative Offset [5:0] NO7 CPS-Packet Dis Struct Num +46h +48h Negative Offset [5:0] NO7 CPS-Packet Dis Struct Num CPSP Read End of Packet Pnt [9:0] [9:0] CPSP Read End of Packet Pnt [9:0] [9:0] Fields in Italic are used by the Hardware only. Fields in Plain are written to by the CPU/Software. Reserved RX TDM Control Memory structures for HDLC Streams are located in internal memory at addresses C000h to FFF0h. CPS-Packet Disassembly Structure Number: Pointer to the AAL2 channel associated with this HDLC stream. This field is used to locate the RX Circular Buffer in SSRAM. CPSPDQ Length: Packet Descriptor Queue Length. Set to the number of timeslots in the stream. 01h = 1 TSST, 02h = 2 TSST, Max size is 128. Local WP/RP and Fetch WP: Pointer to the pre-fetched HDLC packet handles contained in the 2/3/4/channel add on and the 5+ channel add-on. They must be initialized to 0h by software on HDLC stream start-up. CPSPDQ RP/WP: Read/write pointer to this HDLC stream’s Packet Descriptor Queue (PDQ) in SSRAM. CPSP Read End of Packet Pnt: Pointer to the last octet in HDLC packet in the RX Circular Buffer. Negative Offset: Current negative offset from the end of packet pointer at which the next byte of the HDLC packet will be read. Figure 31 - RX TDM Control Memory Structure (HDLC Streams) 2.5.4 Compression The RX TDM supports compression on PCM/ADPCM channels at the following data rates: 40, 32, 24 and 16 kbps. Each frame maintains a 5-, 4-, 3- or 2-bit compressed value in the high or low bits of the TDM byte and the remainder indicates the data rate (see Figure 7 on page 26 and Figure 10 on page 28). 59 MT90502 2.5.5 Preliminary Datasheet HDLC When processing HDLC channels on a per frame basis, the TDM RX Module will transmit either data bytes or HDLC null patterns (All 1s in bit-wise HDLC or 7Eh in byte-wise HDLC). See Section 2.10, HDLC on page 94. HDLC null patterns are transmitted between HDLC packets. The RX SAR communicates packet information to the RX TDM through a packet descriptor queue held in external memory. A maximum of 16 descriptors per channel may be retained in external memory. The descriptor contains the origin channel number of the AAL2 channel, base address, and length of the CPS-Packet within the buffer. CPSPDQ Pointers +000h CPSPDQ Stream 0 +004h CPSPDQ Stream 1 +008h CPSPDQ Stream 2 +FF4h CPSPDQ Stream 1021 +FF8h CPSPDQ Stream 1022 +FFCh CPSPDQ Stream 1023 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 CPSPDQ Len[7:4] CPSPDQ WP[11:0] +2 CPSPDQ Len[3:0] CPSPDQ RP[11:0] CPSPDQ Length: Initialized to the number of timeslots in the HDLC stream. CPSPDQ WP and RP: Pointers to the CPS-Packet Descriptor Queue. CPSPDQ structures are located in RX SSRAM Memory. Address range for structures is +7000h to +071FCh, +0E000h to +0E3FCh, +0C000h to +1C7FCh and +38000h to +38FFCh for 128, 256, 512, and 1023 channels respectively. Each structure is 4 bytes in size. Fields in Italic are used by Hardware only. Fields in Plain are written to by the CPU/Software. Figure 32 - CPS-Packet Descriptor Queue Pointers Structure (HDLC Streams) 60 MT90502 Preliminary Datasheet CPS-Packet Descriptor SSRAM Mapping - MPDQ Space Queue Structures + 0000h HDLC Stream 0 CPSPDQ MPDQ +0 CPSMini-Packet Descriptor 0 + 0040h HDLC Stream 1 CPSPDQ MPDQ +4 CPSMini-Packet Descriptor 1 + 0080h HDLC Stream 2 CPSPDQ MPDQ +8 CPSMini-Packet Descriptor 2 + 00C0h HDLC Stream 3 CPSPDQ MPDQ + 0100h HDLC Stream 4 CPSPDQ MPDQ +34 CPSMini-Packet Descriptor 13 +38 CPSMini-Packet Descriptor 14 +3C CPSMini-Packet Descriptor 15 + (N-3) * 4 0h HDLC Stream N-3 CPSPDQ MPDQ + (N-2) * 40h HDLC Stream N-2 CPSPDQ MPDQ + (N-1) * 40h HDLC Stream N-1 CPSPDQ MPDQ Number of HDLC Streams (sar capacity) is N = 128, 256, 512, 1023. Number of HDLC Streams (sar_capacity) is N = {128, 256, CPSPDQ structures are 64-bytes in size locatedCPS-Packet in SSRAM memory at addresses +4000h to +5FC0h, 512, 1024} +8000h to +BFC0h, +10000h to +17FC0h and +20000h to +2FFC0h for 128, 256, 512 and 1023 channels respectively. This structure is used by Hardware only. Descriptor Structure Mini-Packet CPS-Packet Structure b15 b14 b13 b12 b11 b10 b9 b8Descriptor b7 b6 b5 b4 b3 b2 b1 b0 b14 b13Disassembly b12 b11 b10 b8 b7 b6 b5 b4 b3 b2 b1 b0 Mini-Packet Strct.b9Num[9:0] +0 b15 +0 CPS-Packet Disassembly Strct. Num[9:0] +2 Mini-Packet Base Add [9:1] Length[6:0] CPS-Packet Base Add[9:1] Length[6:0] +2 Reserved CPS CPS Mini-Packet Disassembly Struct. Num : Indicates Mini-Packet Indicateswhich which CPS-Packet disassembly structure CPS this Mini-Packet comes from. This will identify the circular buffer in which it is written. CPS CPS-Packet within the circular buffer. Mini-Packet Base Add : Points to the first byte of the Mini-Packet CPS-Packet, in bytes. Valid range 01h (1- byte) to 40h (64- bytes). Length: Length of the mini-packet, Figure 33 - CPS-Packet Descriptor Queue Structures (HDLC Streams) As HDLC supports streams, numerous channel packet descriptor queues can be amalgamated into one packet descriptor per stream. However, it is necessary to specify the length of the packet descriptor queue within the structure that manages the stream; therefore, the MT90502 can determine where to wrap its read and write pointers. The length of the packet descriptor queue is programmed by the CPU/Software in the HDLC control structure (see Figure 30, “RX TDM Control Memory Structure (PCM/ADPCM channels),” on page 58). The CPS-Packet disassembly structures in the RX SAR determine where the HDLC channels are destined. In HDLC, time slot entries in the linked list can point to the same control structure entry, allowing the HDLC single-channel or stream to span consecutive time slots within the same TDM stream. This is employed for HDLC streams where the bandwidth requirements often exceed the constraints of a single time slot. Since multiple entries pointing to the same HDLC channel must all be contained within the same TDM stream, the maximum number of time slots that can be shared by the same HDLC channel is 128. 61 MT90502 2.6 UTOPIA 2.6.1 Overview Preliminary Datasheet The purpose of the UTOPIA module is to provide an external interface with the ATM domain. The MT90502 complies with the ATM Forum's specifications: af-phy-0017.000 (PHY & SAR) and af-phy-0039.000 (PHY). The UTOPIA module is responsible for accepting cells from five input interfaces: UTOPIA A, UTOPIA B, UTOPIA C, CPU Origin Data Cell FIFO, and TX SAR (internal). Cells are examined, and based on the origin and information in the header, the cell is sent to one or more (multicast or broadcast) of the four output interfaces: UTOPIA A, UTOPIA B, UTOPIA C or RX SAR (internal). The UTOPIA module employs octet level handshaking. It also appends the HEC to outgoing ATM cells. The UTOPIA module has 2 different configurations and is constructed from three ports, labelled A, B, and C. • • Each UTOPIA port (A, B or C) can be independently configured as a 8-bit Level 1 PHY or ATM port, and can operate at up to 32MHz. In this configuration, ports can be employed to daisy-chain other SAR devices to the MT90502, or operate in a ring configuration. Each port can treat 155Mbps of bandwidth. Ports A and B can also be combined to architect one UTOPIA Level 2 port in PHY mode only. It has an 8-bit data bus and a 5-bit address bus. This configuration allows the MT90502 to interface with any UTOPIA Level 2 master device in a multiple-PHY application. In addition to ports A, B, and C, the UTOPIA can route data cells to the cell FIFO in external SSRAM. RXB UTOPIA RXC UTOPIA 4 Cell 16 Cell input FIFO output FIFO 4 Cell 64 Cell input FIFO output FIFO 4 Cell RX SAR ATM Cell to CPS-Packet Disassembly CPU destined AAL0 Cells RXA UTOPIA input FIFO LUT in SDRAM (64K to 512K VCs/Port) TX SAR CPS-Packet to ATM Cell Assembly CPU Origin Data Cells 4 Cell 16 Cell input FIFO output FIFO 4 Cell 16 Cell input FIFO output FIFO TXA UTOPIA TXB UTOPIA TXC UTOPIA Data Cell FIFO in SSRAM (4KB to 128KB) Figure 34 - SAR and UTOPIA Block The receive interface of each UTOPIA port can be independently enabled or disabled. If disabled, the receive interface will stop accepting cells after the current cell has been received. The transmit interface of each UTOPIA port can be configured to drive output pins (e.g. data bus, SOC and parity) only when this port has been selected. Those pins are tri-stated when the port is not selected. This allows the MT90502 to share a data bus, SOC, and parity lines with other devices (i.e. independent ENB signals and CLAV signals for each PHY device, controlled by a single ATM device). 62 Preliminary Datasheet 2.6.2 MT90502 UTOPIA Interfaces Each of the three ports are divided into two portions: a receive portion and a transmit portion. The TX_SAR and the receive portions are each connected to a 4-cell FIFO. The RX_SAR and the transmit portions are each connected to a 16-cell FIFO. The ports are configurable with the following options: • • • • • • • • • Port A's transmit portion can be ATM or PHY, with an 8-bit data bus.* Port A's receive portion can be ATM or PHY, with an 8-bit data bus.* Ports A and B can be combined to architect one UTOPIA Level 2 multi-PHY port, with an 8-bit data bus. Port B's transmit portion can be ATM or PHY, with an 8-bit data bus.* Port B's receive portion can be ATM or PHY, with an 8-bit data bus.* Port C's transmit portion can be ATM or PHY, with an 8-bit data bus. Port C's receive portion can be ATM or PHY, with an 8-bit data bus. Each receive interface can be independently enabled or disabled. If disabled, the receive interface will stop accepting cells after the current cell has been received. When the transmit portions of a port are in PHY mode, the SOC, data bus, and parity output pins will be tri-sected when the port is not selected. This allows the MT90502 to share a data bus, SOC, and parity lines with other devices (i.e. independent ENB signals and CLAV signals for each PHY device, controlled by a single ATM device). *Not applicable when Port A and B are configured as level-2 multi-PHY port. The RX_CLAV signal is asserted high any time a complete cell can be received. Thus as soon as the first byte of a cell is received, and there is no room for another cell in the input FIFO, the RX_CLAV signal will be asserted low. In the case of a Level-2 PHY, the rx_clav's will only be driven when the address has been placed on the bus during the previous cycle. 2.6.3 LED Operation The UTOPIA module generates four LED signals in order to indicate the status of each of the possible conditions for the A and B ports. The status conditions are: idle, presence of traffic or PHY alarm. When a port is in an idle state, both its LEDs are illuminated. If RX traffic (other than null cells) is flowing, then the RX LED for that port will flash; If TX traffic (other than null cells) is flowing, then the TX LED for that port will flash. If a PHY alarm is detected, the TX LED is static on and the RX LED is static off. The polarity of the LED signals is active-low, i.e., a ‘0’ will turn on the LED. The frequency of the LEDs is controlled in register 10Ch and the LED pins can also be configured to act as general purpose input outputs. The PHY alarm is another testing feature. If a PHY device connected to the MT90502 indicates a trouble with the PHY (through pins rxa_alarm or rxb_alarm), the MT90502 acknowledges receipt of the information by setting the LEDs appropriately (see above). The alarm causes no change in the MT90502, other than from setting the LEDs. 2.6.4 Errors on Received Cells If the MT90502 receives a short cell on any one of its three ports, the cell is discarded and the next cell is started when the second SOC signal is set. 63 MT90502 Preliminary Datasheet If the SOC is not set after the 53rd byte of a received cell, subsequent bytes are ignored until a new SOC is received. Data received on all three ports is examined for parity errors and an interrupt is raised if an error is found. Cells are not discarded if a parity error is detected. Register 60Ah indicates on which port the parity error is detected. The ATM HEC is not examined on received cells. 2.6.5 Cell Routing Cells are read in a cyclic manner from the 4-cell input FIFOs. Cells from the TX_SAR that contain a '0' in the MSB of the TXD field (see Figure 21, “TX Cell Format,” on page 43) are written into the output FIFOs designated by the three LSBs of the TXD field. The TXD field may also indicate that the cell is routed through one of the 3 look-up tables. Therefore, the cell follows the same path as if it came from one of the 3 UTOPIA input ports. Cells written into the RX_SAR FIFO can be directed to the SAR portion (cells to be formatted into TDM streams), to the data cell portion (to be examined by the CPU), or to both. This is indicated by the RXD field (see Figure 35, “RX Cell Format,” on page 64) in cells written into the RX_SAR output FIFO. RX Cell Format (of cells written in each of the internal input cell FIFOs in the UTOPIA interface) b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 +0 GFC/VPI +2 VPI VCI [11:0] b2 OAM PTI +4 Payload Byte 0 Payload Byte 1 +6 Payload Byte 2 Payload Byte 3 +30 Payload Byte 44 Payload Byte 45 +32 Payload Byte 46 +34 Port # b1 b0 VCI [15:12] CLP Payload Byte 47 VC Number RXD +36 +38 +3A +3C Reserved +3E RX SAR Output FIFO structure is 64-bytes in size, located in internal memory at addresses 3000h to 3FFEh. Port #: “00” = comes from LUT A, “01” = comes from LUT B, “10” = comes from LUT C; others = reserved VC Number: indicates the VC to which this cell is destined, if it is destined to the RX SAR. RXD: RX Destination. “1x” = Destined to RX SAR, “x1” = destined to AAL0 FIFO. Figure 35 - RX Cell Format 2.6.5.1 Mask & Match Process Cells received on the UTOPIA port are designated as “known” or “unknown” based on the result of a mask & match process (configured for each port). For a cell to be considered “known”, all VPI/VCI bits whose corresponding mask bit is '1' must have the value contained in the corresponding bit of the match register. In addition, the MT90502 can be configured to eliminate null cells (those with VPI = 0 and VCI = 0). For the purpose of null cell elimination, the NNI/UNI can be included on a per-port basis (Register 60Eh). Unknown cells can be discarded or directed to one or more output FIFOs. All unknown non-OAM cells from a port are discarded or directed to the same location(s) and all unknown OAM cells from a port are discarded or directed to the same location(s). Unknown cells can be directed differently for each port on which they were 64 MT90502 Preliminary Datasheet received. Unknown cells cannot be sent to the SAR portion of the RX_SAR. The routing of unknown cells is set in registers 6A4h and 6A6h. Known cells are handled according to the LUT (Look-Up Table) entry for the cell's VPI/VCI. A cell is deemed to be an OAM cell if its MSB of PTI field is set. GFC | VPI | VCI (from cell header) 0010 10000000 00000000 10110010 0010 10000000 00000000 10110 11 10 Match Value 0000 00000000 00000000 10110010 0000 00000000 00000000 10110 00 10 Match Result (1 = Mismatch) 0010 10000000 00000000 00000000 0010 10000000 00000000 00000 11 00 0000 00111111 00000000 11111111 0000 00111111 00000000 Mask Value Mask Result (1 = mismatched cell) 0000 00000000 00000000 00000000 0000 00000000 00000000 00000 11 00 Routed according to LUT entry Result 11111 11 11 Routed as unknown cell For each bit, result = (match XOR header) AND mask Figure 36 - Mask & Match Example 2.6.5.2 Look-Up Tables Entries LUT entries direct cells with known VPI/VCIs to either be discarded or placed in one or more of five possible destinations: the four output FIFOs (UTOPIA A, UTOPIA B, UTOPIA C or RX SAR (internal)) and the data cell FIFO in external SSRAM. OAM cells can be directed independently of non-OAM cells with the same VPI/VCI. OAM cells cannot be directed to the SAR portion of the RX_SAR. All look-up table entries in the three LUTs are the same size. Cells undergoing header translation have their NNI bits, the remaining VPI bits and/or the VCI bits replaced by the corresponding bits in the LUT entry and are then either discarded or sent to one or more of the possible destinations. Note: the 4 MSBs of the header (VPI bits 11:8 in NNI mode, or the GFC field in UNI mode) can be translated separately from the remaining portion of the VPI. The remaining two portions can also be translated separately, 8 bits of VPI and the 16 bits of VCI. The 3 header translation enable bits, NNI, VPI, and VCI denote the translation portion of the header. VCs that undergo header translation cannot be directed to the SAR portion of the RX_SAR as no RX_SAR structure pointer is available in the LUT entry. The look-up engine also contains bits indicating if the received cell is a timing reference cell. A timing reference cell indicates a cell whose arrival frequency, over a long period of time, is constant, and therefore can be used as a reference for the local TDM clock. If a timing reference cell is received, the UTOPIA module will send a pulse to the clock recovery module, indicating that such a cell has been received. Clock recovery information can be gathered from up to two VCs by setting bit A in one LUT entry and bit B in the same or another LUT entry. A maximum of one VC can have bit A set and a maximum of one VC can have bit B set. 65 MT90502 Preliminary Datasheet RX SAR Disassembly Structure LUT- 0 +0000h +008h LUT- 1 +0010h LUT- 2 b15 b14 b13 b12 b11 b10 b9 b8 +0 NNI VPI VCI LUT- 3 +0018h A B +2 Replacement VPI [11:0] +4 Replacement VCI [11:0] b7 b6 b5 b4 b3 b2 NCR b1 b0 OCR VCI [15:12] +6 LUT- 4 +0018h b15 b14 b13 b12 b11 b10 b9 b8 +8*(N-3) LUT- N-3 +8*(N-2) LUT- N-2 +2 +8*(N-1) LUT- N-1 +4 +0 N is defined as 2 (Number of considered VPI/VCI bits in concatenation) 0 0 0 A B b7 b6 b5 b4 b3 b2 NCR b1 b0 OCR VC Number [9:0] +6 Reserved v LUT A,B, and C structures are 8-bytes in size located in SDRAM at varying base addresses depending on the number of channels used. Fields in Plain are written by the CPU/Software. NCR: Normal Cell routing. “00000” = discard; “xxxx1” = Send to TXA port; “xxx1x” = Send to TXB port; “xx1xx” = Send to TXC port; “x1xxx” = Send to data cell FIFO (in external memory); “1xxxx” = Send to RX SAR. OCR: OAM Cell Routing. “0000” = discard; “xxx1” = Send to TXA port; “xx1x” = Send to TXB port; “xx1xx” = Send to TXC port; “1xxx” = Send to data cell FIFO (in external memory). A & B: Clock recovery reference indicators. When “1”, a pulse will be sent to the clock recovery module indicating that a reference packet has been received. These two bits correspond to two independent and redundant clock recovery VCs. VC Number: Points to the RX Disassembly Structure to which this cell corresponds. NNI: Replace the cell VPI [11:8] with the Replacement VPI [11:8] when this bit is “1”. VPI: Replace the cell VPI [7:0] with the Replacement VPI [7:0] when this bit is “1”. VCI: Replace the cell VCI [15:0] with the Replacement VCI [15:0] when this bit is “1”. Figure 37 - SDRAM Mapping - Look-Up Tables Structure 2.6.5.3 LUT Addressing A LUT base address and size exists for each of the three ports (registers 620h, 640h, 660h). The number of entries in the LUT, given by its size, ranges from 17 bits to 20 bits (128K to 1024K entries). A 17- to 20-bit identifier for each entry is created by concatenating the LSBs from the VPI field with LSBs from the VCI field of a cell header. The number of VCI LSBs to be used as the LSBs in the identifier is programmed in registers 622h, 642h and 662h for Port A, B and C, respectively. The remaining MSBs of the identifier are taken from the LSBs of the VPI field. This concatenated value is then multiplied by 8 (insert three LSB zeros). The result, when added to the LUT base address, will point to the base address of the LUT structure for this cell. The LUT, shown in Figure 37 will determine the routing and/or header translation of the cell. 66 MT90502 Preliminary Datasheet b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 VPI VCI vci_na (reg. 622h) = 5 VCI Bits Notes: • • • b10 All three ports have independent parameters (vci_nx, LUT Base Address). result is a pointer, offset from the LUT Base Address, to the first byte of the LUT entry. LUT Entry Address represents a byte address b1 Concatenated VPI and VCI b2 b1 b0 b19 b18 b17 b16 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b23. . . . . . . . . . . . . . . . . . . . . .. . ..20 Σ 0 0 0 b19 . . . . . . . . 0 Port A LUT Base Address (reg. 620h) 0......................0000 LUT Entry Address b23 b22 b21 b20b19 b18 b17 b16 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 Figure 38 - VPI/VCI Concatenation and LUT Entry Address Example 2.6.6 UTOPIA Clocks Each of the three ports must have a clock to operate the receive interface and a clock to operate the transmit interface. Two or more clocks may have the same source. These clocks can either be input to the MT90502 from an external source or output from the MT90502 from one of three internal UTOPIA clocks. However, the receive clock and transmit clock for a port can either be set as an input or an output. The source of each of the three internal UTOPIA clocks can be one of seven clocks: mem_clk, or any of the six UTOPIA clocks (rxa_clk, rxb_clk, rxc_clk, txa_clk, txb_clk, and txc_clk). The selected clock is divided by n and can be inverted (register 220h). The maximum speed of UTOPIA clock is 32MHz. Other parts of the UTOPIA module, including the look-up engine, the TX_SAR portion, and the RX_SAR portion operate off of mem_clk. 67 MT90502 Preliminary Datasheet xxx_clk_inv xxx_clk_oe TXA_CLK TXB_CLK TXC_CLK xxx_clk_src RXA_CLK RXB_CLK txa_clk_in RXC_CLK txb_clk_in xxx_clk_div txc_clk_in rxa_clk_in Divisor rxb_clk_in rxc_clk_in mem_clk xxx_clk_divisor_load_now Figure 39 - UTOPIA Clocks Selection Label Register Bit Position Label Register Bit Position txa_clk_div 220h 5:0 rxa_clk_div 228h 5:0 txa_clk_divisor_load_now 220h 6 rxa_clk_divisor_load_now 228h 6 txa_clk_inv 220h 7 rxa_clk_inv 228h 7 txa_clk_src 220h 10:8 rxa_clk_src 228h 10:8 txa_clk_oe 220h 11 rxa_clk_oe 228h 11 txb_clk_div 222h 5:0 rxb_clk_div 22Ah 5:0 txb_clk_divisor_load_now 222h 6 rxb_clk_divisor_load_now 22Ah 6 txb_clk_inv 222h 7 rxb_clk_inv 22Ah 7 txb_clk_src 222h 10:8 rxb_clk_src 22Ah 10:8 txb_clk_oe 222h 11 rxb_clk_oe 22Ah 11 txc_clk_div 224h 5:0 rxc_clk_div 22Ch 5:0 txc_clk_divisor_load_now 224h 6 rxc_clk_divisor_laod_now 22Ch 6 txc_clk_inv 224h 7 rxc_clk_inv 22Ch 7 txc_clk_src 224h 10:8 rxc_clk_src 22Ch 10:8 txc_clk_oe 224h 11 rxc_clk_oe 22Ch 11 Table 25 - UTOPIA Clocks Selection Registers 68 MT90502 Preliminary Datasheet 2.6.7 External Interface Signals Due to the different possible configurations of the UTOPIA ports, the functions of some pins change, depending on the configuration. The function of the CLAV (cell available) and ENB (enable data transfer) pins alternate when the port is in ATM mode or PHY mode (see Figure 40, “External UTOPIA Interface,” on page 69). Please note that the I/O direction of the pins remain fixed. Port A, B or C ATM Mode PHY Device Port A, B or C PHY mode MT90502 - ATM Mode ATM Device txclk txa_clk (D12) rxclk txenb txa_enb (A13) rxenb txclav txa_clav (B13) txsoc txa_soc (D14) txdata txa_d (C15 . . .) txpar txa_prty (D15) rxclk rxa_enb (B9) rxclav rxa_clav (C9) rxsoc rxa_soc (C12) rxdata rxpar txa_clk (D12) txa_enb (B13) rxclav txa_clav (A13) rxsoc txa_soc (D14) rxdata txa_d (C15. . .) rxpar txa_prty (D15) rxa_clk (A9) rxenb MT90502 - PHY Mode txclk txenb rxa_clk (A9) rxa_enb (C9) txclav rxa_clav (B9) txsoc rxa_soc (C12) rxa_d (A12 .. .) txdata rxa_d (A12. . .) rxa_prty (B12) txpar rxa_prty (B12) Figure 40 - External UTOPIA Interface 2.6.8 UTOPIA Flow Control The UTOPIA module contains the ability to prevent cells in the 4-cell input FIFOs (RXA, RXB, RXC, TX Data Cell FIFO and TX_SAR) from being processed by the UTOPIA module in case the output FIFOs (TXA, TXB, TXC and RX_SAR) exceed programmable levels. For each pair of input and output FIFO, a threshold can be set independently from 0 to 15 (for TXA, TXB and TXC output FIFOs) or 0 to 63 (for RX_SAR output FIFO). Once the cell level in output FIFO exceeds that threshold, cells from that input FIFO are blocked until the output FIFO empties itself below the threshold. There are cell arrival counters and cell departure counters for each port. 69 MT90502 Preliminary Datasheet 2.7 H.100/H.110 Interface 2.7.1 Overview The H.100/H.110 interface is compatible with the ECTF H.100/H.110 hardware compatibility specification, Computer Telephony BUS (CT-BUS), and its implementation on the PCI computing platform. The TDM interface of the MT90502 can be used to interface as bus master or bus slave with the H.100/H.110 bus. The MT90502 supports up to 32 TDM Streams running at 8.192MHz (up to 4096 time slots). Also, as required in the specification, 16 TDM streams can be configured to run at lower frequencies of 4.096MHz or 2.024MHz. The MT90502 can perform loopback on 128 channels. 2.7.2 Bus Signaling There are four classes of signals on the H.100/H.110 CT-Bus: Core, Compatibility, Optional, and Reserved signals. Core, Compatibility, and Reserved signals are required for all H.100/H.110 compatible devices. These signals are described in Table 26, “CT-Bus Signalling Function,” on page 70. 2.7.3 H.100/H.110 Slave Class Core Compatibility Optional Reserved Signal Function CT_FRAME_A Frame Synchronisation, driven by the “A” clock master. CT_C8_A Bit clock driven by the “A” clock master. CT_FRAME_B Configurable frame synchronisation, driven by the “B” clock master. CT_C8_B Configurable bit clock - driven by “B” clock master. CT_D[31:0] Serial Data lines that collectively carry 32 signals and are referred to as the CT_D bus. Each signals contain 128 time slots per frame at a clock frequency of 8.192MHz. CT_NETREF Secondary network timing reference, providing backup network synchronisation to the CT Bus. FR_COMP Compatibility frame pulse, driven by current clock master, that serves as the frame synchronization signal for the SCBus (Fsync*) and MVIP (F0) signals. SCLK SCBus system clock, driven by current clock master. The signal is selectable (2, 4, or 8MHz) and is used to identify the data bits positions on the SCBus. SCLKx2 SCBus system clock times two, driven by clock master. C2 MVIP-90 bit clock, driven by current clock master. The clock frequency is 2MHz, nominally symmetrical. C4 MVIP-90 bit clock times two, driven current by clock master. The clock frequency is twice C2, and transitions of C2 are synchronous with the falling edge of C4. C16+, C16- H-MVIP 16 MHz Clock, driven by current clock master. This differential signal is used to read and write bits on the serial data lines by H-MVIP boards. CT_MC Message Channel for inter-device communication. This signal is terminated on each CT Bus interface in the system which has message bus capability. CT_+5Vdc Provides power to active transition devices (cable adapters). Signals reserved for future use. Table 26 - CT-Bus Signalling Function The H.100/H110 interface can sample the incoming data on the ct_d[31:0] at different sampling points: 2/4, 3/4 or 4/4 sampling. The desired sampling point can be set by setting the timing configuration register (732h). When transmitting data, the H.100/H.110 can tri-state its pins between 20ns and 0ns before the rising edge of 70 Preliminary Datasheet MT90502 the clock or it can tri-state synchronously on the rising edge of the clock. Both of these options allow flexibility in compatibility with other devices that are not fully H.100/H.110 compliant. 2.7.4 Operating as a Slave Two clocks, A and B, can be configured to set one clock as primary bus master and the other one as backup master. In the event of primary clock failure, the interface can switch over to backup. The MT90502, when operating as a slave, has the choice of clocking on A, clocking on B, clocking on A with B as backup, or clocking on B with A as backup. When set to perform automatic switch-over, the interface monitors the active bus master to determine if its ct_c8 clock edges are within ±35 ns of their expected edge times (122 ns apart) and the ct_frame signal occurs upon the 1024 ct_c8 clock cycle. If ct_c8 or ct_frame errors are reported on the bus master signals, the ct_c8 or ct_frame is considered invalid and the slave will switch to the backup master (if backup has been configured). The MT90502 will always monitor these signals and will report errors on either of the two bus masters in status0 register (702h). 2.7.5 Operating as a Master When configured as a bus master, the MT90502 can be a bus master on A, B, backup on A or backup on B. The difference between a bus master and a bus backup is that bus master drives all compatibility clocks, and the bus backup does not. When configured as a bus backup, the MT90502 uses the same error signals or error flags to determine if the current bus master is valid or if MT90502 reverts to be the master. Note that the bus mastership can be overridden in registers mastership_hidden0 (774h), mastership_hidden1 776h) and mastership_hidden2 (778h) by ensuring that the MT90502 cannot drive the H.100/H.110 clock and frame signals. If the MT90502 is a backup on the bus and the primary master fails, it will stop synchronising to the master and track the local reference. ct_c8 ct_frame fr_comp(8M,Strdl) fr_comp(4M,Strdl) fr_comp(2M,Strdl) fr_comp(8M,Last) fr_comp(4M,Last) fr_comp(2M,Last) fr_comp(8M,First) fr_comp(4M,First) fr_comp(2M,First) Note: The fr_comp polarity in this drawing is always active low for simplicity. It can also be programmed active high. Figure 41 - TDM Bus Timing - Fr_Comp Generation Once configured as bus master, MT90502 provides compatibility clocks generated by H.100/H.110 module. Figure 42, “TDM Bus Timing - sclkx2 Generation,” on page 72 shows the MT90502’s compatibility signals generated on H.100/H.110 interface. 71 MT90502 Preliminary Datasheet ct_c8 ct_frame sclkx2(8M) sclkx2(8M,inverted) sclk(8M) sclk(8M,inverted) sclkx2(4M) sclkx2(4M,inverted) sclk(4M) sclk(4M,inverted) sclkx2(2M) sclkx2(2M,inverted) sclk(2M) sclk(2M,inverted) Figure 42 - TDM Bus Timing - sclkx2 Generation ct_c8 ct_frame c16+ c16c2 c4 Figure 43 - TDM Bus Timing - Compatibility Clock Generation (other than sclk, sclkx2) The sclk and sclkx2 signals can be programmed in mastership0 register (720h) to have identical or opposite polarities as defined in the H.100/H.110 specifications. In addition, the frequency of sclk can be programmed to be 8.192MHz, 4.096MHz or 2.048MHz. The lower 16 streams on the H.100/H110 bus are grouped into 4 and are capable of operating at the following frequencies: 8.192MHz, 4.096MHz, or 2.048MHz. The MT90502 can be programmed such that all 32 streams are arranged in groups of 4 streams - ct_c[3:0], ct_c[7:4], ct_c[11:8], ct_c[15:12], ct_c[19:16], ct_c23:20], ct_c[27:24] and ct_c[31:28]. Each group can be assigned a desired frequency. These features are programmed in clock_rates register (730h). In addition, the MT90502, instead of supporting the full bandwidth of H.100/H.110, can be configured to only interface with 4, 8 or 16 streams on the bus. This allows the MT90502 to operate at lower frequencies. The lowest streams are used in these cases. 2.7.6 H.100/H.110 Clock Selection Guide Fast_clk is used internally by the MT90502 as its main operating clock. The internal logic used to generate fast_clk is show in Figure 44 on page 73. Typically mem_clk would be selected using pll_source. 72 MT90502 Preliminary Datasheet pll_bypass pll_source UPCLK MEM_CLK fast_clk Divisor (1 to 8) Clock out Ref Fast_clk PLL pll_div_x” pll_div_x Feedback Divisor (1 to 8) pll_div_y Figure 44 - Fast Clock Generation The pll_div_x and pll_div_y should be programmed according to Figure 44, “Fast Clock Generation,” on page 73. The fast_clk frequency is given by the formula · pll_div_y fast_clk = input_frequency × ----------------------- . pll_div_x upclk/mem_clk (MHz) pll_div_x pll_div_y >75 1 2 >66 2 5 >50 1 3 >40 1 4 >30 1 5 >25 1 6 Table 27 - Fast Clock PLL Divisor Values Label Register Bit Position pll_div_x 16Ch 3:1 pll_div_y 16Ch 6:4 pll_bypass 16Ch 7 pll_source 16Ch 8 Table 28 - Fast Clock Registers The mastership mode and slaveship mode of the MT90502’s TDM interface can be programmed using register 722h. Mastership mode determines on which bus(es), A or B, the MT90502 will act as a master or backup. When configured as a master on a bus, the MT90502 drives the frame pulse and clock on that bus as well as the compatibility signals (if enabled). When configured as a backup on a bus, the MT90502 drives the frame 73 MT90502 Preliminary Datasheet pulse and clock on that bus, but does not drive the compatibility signals. The slaveship mode configures the MT90502 to synchronize its internal timing to the ct_frame pulse and ct_c8 clock on either the A or the B bus. The slaveship mode is completely independent of the mastership mode. An example configuration would have the mastership mode set for the MT90502 to be a master on A and setting the slaveship mode for the MT90502 to track on A. Register 774h can be used to override the operation of the MT90502 based on the selections made in register 722h. The automatic_master_override bit will enable the rest of the values in this register. The mux0_select_override bit will stop the automatic fallback of the slaveship mode (from A to B or B to A). The mux1_select_override bit will select between using ct_c8_a/ct_c8_b or H.110 PLL output clock as the feedback signal to the H.110 PLL. The mux2_select_override bit will select between ct_c8_a/ct_c8_b or pll_clk as the reference source for the H.110 PLL. The mux3_select_override bit will select between using either an external pll_clk or the H.110 PLL output as the clock used to generate the ct_c8_x and ct_frame_x and clock signals. ÷4 slaveship_mode mastership_mode mux1_select_override ct_compatibility_oe compatibility clocks* ct_c8_a Feedback ct_c8_b mux2_select_override Output H.110 PLL pll_clk_in_frequency ct_c8_frame_b_oe Reference ÷n Clock Generation Module B mux0_select_override Monitor Clocks automatic_fallback ct_c8_b ct_frame_b slaveship_swap *fr_comp, sclk, sclkx2, c2, c4, c16+, c16- ct_frame_b Figure 45 - H.100/H.110 PLL Clock Selection Label Register Bit Position pll_clk_in_frequency 700h 1:0 ct_c8_frame_a_oe 720h 0 ct_c8_frame_b_oe 720h 1 ct_compatability_oe 720h 2 mastership_mode 722h 1:0 slaveship_mode 722h 3:2 automatic_master_override 774h 0 mux0_select_override 774h 1 mux1_select_override 774h 2 mux2_select_override 774h 3 mux3_select_override 774h 5:4 Table 29 - H.100/H110 PLL Clock Selection Registers 74 ct_c8_a ct_frame_a mastership_mode pll_clk ct_frame_a mux3_select_override ct_c8_frame_a_oe Clock Generation Module A Preliminary Datasheet 2.8 Clock Recovery 2.8.1 Overview MT90502 The purpose of the clock recovery module is to synchronize the TDM clock domain of the MT90502 with other devices on the network through information transmitted across the ATM link. Clock recovery is necessary only when the MT90502 is operating as the TDM clock master. The clock recovery system is composed of several sub-components: 2.8.1.1 Adaptive Clock Recovery Modules These modules generate data on a regular basis which is written to external memory for the CPU to read and is used by the clock recovery algorithm. Counts of mem_clk and adapx_ref clock, as well as the current UUI and LI values, associated with the current cell, are placed in external memory. 2.8.1.1.1 adapx_ref clock generation These modules divide mem_clk to a desired frequency with a 16-bit integer and 16-bit fraction. These 32 bits are normally determined by the clock recovery algorithm. 2.8.1.2 Multiplexers There are eight general purpose I/Os as well as two ct_netref pins. Each has the ability to multiplex one of 23 signals as outputs. 2.8.2 Adaptive Clock Recovery Modules The MT90502 has two clock recovery modules, A and B. Each module receives pulses obtained either from the UTOPIA module (timing reference VCs) or from the Rx SAR (timing reference CPS-Packets). The signals clkrecov_pulse_a and clkrecov_pulse_b come from one of these modules. The modules which generate the A and B clkrecov_pulses are configured by the A and B bits. These are configured in the UTOPIA section for timing reference VCs or in the Rx SAR section for timing reference CPS-Packets. The VC/CPS-Packet designated A is the timing reference for the A clock recovery module (clkrecov_pulse_a). Similarly, for the B clock recovery module, the clkrecov_pulse_b is generated by the VC/CPS-Packet designated by its B bit. Running in parallel, are counters of the mem_clk and adapx_ref signals. A clock recovery event structure is written to external memory with the arrival of every X pulses of clkrecov_pulse_x. The structure (see Figure 46 on page 76) is composed of the 32-bit “mem_clk” counter, the 32-bit “ref” counter, a 16-bit “mem_clk_cycles_since_last_ref_increment” counter (fraction of the ref), as well as the LI and UUI of the received CPS-Packet. These event structures are written to a buffer in external memory, and the clock recovery module will generate an interrupt when the buffer is more than half full (if enabled in bit 10 of register 210h). Clock recovery events arrive at a fixed rate, therefore the size of the buffer chosen (820h, 828h Table 31, “Buffer Sizes,” on page 81) will completely determine the rate at which it needs to be serviced. To decrease the number of points written to memory, program the keep_one_pulse_out_of_x register (710h & 718h see Table 30, “Clock Recovery Registers,” on page 79) to a value greater than 1. 75 MT90502 Preliminary Datasheet Adaptive Clock Recovery Event Information +0 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 mem_clk_counter[31:16] mem_clk_i_counter[31:16] +2 mem_clk_counter[15:0] mem_clk_i_counter[15:0] +4 ref_counter[31:16] +6 ref_counter[15:0] +8 mem_clk_i_cycles_since_last_ref_increment[15:0] +A LI[5:0] UUI[4:0] +C +E mem_clk_i_counter: Freerunning mem_clk_i cycle counter. This field is used as a reliable time-stamp in the clock recovery algorithm. ref_counter: Freerunning reference clock cycle counter. This field is used to control wander in the generation of the reference clock. mem_clk_i_cycles_since_last_ref_increment : This field counts the number of mem_clk_i cycles since the last time the ref_counter incremented. This field is used to control wander in the generation of the reference clock. LI & UUI: Length and UUI information of the CPS-Packet mini-packet that generated this clock recovery event information structure. clk1.cdd Reserved Figure 46 - Adaptive Clock Recovery Event Information The base addresses and structures sizes for adaptive clock recovery event structures for module A and module B are programmable in registers 820h ‘pointa_manage’ and 828h ‘pointb_manage’ respectively. The address of the structures to be read can be determined using the read and write pointers located in registers 822h ‘pointa_read’, 824h ‘pointa_write’, 82Ah ‘pointb_read’ and 82Ch ‘pointb_write’. Similar to the event/error FIFO and the data cell FIFO, the read pointers must be updated by the CPU/software and the write pointers are updated by the hardware. 76 MT90502 Preliminary Datasheet clkrecov_pulse_a Keep One Pulse Out of X (Range = 1-1024) gpio_in [0] 16 bit mem_clk count since last ref rising edge Structure 32 bit freerunning mem_clk counter mem_clk 8 word Clock Recovery E Written to clock recovery buffer A in external TX SSRAM 32 bit freerunning ref rising edge counter mem_clk Programmable Fractional Divisor (Range = 2 to 65535) adapa_ref clkrecov_pulse_b Keep One Pulse Out of X (Range = 1-1024) gpio_in [1] 32 bit freerunning mem_clk counter 16 bit mem_clk count since last ref rising edge E 8 word Clock Recovery Structure mem_clk Written to clock recovery buffer B in external TX SSRAM 32 bit freerunning ref rising edge counter mem_clk Programmable Fractional Divisor (Range = 2 to 65535) adapb_ref Figure 47 - Adaptive Clock Recovery Modules 77 MT90502 Preliminary Datasheet 2.8.2.1 adapx_ref Clock Generation The second portion of the clock recovery circuit is concerned with generating the adapx_ref signal. When the CPU reads the information placed in the clock recovery event buffer, the clock recovery algorithm can subsequently calculate any correction required to the rate of the adapx_ref clock. A typical configuration would see the adapx_ref signal operating at 8kHz. This is outputted to a PLL which multiplies the frequency up to 16.384MHz. Finally, the 16MHz clock is used as the driving clock for the TDM section, pll_clk (pin AB2). The adapx_ref clocks are generated by dividing mem_clk by a 16-bit integer (712h & 71Ah) and 16-bit fraction (714h & 71Ch). This allows a highly precise division (with mem_clk running at 50 MHz and the target clock speed 8 kHz, it gives a precision of 2.4 ppb). fmem_clk f adapx_ref = ----------------------------------------------fraction integer + --------------------65536 The fractional divider will introduce jitter into the adapx_ref signal of a maximum of one mem_clk cycle. If it is desired that no jitter be added by the adapx_ref module, set fraction to 0 (this will reduce precision to 160 ppm from 2.4ppb). The integer and fraction are programmed by the clock recovery algorithm. The adapx_ref signal can be driven onto any of the eight GPIOs on the MT90502, or to one of the ct_netrefs (see Figure 49). It can be externally routed to a PLL used to multiply it up from 8 kHz to 16.384 MHz and then rerouted into the MT90502 on the pll_clk pin. 2.8.3 Multiplexers Message Channel Circuit gpio_in[2] 0 ct_mc ct_mc_in ct_c8_selected ct_frame_selected MC Clock Generator mc_clock Figure 48 - Message Channel 78 MT90502 Preliminary Datasheet gpio_x_output_select ct_c8_a ct_netrefx_output_select ct_c8_b ct_frame_a ct_frame_b ‘0’/‘1’ ct_c8_selected ct_frame_selected ct_netref1 gpio_in[0] gpio_in[1] gpio_in[2 gpio_in[3] gpio_in[4] gpio_in[5] Glitch Free Mux ct_netref2 gpio_x_output_enable, ct_netrefx_output_enable gpio[7:0], ct_netref1, ct_netref2 gpio_in[6] Edges and Level Monitor gpio_in[7] adapa_ref adapb_ref clkrecov_pulse_a clkrecov_pulse_b mc_clock ct_mc Figure 49 - GPIO Functionality There are eight GPIO multiplexers in the clock recovery section of the MT90502. In addition, there are two multiplexers for the two ct_netref signals of the H.110 bus. See registers 740h - 748h (Table 30, “Clock Recovery Registers,” on page 79). There are 23 possible inputs for each multiplexer (see Table 32, “GPIO mux, Output Selection,” on page 82). Address Bits Register Bits Description 210h [10] interrupt_flags clkrecov_alarm_interrupt_a ctive Indicates clock recovery buffer is half full. 218h [10] interrupt_enable1 clkrecov_alarm_interrupt1_ enable Activates interrupt1 when clkrecov_alarm set. 21Ah [10] interrupt_enable2 clkrecov_alarm_interrupt2_ enable Activates interrupt2 when clkrecov_alarm set. 710h [9:0] adapa0 keep_one_pulse_out_of_x Number of points generated to send to external memory. Table 30 - Clock Recovery Registers 79 MT90502 Address Bits Preliminary Datasheet Register Bits [10] clk_divisor_reset [12:11] source [13] clk_divisor_load_now Description If ‘0’, reset clock divisor. ‘00’ - reference VC, ‘01’ - gpio[0] all edges, ‘10’ gpio[0] rising edges, ‘11’ gpio[0] falling edges If set to ‘1’, loads adaptive module A’s divisor. 712h [15:0] adapa1 div_integer Adaptive module A - integer divisor 714h [15:0] adapa2 div_fraction Adaptive module A - fractional component of divisor 718h [9:0] adapb0 keep_one_pulse_out_of_x [10] clk_divisor_reset [12:11] source [13] clk_divisor_load_now Number of points generated to send to external memory. If ‘0’, reset clock divisor. ‘00’ - reference VC, ‘01’ - gpio[0] all edges, ‘10’ gpio[0] rising edges, ‘11’ gpio[0] falling edges If set to ‘1’, loads adaptive module A’s divisor. 71Ah [15:0] adapb1 div_integer Adaptive module A - integer divisor 71Ch [15:0] adapb2 div_fraction Adaptive module A - fractional component of divisor 740h [4:0] gpio_out_reg0 gpio_0_output_select 742h 744h 746h See Table 32, “GPIO mux, Output Selection,” on page 82. [5] gpio_0_output_constant [6] gpio_0_output_enable ‘0’ - tri-state, ‘1’ - output enabled. [12:8] gpio_1_output_select see Table 32 [13] gpio_1_output_constant [14] gpio_1_output_enable ‘0’ - tri-state, ‘1’ - output enabled. gpio_2_output_select See Table 32, “GPIO mux, Output Selection,” on page 82. [4:0] gpio_out_reg1 Constant value of ‘00110’ (see Table 32) Constant value of ‘00110’ (see Table 32) [5] gpio_2_output_constant [6] gpio_2_output_enable ‘0’ - tri-state, ‘1’ - output enabled. [12:8] gpio_3_output_select See Table 32, “GPIO mux, Output Selection,” on page 82. [13] gpio_3_output_constant [14] gpio_3_output_enable ‘0’ - tri-state, ‘1’ - output enabled. gpio_4_output_select See Table 32, “GPIO mux, Output Selection,” on page 82. [4:0] gpio_out_reg2 Constant value of ‘00110’ (of Table 32) Constant value of ‘00110’ (of Table 32) [5] gpio_4_output_constant [6] gpio_4_output_enable ‘0’ - tri-state, ‘1’ - output enabled. [12:8] gpio_5_output_select See Table 32, “GPIO mux, Output Selection,” on page 82. [13] gpio_5_output_constant [14] gpio_5_output_enable ‘0’ - tri-state, ‘1’ - output enabled. gpio_6_output_select See Table 32, “GPIO mux, Output Selection,” on page 82. [4:0] [5] gpio_out_reg3 gpio_6_output_constant Constant value of ‘00110’ (of Table 32) Constant value of ‘00110’ (See Table 32 - on page 82). Constant value of ‘00110’ (see Table 32, “GPIO mux, Output Selection,” on page 82). Table 30 - Clock Recovery Registers (continued) 80 MT90502 Preliminary Datasheet Address 748h 802h Bits Register gpio_6_output_enable ‘0’ - tri-state, ‘1’ - output enabled. [12:8] gpio_7_output_select See Table 32, “GPIO mux, Output Selection,” on page 82. [13] gpio_7_output_constant [14] gpio_7_output_enable [4:0] gpio_out_reg4 Constant value of ‘00110’ (of Table 32) ‘0’ - tri-state, ‘1’ - output enabled. ct_netref1_output_select See Table 32, “GPIO mux, Output Selection,” on page 82. [5] ct_neterf1_output_constant [6] ct_netref1_output_enable ‘0’ - tri-state, ‘1’ - output enabled. [12:8] ct_netref2_output_select See Table 32, “GPIO mux, Output Selection,” on page 82. [13] ct_netref2_output_constant [14] ct_netref2_output_enable [1] status0 [1] satus0_ie [2] 820h Description [6] [2] 804h Bits [8:0] pointa_manage [11:9] Constant value of ‘00110’ (See Table 32, “GPIO mux, Output Selection,” on page 82). Constant value of ‘00110’ (of Table 32) ‘0’ - tri-state, ‘1’ - output enabled. pointa_buf_overflow Overflow occurred in the point A buffer. pointb_buf_overflow Overflow occurred in the point B buffer. pointa_buf_overflow If ‘1’, pointa_buf_overflow will generate interrupt. pointb_buf_overflow If ‘1’, pointb_buf_overflow will generate interrupt. pointa_buffer_base_add Bits 20:12 of the base address of the clock recovery point buffer. pointa_buffer_size see Table 31 822h [13:0] pointa_read pointa_rpnt CPU’s read pointer to the clock recovery point FIFO. 824h [13:0] pointa_write pointa_wont Chip’s write pointer to the clock recovery point FIFO. 828h [8:0] pointb_manage pointb_buffer_base_add Bits 20:12 of the base address of the clock recovery point buffer. [11:9] pointb_buffer_size See Table 31, “Buffer Sizes,” on page 81. 82Ah [13:0] pointb_read pointb_rpnt CPU’s read pointer to the clock recovery point FIFO. 82Ch [13:0] pointb_write pointb_wont Chip’s write pointer to the clock recovery point FIFO. Table 30 - Clock Recovery Registers (continued) Register Value Memory Allocated 000 4K 001 8K 010 16K 011 32K 100 64K 101 128K others reserved Table 31 - Buffer Sizes 81 MT90502 Preliminary Datasheet gpio_x_output_select Signal 00000 ct_c8_a_in 00001 ct_c8_b_in 00010 ct_frame_a_in 00011 ct_frame_b_in 00100 ct_c8_selected 00101 ct_frame_selected 00110 output constant (“0”/“1”) 00111 ct_netref1_in 01000 ct_netref2_in 01001 gpio_in(0) 01010 gpio_in(1) 01011 gpio_in(2) 01100 gpio_in(3) 01101 gpio_in(4) 01110 gpio_in(5) 01111 gpio_in(6) 10000 gpio_in(7) 10001 adapa_ref 10010 adapb_ref 10011 clkrecov_pulse_a 10100 clkrecov_pulse_b 10101 mc_clock 10110 ct_mc_in Table 32 - GPIO mux, Output Selection 82 MT90502 Preliminary Datasheet 2.9 Silence Suppression 2.9.1 Overview The Variable Bit Rate properties of the AAL2 standard permits the use of silent suppression. The MT90502 exploits this feature to enable optimal bandwidth usage for voice communications. The MT90502 has the capability to determine if an AAL2 CPS-Packet (transmitted or received) is considered silent. Two configurations can be employed for silent suppression: simple silence suppression and complex silence suppression. Simple silence suppression mode uses an external resource or the match & mask feature determines the silent status of the byte. In complex silence suppression mode the MT90502 determines the silent status on the current CPS-Packet. The MT90502 maintains a maximum channel capacity of 1023 channels with or without silence suppression enabled. 2.9.2 Simple Silent Suppression 2.9.2.1 Silent Bit Indication Simple Silent Suppression relies upon an external resource to perform the silent decision operation unless the match and mask method is employed. The result yielded from the external resource is conveyed to the MT90502 by a silent bit in the associated TSST (see Figure 50 on page 83). A one in silent bit indicates that the accompanying PCM or ADPCM sample is a silence. The position of silent bit is programmable through register 500h. Upon the reception of a complete CPS-Packet of silence, the CPS-Packet is considered silent and the process of generating an SID CPS-Packet is initialized. The Noise Level field in SID packet will contain an idle code (no noise). Simple Silence Suppression TDM Channel Mapping ct_c8 ct_frame ct_d[n] ct_d[n+1] ADPCM Nibble or PCM Byte Silent n is an even number Figure 50 - Simple Silent Suppression Stream Configuration 2.9.2.2 Last Byte Indication This method is only available when TDM Format B is deployed. In this mode, external silence suppression engine shall make the decision whether a CPS-Packet is silence or voice, and indicate a silent packet by putting 00h on the last byte of that packet, together with PCM bit equal to 0 (see Figure 9 on page 27 and Figure 11 on page 29). MT90502 calculates the average energy of the packet based on the Tx PCM unsigned magnitudes received on the first TSST. Tx PCM magnitude given to MT90502 must be an unsigned value without DC offset. Upon detecting silent packet pattern at the end of the packet, the MT90502 will discard that packet and start silence period. Should a SID packet be sent out, MT90502 will insert the calculated energy level into SID byte. 2.9.2.3 Match and Mask Determines Silence The match and mask filtering operation operates in a similar method as the UTOPIA match and mask. There are two match and mask registers: ‘Silent Pattern Detection Register A’ and ‘Silent Pattern Detection Register B’ address (512h and 514h respectively). The registers are configured to compare selected bits of the PCM value. The mask field determines which bits to compare and the match field detects silent values. If the byte yields a 0 result from the match and mask filter, then the byte is regarded as silent. Upon the reception of a complete CPS-Packet of silence, the CPS-Packet is considered silent and the process of generating an SID CPS-Packet is initialized. 83 MT90502 Preliminary Datasheet The Noise Level field in SID packet will contain an idle code (no noise). TDM Data Byte 10110010 10110110 Match Value 10110010 10110010 Match Result 00000000 00000100 Mask Value 11111111 11111111 Mask Result 00000000 00000100 Considered Silent Not Silent (1 = Mismatch) (1 = mismatched cell) Result For each bit, result = (match XOR header) AND mask Figure 51 - Silent Suppression Mask & Match Example 2.9.3 Complex Silent Suppression Complex silence suppression eliminates the external resource requirement to determine silent byte or silent packet. The MT90502 analyses both the remote (Rx direction) and local (Tx direction) signals and evaluates if silence is to be suppressed. The remote and local signals are processed to determine their average dB value over a CPS-Packet. The mean average dB of the CPS-Packet for both directions are employed to identify the transmission state as defined in the user configurable State Graph (Figure 52 on page 85). 84 MT90502 Preliminary Datasheet Silence Suppression State Table b15 b14 b13 b12 b11 b10 b9 +0 S[0] S[1] S[2] b8 S[3] b7 b6 S[4] b5 b4 b3 S[5] b2 S[6] b1 b0 S[7] +7FE S[16376] S[16377] S[16378] S[16379] S[16380] S[16381] S[16382] S[16383] -Index = (((-Local Energy)) wherewhere the local andand Remote - Index =Energy) (((-Local *128)+(-Remote Envergy) *128) + (-Remote Energy)) the Local Energies range from 0 to -78 dBm0 Remote Energies range from 0inclusively. to -78 dBm0 inclusively. Index refers- The to S[index] S State is defined as “00” = voice; “01” = transition; “10” = silence; “11” = -The S State is defined as ‘00’=voice; ‘01’=transition - maintain the status of the last reserved. non-transitional packet; ‘10’=silence; ‘11’=reserved. Typical Silence Suppression State Table: 0 dBm0 Transition Voice silent2.cdd Local Energy -48 dBm0 -78 dBm0 Silence -48 dBm0 0 dBm0 Remote Energy Figure 52 - Complex Silent Suppression Configurable State Graph 2.9.3.1 Complex Silent Suppression Operation 2.9.3.1.1 PCM Law Table PCM A-law and µ-law translation is supported by MT90502 on a per channel basis. For RX PCM channel, input law (from recieved CPS packet) and output law (sent on TDM bus) are controlled through RX TDM Control Memory Structures as shown in Figure 29, “RX Channel Association Memory (RX CAM),” on page 57. For TX PCM channels, law translation is configured in PCM Law Table located at 1000h-11FEh. 85 MT90502 Preliminary Datasheet b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 1000h ch[0] ch[1] ch[2] ch[3] 1002h ch[4] ch[5] ch[6] ch[7] ... ch[x]: ... ... ... Law translation for TX PCM channel number X. 00 - µ-law to µ-law 01 - µ-law to A-law 10 - A-law to µ-law 11 - No translation Figure 53 - PCM Law Table 2.9.3.1.2 DC Offset Calculation The DC component is calculated in both remote and local voice PCM bytes. The MT90502 is able to perform an accumulation of the PCM linear values over a number of PCM samples (see Local and Remote DC Offset Figure 61 on page 91) in the reception direction. Accumulation of DC offset is enabled only when CPS-Packet Assembly Structure is in DC Calculation state. After obtaining DC offsets a short while after a call begins, the CPU is then required to change the Assembly Structure to Transition state, and write the DC Offset Correction into the Structure. After that, the Structure can be configured to Suppression state where suppression circuit is activated. No silence is suppressed in either DC calculation state or Transition state. 2.9.3.1.3 Signal Energy Calculation To obtain the signal energy, the linear PCM value with consideration of the DC offset correction is squared. The MT90502 sums all the byte energy values contained in a CPS-Packet and divides the result by the length of the CPS-Packet to obtain an average energy per byte. Then the MT90502 calculates the linear energy value into its decibel value. The same process is employed with ADPCM; however, an external CODEC is required to convert the ADPCM to PCM. ADPCM silent suppression TDM streams are associated in groups of 4: for example, the ADPCM channel in transmission is mapped on stream 3, while the local PCM channel is mapped on stream 0, the ADPCM reception channel is mapped on stream 2, and the remote PCM channel on stream 1 (see Figure 54 and Figure 55). Complex Silence Suppression TDM Channel Mapping ct_c8 ct_frame ct_d[0] ct_d[1] ct_d[2] ct_d[3] ct_c8 ct_frame ct_d[0] ct_d[1] Local PCM Byte Remote PCM Byte Local ADPCM Nibble Local PCM Byte Remote PCM Byte Figure 54 - Complex Silent Suppression Stream Configuration 86 MT90502 Preliminary Datasheet Tx PCM CT_D[0] Tx PCM Tx ADPCM CODEC Rx ADPCM UTOPIA CT_D[3] MT90502 CT_D[2] Rx PCM Rx PCM CT_D[1] Figure 55 - ADPCM Complex Silent Suppression Stream Configuration 2.9.3.2 CPS-Packet Silence State The procedure is identical for both remote and local channels, as the silence suppression function requires information for both local and remote CPS-Packet mean values to consult the State Graph (see Figure 52) and determine the CPS-Packet status. Therefore, a channel on which complex silence suppression is enabled must have its transmit and receive direction streams mapped on consecutive stream and the same time slot (e.g. see Figure 54, “Complex Silent Suppression Stream Configuration,” on page 86). For example, the transmission stream(odd) 17, time slot 4 the associated reception stream is reception stream(even) 16 time slot 4. 2.9.3.2.1 Silence Suppression State Table To determine a CPS-Packet status (i.e. voice, transitional & silence), the TX TDM will reference the local and remote decibel energy levels in external memory. The table contains 2-bit values indicating a combination of local and remote energy levels. Note the Silent State Graph as shown in Figure 52. The Silence Suppression State Table (4KB) is located in the variable structures of TX SSRAM determined by the ‘Table Offset[20:12]’ field in the CPS-Packet Final Assembly Structure (see Figure 63). The MT90502 can accommodate a different State Table for as many as 512 channels, as different channels may exhibit different line characteristics. The Table Offset field in the CPS-Packet Final Assembly Structure (shown in Figure 63) points to the base address of the Silence Suppression State Table for the associated channel. 2.9.3.2.2 SID Transmission Operation After the transmission of an SID, subsequent silent CPS-Packets are suppressed. However, the UUI sequence count is maintained. Therefore the reception device can determine the number of CPS-Packets suppressed. Upon the detection of silence the first suppressed CPS-Packet will be replaced by an SID packet and will contain the Local Energy determined by the CPS-Packet Assembly Structure, without consideration of the Local Energy Correction. Further SID CPS-Packets will be transmitted if the Local Energy is less than 3dB of the last transmitted SID energy level. Therefore, the energy level transmitted may gradually reduced over the silent period. The ratio of silent packets to total CPS-Packets can be determined by consulting the CPS-Packet Final Assembly Structure, SID Count and CPS-Packet Count fields (see Figure 62 and Figure 63). 2.9.3.2.3 SID Reception Operation In the reception direction, SID CPS-Packets are employed to insert silent/comfort noise in Rx direction. The MT90502 is required to compensate for suppressed CPS-Packets employing the CPS-Packet loss compensation algorithm in the RX SAR (see Section 2.4.4, CPS-Packet Loss Compensation on page 52). 87 MT90502 Preliminary Datasheet Therefore, it is a requirement to enable the CPS-Packet Loss Compensation employing the UUI sequence number counter in silence suppression mode. When the RX SAR receives an SID CPS-Packet and in the CPS-Packet Disassembly Structure (see Figure 24 on page 47), LI0 field is configured for Silent Suppression the SID value will identify the Silent/Tone Buffer Number by referencing the SID Byte to Silence Buffer Structure (see Figure 56 on page 88). The SID energy level is mapped to the Silent/Tone Buffer Number in internal memory 1400h to 15FEh. For each SID byte, the Silence/Tone Buffer Number is stored in the SID Byte to Silence Buffer memory location. Different silence buffers must be used depending on the compression type. There are 5 entries for each SID byte, one per compression type: • • • • • PCM 64kb/s ADPCM 40kb/s ADPCM 32kb/s ADPCM 24kb/s ADPCM 16kb/s b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 1400h SID Translation PCM (64 kbps) +00h Buffer no. when SID byte is 30 Buffer no. when SID byte is 31 1440h SID Translation ADPCM (40 kbps) 1480h SID Translation ADPCM (32 kbps) 14C0h SID Translation ADPCM (24 kbps) 1500h SID Translation ADPCM (16 kbps) +2Eh Buffer no. when SID byte is 76 Buffer no. when SID byte is 77 +30h Buffer no. when SID byte is 78 Buffer no. when SID byte is 79 +3Ch Reserved Reserved +3Eh Buffer no. for all other SIDs Buffer no. when SID byte 127 Buffer no.: 0 - 63 for 64 tone buffers in SSRAM; 64 - 95 for 32 silent buffers in SDRAM; 96 - 127 for 32 null bytes in internal memory; 128 for buffer number of previous SID packet. Figure 56 - SID Byte to Silence Buffer Structure The Silent/Tone Buffer Number is written to the ‘Tone Number to Insert’ field located in the RX TDM Control Memory Structure (see Figure 31 on page 59) which identifies the ‘Silent/Tone Buffers’ (e.g. Figure 57 on page 89) in either SSRAM, SDRAM or null byte insertion, for the associated channel. The contents of the ‘Silent/Tone Buffers’ is inserted on the channel in place of the TDM Circular Buffer. One byte from each silent noise buffer is read at the beginning of each frame and written into internal memory. Therefore a silent/tone value for each active silent channel is primed for the entire frame. The MT90502 can use up to 96 silent noise buffers. In addition, up to 32 null bytes can be used, augmenting the actual number of padding possibilities to 128. At the start of each frame, the MT90502 reads the address, size, and current read pointer of every silent noise buffer, and then reads the corresponding byte. It then updates the read pointer for the next frame and writes it back. 88 MT90502 Preliminary Datasheet 2600h Silent/Tone Buffer 0-1 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 2608h 26F0h 26F8h Silent/Tone Buffer 2-3 Base Address of Tone/Silent Buffer Pair [20:6] +0 Silent/Tone Buffer 60-61 +2 Size of Tone/Silent buffer Pair +4 Tone/Silent buffer Read Pointer [16;0] +6 Reserved Silent/Tone Buffer 62-63 Silent/Tone Buffer Control Memory structures are 8-bytes in size, located in internal memory at addresses 2600h to 26F8h. Base Address of Tone/Silent Buffer Pair: Points to a 64-byte boundary at which this silent buffer pair begins. Size of Tone/Silent Buffer Pair: Indicates the size of this silent buffer pair. 0000h = invalid (this pair is not used)., 0001h = 1byte (per pattern), FFFFh = 65535-bytes (per pattern). Because this controls the size of 2 buffers, a full-sized pair will occupy 128K-bytes. Tone/Silent buffer Read Pointer: Current Read Pointer to this silent buffer pair. This field must be set to 0 by software when initialised. Figure 57 - SSRAM Tone Buffer Control Memory b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 Even Tone Buffer Odd Tone Buffer +N-1 Even Tone Buffer Odd Tone Buffer Index given by Base Address of Tone/Silent Buffer Pair in SSRAM Tone Buffer Control memory (see Figure 57 -SSRAM Tone Buffer Control Memory). Figure 58 - Silent Tone Buffer Pair in TX SSRAM 32 null bytes are stored in two locations in internal Tone Data Buffer Memory. Both locations must have identical copies. 1360h Null-byte [0] Null-byte [1] 13E0h Null-byte [0] Null-byte [1] 137Eh Null-byte [30] Null-byte [31] 13FEh Null-byte [30] Null-byte [31] Figure 59 - Null Bytes in Tone Data Buffer Memory Buffer[0] Buffer [1] ... ... Buffer[30] Buffer[31] Buffer[0] Buffer [1] ... ... Buffer[30] Buffer[31] ... ... Buffer[0] Buffer[1] ... ... Buffer[30] Buffer[31] Byte[0] Byte[1] ... Byte [size - 1] Figure 60 - 32 SDRAM Silence Buffers 89 MT90502 2.9.4 Preliminary Datasheet Voice/Silence Timer When a PCM or ADPCM CPS-Packet is composed entirely of silent bytes, then it is tagged as being a silent CPS-Packet. It is then sent off to the CPS-Packet Final Assembly Structure to be treated. A silent CPS-Packet will not necessarily be discarded: the Final Assembly Structure contains 2 fields, the Voice to Silence Timer and the Silence to Voice Timer, which indicate how long a channel must be silent before it starts being suppressed, and how long a channel must be active before it starts being transmitted again. Usually, the Silence to Voice Timer is close to 0, so that voice is never cut off at the beginning of a talk spurt. However, the Voice to Silence Timer can be much longer, because it is not as important to start suppressing silence as soon as voice trails off: leaving a certain silent time makes the transition to silence suppression much smoother. Note that both Timers are defined in CPS-Packets, which is the most precision possible in this application. To improve the Silence to Voice transition, another field called the TX Delay adds a constant delay of 0 to 4 CPS-Packets to the transmission: in other words, when the system must transmit a new CPS-Packet, it will transmit the one from 2 CPS-Packets ago. Thus, by using a Silence to Voice Timer of 2 CPS-Packets and a TX Delay of 2 CPS-Packets, the Silence to Voice transition will have zero loss, while ensuring that small spikes of noise do not cause the system to believe that continuous voice is being transmitted. 90 MT90502 Preliminary Datasheet PCM/ADPCM CPS-Packet Assembly Structure (in Complex Silence Suppression Mode, dc calcuation state) b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 Sub Phase +2 Local DC Offset[20:8] +4 Remot DC Offset[20:8] +6 +8 Local DC Off.[7:0] # EDU Comp Phase Rem. DC Off.[7:0] 1 0 0 Partial Byte Storage[7:1] PCM/ADPCM CPS-Packet Assembly Structure (in Complex Silence Suppression Mode, transition state) b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 Sub Phase Phase +2 +4 +6 +8 # EDU Comp 0 1 Partial Byte Storage[7:1] 0 PCM/ADPCM CPS-Packet Assembly Structure (in Complex Silence Suppression Mode, suppression state) b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 Sub Phase Phase +2 Local Energy Mantissa[7:0] Local E. Exp[4:0] +4 Remote Energy Mantissa[7:0] Remote E. Exp[4:0] +6 +8 Local DC Correc.[7:0] # EDU Comp 1 Rem. DC Correc.[7:0] 1 Partial Byte Storage[7:1] 0 Fields in Italic are used by Hardware only. Fields in Plain are written to by the CPU/Software. Reserved "00" state (addr+8[b9:b8]) is for simple silence suppression or no silence suppression. Structure shown in TDM Transmission section. LocalDC Offset / Remote DC Offset: Sum of all linear values of the PCM bytes received on the Local and Remote PCM channels (21-bits Twos-complement). This sum is sticky and will stay at -1048576 or 1048575 in case of overflow. Local DC Correction / Remote DC Correction: 8 bit twos-complement value used to remove DC offset to the Linear values before being used to calculate the energy of the Local and Remote signals. Local / Remote Energy Mantissa / Exponent : Field used by hardware to calculate the energy sum over a single packet. Exponent is defined as follows: “00001” = 1.0 to 1.99; “00010” = 2.0 to 4.98; etc. The highest bit of mantissa is always ‘1’. The units of this value is the square of the linearised PCM values inputs (-2047 to +2047). Figure 61 - Silent Suppression PCM/ADPCM CPS-Packet Assembly Structures 91 MT90502 Preliminary Datasheet CPS-Packet Final Assembly Structure (Simple Silence Suppression) b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 +0 VC Number[9:0] +2 SUI Send UUI[3:0] Voice to SilenceTimer TX Delay CID +4 S. to V. Timer +6 Seq I Pac Del Cnt [3:0] # EDU +8 +A +C +E SS Timer[8:0] SS +10 CPSP0 MP0 Code MP1 Code MP0 Base Add[7:3] MP1 Base Add[7:3] Base [7:3] CPSP0 Code CPSP1 Base [7:3] CPSP1 Code Base [7:3] CPSP2 Base [7:3] CPSP3 Code +12 CPSP2 MP2 Code CPSP3 MP3 Code MP2 Base Add[7:3] MP3 Base Add[7:3] +14 Silence to Voice Timer: Time in CPS-Packets to change from silence to voice. 0 means all voice packets will be sent. Voice to Silence Timer: Time in CPS-Packets to change from voice to silence. 0 means all silent packets will not be sent. TX Delay: Delay in CPS-Packets that will be added by the Silence Suppression Algorithm to prevent loss of voice. Range is 0 to 4 CPS-packets. SID Count[31:16] +16 SID Count[15:0] +18 CPS-Packet Byte Count[31:16] 1A CPS-Packet Byte Count[15:0] 1C CPS-Packet Count[31:16] 1E CPS-Packet Count[15:0] SS Timer: Silence State Timer. Increments when the suppression indication from the TDM bus is active during a whole CPS-Packet and the SS state is cleared, until Voice to Silence Timer is reached. Also increments when the suppression indication from the TDM bus is inactive for any byte in a whole CPS-Packet and the SS state is set, until Silence to Voice Timer is reached. Whenever neither of the previous conditions is met, this timer will reset to 0. When the state counter reaches the Silent to Voice Timer or Voice to Silent Timer, the SS bit will toggle thus the supression state will change. SS: Current Silence Suppression State. ‘0’ = send voice; ‘1’ = suppress. CPS-Packet 0-3 Base Add: base address of the start of the 4 previous CPSpackets in the TX Circular Buffer. 0 is most recent; 3 is oldest CPS-packet. Initialized to 00h at start-up by software. SID Count: Count of the number of SID CPS-Packets sent out. SID packets in this mode are only sent upon the transition from Voice to Silence. CPS-Packet Byte Count: Byte counter of all payload bytes sent (payload is defined as the LI+1 in each CPS-Packet sent). SID packets that are sent will count as one byte. SID packets that are not sent will be counted as 1 byte. CPS-Packet Count: CPS-Packet counter of all packets. All SID packets (might they have been sent or not) are counted in this field. PS-Packet Final Assembly structures are located in TX SSRAM at ddresses +1000h to +1FE0h, +2000h to +3FE0h, +4000h to +7FE0h and 8000h to +FFE0h for 128, 256, 512 and 1023 channels repsectively. t ach structure is 32-bytes in size. ields in Italic are used by Hardware only. ields in Plain are written to by the CPU/Software. Figure 62 - CPS-Packet Final Assembly Structure (Simple Silence Suppression) 92 MT90502 Preliminary Datasheet CP S -P acket Final Assem bly S tructure (Com plex S ilence S uppression) b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 S eq I Pack D el Cnt[3:0] +0 VC Num ber[9:0] +2 +4 S . to V . Tim er +6 Recent P eriod +8 +A SUI CID V oice to SilenceTim er M ax Local E nergy(dB m0) +E TX Delay Table Offset[20:12] Rem ote Energy Correction # of E DU Local E nergy Correction +C Silent P adding E nergy(dBm 0) Send UUI[3:0] M ax Rem ote E nergy(dB m 0) Reserved Recent M axim um Local E nergy S S G S S IS Recent CP SP Cnt S S Timer[8:0] +10 CPSP 0 Base Add[7:3] C PSP0 C ode CPS P1 Base A dd[7:3] CPSP1 C ode +12 CPSP 2 Base Add[7:3] CPSP2 Code CPS P3 Base A dd[7:3] CPSP3 C ode +14 S ID Count[31:16] +16 SID Count[15:0] +18 C PS -P acket Byte Count[31:16] +1A C PS -P acket Byte Count[15:0] +1C C PS -P acket Count[31:16] +1E CP S -P acket Count[15:0] Fields in Italic are used by Hardware only. Fields in P lain are written to by the CPU /S oftware. CP S -P acket Final Assem bly structures are located in TX S S RAM at addresses +1000h to +1FE 0h, +2000h to +3FE 0h, +4000h to +7FE 0h and +8000h to +FFE 0h for 128, 256, 512 and 1023 channels repsectively. E ach structure is 32 bytes in size. CP S Px Code: “000” = PCM ; “001” = ADP CM 40; “010” = A DP CM 32; “011” = A DPCM 24; “100” = A DP CM 16; “101” = P CM byte m isaligned E DU;others = reserved. Recent P eriod: Num ber of CPS -P ackets on which the m axim um recent energy will be calculated. 0 m eans S ID energy is re-calculated on each CPS -P acket. 15 m eans that the SID energy is recalculated every 16 packets. Table O ffset[20:12]: A bsolute position of the S ilence Suppression State Table in the TX SS RA M to be used with this channel. : S igned two’s com pletem ent offset added to the Local/Rem ote Local E nerg y Correction / Rem ote E nerg y Correction E nergies before indexing into the Table. This value is in dB . A value of 1 m eans a signal of -10 dB will be interpreted as -11 dB . M inim um value is -78 dB , Maxim um value is 49 dB. M ax Local / Rem ote Energ y: M axim um Local / Rem ote E nergy M onitored by hardware of a single CPS -P acket. 0 m eans 0 dBm 0. 78 m eans -78 dBm 0. Can be cleared by software to m onitor over short periods. Recent C PSP Cnt, Silent P adding E nergy & Recent M axim um Local E nergy Counter used to know when a new S ID energy value has been obtained. This counter will increm ent until it m atches the Recent P eriod field. Then it will be cleared. The CPS -P acket sent when this field is read and m atches the Recent Period will be included in the Recent M axim um Local E nergy calculation. U pon reading a R ecent CPSP Cnt at 0, the field Recent M axim um Local Energy will be ignored (assum ed to be -78 dB ). The S ilent P adding Energy will be set to the M axim um Local Energy upon term inal count when the resulting SS state is voice. W hen resulting SS state is silence, this operation is only perform ed when it will augum ent the value of the S ilent Padding Energy (i.e. m ake the S ilent P adding Energy m ore quiet). In this case, a S ID CP S-Packet will be sent. W hen the first S ID is sent, the E nergy in the S ID is the sam e as the one written back in the S ilent Padding E nergy. G S: Graph S tate. ‘0’ = No voice suppression; ‘1’ = S uppress voice. S S Tim er: Silence State Tim er. Increm ents when the Graph state and the SS bit are not equal, until Voice to Silence Tim er or S ilence to V oice tim er are reached. W henever the previous condition is not m et, this tim er will reset to 0. W hen the state counter reaches the Silent to Voice Tim er or V oice to Silent Tim er, the S S bit will toggle thus the supression state will change. S IS S id In S torage. W hen ‘1’, indicates that a S ID packet would have been generated last tim e had the phase allowed it. This m eans a S ID packet will be generated this tim e if the channel is deem ed to rem ain silent. Figure 63 - CPS-Packet Final Assembly Structure (Complex Silence Suppression) 93 MT90502 2.10 Preliminary Datasheet HDLC 2.10.1 HDLC Overview HDLC data format accommodates data that needs a larger bandwidth than PCM. Any number from 1 to 128 consecutive time slots on a single H.100/H.110 stream can carry data as one HDLC stream thus allowing a higher data transfer rate. Note that an HDLC stream must be contained within one frame and TX and RX HDLC streams carrying the same channel do not have to be of the same length. 2.10.2 HDLC Format The MT90502 can accept or generate an HDLC header that contains 0, 1, or 2 address bytes, as well as a possible control byte that follows the flag. There is also an optional 16-bit CRC that may be added at the end of the packet. The different formats are illustrated in Figure 64 on page 95. The formats are specified for each stream using the “Header Type” and “CRC” fields in the HDLC CPS-Packet Assembly Structure (see Figure 13 on page 33 and Figure 14 on page 34). When using HDLC streams, the low byte of the address is used to select the channel number. All address bytes that are not used to indicate a channel number are discarded by the TX TDM module. The payload gamut of an HDLC CPS-Packet is 1 to 64-bytes. Data is accumulated until a flag is received signifying the end of an HDLC packet. The payload will be processed according to the HDLC type. The MT90502 supports 2 types of HDLC data over the TDM bus: bit-wide form and byte-wide form (registers 400h and 500h). Table 33, “HDLC Packet Formats and Header Types,” on page 96 shows the supported HDLC package formats with corresponding header types as shown in Figure 13. The CRC selection is also made according to Figure 13. Using packaing_type (500h bit-3) enables “Raw” AAL2 CPS-Packets to be sent, as described in Section 2.2.3.4. If there are not multiple HDLC channels in a HDLC stream then SCS will not be used and the address bytes will be discarded. If SCS is used then the address bytes will be used along with the HDLC stream number to calculate the HDLC channel number. 94 MT90502 Preliminary Datasheet Supported HDLC Packet Format (after zero extraction) 0 Byte Header & No CRC: FLAG D0 D1 D2 D3 D4 FLAG 1 Byte Header & No CRC: FLAG H0 D0 D1 D2 D3 D4 FLAG 2 Byte Header & No CRC: FLAG H0 H1 D0 D1 D2 D3 D4 FLAG 0 Byte Header & 2 Byte CRC: FLAG D0 D1 D2 D3 D4 CRC0 CRC1 FLAG 1 Byte Header & 2 Byte CRC: FLAG H0 D0 D1 D2 D3 D4 CRC0 CRC1 FLAG 2 Byte Header & 2 Byte CRC: FLAG H0 H1 D0 D1 D2 D3 D4 CRC0 CRC1 1 Byte Header & Control & No CRC: FLAG H0 Cntrl D0 D1 D2 D3 D4 FLAG 2 Byte Header & Control & No CRC: FLAG H0 H1 Cntrl D0 D1 D2 D3 D4 FLAG 1 Byte Header & Control & 2 Byte CRC: FLAG H0 Cntrl D0 D1 D2 D3 D4 CRC0 CRC1 FLAG 2 Byte Header & Control & 2 Byte CRC: FLAG H0 H1 Cntrl D0 D1 D2 D3 D4 CRC0 CRC1 FLAG FLAG H0 H1 Cntrl CID D0 D1 D2 D3 D4 2 Byte Header & Control & 2 Byte CRC with AAL2 Header: LI/UUI UUI/HC FLAG CRC0 CRC1 FLAG NoteNote 1: 1: In all examples a 5-byte payload was used. Any payload from 1-to 64-bytes could have been used. In all examples a 5 byte payload was used. Any payload from 1 to 64 bytes could have been used. x x NoteNote 2: 2: CRC-16 Polynomial: 16+ x12+ 5+1.theAtinitial reset, initial value CRC is FFFFh and CRC is sent. X0Redwith FOB8h before CRC16 Polynomial : x16+x12+x5+1. At reset, valuethe of CRC is FFFFh andof CRC is XORedwith F0B8h before being being sent. Note 3 : The CID/LI/UUI/HEC AAL2 header byte triplet can be used in conjuction with all HDLC encapculation formats from no HDLC header/no NoteHDLC 3: the AAL2 header byte triplet can be used in conjunction with all HDLC encapsulation formats from no CRCCID/LI/UUI/HEC to the full 3 byte of HDLC header and 2 bytes of CRC. HDLC header/no HDLC CRC to the full 3-byte of HDLC header and 2-bytes of CRC. hdlc1.cdd Figure 64 - Supported HDLC Formats 95 MT90502 Preliminary Datasheet Packet Format Header Type CRC SCS 500h [3] Address Data 0-Byte Header & No CRC 0000 0 No 0 - 1-Byte Header & No CRC 0001 0 No 0 Discarded 2-Byte Header & No CRC 0010 0 No 0 Discarded 0-Byte Header & 2-Byte CRC 0000 1 No 0 - 1-Byte Header & 2-Byte CRC 0001 1 No 0 Discarded 2-Byte Header & 2-Byte CRC 0010 1 No 0 Discarded 1-Byte Header & Control & No CRC 0011 0 No 0 Discarded 2-Byte Header & Control & No CRC 0100 0 No 0 Discarded 1-Byte Header & Control & 2-Byte CRC 0011 1 No 0 Discarded 2-Byte Header & Control & 2-Byte CRC 0100 1 No 0 Discarded 1-Byte Header & No CRC 0101 0 Yes 0 Used 2-Byte Header & No CRC 0110 0 Yes 0 Used 1-Byte Header & 2-Byte CRC 0101 1 Yes 0 Used 2-Byte Header & 2-Byte CRC 0110 1 Yes 0 Used 1-Byte Header & Control & No CRC 0111 0 Yes 0 Used 2-Byte Header & Control & No CRC 1000 0 Yes 0 Used 1-Byte Header & Control & 2-Byte CRC 0111 1 Yes 0 Used 2-Byte Header & Control & 2-Byte CRC 1000 1 Yes 0 Used 0-Byte Header & No CRC with AAL2 header 0000 0 No 1 - 1-Byte Header & No CRC with AAL2 header 0001 0 No 1 Discarded 2-Byte Header & No CRC with AAL2 header 0010 0 No 1 Discarded 0-Byte Header & 2-Byte CRC with AAL2 header 0000 1 No 1 - 1-Byte Header & 2-Byte CRC with AAL2 header 0001 1 No 1 Discarded 2-Byte Header & 2-Byte CRC with AAL2 header 0010 1 No 1 Discarded 1-Byte Header & Control & No CRC with AAL2 header 0011 0 No 1 Discarded 2-Byte Header & Control & No CRC with AAL2 header 0100 0 No 1 Discarded 1-Byte Header & Control & 2-Byte CRC with AAL2 header 0011 1 No 1 Discarded 2-Byte Header & Control & 2-Byte CRC 0100 1 No 1 Discarded 1-Byte Header & No CRC with AAL2 header 0101 0 Yes 1 Used 2-Byte Header & No CRC with AAL2 header 0110 0 Yes 1 Used 1-Byte Header & 2-Byte CRC with AAL2 header 0101 1 Yes 1 Used 2-Byte Header & 2-Byte CRC with AAL2 header 0110 1 Yes 1 Used 1-Byte Header & Control & No CRC with AAL2 header 0111 0 Yes 1 Used 2-Byte Header & Control & No CRC with AAL2 header 1000 0 Yes 1 Used 1-Byte Header & Control & 2-Byte CRC with AAL2 header 0111 1 Yes 1 Used 2-Byte Header & Control & 2-Byte CRC with AAL2 header 1000 1 Yes 1 Used Table 33 - HDLC Packet Formats and Header Types 96 MT90502 Preliminary Datasheet 2.10.3 HDLC Bit-Wise Format Bit-wise means that every bit of HDLC data coming from the H.100/H.110 bus is examined. A control flag of 7Eh ("01111110") is used to signify the start and end of a packet. When using this form of HDLC, each HDLC packet must begin with a flag and end with a flag, although a single flag may represent both the end of a packet and the beginning of another. A '0' is inserted after every 5 '1's of incoming data (called zero insertion) to differentiate the control flag and data. If neither flags nor data are being transmitted onto the bus, the idle code is transmitted. The idle code is an endless string of '1's. Note that a valid idle code must be at least 7-bits long (7 '1's). 2.10.4 HDLC Byte-Wise Format Byte-wise HDLC format also employs "01111110" (7Eh) as a control flag. A 7Eh payload value is replaced by two bytes - 7Dh and 5Eh, while a 7Dh payload value is replaced by two bytes - 7Dh and 5Dh. A single flag may represent both the end of a packet and the beginning of another. This flag is put into the TX circular buffer with the data. When no data is being transmitted onto the bus, the flag character is sent repeatedly until data is transmitted again. 2.11 Memory 2.11.1 Memory Map The location of the absolute starting and ending addresses of the internal and external memories are shown in Table 34. The complete set of internal registers is listed in Section 3, “Register List,” on page 107. The beginning and ending addresses of the various structure spaces in SSRAM and SDRAM are listed in Section 2.11.2, “Memory Structures,” on page 98. Start Address End Address Name 0100h 01FEh cpureg 0200h 02FEh mainreg 0300h 03FEh txreg 0400h 04FEh rxreg 0500h 05FEh txtdmreg 0600h 06FEh utoreg 0700h 07FEh h100reg 0800h 08FEh miscreg 0900h 09FEh rxtdmreg 1000h 11FEh PCM Law Table 1300h 13FEh Tone Data Buffer Memory 1400h 15FEh SID Byte to Silence Buffer Memory 2000h 20FEh TX SAR Input FIFO 2100h 21FEh AAL0 Input FIFO 2200h 22FEh UTOPIA Port A Input FIFO 2300h 23FEh UTOPIA Port B Input FIFO 2400h 24FEh UTOPIA Port C Input FIFO 2600h 26FEh Tone Buffer Control Memory Table 34 - MT90502 Memory Map 97 MT90502 Preliminary Datasheet Start Address End Address Name 2800h 2BFEh UTOPIA Port A Output FIFO 2C00h 2FFEh UTOPIA Port B Output FIFO 3000h 3FFEh RX SAR Output FIFO 4000h 5FFEh TX Channel Association Memory 6000h 7FFEh RX Channel Association Memory 8000h BFFEh TX TDM Control Memory C000h FFFEh RX TDM Control Memory 10000h 103FEh UTOPIA Port C Output FIFO 400000h 4FFFFEh SSRAM bank A 600000h 7FFFFEh SSRAM bank B 2000000h 2FFFFFEh SDRAM bank A 3000000h 3FFFFFEh SDRAM bank B Table 34 - MT90502 Memory Map (continued) 2.11.2 Memory Structures There are two types of memory structures in the MT90502: fixed structures and variable structures. Fixed structures are of a defined size and base address, and are mapped according to the sar_capacity register field (register 240h), which determines the total channel capacity of the MT90502. The one exception is the RX Circular Buffers, whose size is determined by the rx_circular_buffer_size field (register 240h). The size of variable structures can be configured individually in registers. When two memory banks exist, TX memory employs memory controller A and memory interface pins A, while RX memory uses memory controller B and memory interface pins B. When one memory bank exists, only memory controller A and memory interface pins A are used. TX SSRAM fixed structures are (with sizes in bytes for 128, 256, 512, and 1023 channels) • AAL2 VC structures (4K, 8K, 16K, 32K) • CPS-Packet Final Assembly structures (4K, 8K, 16K, 32K) • Cell Assembly Event Queue (512, 1K, 2K, 4K) • CPS-Packet Circular Buffers (32K, 64K, 128K, 256K) TX SSRAM variable structures are • Clock Recovery Point Buffers (2 buffers the same size, either 4K, 8K, 16K, 32K, 64K, or 128 KB each) • SSRAM Silence Buffers (up to 64, each pair can have a length of 0 to 64 KB per buffer) • Silent Suppression Look-up Tables RX SSRAM fixed structures are (with sizes in bytes for 128, 256, 512, and 1023 channels) • AAL2 VC structures (16K, 32K, 64K, 128K) • CPS-Packet Descriptor Queue (8K, 16K, 32K, 64K) • CPS-Packet Disassembly structures (4K, 8K, 16K, 32K) • CPS-Packet Descriptor Queue Pointers (512, 1K, 2K, 4K) • CPS-Packet Circular Buffers (1 for each channel, all the same size 256, 512, or 1K bytes). RX SSRAM variable structures are • Data (AALO) cell FIFO (one FIFO: 4K, 8K, 16K, 32K, 64K, or 128K bytes) • Error Report structure FIFO (one FIFO: 4K, 8K, 16K, 32K, 64K, or 128K bytes) • CPU CPS-Packet buffer (one buffer: 16K, 32K, 64K, or 128K bytes) TX SDRAM fixed structures are (with sizes in bytes for 128, 256, 512, and 1023 channels) 98 Preliminary Datasheet MT90502 • CPS-Packet Descriptor Queue (512K, 1M, 2M, 4M) TX SDRAM variable structures are • Look-Up Tables 1 (3 tables, each can have a size of 1M, 2M, 4M, or 8 MB) • SDRAM Silent Buffers (32 buffers the same size, either 0, 16K, 32K, or 64K bytes each) RX SDRAM fixed structures are (with sizes in bytes for 128, 256, 512, and 1023 channels) • RX CID table (1K, 2K, 4K, 8K) There are no variable RX SDRAM structures. 1. All three LUTs can have the same base address. The sizes and base addresses of the LUTs are determined in registers 620h, 640h, and 660h. 99 MT90502 Preliminary Datasheet TX SSRAM Memory Mapping 128 Channels + 000000h TX AAL2 VC Structures 256 Channels + 000000h AAL2 VC Structures (128Structures Structures ==4K) (128 4K) + 000FE0h + 001000h + 001FE0h + 001FE0h CPS-Packet Final Assembly Mini-Packet Structures (128 Structures = 4K) + 002000h + 003FF0h Cell Assembly Event Queue (128 Events = 512B) Cell Assembly Event Queue (256 Events = 1K) + 0021F8h + 0043F8h + 002200h + 004400h + 0037FEh + 007FFEh + 008000h + 004000h CPS-Packet Circular Buffers* Mini-Packet (128 Buffers = 32K) CPS-Packet Circular Buffers* Mini-Packet (256 Buffers = 64K) + 017F00h + 00BF00h 1023 1024Channels Channels 512 Channels + 000000h TX AAL2 VC Structures TX AAL2 VC Structures AAL2 VC Structures (512 = 16K) (512Structures Structures = 16K) + 007FF0h (1024 Structures = 32K) + 007FE0h + 003FE0h + 004000h CPS-Packet Final Assembly Mini-Packet Structures (512 Structures = 16K) + 008000h + 00FFF0h CPS-Packet Final Assembly Mini-Packet Structures (1024 Structures = 32K) + 010000h + 008000h Cell Assembly Event Queue (512 Events = 2K) Cell Assembly Event Queue (1024 Events = 4K) + 0087F8h + 010FF8h + 008800h + 011000h + 00FFFEh + 01FFFEh + 020000h + 010000h CPS-Packet Circular Buffers* Mini-Packet (512 Buffers = 128K) + 02FF00h CPS-Packet Final Assembly Mini-Packet Structures (256 Structures = 8K) + 004000h + 002000h + 000000h TX AAL2 VC Structures AAL2 VC Structures (256Structures Structures ==8K) (256 8K) CPS-Packet Circular Buffers* Mini-Packet (1024 Buffers = 256K) + 05FF00h *Note that not all circular buffers have to be used. If memory is not available for certain circular buffers just don’t assign them. Reserved mapping1.cdd Figure 65 - TX SSRAM Memory Mapping for Fixed Structures 100 MT90502 Preliminary Datasheet R X SSRAM Memory Mapping 128 Channels +000000h RXAAL2 AAL2VC VC Structures Structures 256 Channels +000000h (128 Structures = 16K) +003F80h +004000h +005FC0h +006000h +006F00h +007000h (256 Structures = 32K) +007F80h Mini-Packet Descriptor DescriptorsQueue CPS-Packet (128 (128 Structures Structures==8K) 8K) CPS-Packet Disassembly HDLC/PCM Disassembly Structures Structures (128 Structures = 4K) CPS-Packetqueue Descriptor Queue Mini-packet pointers Pointers = 512B) (128 Structures +008000h +00BFC0h +00C000h +00DF00h +00E000h +0071FCh (128 Structures = 512B) +00E3FCh +008000h CPS-Packet CircularCircular Buffers*Buffers* (128Buffers Buffers = 32K/128K) (128 = 32K/128K) +010000h +027C00h RX AAL2 Structures AAL2 VC VC Structures (512 Structures = 64K) +000000h +00FF80h +01FF80h +020000h CPS-Packet Mini-Packet Descriptor DescriptorsQueue (512Structures Structures= = 32K) (512 32K) +017FC0h +01BF00h +01C000h +01C7FCh +020000h +09FC00h CPS-Packet Disassembly HDLC/PCM Disassembly Structures Structures (256 Structures = 8K) CPS-Packet Descriptor Mini-packet queue pointersQueue Pointers = 1K) (256 Structures (256 Structures = 1K) CPS-Packet Circular Buffers* Circular Buffers* (256 (256 Buffers Buffers ==642K/256K) 64K/256K) 1023 Channels 1024 Channels +010000h +018000h Mini-Packet Descriptors CPS-Packet Descriptor Queue (256 = 16K) (256Structures Structures = 16K) +04FC00h 512 Channels +000000h RX AAL2 Structures AAL2 VCVC Structures RXAAL2 AAL2 VC Structures VC Structures (1024 Structures = 128K) CPS-Packet Descriptor Queue Mini-Packet Descriptors (1024 Structures = 64K) (1024 Structures = 64K) +02FFC0h HDLC/PCM Disassembly CPS-Packet Disassembly Structures Structures (512 Structures = 16K) CPS-Packet Descriptor Queue Mini-packet queue pointers Pointers (512 Structures = 2K) (512 Structures = 2K) CPS-Packet CircularCircular Buffers*Buffers* (512 Buffers Buffers ==128K/512K) (512 128K/512K) +030000h +037F00h +038000h +038FFCh +040000h CPS-Packet Disassembly HDLC/PCM Disassembly Structures Structures (1024 Structures = 32K) CPS-Packet Descriptor Mini-packet queue pointers Queue Pointers= 4K) (1024 Structures (1024 Structures = 4K) CPS-Packet Circular Buffers* (1024Circular BuffersBuffers* = 256K/1024K) (1024 Buffers = 256K/1024K) +13FC00h *Note that not all circular buffers have to be used. If memory is not available for certain circular buffers just don’t assign them. Reserved Figure 66 - RX SSRAM Memory Mapping for Fixed Structures 101 MT90502 Preliminary Datasheet Two Banks 1023 Channels 000000h 000000h CPS-Packet Descriptor Queue Rx CID Structure 2MB 200000h 400000h SDRAM Silent Buffers 0B, 512KB, 1MB or 2MB 400000h+SSB Next x00000h LUT A, B & C 1MB, 2MB, 3MB........ 24MB One Bank 512 Channels Two Banks 512 Channels 000000h 000000h CPS-Packet Descriptor Queue 200000h 000000h Rx CID Structures CPS-Packet Descriptor Queue 1MB 100000h 200000h SDRAM Silent Buffers SDRAM Silent Buffers 0B, 512KB, 1MB or 2MB 0B, 512KB, 1MB or 2MB 200000h+SSB Next x00000h 200000h+SSB Rx CID Table 1MB LUT A, B & C 1MB, 2MB, 3MB........ 24MB 300000h+SSB Next x00000h LUT A, B & C The LUT start address is on the next available 1MB page. 1MB, 2MB, 3MB........ 24MB SSB = SDRAM Silent Buffer Figure 67 - SDRAM Memory Map for 512 & 1023 Channels 102 MT90502 Preliminary Datasheet One Bank 256 Channels 000000h Two Banks 256 Channels 000000h CPS-Packet Descriptor Queue 100000h 0B, 512KB, 1MB or 2MB 100000h+SSB Rx CID Table Next x00000h Rx CID Structure 512KB 080000h 100000h SDRAM Silent Buffers SDRAM Silent Buffers 180000h+SSB 000000h CPS-Packet Descriptor Queue 100000h+SSB Next x00000h 0B, 512KB, 1MB or 2MB LUT A, B & C 512KB 1MB, 2MB, 3MB........ 24MB LUT A, B & C 1MB, 2MB, 3MB........ 24MB Two Banks 128 Channels One Bank 128 Channels 000000h 000000h 000000h CPS-Packet Descriptor Queue 080000h SDRAM Silent Buffers SDRAM Silent Buffers 0B, 512KB, 1MB or 2MB 080000h+SSB 0B, 512KB, 1MB or 2MB Next x00000h Rx CID Table 0C0000h+SSB Next x00000h 256KB 040000h 080000h 080000h+SSB Rx CID Structures CPS-Packet Descriptor Queue 256KB LUT A, B & C 1MB, 2MB, 3MB........ 24MB LUT A, B & C 1MB, 2MB, 3MB........ 24MB The LUT start address is on the next available 1MB page. SSB = SDRAM Silent Buffer Figure 68 - SDRAM Memory Map for 128 and 256 Channels 2.11.3 Mem_Clk and Upclk The memory clock is supplied to the MT90502 by an external source. The memories are connected to an external clock source which also must be coupled to the MT90502’s mem_clk pin. A frequency of 60 MHz for mem_clk is recommended. Frequencies above 60 MHz will not increase performance, but will increase power consumption. At lower clock frequencies, the MT90502 may not be able to operate at its full SAR capacity. Upclk is used by CPU interface circuit. Its frequency should not be less than half of mem_clk. There is no relationship between upclk to mem_clk. 103 MT90502 Preliminary Datasheet 2.11.4 Memory Controller 2.11.4.1 Overview The MT90502 uses up to 4 external SSRAM chips and 2 external SDRAM chips on 2 banks for its memory requirements. SSRAM chips can be 128KByte, 256KByte, 512KByte or 1MByte in size. The size of SDRAM chips is either 4Mx16 or 8Mx16. The address and data pins of the memories are shared on either bank (e.g. SDRAM A and SSRAM A share their pins). For applications of 512 channels or less, it is possible to use bank A only. Both banks must be used if sar_capacity is set to 1023. If only 1 bank is employed, TX SSRAM starts from the beginning of bank A, which is 400000h. RX SSRAM starts from rx_base_address programmed in register 242h. If using two banks, however, bank A is always TX SSRAM and bank B is RX SSRAM. A memory controller is used to multiplex the accesses required of these memories. This dual memory controller grants the memory bus to the various agents within the chip in order of urgency, using a priority algorithm, and transforms the memory accesses into the correct pin signals. 2.11.4.2 Functionality The memory controller is responsible for generating even parity on the parity pins of the memories and detecting that the parity is correctly received when reading data from the memory. The MT90502 calculates even parity on all address bits and data bits used to generate each access. When reading from the memory, it performs the same calculation in the opposite direction. Parity errors are reported to register 202h. To render parity generation and detection, configurable masks can be employed to calculate parity on certain bits (registers 230h, 232h and 234h). Parity is calculated on all locations in memory except for the RX circular buffers, in which the parity bits are used for underrun information. It is possible to override this and use parity on these circular buffers through control bits in register 230h. The controller ensures that the SDRAMs are refreshed often enough to avoid corrupt data. A limit (register 254h) exists for how many refresh periods behind the SDRAM can be before a status error is generated. SDRAM is configurable in registers 250h-25Ah. 2.11.5 Initializing SSRAM and SDRAM The SSRAM parity generation and checking can be configured by programming registers 230h mem_parity0, 232h mem_parity1 and 234h mem_parity2. The SSRAM sizes can be configured by programming registers 240h mem_conf0 and 242h mem_conf1 (not programmed if using bank B for RX). The SDRAM can be configured by a series of register writes. Pre-charge all the SDRAM banks, program the mode, perform a CBR refresh (twice), enable the SDRAM and then set the SDRAM for normal operation. 104 MT90502 Preliminary Datasheet 2.11.6 Memory Configuration SSRAM memory chips must be ZBT (zero-bus turnaround) and must be pipelined. SDRAM memory chip must have A12-A13 as bank select pins, A0-A11 as row address and A0-A7/A8 as column address. Typical application circuits for Bank A SSRAM and Bank A SDRAM are shown in Figure 69 on page 105 and Figure 70 on page 106. 60 MHz 60 MHz (optional) (optional) (optional) 64K/128K/256K/512K x 18 Figure 69 - Typical SSRAM Application Circuit 105 MT90502 Preliminary Datasheet 60 MHz 60 MHz 4M/8M x 16 Figure 70 - Typical SDRAM Application Circuit 106 MT90502 Preliminary Datasheet 3.0 Register List 3.1 CPU Register Address: 100h Label: control Reset Value: 0000 Label Bit Position Type Description sreset 0 RW Active low software reset. Resets the whole chip except the CPU interface. Once low, all registers will be cleared except for CPU registers and Main Registers. low_latency_cpu_accesses 1 RW When '1', no caching will be done in the CPU Interface, thus guaranteeing a higher average access time, but a lower worst case access time. 14:2 RW Reserved. Must always be “0000_0000_0000_0” 15 TS Reserved. Must always be “0”. reserved test_status Table 35 - CPU Control Register Address: 102h Label: status0 Reset Value: 0000h Label reserved Bit Position Type 2:0 Description ROL Reserved. Always read as “000” internal_read_timeout 3 ROL Internal device time-out. Generally occurs when a clock is missing or misbehaving. cpu_read_done 4 ROL This bit is set when a burst of reads is completed. This bit may be used to generate an interrupt after a large read burst has completed (in indirection). For small read bursts, it is not very useful since there is not enough time for the CPU to do anything between the time it starts the read and the time that the read ends. reserved 15:5 ROL Reserved. Always read as “0000_0000_000” Table 36 - CPU Status Register Address: 104h Label: status0_ie Reset Value: 0000h Label Bit Position Type 2:0 RO Reserved. Always read as “000” internal_read_timeout_ie 3 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. cpu_read_done_ie 4 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. 15:5 RO Reserved. Always read as “0000_0000_000” reserved reserved Description Table 37 - CPU Interrupt Enable Register 107 MT90502 Preliminary Datasheet Address: 108h Label: mem_clk_freq Reset Value: 0000h Label Bit Position Type Description reserved 3:0 RO mem_clk_freq_integer 10:4 RW Frequency of mem_clk in MHz. reserved 15:11 RW Reserved. Must always be “0000” Reserved Table 38 - Mem_clk Frequency Control Register Address: 10Ah Label: upclk_freq Reset Value: 0000h Label Bit Position Type Description reserved 3:0 RO Reserved upclk_freq_integer 10:4 RW Frequency of upclk in MHz. reserved 15:11 RW Reserved. Must always be “0000” Table 39 - Upclk Frequency Control Register Address: 10Ch Label: led0 Reset Value: 007Fh Label Bit Position Type 8:0 RW Determines the time in ms that the LEDs will be turned off to indicate link activity. 9 RW If '0', the LED Flashing time will be determined in ms. If '1', the LED Flashing time will be determined in us. 15:10 RW Reserved. Must always be “0000_00” led_flash_freq[8:0] led_test_mode reserved Description Table 40 - LED Timing Control Register Address: 16Ch Label: fastclk_pll_conf0 Reset Value: 0642h Label Bit Position Type Description reserved 0 WO Reserved. Always read as “0” pll_div_x 3:1 WO Selects the division of the reference before being fed to the PLL. The reference is either upclk or mem_clk. pll_div_y 6:4 WO Selects the division of the feedback before being fed to the PLL. Table 41 - Fast Clock PLL Configuration Register 0 108 MT90502 Preliminary Datasheet pll_bypass 7 WO When '1', mem_clk or upclk are passed directly (without being divided) to fast_clk. pll_source 8 WO 0' = upclk is PLL source; '1' = mem_clk is PLL source. nreset_pll_async 9 WO Active low PLL nreset. This value resets the PLL's clock divisors. reserved 10 WO Reserved. Must write “1”. reserved 15:11 WO Reserved. Always read as “0000_0” Table 41 - Fast Clock PLL Configuration Register 0 (continued) Address: 172h Label: fastclk_pll_conf1 Reset Value: 09FCh Label Bit Position Type 1:0 RW Output frequency range selection bits = “00” pll_pd 2 RW ‘0’ for normal operation. Power Down = ‘1’. pll_div 7:3 RW Divider = “11111” 8 RW Forces PLL into a clock synchronisation mode = ‘1’ pll_chp 13:9 RW Charge Pump settings = “01000” reserved 15:14 RW Reserved. Must always be “00” pll_vcod pll_syncen Description Table 42 - Fast Clock PLL Configuration Register 1 Address: 174h Label: h100pll_conf0 Reset Value: 07FEh Label Bit Position Type 1:0 RW Output frequency range selection bits = “10” H100pll_pd 2 RW ‘0’ for normal operation. Power Down = ‘1’. H100pll_div 7:3 RW Divider = “11111” 8 RW Forces PLL into a clock synchronisation mode = ‘1’ H100pll_chp 13:9 RW Charge Pump settings = “00011” reserved 15:14 RW Reserved. Must always be “00” H100pll_vcod H100pll_syncen Description Table 43 - H100/H110 PLL Configuration Register 0 109 MT90502 Preliminary Datasheet Address: 17Eh Label: chip_and_revision Reset Value: 0101h Label Bit Position Type Description chip_id[7:0] 7:0 RO Chip ID = 01h. rev_id[7:0] 15:8 RO Revision ID = 01h. Table 44 - ID Register 3.2 Main Registers Address: 202h Label: status0 Reset Value: 0000h Label Bit Position Type mema_sdram_parity_error0 0 ROL Parity error on the high byte of bank A SDRAM. mema_sdram_parity_error1 1 ROL Parity error on the low byte of bank A SDRAM. memb_sdram_parity_error0 2 ROL Parity error on the high byte of bank B SDRAM. memb_sdram_parity_error1 3 ROL Parity error on the low byte of bank B SDRAM. mema_ssram_parity_error0 4 ROL Parity error on the high byte of bank A SSRAM. mema_ssram_parity_error1 5 ROL Parity error on the low byte of bank A SSRAM. memb_ssram_parity_error0 6 ROL Parity error on the high byte of bank B SSRAM. memb_ssram_parity_error1 7 ROL Parity error on the low byte of bank B SSRAM. memb_bad_cpu_access 8 ROL Indicates that an access was attempted to bank B when the bank was not present. sdrama_too_late 9 ROL Indicates that bank A SDRAM cannot refresh quickly enough. Information in that memory may be corrupt. sdramb_too_late 10 ROL Indicates that bank B SDRAM cannot refresh quickly enough. Information in that memory may be corrupt. 15:11 ROL Reserved. Always read as “0000_0” reserved Description Table 45 - Main Status Register 110 MT90502 Preliminary Datasheet Address: 204h Label: status0_ie Reset Value: 0000h Label Bit Position Type Description mema_sdram_parity_error0_ie 0 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. mema_sdram_parity_error1_ie 1 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. memb_sdram_parity_error0_ie 2 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. memb_sdram_parity_error1_ie 3 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. mema_ssram_parity_error0_ie 4 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. mema_ssram_parity_error1_ie 5 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. memb_ssram_parity_error0_ie 6 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. memb_ssram_parity_error1_ie 7 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. memb_bad_cpu_access_ie 8 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. sdrama_too_late_ie 9 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. sdramb_too_late_ie 10 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. reserved 15:11 RO Reserved. Always read as “0000_0” Table 46 - Main Interrupt Enable Register 111 MT90502 Preliminary Datasheet Address: 210h Label: interrupt_flags Reset Value: 0000h Label Bit Position Type Description cpureg_interrupt_active 0 RO Indicates that the interrupt generated by this module is active. mainreg_interrupt_active 1 RO Indicates that the interrupt generated by this module is active. txreg_interrupt_active 2 RO Indicates that the interrupt generated by this module is active. rxreg_interrupt_active 3 RO Indicates that the interrupt generated by this module is active. txtdmreg_interrupt_active 4 RO Indicates that the interrupt generated by this module is active. utoreg_interrupt_active 5 RO Indicates that the interrupt generated by this module is active. h100reg_interrupt_active 6 RO Indicates that the interrupt generated by this module is active. miscreg_interrupt_active 7 RO Indicates that the interrupt generated by this module is active. rxtdmreg_interrupt_active 8 RO Indicates that the interrupt generated by this module is active. aal0alarm_interrupt_active 9 RO Set when RX AAL0 data cell FIFO is half full or a time-out occurs. Clear by writing ‘1’ to register 468h bit ‘0’ clkrecovalarm_interrupt_active 10 RO Set when the clock recovery buffer A or buffer B is half-full. Automatically cleared when both buffers are less than half full. erroralarm_interrupt_active 11 RO Set when the Error/Event FIFO is half full or a time-out occurs. Clear by writing ‘1’ to register 468h bit ‘1’ 14:12 RO Reserved. Always Read as “000” 15 PUL When written to '1', another interrupt will not be generates for the number of us indicated in reg 214h. reserved interrupt1_treated Table 47 - Interrupt Flag Register 112 MT90502 Preliminary Datasheet Address: 214h Label: interrupt1_conf Reset Value: 0000h Label Bit Position Type Description min_interrupt1_period 13:0 RW Number of us between interrupts (minimum). When 0000h, these is no minimum interval between interrupts. interrupt1_polarity 15:14 RW Interrupt polarity and output enable. “00”=active low (open-collector); “01”=active high (open-collector); “10” = drive low; “11” = drive high. Table 48 - Minimum Interrupt Interval Register Address: 216h Label: interrupt2_conf Reset Value: 0000h Label Bit Position Type Description reserved 13:0 RW Reserved. Must always be “0000_0000_0000_00” interrupt2_polarity 15:14 RW Interrupt polarity and output enable. “00”=active low (open-collector); “01”=active high (open-collector); “10” = drive low; “11” = drive high. Table 49 - Interrupt Polarity & O/P Enable Register Address: 218h Label: interrupt1_enable Reset Value: 0000h Label Bit Position Type Description cpureg_interrupt1_enable 0 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. mainreg_interrupt1_enable 1 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. txreg_interrupt1_enable 2 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. rxreg_interrupt1_enable 3 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. txtdmreg_interrupt1_enable 4 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. utoreg_interrupt1_enable 5 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. h100reg_interrupt1_enable 6 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. miscreg_interrupt1_enable 7 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. Table 50 - Interrupt 1 Enable Register 113 MT90502 Preliminary Datasheet rxtdmreg_interrupt1_enable 8 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. aal0alarm_interrupt1_enable 9 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. clkrecovalarm_interrupt1_enabl e 10 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. erroralarm_interrupt1_enable 11 RW When '1' and the corresponding active bit in reg 210h is active, interrupt1 will be active. 15:12 RW Reserved. Must always be “0000” reserved Table 50 - Interrupt 1 Enable Register (continued) Address: 21Ah Label: interrupt2_enable Reset Value: 0000h Label Bit Position Type cpureg_interrupt2_enable 0 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. mainreg_interrupt2_enable 1 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. txreg_interrupt2_enable 2 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. rxreg_interrupt2_enable 3 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. txtdmreg_interrupt2_enable 4 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. utoreg_interrupt2_enable 5 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. h100reg_interrupt2_enable 6 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. miscreg_interrupt2_enable 7 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. rxtdmreg_interrupt2_enable 8 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. aal0alarm_interrupt2_enable 9 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. clkrecovalarm_interrupt2_enable 10 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. erroralarm_interrupt2_enable 11 RW When '1' and the corresponding active bit in reg 210h is active, interrupt2 will be active. 15:12 RW Reserved. Must always be “0000” reserved Description Table 51 - Interrupt 2 Enable Register 114 MT90502 Preliminary Datasheet Address: 220h Label: txa_clk_gen Reset Value: 0403h Label txa_clk_div[5:0] txa_clk_divisor_load_now Bit Position Type Description 5:0 RW txa_clk clock source division value. The txa_clk clock source (selected using txa_clk_src) can be divided before being sent out on UTOPIA. Note that odd values will force the duty cycle to be maintained, rather than returning it to 50-50. 6 PUL This bit, when written to '1', will force the new txa_clk_div to be applied immediately (possibly causing glitches on the txa_clk). This bit should only be set to one when loading the divisor when the txa_clk_present bit is cleared. Note that it is possible to dynamically change the divisor value without causing glitches on the output clock if this bit is not written to 1. txa_clk_inv 7 RW When '1', the txa_clk's source will be inverted before being driven out on the txa_clk pin. 10:8 RW “000” =txa_clk_in; “001” =txb_clk_in; ”010”=txc_clk_in; “011”=rxa_clk_in; “100” =rxb_clk_in; “101”=rxc_clk_in; “110”=mem_clk; others=reserved. txa_clk_oe 11 RW txa_clk output enable. Active high. txa_clk_present 12 RW Set to '1' when the txa_clk is present. If the user does not want to use the txa UTOPIA interface, this bit should be left at '0' regardless of the presence of the txa_clk. txa_clk_divisor_reset 13 RW When '0', will reset the clock division. 15:14 RW Reserved. Must always be “00” txa_clk_src[2:0] reserved Table 52 - Tx A Clock Division Register 115 MT90502 Preliminary Datasheet Address: 222h Label: txb_clk_gen Reset Value: 0403h Label txb_clk_div[5:0] Bit Position Type Description 5:0 RW txb_clk clock source division value. The txb_clk clock source (selected using txb_clk_src) can be divided before being sent out on UTOPIA. Note that odd values will force the duty cycle to be maintained, rather than returning it to 50-50. txb_clk_divisor_load_now 6 PUL This bit, when written to '1', will force the new txb_clk_div to be applied immediately (possibly causing glitches on the txb_clk). This bit should only be set to one when loading the divisor when the txb_clk_present bit is cleared. Note that it is possible to dynamically change the divisor value without causing glitches on the output clock if this bit is not written to 1. txb_clk_inv 7 RW When '1', the txb_clk's source will be inverted before being driven out on the txb_clk pin. txb_clk_src[2:0] 10:8 RW “000”=txa_clk_in; “001” =txb_clk_in; “010”=txc_clk_in; “011”=rxa_clk_in; “100”=rxb_clk_in; “101”=rxc_clk_in; “110”=mem_clk; others=reserved. txb_clk_oe 11 RW txb_clk output enable. Active high. txb_clk_present 12 RW Set to '1' when the txb_clk is present. If the user does not want to use the txa UTOPIA interface, this bit should be left at '0' regardless of the presence of the txb_clk. txb_clk_divisor_reset 13 RW When '0', will reset the clock division. reserved 15:14 RW Reserved. Must always be “00” Table 53 - Tx B Clock Division Register 116 MT90502 Preliminary Datasheet Address: 224h Label: txc_clk_gen Reset Value: 0403h Label txc_clk_div[5:0] txc_clk_divisor_load_now Bit Position Type Description 5:0 RW txc_clk clock source division value. The txc_clk clock source (selected using txc_clk_src) can be divided before being sent out on UTOPIA. Note that odd values will force the duty cycle to be maintained, rather than returning it to 50-50. 6 PUL This bit, when written to '1', will force the new txc_clk_div to be applied immediately (possibly causing glitches on the txc_clk). This bit should only be set to one when loading the divisor when the txc_clk_present bit is cleared. Note that it is possible to dynamically change the divisor value without causing glitches on the output clock if this bit is not written to 1. txc_clk_inv 7 RW When '1', the txc_clk's source will be inverted before being driven out on the txc_clk pin. 10:8 RW “000”=txa_clk_in; “001”=txb_clk_in; ”010”=txc_clk_in; “011”=rxa_clk_in; “100”=rxb_clk_in; “101”=rxc_clk_in; “110”=mem_clk; others = reserved. txc_clk_oe 11 RW txc_clk output enable. Active high. txc_clk_present 12 RW Set to '1' when the txc_clk is present. If the user does not want to use the txa UTOPIA interface, this bit should be left at '0' regardless of the presence of the txc_clk. txc_clk_divisor_reset 13 RW When '0', will reset the clock division. 15:14 RW Reserved. Must always be “00” txc_clk_src[2:0] reserved Table 54 - Tx C Clock Division Register 117 MT90502 Preliminary Datasheet Address: 228h Label: rxa_clk_gen Reset Value: 0403h Label rxa_clk_div[5:0] rxa_clk_divisor_load_now Bit Position Type Description 5:0 RW rxa_clk clock source division value. The rxa_clk clock source (selected using rxa_clk_src) can be divided before being sent out on UTOPIA. Note that odd values will force the duty cycle to be maintained, rather than returning it to 50-50. 6 PUL This bit, when written to '1', will force the new rxa_clk_div to be applied immediately (possibly causing glitches on the rxa_clk). This bit should only be set to one when loading the divisor when the rxa_clk_present bit is cleared. Note that it is possible to dynamically change the divisor value without causing glitches on the output clock if this bit is not written to 1. rxa_clk_inv rxa_clk_src[2:0] 7 10:8 RW When '1', the rxa_clk's source will be inverted before being driven out on the rxa_clk pin. RW “000”=txa_clk_in; “001”=txb_clk_in; “010”=txc_clk_in; “011”=rxa_clk_in; “100”=rxb_clk_in; “101”=rxc_clk_in; “110”=mem_clk; others=reserved. rxa_clk_oe 11 RW rxa_clk output enable. Active high. rxa_clk_present 12 RW Set to '1' when the rxa_clk is present. If the user does not want to use the txa UTOPIA interface, this bit should be left at '0' regardless of the presence of the rxa_clk. rxa_clk_divisor_reset 13 RW When '0', will reset the clock division. reserved 15:14 RW Reserved. Must always be “00” Table 55 - Rx A Clock Division Register 118 MT90502 Preliminary Datasheet Address: 22Ah Label: rxb_clk_gen Reset Value: 0403h Label rxb_clk_div[5:0] rxb_clk_divisor_load_now Bit Position Type Description 5:0 RW rxb_clk clock source division value. The rxb_clk clock source (selected using rxb_clk_src) can be divided before being sent out on UTOPIA. Note that odd values will force the duty cycle to be maintained, rather than returning it to 50-50. 6 PUL This bit, when written to '1', will force the new rxb_clk_div to be applied immediately (possibly causing glitches on the rxb_clk). This bit should only be set to one when loading the divisor when the rxb_clk_present bit is cleared. Note that it is possible to dynamically change the divisor value without causing glitches on the output clock if this bit is not written to 1. rxb_clk_inv 7 RW When '1', the rxb_clk's source will be inverted before being driven out on the rxb_clk pin. 10:8 RW “000”=txa_clk_in; “001”=txb_clk_in; “010”=txc_clk_in; “011”=rxa_clk_in; “100”=rxb_clk_in; “101”=rxc_clk_in; “110”=mem_clk; others=reserved. rxb_clk_oe 11 RW rxb_clk output enable. Active high. rxb_clk_present 12 RW Set to '1' when the rxb_clk is present. If the user does not want to use the txa UTOPIA interface, this bit should be left at '0' regardless of the presence of the rxb_clk. rxb_clk_divisor_reset 13 RW When '0', will reset the clock division. 15:14 RW Reserved. Must always be “00” rxb_clk_src[2:0] reserved Table 56 - Rx B Clock Division Register 119 MT90502 Preliminary Datasheet Address: 22Ch Label: rxc_clk_gen Reset Value: 0403h Label rxc_clk_div[5:0] rxc_clk_divisor_load_now Bit Position Type Description 5:0 RW rxc_clk clock source division value. The rxc_clk clock source (selected using rxc_clk_src) can be divided before being sent out on UTOPIA. Note that odd values will force the duty cycle to be maintained, rather than returning it to 50-50. 6 PUL This bit, when written to '1', will force the new rxc_clk_div to be applied immediately (possibly causing glitches on the rxc_clk). This bit should only be set to one when loading the divisor when the rxc_clk_present bit is cleared. Note that it is possible to dynamically change the divisor value without causing glitches on the output clock if this bit is not written to 1. rxc_clk_inv 7 RW When '1', the rxc_clk's source will be inverted before being driven out on the rxc_clk pin. 10:8 RW “000”=txa_clk_in; “001”=txb_clk_in; “010”=txc_clk_in; “011”=rxa_clk_in; “100”=rxb_clk_in; “101”=rxc_clk_in; “110”=mem_clk; others = reserved. rxc_clk_oe 11 RW rxc_clk output enable. Active high. rxc_clk_present 12 RW Set to '1' when the rxc_clk is present. If the user does not want to use the txa UTOPIA interface, this bit should be left at '0' regardless of the presence of the rxc_clk. rxc_clk_divisor_reset 13 RW When '0', will reset the clock division. 15:14 RW Reserved. Must always be “00” rxc_clk_src[2:0] reserved Table 57 - Rx C Clock Division Register 120 MT90502 Preliminary Datasheet Address: 230h Label: mem_parity0 Reset Value: 0000h Bit Type Position Label Description mema_parity_conf[1:0] 1:0 RW Selects how the parity bits of memory bank A are used (either as data bits or as parity bits). They should be set to “11” to allow correct Underrun detection in the RX TDM control memory. '0' = parity bits; '1' = user data. memb_parity_conf[1:0] 3:2 RW Selects how the parity bits of memory bank B are used (either as data bits or as parity bits). They should be set to “11” to allow correct Underrun detection in the RX TDM control memory. '0' = parity bits; '1' = user data. cpu_parity_conf 4 RW 1' = automatic parity calculation/checking on CPU accesses; '0' = CPU parity on CPU accesses (read and writes). reserved 7:5 RO Reserved. Always read as “00” mem_parity_generation_data_mask 15:8 RW The data bits whose corresponding bit is set to '1' in this vector will be used in parity calculation to the external memory. Table 58 - Memory Parity Register 0 Address: 232h Label: mem_parity1 Reset Value: 0000h Bit Type Position Label Description mem_parity_generation_add_mask[22:16] 6:0 RW The address bits whose corresponding bit is set to '1' in this vector will be used in parity calculation to the external memory. reserved 15:7 RW Reserved. Must always be “0000_0000_0” Table 59 - Memory Parity Register 1 Address: 234h Label: mem_parity2 Reset Value: 0000h Bit Position Type Label mem_parity_generation_add_mask[15:0] 15:0 Description RW The address bits whose corresponding bit is set to '1' in this vector will be used in parity calculation to the external memory. Table 60 - Memory Parity Register 2 121 MT90502 Preliminary Datasheet Address: 240h Label: mem_conf0 Reset Value: 0075h Label Bit Position Type Description mema_add_lines 1:0 RW “11” = 1 Mb per chip; “10” = 512 Kb per chip; “01” = 256Kb per chip; “00” = 128 Kb per chip memb_add_lines 3:2 RW “11” = 1 Mb per chip; “10” = 512 Kb per chip; “01” = 256Kb per chip; “00” = 128 Kb per chip sar_capacity 5:4 RW “00”=128 channels; “01”=256 channels; “10”=512 channels; “11”=1023 channel. rx_circular_buffer_size 7:6 RW Indicates the size of the RX Circular Buffers in external memory. They can be set locally to 256, 512, 1024 bytes. “00”= reserved;”01”=256 bytes; “10”=512 bytes; “11”=1024 bytes. 8 RW Indicates if memory bank B is present or not. '0' = memb bank absent; '1' = memb bank present. 15:9 RW Reserved. Must always be “0000_000” memb_bank_present reserved Table 61 - Memory Configuration Register 0 Address: 242h Label: mem_conf1 Reset Value: 0000h Label Bit Position Type Description rx_base_address 7:0 RW Base address of the RX SSRAM in Bank A. Specified in increments of 8K bytes. Not used if bank B is present. reserved 15:8 RW Reserved. Must always be “0000_0000” Table 62 - Memory Configuration Register 1 122 MT90502 Preliminary Datasheet Address: 250h Label: sdram_conf0 Reset Value: 0000h Label Bit Position Type Description sdrama_enable 0 RW When '0', the values placed in the sdram_conf3 register will be placed on the SDRAM A pins. sdramb_enable 1 RW When '0', the values placed in the sdram_conf3 register will be placed on the SDRAM B pins. sdrama_manual_access 2 PUL When written to 1 and sdrama_enable is '0', the values placed in the sdram_conf4 register will be placed on the SDRAM A pins. sdramb_manual_access 3 PUL When written to 1 and sdramb_enable is '0', the values placed in the sdram_conf4 register will be placed on the SDRAM B pins. sdrama_size 4 RW 0' = 4M x 16 (8 Megabytes), '1' = 8M x 16 (16 Megabytes) sdramb_size 5 RW 0' = 4M x 16 (8 Megabytes), '1' = 8M x 16 (16 Megabytes) sdram_refresh_freq 7:6 RW “00” = 1 refresh every 16 cycles, “01” = 1 refresh every 8 cycles, “10” = 1 refresh every 4 cycles. Typical value “00”. reserved 15:8 RW Reserved. Must always be “0000_0000”. Table 63 - SDRAM Configuration Register 0 Address: 252h Label: sdram_conf1 Reset Value: 0400h Label sdram_refresh_cnt Bit Position Type 15:0 RW Description Number of mem_clk cycles per refresh to the SDRAM. Table 64 - SDRAM Configuration Register 1 Address: 254h Label: sdram_conf2 Reset Value: 0200h Label sdram_max_lateness Bit Position 15:0 Type Description RW Maximum number of refreshes that the SDRAM can be late before reporting an error. Table 65 - SDRAM Configuration Register 2 123 MT90502 Preliminary Datasheet Address: 256h Label: sdram_conf3 Reset Value: 0000h Label Bit Position Type Description sdram_add_idle 13:0 RW While sdram_enable is '0', the value placed in this register will be put on the address lines. reserved 15:14 RW Reserved. Must always be “00” Table 66 - SDRAM Configuration Register 3 Address: 258h Label: sdram_conf4 Reset Value: 0000h Label Bit Position Type Description sdram_add_man 13:0 RW While sdram_enable is '0', the value placed in this register will be put on the address lines for 1 cycle if sdram_manual_access is written to '1'. reserved 15:14 RW Reserved. Must always be “00” Table 67 - SDRAM Configuration Register 4 Address: 25Ah Label: sdram_conf5 Reset Value: 003Fh Label Bit Position Type Description sdram_cas_idle 0 RW While sdram_enable is '0', the value placed in this register will be put on the cas line. sdram_ras_idle 1 RW While sdram_enable is '0', the value placed in this register will be put on the ras line. sdram_we_idle 2 RW While sdram_enable is '0', the value placed in this register will be put on the we line. sdram_cas_man 3 RW While sdram_enable is '0', the value placed in this register will be put on the cas line for 1 cycle if sdram_manual_access is written to '1'. sdram_ras_man 4 RW While sdram_enable is '0', the value placed in this register will be put on the ras line for 1 cycle if sdram_manual_access is written to '1'. sdram_we_man 5 RW While sdram_enable is '0', the value placed in this register will be put on the we line for 1 cycle if sdram_manual_access is written to '1'. 15:6 RW Reserved. Must always be “0000_0000_00” reserved Table 68 - SDRAM Configuration Register 5 124 MT90502 Preliminary Datasheet 3.3 TX Registers Address: 300h Label: control Reset Value: 0000h Label Bit Position Type scanning_enable 0 RW aal0_cell_written 1 PUL Written to '1' after an AAL0 cell has been written by the CPU to the TX AAL0 Cell FIFO. The cell will then be automatically sent. reserved test_status Description When '1', the cell time-out scanning process is enabled and will send cells beyond a certain pending time (programmed per VC). 14:2 RW Reserved. Must always be “0000_0000_0000_0” 15 TS Reserved. Must always be “0”. Table 69 - TX Control Register Address: 302h Label: status0 Reset Value: 0000h Label Bit Position Type aal0_cell_fifo_empty 0 ROL When '1', CPU can write another 4 AAL0 cells to internal FIFO 15:1 ROL Reserved. Always read as “0000_0000_0000_000” reserved Description Table 70 - TX Status Register Address: 304h Label: status0_ie Reset Value: 0000h Label Bit Position Type Description aal0_cell_fifo_empty_ie 0 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. 15:1 RO Reserved. Always read as “0000_0000_0000_000” reserved Table 71 - TX Interrupt Enable Register Address: 310h Label: aal0_monitor Reset Value: 0000h Label aal0_cell_write_ok reserved Bit Position Type Description 0 RO When '1', CPU can write another AAL0 cell to internal FIFO 15:1 RO Reserved. Always read as “0000_0000_0000_000” Table 72 - TX AAL0 Monitor Register 125 MT90502 3.4 Preliminary Datasheet RX Registers Address: 400h Label: control Reset Value: 0000h Label Bit Position Type hdlc_type 0 RW ‘0'=Bit wide HDLC Framing; '1'=Byte Wide HDLC Framing. packaging_type 1 RW ‘0' = no AAL2 Header in HDLC Data Field; '1' = Raw AAL2 CPS-Packet in HDLC Data Field nibble_mode 2 RW ‘0' = High bits used for ADPCM nibble, '1' = low bits used for ADPCM nibble 14:3 RW Reserved. Must Always be “0000_0000_0000” 15 TS Reserved. Must always be “0”. reserved test_status Description Table 73 - RX Control Register Address: 402h Label: status0 Reset Value: 0000h Label Bit Position Type cpu_buffer_overflow 0 ROL CPU Destined CPS-Packet Buffer Overflow. aal0_overflow 1 ROL Overflow in the receive AAL0 cell buffer. error_overflow 2 ROL Overflow in the error/event structure buffer. 15:3 ROL Reserved. Always read as “0000_0000_0000_0” reserved Description Table 74 - RX Status Register Address: 404h Label: status0_ie Reset Value: 0000h Label Bit Position Type Description cpu_buffer_overflow_ie 0 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. aal0_overflow_ie 1 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. error_overflow_ie 2 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. 15:3 RO Reserved. Always read as “0000_0000_0000_0” reserved Table 75 - RX Interrupt Enable Register 126 MT90502 Preliminary Datasheet Address: 410h Label: silent_pattern_reg Reset Value: 00FFh Label Bit Position Type Description write_back_pattern 7:0 RW PCM Silent pattern written back to RX circular buffers by RX TDM module (only if enabled in PCM RX Control Memory structure) reserved 15:8 RW Reserved. Must always be “0000_0000” Table 76 - PCM Silent Pattern Register Address: 428h Label: crc_config0 Reset Value: FFFFh Label crc_preset Bit Position Type Description 15:0 RW HDLC CRC Preset. Must be “1111_1111_1111_1111” for ITU compliance. Table 77 - CRC Configuration Register 0 Address: 42Ah Label: crc_config1 Reset Value: F0B8h Label crc_mask Bit Position Type Description 15:0 RW HDLC CRC End Mask. Must be “1111_0000_1011_1000” for ITU compliance. Table 78 - CRC Configuration Register 1 Address: 430h Label: aal0_manage Reset Value: 0000h Label Bit Position Type Description rx_aal0_base_add 8:0 RW Represents bits 20:12 of the byte address at which the AAL0 data cell FIFO is mapped. rx_aal0_buf_size 11:9 RW “000” = 4KByte, “001” = 8KB, “010” = 16KB, “011” = 32KB, “100” = 64KB, “101” = 128KB, others = reserved 15:12 RW Reserved. Must always be “0000” reserved Table 79 - AAL0 FIFO Management Register 127 MT90502 Preliminary Datasheet Address: 432h Label: aal0_read Reset Value: 0000h Label rx_aal0_rpnt reserved Bit Position Type Description 11:0 RW The CPU's read pointer to the AAL0 data cell FIFO. This read pointer has an extra bit to allow for a full buffer (for example, 128 cells instead of 127) 15:12 RW Reserved. Must always be “0000” Table 80 - AAL0 Read Pointer Register Address: 434h Label: aal0_write Reset Value: 0000h Label rx_aal0_wpnt reserved Bit Position Type Description 11:0 RO The hardware's write pointer to the AAL0 data cell FIFO. This write pointer has an extra bit to allow for a full buffer (for example, 128 cells instead of 127) 15:12 RO Reserved. Always read as “0000” Table 81 - AAL0 Write Pointer Register Address: 438h Label: error_manage Reset Value: 0000h Label Bit Position Type error_base_add 8:0 RW Represents bits 20:12 of the byte address at which the error structure buffer is mapped. error_buf_size 11:9 RW “000” = 4KByte, “001” = 8KB, “010” = 16KB, “011” = 32KB, “100” = 64KB, “101” = 128KB, others = reserved 15:12 RW Reserved. Must always be “0000” reserved Description Table 82 - Error Management Register Address: 43Ah Label: error_write Reset Value: 0000h Label error_wpnt reserved Bit Position Type Description 14:0 RO The chip's write pointer to the error structure buffer. This write pointer has an extra bit to allow for a full buffer (for example, 1024 structures instead of 1023) 15 RO Reserved. Always read as “0” Table 83 - Error Write Pointer Register 128 MT90502 Preliminary Datasheet Address: 43Ch Label: error_readure Reset Value: 0000h Label Bit Position Type Description error_rpnt 14:0 RW The CPU's read pointer to the error structure buffer. This read pointer has an extra bit to allow for a full buffer (for example, 1024 structures instead of 1023) reserved 15 RW Reserved. Must always be “0” Table 84 - Error Read Pointer Register Address: 440h Label: cpu_manage0 Reset Value: 0000h Label Bit Position Type Description cpu_cpsp_base_add 6:0 RW Bits 20:14 of the byte address at which the CPU-destined CPS-Packet buffer is mapped. cpu_cpsp_buf_size 8:7 RW “00” = 16KByte, “01” = 32KB, “10” = 64KB, “11” = 128KB reserved 15:9 RW Reserved. Must always be “0000_000” Table 85 - CPU Management Register 0 Address: 442h Label: cpu_manage1 Reset Value: 0000h Label Bit Position Type 15:0 RW cpu_cpsp_rpnt Description Word read pointer to the CPU-destined CPS-Packet buffer Table 86 - CPU Management Register 1 Address: 460h Label: aal0_timeout_period_high Reset Value: 0000h Label Bit Position Type Description aal0_timeout_period[19:16] 3:0 RW If an AAL0 cell remains in the buffer for the period in this register or more, an alarm will be generated. In us. reserved 15:4 RW Reserved. Must always be “0000_0000_0000” Table 87 - AAL0 Timeout Period (High Word) Register 129 MT90502 Preliminary Datasheet Address: 462h Label: aal0_timeout_period_low Reset Value: 0000h Label Bit Position Type aal0_timeout_period[15:0] 15:0 RW Description If an AAL0 cell remains in the buffer for the period in this register or more, an alarm will be generated. In us. Table 88 - AAL0 Timeout Period (Low Word) Register Address: 464h Label: error_timeout_period_high Reset Value: 0000h Label Bit Position Type Description error_timeout_period[19:16] 3:0 RW This timeout period applies both to error reporting structures as well as to CPU-destined CPS-Packets. In us. reserved 15:4 RW Reserved. Must always be “0000_0000_0000” Table 89 - Error Timeout Period (High Word) Register Address: 466h Label: error_timeout_period_low Reset Value: 0000h Label Bit Position Type Description error_timeout_period[15:0] 15:0 RW This timeout period applies both to error reporting structures as well as to CPU-destined CPS-Packets. In us. Table 90 - Error Timeout Period (Low Word) Register Address: 468h Label: pulse_register Reset Value: 0000h Label Bit Position Type aal0_treated_pulse 0 PUL When the AAL0 buffer has been treated, write this bit to '1' to clear the alarm. error_treated_pulse 1 PUL When the error buffer has been treated, write this bit to '1' to clear the alarm. 15:2 PUL Reserved. Always read as “0000_0000_0000_00” reserved Description Table 91 - AAL0 & Error Treated Register 130 MT90502 Preliminary Datasheet 3.5 TX TDM Registers Address: 500h Label: control Reset Value: 0000h Label Bit Position Type nibble_mode 0 RW 0' = High bits used for ADPCM nibble, '1' = low bits used for ADPCM nibble hdlc_type 1 RW HDLC framing method. '0'=Bit wise HDLC Framing; '1'=Byte Wise HDLC Framing. reserved 2 RW Reserved. Must be “0”. packaging_type 3 RW 0' = AAL2 header not present in HDLC data field; '1' = AAL2 header present in HDLC data field. llman_process_enable 4 RW Enables the treatment of incoming TDM bytes from the H100 bus. silent_bit_position 7:5 RW Indicates the position of the simple silence bit in the associated odd stream. “000” = bit 7, “111” = bit 0 u_law_zero_illegal 8 RW When '1', 00h in u-law will be replaced by 02h before it is placed on RX TDM bus. 14:9 RW Reserved. Must always be “0000_0000_00” 15 TS Reserved. Must always be “0”. reserved test_status Description Table 92 - TX TDM Control Register Address: 502h Label: status0 Reset Value: 0000h Label Bit Position Type Description llman_process_crashed 0 ROL Indicates that the linked-list manager crashed. This indicates corrupt data in the linked list memory. copying_out_of_bandwidth 1 ROL Data copying process between the H.100 interface and the TX TDM was not fast enough. Indicates too low an mem_clk speed for the amount of TDM bandwidth. frame_reading_out_of_bandwidth 2 ROL Means that the frame reading process that reads from the frame memory fell out of sync with the TDM bus. This error will occur naturally at startup. bad_packet_length 3 ROL Received packet length on HDLC exceeded 64 bytes. circular_buffer_overflow 4 ROL TX SAR did not read data fast enough from circular buffer. Bad data integrity will ensue. cps_packet_refused_error 5 ROL CPS-Packet could not be written because all 512 descriptors for the VC were occupied. txsar_wbcache_overflow 6 ROL The 64 X 21 TX SAR write back cache overflow. Table 93 - TDM TX Status Register 131 MT90502 Preliminary Datasheet txtdm_wcache_overflow 7 ROL The 128 X 72 byte write cache overflow. packet_fifo_overflow 8 ROL The 1024 X 41 packet FIFO overflow. misaligned_flag 9 ROL HDLC Packet got a misaligned flag (not aligned on a byte boundary) bad_idle_code 10 ROL HDLC Packet got idle code in the middle of a packet! short_packet 11 ROL HDLC Packet was too short (0 data bytes!) dcoffset_overflow 12 ROL DC offset value caused a linear value to be calculated as more than 4096 15:13 ROL Reserved. Always read as “000” Reserved Table 93 - TDM TX Status Register (continued) 132 MT90502 Preliminary Datasheet Address: 504h Label: status0_ie Reset Value: 0000h Bit Position Type llman_process_crashed_ie 0 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. copying_out_of_bandwidth_ie 1 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. frame_reading_out_of_bandwidth_ie 2 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. bad_packet_length_ie 3 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. circular_buffer_overflow_ie 4 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. cps_packet_refused_error_ie 5 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. txsar_wbcache_overflow_ie 6 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. txtdm_wcache_overflow_ie 7 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. packet_fifo_overflow_ie 8 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. misaligned_flag_ie 9 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. bad_idle_code_ie 10 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. short_packet_ie 11 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. dcoffset_overflow_ie 12 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. Label Reserved 15:13 Description RO Reserved. Always read as “000” Table 94 - TDM TX Interrupt Enable Register 133 MT90502 Preliminary Datasheet Address: 512h Label: silent_pattern_a Reset Value: FFFFh Label Bit Position Type Description silent_bytea_match 7:0 RW Silent pattern detection match register A. When a received data byte matches the match and mask registers, it is tagged as silent. silent_bytea_mask 15:8 RW Silent pattern detection mask register A. When a received data byte matches the match and mask registers, it is tagged as silent. Table 95 - Silent Pattern Detection Match Register A Address: 514h Label: silent_pattern_b Reset Value: FFFFh Label Bit Position Type Description silent_byteb_match 7:0 RW Silent pattern detection match register B. When a received data byte matches the match and mask registers, it is tagged as silent. silent_byteb_mask 15:8 RW Silent pattern detection mask register B. When a received data byte matches the match and mask registers, it is tagged as silent. Table 96 - Silent Pattern Detection Match Register B Address: 518h Label: tdm_pointer_monitor Reset Value: 0000h Label Bit Position Type global_tdm_pointer 15:0 Description RO Current value of the global TDM pointer. Table 97 - TDM Pointer Monitor Register Address: 520h Label: cpu_cps_packet0 Reset Value: 0000h Label Bit Position Type Description cps_packet_cpu_vc_number 9:0 RW VC Number on which a CPU sourced CPS-Packet must be sent. cps_packet_cpu_request 10 PC Set to '1' by the CPU when a CPU Sourced CPS-Packet is pending transmission. Clear by hardware, when the CPS-Packet has been queue for transmission. reserved 15:11 PC Reserved. Always read as “0000_0” Table 98 - CPU CPS-Packet Register 0 134 MT90502 Preliminary Datasheet Address: 522h Label: cpu_cps_packet1 Reset Value: 0000h Label cps_packet_cpu_descriptor[47:32] Bit Position 15:0 Type Description RW CPU Sourced CPS-Packet Descriptor. Table 99 - CPU CPS-Packet Register 1 Address: 524h Label: cpu_cps_packet2 Reset Value: 0000h Label cps_packet_cpu_descriptor[31:16] Bit Position 15:0 Type Description RW CPU Sourced CPS-Packet Descriptor. Table 100 - CPU CPS-Packet Register 2 Address: 526h Label: cpu_cps_packet3 Reset Value: 0000h Label cps_packet_cpu_descriptor[15:0] Bit Type Position 15:0 Description RW CPU Sourced CPS-Packet Descriptor. Table 101 - CPU CPS-Packet Register 3 135 MT90502 3.6 Preliminary Datasheet UTOPIA Registers Address: 600h Label: control Reset Value: 0000h Label Bit Position Type Description rxa_ena 0 RW 0' = RXA Disabled; '1' = RXA Operates Normally. rxb_ena 1 RW 0' = RXB Disabled; '1' = RXB Operates Normally. rxc_ena 2 RW 0' = RXC Disabled; '1' = RXC Operates Normally. porta_sar_mode 3 RW Puts TXA/RXA in PHY or SAR mode. '1'=PHY Mode; '0'=SAR Mode. portb_sar_mode 4 RW Puts TXB/RXB in PHY or SAR mode. '1'=PHY Mode; '0'=SAR Mode. portc_sar_mode 5 RW Puts TXC/RXC in PHY or SAR mode. '1'=PHY Mode; '0'=SAR Mode. porta_level2_mode 6 RW Puts TXA/RXA in UTOPIA Level 2 mode. This disables port B and requires port A to be configured as PHY. '0' = Level 1; '1' = Level 2. txa_always_drive_dat_soc_par 7 RW 0' = only drive when selected; '1' = always drive DAT/PAR/SOC pins. txb_always_drive_dat_soc_par 8 RW 0' = only drive when selected; '1' = always drive DAT/PAR/SOC pins. txc_always_drive_dat_soc_par 9 RW 0' = only drive when selected; '1' = always drive DAT/PAR/SOC pins. clav_enb_oe 10 RW When '0', tx_clav/tx_enb pins are in tri-state. reserved test_status 14:11 15 RW Reserved. Must always be “0000” TS Reserved. Must always be “0”. Table 102 - UTOPIA Control Register 1 136 MT90502 Preliminary Datasheet Address: 602h Label: status0 Reset Value: 0000h Label Bit Position Type Description phy_alarma 0 ROL PHY alarm detected on port A phy_alarmb 1 ROL PHY alarm detected on port B rx_cell_loss 2 ROL Cell loss in RX SAR output FIFO outa_cell_loss 3 ROL Cell loss in port A output FIFO outb_cell_loss 4 ROL Cell loss in port B output FIFO outc_cell_loss 5 ROL Cell loss in port C output FIFO cell_loss_rollover 6 CRL Cell loss counter has wrapped tx_arr_rollover 7 CRL Counter of cells received from TX SAR has wrapped rx_dep_rollover 8 CRL Counter of cells sent to RX SAR has wrapped ia_arr_rollover 9 CRL Counter of cells received from port A has wrapped oa_dep_rollover 10 CRL Counter of cells sent to port A has wrapped ib_arr_rollover 11 CRL Counter of cells received from port B has wrapped ob_dep_rollover 12 CRL Counter of cells sent to port B has wrapped ic_arr_rollover 13 CRL Counter of cells received from port C has wrapped oc_dep_rollover 14 CRL Counter of cells sent to port C has wrapped aal0_arr_rollover 15 CRL Counter of cells received from AAL0 input FIFO has wrapped Table 103 - UTOPIA Status Register 0 137 MT90502 Preliminary Datasheet Address: 604h Label: status0_ie Reset Value: 0000h Label Bit Position Type Description phy_alarma_ie 0 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. phy_alarmb_ie 1 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. rx_cell_loss_ie 2 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. outa_cell_loss_ie 3 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. outb_cell_loss_ie 4 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. outc_cell_loss_ie 5 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. cell_loss_rollover_ie 6 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. tx_arr_rollover_ie 7 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. rx_dep_rollover_ie 8 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ia_arr_rollover_ie 9 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. oa_dep_rollover_ie 10 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ib_arr_rollover_ie 11 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ob_dep_rollover_ie 12 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ic_arr_rollover_ie 13 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. oc_dep_rollover_ie 14 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. aal0_arr_rollover_ie 15 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. Table 104 - UTOPIA Interrupt Enable Register 0 138 MT90502 Preliminary Datasheet Address: 60Ah Label: status2 Reset Value: 0000h Label Bit Position reserved 2:0 Type Description ROL Reserved. Always read as “000” rxa_parity_error 3 ROL Parity error on UTOPIA port A rxb_parity_error 4 ROL Parity error on UTOPIA port B rxc_parity_error 5 ROL Parity error on UTOPIA port C reserved 15:6 ROL Reserved. Always read as “0000_0000_00” Table 105 - UTOPIA Status Register 2 Address: 60Ch Label: status2_ie Reset Value: 0000h Bit Position Type Label reserved 2:0 Description RO Reserved. Always read as “000” rxa_parity_error_ie 3 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. rxb_parity_error_ie 4 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. rxc_parity_error_ie 5 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. reserved 15:6 RO Reserved. Always read as “0000_0000_00” Table 106 - UTOPIA Interrupt Enable Register 2 Address: 60Eh Label: control2 Reset Value: 0000h Label Bit Type Position Description rxa_null_elim 1:0 RW Port A Null Cell Elimination. “00”=no Null-Cell Deletion; “01” = reserved; “10” = Delete Null-Cells (UNI); “11” = Delete Null-Cells (NNI). rxb_null_elim 3:2 RW Port B Null Cell Elimination. “00”=no Null-Cell Deletion; “01” = reserved; “10” = Delete Null-Cells (UNI); “11” = Delete Null-Cells (NNI). rxc_null_elim 5:4 RW Port C Null Cell Elimination. “00”=no Null-Cell Deletion; “01” = reserved; “10” = Delete Null-Cells (UNI); “11” = Delete Null-Cells (NNI). phy_alarm_mode 7:6 RW “00” = Never detect PHY Alarm; “01” = active-high signal; “10” = active-low signal; “11” = reserved. reserved 15:8 RW Reserved. Must always be “0000_0000” Table 107 - UTOPIA Control Register 2 139 MT90502 Preliminary Datasheet Address: 612h Label: cell_loss_counter Reset Value: 0000h Label Bit Position cell_loss 15:0 Type Description CNT Counter of the number of cells lost in all UTOPIA output FIFOs Table 108 - Lost Cells Counter Address: 614h Label: gpio0 Reset Value: 0000h Label Bit Position Type Description phya_tx_led_conf 1:0 RW “00”=Tri-state; “01” = used as LED; “10”=Drive Low; “11”=Drive high. phya_rx_led_conf 3:2 RW “00”=Tri-state; “01” = used as LED; “10”=Drive Low; “11”=Drive high. phyb_tx_led_conf 5:4 RW “00”=Tri-state; “01” = used as LED; “10”=Drive Low; “11”=Drive high. phyb_rx_led_conf 7:6 RW “00”=Tri-state; “01” = used as LED; “10”=Drive Low; “11”=Drive high. phya_alm_input 8 RO Indicates if the PHY alarm on port A is currently active phyb_alm_input 9 RO Indicates if the PHY alarm on port B is currently active phya_tx_led_input 10 RO Indicates if the TX LED on port A is currently active phya_rx_led_input 11 RO Indicates if the RX LED on port A is currently active phyb_tx_led_input 12 RO Indicates if the TX LED on port B is currently active phyb_rx_led_input 13 RO Indicates if the RX LED on port B is currently active reserved 15:14 RO Reserved. Always read as “00” Table 109 - General Purpose I/O Register 0 Address: 620h Label: porta_look_up_base Reset Value: 0000h Label Bit Position Type Description luta_base 3:0 RW LUT Base address in megabytes. luta_size 5:4 RW “00”=128K VC; “01”=256K VC; “10”=512K VC; “11”=1024K VC. reserved 15:6 RW Reserved. Must always be “0000_0000_00” Table 110 - Port A LUT Base Address Register 140 MT90502 Preliminary Datasheet Address: 622h Label: porta_concatenation Reset Value: 0000h Label Bit Position Type Description vci_na 4:0 RW Number of VCI bits in look-up table. reserved 15:5 RW Reserved. Must always be “0000_0000_000” Table 111 - Port A VCI Bits in LUT Address: 624h Label: porta_vpi_match Reset Value: 0000h Label Bit Position Type vpi_matcha 11:0 reserved Description RW For a cell from port A to be considered valid, any bits in its VPI whose corresponding bits in reg 626h are '1' must have the value contained in this register. 15:12 RW Reserved. Must always be “0000” Table 112 - Port A VPI Match Register Address: 626h Label: porta_vpi_mask Reset Value: 0000h Label vpi_maska reserved Bit Position Type 11:0 15:12 Description RW For a cell from port A to be considered valid, any bits in its VPI whose corresponding bits in this register are '1' must have the value contained in reg 624h. RW Reserved. Must always be “0000” Table 113 - Port A VPI Mask Register Address: 628h Label: porta_vci_match Reset Value: 0000h Label vci_matcha Bit Position Type 15:0 Description RW For a cell from port A to be considered valid, any bits in its VCI whose corresponding bits in reg 62Ah are '1' must have the value contained in this register. Table 114 - Port A VCI Match Register 141 MT90502 Preliminary Datasheet Address: 62Ah Label: porta_vci_mask Reset Value: 0000h Label Bit Position Type vci_maska 15:0 Description RW For a cell from port A to be considered valid, any bits in its VCI whose corresponding bits in this register are '1' must have the value contained in reg 628h. Table 115 - Port A VCI Mask Register Address: 62Ch Label: porta_overflow0 Reset Value: FFFFh Label Bit Position Type Description ia_rx_cell_max 5:0 RW If the cell fill of the RX SAR output FIFO becomes greater than this value, cells from the port A input FIFO will be blocked. 3Fh = no backpressure ia_oa_cell_max 9:6 RW If the cell fill of the port A output FIFO becomes greater than this value, cells from the port A input FIFO will be blocked. Fh = no backpressure ia_ob_cell_max 13:10 RW If the cell fill of the port B output FIFO becomes greater than this value, cells from the port A input FIFO will be blocked. Fh = no backpressure reserved 15:14 RW Reserved. Must always be “00” Table 116 - Port A Overflow Register 0 Address: 62Eh Label: porta_overflow1 Reset Value: 000Fh Label Bit Position Type Description ia_oc_cell_max 3:0 RW If the cell fill of the port C output FIFO becomes greater than this value, cells from the port A input FIFO will be blocked. Fh = no backpressure reserved 15:4 RW Reserved. Must always be “0000_0000_0000” Table 117 - Port A Overflow Register 1 Address: 630h Label: porta_cell_arrival_high Reset Value: 0000h Label ia_arr[31:16] Bit Position Type 15:0 Description CNT Counter of the number of cells received from port A Table 118 - Port A Cell Arrival Counter (High Word) 142 MT90502 Preliminary Datasheet Address: 632h Label: porta_cell_arrival_low Reset Value: 0000h Label Bit Position Type ia_arr[15:0] 15:0 Description CNT Counter of the number of cells received from port A Table 119 - Port A Cell Arrival Counter (Low Word) Address: 634h Label: porta_cell_departure_high Reset Value: 0000h Label Bit Position oa_dep[31:16] 15:0 Type Description CNT Counter of the number of cells sent onto port A Table 120 - Port A Cell Departure Counter (High Word) Address: 636h Label: porta_cell_departure_low Reset Value: 0000h Label Bit Position oa_dep[15:0] 15:0 Type Description CNT Counter of the number of cells sent onto port A Table 121 - Port A Cell Departure Counter (Low Word) Address: 640h Label: portb_look_up_base Reset Value: 0000h Label Bit Position Type Description lutb_base 3:0 RW LUT Base address in megabytes. lutb_size 5:4 RW “00”=128K VC; “01”=256K VC; “10”=512K VC; “11”=1024K VC. reserved 15:6 RW Reserved. Must always be “0000_0000_00” Table 122 - Port B LUT Base Address Register Address: 642h Label: portb_concatenation Reset Value: 0000h Label Bit Position Type Description vci_nb 4:0 RW Number of VCI bits in look-up table. reserved 15:5 RW Reserved. Must always be “0000_0000_000” Table 123 - Port B VCI Bits in LUT 143 MT90502 Preliminary Datasheet Address: 644h Label: portb_vpi_match Reset Value: 0000h Label Bit Position vpi_matchb 11:0 reserved Type Description RW For a cell from port B to be considered valid, any bits in its VPI whose corresponding bits in reg 646h are '1' must have the value contained in this register. 15:12 RW Reserved. Must always be “0000” Table 124 - Port B VPI Match Register Address: 646h Label: portb_vpi_mask Reset Value: 0000h Label Bit Position vpi_maskb 11:0 reserved Type Description RW For a cell from port B to be considered valid, any bits in its VPI whose corresponding bits in this register are '1' must have the value contained in reg 644h. 15:12 RW Reserved. Must always be “0000” Table 125 - Port B VPI Mask Register Address: 648h Label: portb_vci_match Reset Value: 0000h Label vci_matchb Bit Position 15:0 Type Description RW For a cell from port B to be considered valid, any bits in its VCI whose corresponding bits in reg 64Ah are '1' must have the value contained in this register. Table 126 - Port B VCI Match Register Address: 64Ah Label: portb_vci_mask Reset Value: 0000h Label vci_maskb Bit Position Type 15:0 Description RW For a cell from port B to be considered valid, any bits in its VCI whose corresponding bits in this register are '1' must have the value contained in reg 648h. Table 127 - Port B VCI Mask Register 144 MT90502 Preliminary Datasheet Address: 64Ch Label: portb_overflow0 Reset Value: 1108h Label Bit Position Type Description ib_rx_cell_max 5:0 RW If the cell fill of the RX SAR output FIFO becomes greater than this value, cells from the port B input FIFO will be blocked. 3Fh = no backpressure ib_oa_cell_max 9:6 RW If the cell fill of the port A output FIFO becomes greater than this value, cells from the port B input FIFO will be blocked. Fh = no backpressure ib_ob_cell_max 13:10 RW If the cell fill of the port B output FIFO becomes greater than this value, cells from the port B input FIFO will be blocked. Fh = no backpressure reserved 15:14 RW Reserved. Must always be “00” Table 128 - Port B Overflow Register 0 Address: 64Eh Label: portb_overflow1 Reset Value: 004h Label Bit Position Type Description ib_oc_cell_max 3:0 RW If the cell fill of the port C output FIFO becomes greater than this value, cells from the port B input FIFO will be blocked. Fh = no backpressure reserved 15:4 RW Reserved. Must always be “0000_0000_0000” Table 129 - Port B Overflow Register 1 Address: 650h Label: portb_cell_arrival_high Reset Value: 0000h Label ib_arr[31:16] Bit Position Type 15:0 Description CNT Counter of the number of cells received from port B Table 130 - Port B Cell Arrival Counter (High Word) Address: 652h Label: portb_cell_arrival_low Reset Value: 0000h Label ib_arr[15:0] Bit Position Type 15:0 Description CNT Counter of the number of cells received from port B Table 131 - Port B Cell Arrival Counter (Low Word) 145 MT90502 Preliminary Datasheet Address: 654h Label: portb_cell_departure_high Reset Value: 0000h Label Bit Position Type ob_dep[31:16] 15:0 Description CNT Counter of the number of cells sent onto port B Table 132 - Port B Cell Departure Counter (High Word) Address: 656h Label: portb_cell_departure_low Reset Value: 0000h Label Bit Position Type ob_dep[15:0] 15:0 Description CNT Counter of the number of cells sent onto port B Table 133 - Port B Cell Departure Counter (Low Word) Address: 660h Label: portc_look_up_base Reset Value: 0000h Label Bit Position Type Description lutc_base 3:0 RW LUT Base address in megabytes. lutc_size 5:4 RW “00”=128K VC; “01”=256K VC; “10”=512K VC; “11”=1024K VC. reserved 15:6 RW Reserved. Must always be “0000_0000_00” Table 134 - Port C LUT Base Address Register Address: 662h Label: portc_concatenation Reset Value: 0000h Label Bit Position Type Description vci_nc 4:0 RW Number of VCI bits in look-up table. reserved 15:5 RW Reserved. Must always be “0000_0000_000” Table 135 - Port C VCI Bits in LUT Address: 664h Label: portc_vpi_match Reset Value: 0000h Label vpi_matchc reserved Bit Position Type 11:0 Description RW For a cell from port C to be considered valid, any bits in its VPI whose corresponding bits in reg 666h are '1' must have the value contained in this register. 15:12 RW Reserved. Must always be “0000” Table 136 - Port C VPI Match Register 146 MT90502 Preliminary Datasheet Address: 666h Label: portc_vpi_mask Reset Value: 0000h Label Bit Position Type vpi_maskc 11:0 reserved Description RW For a cell from port C to be considered valid, any bits in its VPI whose corresponding bits in this register are '1' must have the value contained in reg 664h. 15:12 RW Reserved. Must always be “0000” Table 137 - Port C VPI Mask Register Address: 668h Label: portc_vci_match Reset Value: 0000h Label Bit Position Type vci_matchc 15:0 Description RW For a cell from port C to be considered valid, any bits in its VCI whose corresponding bits in reg 66Ah are '1' must have the value contained in this register. Table 138 - Port C VCI Match Register Address: 66Ah Label: portc_vci_mask Reset Value: 0000h Label Bit Position Type vci_maskc 15:0 Description RW For a cell from port C to be considered valid, any bits in its VCI whose corresponding bits in this register are '1' must have the value contained in reg 668h. Table 139 - Port C VCI Mask Register Address: 66Ch Label: portc_overflow0 Reset Value: 1108h Label Bit Position Type Description ic_rx_cell_max 5:0 RW If the cell fill of the RX SAR output FIFO becomes greater than this value, cells from the port C input FIFO will be blocked. 3Fh = no backpressure ic_oa_cell_max 9:6 RW If the cell fill of the port A output FIFO becomes greater than this value, cells from the port C input FIFO will be blocked. Fh = no backpressure ic_ob_cell_max 13:10 RW If the cell fill of the port B output FIFO becomes greater than this value, cells from the port C input FIFO will be blocked. Fh = no backpressure reserved 15:14 RW Reserved. Must always be “00” Table 140 - Port C Overflow Register 0 147 MT90502 Preliminary Datasheet Address: 66Eh Label: portc_overflow1 Reset Value: 004h Label Bit Position Type Description ic_oc_cell_max 3:0 RW If the cell fill of the port C output FIFO becomes greater than this value, cells from the port C input FIFO will be blocked. Fh = no backpressure reserved 15:4 RW Reserved. Must always be “0000_0000_0000” Table 141 - Port C Overflow Register 1 Address: 670h Label: portc_cell_arrival_high Reset Value: 0000h Label ic_arr[31:16] Bit Position Type 15:0 Description CNT Counter of the number of cells received from port C Table 142 - Port C Cell Arrival Counter (High Word) Address: 672h Label: portc_cell_arrival_low Reset Value: 0000h Label ic_arr[15:0] Bit Position Type 15:0 Description CNT Counter of the number of cells received from port C Table 143 - Port C Cell Arrival Counter (Low Word) Address: 674h Label: portc_cell_departure_high Reset Value: 0000h Label oc_dep[31:16] Bit Position Type 15:0 Description CNT Counter of the number of cells sent onto port C Table 144 - Port C Cell Departure Counter (High Word) Address: 676h Label: portc_cell_departure_low Reset Value: 0000h Label oc_dep[15:0] Bit Position Type 15:0 Description CNT Counter of the number of cells sent onto port C Table 145 - Port C Cell Departure Counter (Low Word) 148 MT90502 Preliminary Datasheet Address: 680h Label: aal0_cell_arrival_high Reset Value: 0000h Label Bit Position Type aal0_arr[31:16] 15:0 Description CNT Counter of the number of cells received from AAL0 FIFO Table 146 - AAL0 Cell Arrival Counter (High Word) Address: 682h Label: aal0_cell_arrival_low Reset Value: 0000h Label aal0_arr[15:0] Bit Position Type 15:0 Description CNT Counter of the number of cells received from AAL0 FIFO Table 147 - AAL0 Cell Arrival Counter (Low Word) Address: 688h Label: aal0_overflow0 Reset Value: 1108h Label Bit Position Type Description aal0_rx_cell_max 5:0 RW If the cell fill of the RX SAR output FIFO becomes greater than this value, cells from the AAL0 input FIFO will be blocked. 3Fh = no backpressure aal0_oa_cell_max 9:6 RW If the cell fill of the port A output FIFO becomes greater than this value, cells from the AAL0 input FIFO will be blocked. Fh = no backpressure aal0_ob_cell_max 13:10 RW If the cell fill of the port B output FIFO becomes greater than this value, cells from the AAL0 input FIFO will be blocked. Fh = no backpressure reserved 15:14 RW Reserved. Must always be “00” Table 148 - AAL0 Overflow Register 0 Address: 68Ah Label: aal0_overflow1 Reset Value: 004h Label Bit Position Type Description aal0_oc_cell_max 3:0 RW If the cell fill of the port C output FIFO becomes greater than this value, cells from the AAL0 input FIFO will be blocked. Fh = no backpressure reserved 15:4 RW Reserved. Must always be “0000_0000_0000” Table 149 - AAL0 Overflow Register 1 149 MT90502 Preliminary Datasheet Address: 690h Label: tx_sar_cell_arrival_high Reset Value: 0000h Label Bit Position Type tx_arr[31:16] 15:0 Description CNT Counter of the number of cells received from TX SAR Table 150 - TX_SAR Cell Arrival Counter (High Word) Address: 692h Label: tx_sar_cell_arrival_low Reset Value: 0001h Label tx_arr[15:0] Bit Position Type 15:0 Description CNT Counter of the number of cells received from TX SAR. It is 1 after reset. Table 151 - TX_SAR Cell Arrival Counter (Low Word) Address: 694h Label: rx_sar_cell_departure_high Reset Value: 0000h Label Bit Position Type rx_dep[31:16] 15:0 Description CNT Counter of the number of cells sent to RX SAR Table 152 - RX_SAR Cell Departure Counter (High Word) Address: 696h Label: rx_sar_cell_departure_low Reset Value: 0000h Label Bit Position Type rx_dep[15:0] 15:0 Description CNT Counter of the number of cells sent to RX SAR Table 153 - RX_SAR Cell Departure Counter (Low Word) Address: 698h Label: tx_sar_overflow0 Reset Value: 3F3Fh Label Bit Position Type Description tx_rx_cell_max 5:0 RW If the cell fill of the RX SAR output FIFO becomes greater than this value, cells from the TX SAR input FIFO will be blocked. 3Fh = no backpressure tx_oa_cell_max 9:6 RW If the cell fill of the port A output FIFO becomes greater than this value, cells from the TX SAR input FIFO will be blocked. Fh = no backpressure tx_ob_cell_max 13:10 RW If the cell fill of the port B output FIFO becomes greater than this value, cells from the TX SAR input FIFO will be blocked. Fh = no backpressure reserved 15:14 RW Reserved. Must always be “00” Table 154 - TX_SAR Overflow Register 0 150 MT90502 Preliminary Datasheet Address: 69Ah Label: tx_sar_overflow1 Reset Value: 000Fh Label Bit Position Type Description tx_oc_cell_max 3:0 RW If the cell fill of the port C output FIFO becomes greater than this value, cells from the TX SAR input FIFO will be blocked. Fh = no backpressure reserved 15:4 RW Reserved. Must always be “0000_0000_0000” Table 155 - TX_SAR Overflow Register 1 Address: 6A0h Label: porta_address Reset Value: 0000h Label Bit Position Type Description porta_add 4:0 RW The address to which the chip will respond in UTOPIA level 2 addressing. reserved 15:5 RW Reserved. Must always be “0000_0000_000” Table 156 - Port A Address Register Address: 6A2h Label: hec_byte_control Reset Value: 0055h Label Bit Position Type Description hec_mask 7:0 RW The value by which the HEC byte will be XORed before being transmitted. reserved 15:8 RW Reserved. Must always be “0000_0000” Table 157 - HEC Byte Control Register Address: 6A4h Label: unknown_header_routing Reset Value: 0000h Label Bit Position Type Description rxa_ncr 3:0 RW Routing of non-OAM cells from port A that fail the VPI-VCI match and mask test. “xxx1” = send to port A, “xx1x” = send to port B, “x1xx” = send to port C, “1xxx” = send to AAL0. rxb_ncr 7:4 RW Routing of non-OAM cells from port B that fail the VPI-VCI match and mask test. “xxx1” = send to port A, “xx1x” = send to port B, “x1xx” = send to port C, “1xxx” = send to AAL0. rxc_ncr 11:8 RW Routing of non-OAM cells from port C that fail the VPI-VCI match and mask test. “xxx1” = send to port A, “xx1x” = send to port B, “x1xx” = send to port C, “1xxx” = send to AAL0. reserved 15:12 RW Reserved. Must always be “0000” Table 158 - Unknown Header Routing Register 151 MT90502 Preliminary Datasheet Address: 6A6h Label: unknown_oam_routing Reset Value: 0000h Label Bit Position Type Description rxa_ocr 3:0 RW Routing of OAM cells from port A that fail the VPI-VCI match and mask test. “xxx1” = send to port A, “xx1x” = send to port B, “x1xx” = send to port C, “1xxx” = send to AAL0. rxb_ocr 7:4 RW Routing of OAM cells from port B that fail the VPI-VCI match and mask test. “xxx1” = send to port A, “xx1x” = send to port B, “x1xx” = send to port C, “1xxx” = send to AAL0. rxc_ocr 11:8 RW Routing of OAM cells from port C that fail the VPI-VCI match and mask test. “xxx1” = send to port A, “xx1x” = send to port B, “x1xx” = send to port C, “1xxx” = send to AAL0. reserved 15:12 RW Reserved. Must always be “0000” Table 159 - Unknown OAM Routing Register 3.7 H.100/H.110 Registers Address: 700h Label: control Reset Value: 0000h Label pll_clk_in_frequency global_oe number_of_active_streams h100_ct_c8_frame_loopback tdm_stream_format Bit Position Type 1:0 2 4:3 Description RW “00”= 8.192 MHz; “01”= 16.384 MHz; “10”= 32.768 MHz;”11”= 65.536 MHz. RW '0' = internal loopback (all OEs disabled); '1'=global OE enabled. RW “00”= 32 active streams; “01” = 16 active streams; “10” = 8 active streams; “11” = 4 active streams. 5 RW When '1', the ct_c8_X and ct_frame_X are looped back internally, without the need of going out on the actual pins. '0' for normal operation. 13:6 RW Each bit represents a quad of TDM streams. Bit 6 is quad 0. '0' = Format A; '1' = Format B. reserved 14 RW Reserved. Must always be '0'. test_status 15 TS Reserved. Must always be “0”. Table 160 - H.100/H.110 Control Register 152 MT90502 Preliminary Datasheet Address: 702h Label: status0 Reset Value: 0000h Label Bit Type Position Description mem_clk_alarm0 0 ROL Alarm that can be used to generate a programmable interval interrupt (me 9998888m_clk Alarm Timer 0). This bit is set when the mem_clk_count[31:16] matches the mem_clk_alarm0_count. Write a 1 to clear the bit. mem_clk_alarm1 1 ROL Alarm that can be used to generate a programmable interval interrupt (mem_clk Alarm Timer 1). This bit is set when the mem_clk_count[31:16] matches the mem_clk_alarm1_count. Write a 1 to clear the bit. ct_frame_a_bad 2 ROL When the ct_frame_a is considered bad by the hardware, this bit is set. The frame is considered bad if it is not low one cycle out of 1024. Write a 1 to clear the bit. ct_frame_b_bad 3 ROL When the ct_frame_b is considered bad by the hardware, this bit is set. The frame is considered bad if it is not low one cycle out of 1024. Write a 1 to clear the bit. ct_c8_a_bad 4 ROL When the ct_c8_a is considered bad by the hardware, this bit is set. The clock is considered bad if its rising edges are too close or too far apart(i.e. if the rising edge does not arrive within 35 ns to the expected position). Write a 1 to clear the bit. ct_c8_b_bad 5 ROL When the ct_c8_b is considered bad by the hardware, this bit is set. The clock is considered bad if its rising edges are too close or too far apart(i.e. if the rising edge does not arrive within 35 ns to the expected position). Write a 1 to clear the bit. adapa_point_lost 6 ROL When a point is lost due to too much latency to the external memory, this bit is set. This is not a fatal error, but an indication that this phenomenon occurred. Point lost must be compensated for by software using the UUI field in each point. Write a 1 to clear the bit. adapb_point_lost 7 ROL When a point is lost due to too much latency to the external memory, this bit is set. This is not a fatal error, but an indication that this phenomenon occurred. Point lost must be compensated for by software using the UUI field in each point. Write a 1 to clear the bit. tx_time_slot_pnt_out_of_s ync 8 ROL When this bit is high, the H.100 slave has lost its framing on the bus. This bit will cause the H.100 data pins to be tri-stated. Note that this bit will always be set at start-up. Write a 1 to clear the bit. Reserved 11:9 ROL Reserved. Must always be “000” ct_frame_a_bad_rol 12 ROL Same as bit 2, except this bit has no effect on the slaveship state. ct_frame_b_bad_rol 13 ROL Same as bit 3, except this bit has no effect on the slaveship state. ct_c8_a_bad_rol 14 ROL Same as bit 4, except this bit has no effect on the slaveship state. ct_c8_b_bad_rol 15 ROL Same as bit 5, except this bit has no effect on the slaveship state. Table 161 - H.100/H.110 Status Register 0 153 MT90502 Preliminary Datasheet Address: 704h Label: status0_ie Reset Value: 0000h Bit Position Type Label Description mem_clk_alarm0_ie 0 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. mem_clk_alarm1_ie 1 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ct_frame_a_bad_ie 2 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ct_frame_b_bad_ie 3 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ct_c8_a_bad_ie 4 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ct_c8_b_bad_ie 5 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. adapa_point_lost_ie 6 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. adapb_point_lost_ie 7 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. tx_time_slot_pnt_out_of_sync_ie 8 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. Reserved 11:9 RO Reserved. Must always be “000” ct_frame_a_bad_rol_ie 12 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ct_frame_b_bad_rol_ie 13 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ct_c8_a_bad_rol_ie 14 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ct_c8_b_bad_rol_ie 15 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. Table 162 - H.100/H.110 Interrupt Enable Register 0 Address: 708h Label: mem_clk_count0 Reset Value: 0000h Label mem_clk_count[31:16] Bit Type Position 15:0 Description RO Free-running mem_clk counter. Table 163 - Memory Clock Counter 0 154 MT90502 Preliminary Datasheet Address: 70Ah Label: mem_clk_count1 Reset Value: 0000h Label Bit Position mem_clk_count[15:0] 15:0 Type Description RO Free-running mem_clk counter. Table 164 - Memory Clock Counter 1 Address: 70Ch Label: mem_clk_alarm0 Reset Value: 0000h Label Bit Position Type mem_clk_alarm0_count 15:0 Description RW Alarm Timer 0 Value. When this value first matches the mem_clk_count[31:16], a status bit is set. Table 165 - Memory Clock Alarm Register 0 Address: 70Eh Label: mem_clk_alarm1 Reset Value: 0000h Label Bit Position mem_clk_alarm1_count 15:0 Type Description RW Alarm Timer 1 Value. When this value first matches the mem_clk_count[31:16], a status bit is set. Table 166 - Memory Clock Alarm Register 1 Address: 710h Label: adapa0 Reset Value: 0001h Label Bit Type Position Description Adapa_keep_one_pulse_out _of_x 9:0 RW This field indicates how many clock recovery points should be received per point written to the point memory. Typically, this value would be set to 1. Range 1 to 1024. Adapa_clk_divisor_reset 10 RW When '0', this will force the Adaptive module A's clock divisor to reset. Adapa_source adapa_clk_divisor_load_now Reserved 12:11 13 15:14 RW “00” = clkrecov_pulse_a; “01” = gpio[0] (any change); “10” = gpio[0] (rising edge); “11” = gpio[0] (falling edge). PUL When written to '1', this will allow the new div_integer and div_fraction to be used. PUL Reserved. Always read as “00” Table 167 - Adaptive Module A Register 0 155 MT90502 Preliminary Datasheet Address: 712h Label: adapa1 Reset Value: 0002h Label Bit Position Type adapa_div_integer 15:0 Description RW Adaptive module A's mem_clk divisor (integer part). Range 2 to FFFFh. Table 168 - Adaptive Module A Register 1 Address: 714h Label: adapa2 Reset Value: 0000h Label Bit Position Type Adapa_div_fraction 15:0 Description RW Adaptive module A's mem_clk divisor (fractional part). Range 0 to FFFFh. Table 169 - Adaptive Module A Register 2 Address: 718h Label: adapb0 Reset Value: 0001h Bit Position Type Label Description Adapb_keep_one_pulse_out_of_x 9:0 RW This field indicates how many clock recovery points should be received per point written to the point memory. Typically, this value would be set to 1. Range 1 to 1024. Adapb_clk_divisor_reset 10 RW When '0', this will force the Adaptive module B's clock divisor to reset. 12:11 RW “00” = clkrecov_pulse_b; “01” = gpio[1] (any change); “10” = gpio[1] (rising edge); “11” = gpio[1] (falling edge). Adapb_source Adapb_clk_divisor_load_now Reserved 13 15:14 PUL When written to '1', this will allow the new div_integer and div_fraction to be used. PUL Reserved. Always read as “00” Table 170 - Adaptive Module B Register 0 Address: 71Ah Label: adapb1 Reset Value: 0000h Label Adapb_div_integer Bit Position Type 15:0 Description RW Adaptive module B's mem_clk divisor (integer part). Range 2 to FFFFh. Table 171 - Adaptive Module B Register 1 156 MT90502 Preliminary Datasheet Address: 71Ch Label: adapb2 Reset Value: 0000h Label adapb_div_fraction Bit Position Type 15:0 Description RW Adaptive module B's mem_clk divisor (fractional part). Range 0 to FFFFh. Table 172 - Adaptive Module B Register 2 Address: 720h Label: mastership0 Reset Value: 0200h Label Bit Position Type Description ct_c8_frame_a_oe 0 RW Controls the output enable of the ct_c8_a and ct_frame_a. '0' = tri-state; '1' = drive pins. ct_c8_frame_b_oe 1 RW Controls the output enable of the ct_c8_b and ct_frame_b. '0' = tri-state; '1' = drive pins. ct_compatibility_oe 2 RW Controls the output enable of the H100 compatibility signals. '0' = tri-state; '1' = drive pins. reserved fr_comp_polarity 4:3 5 RO Reserved. Always read as “00” RW fr_comp pin polarity. '0' = Active low; '1' = active high. fr_comp_type 7:6 RW fr_comp pin timing type. “00”=straddle clock boundary; “01”= active during last bit; “10” = active during first bit; “11” = reserved. fr_comp_frequency 9:8 RW fr_comp frequency (pulse width). “00” = fr_comp related clock frequency at 2 MHz; “01” = fr_comp related clock frequency at 4 MHz; “10” = fr_comp related clock frequency at 8 MHz; “11”=reserved. sclk_invert 10 RW When '1', it inverts the sclk polarity as defined in the H100 Specifications. sclkx2_invert 11 RW When '1', it inverts the sclkx2 polarity as defined in the H100 Specifications. sclk_frequency 13:12 RW Selects the sclk frequency for the generation of sclk and sclk2. “00” = 2 MHz; “01” = 4 MHz; “10” = 8 MHz; “11” = reserved. reserved 15:14 RW Reserved. Must always be “00” Table 173 - H.100/H.110 Master Register 0 157 MT90502 Preliminary Datasheet Address: 722h Label: mastership1 Reset Value: 0002h Bit Position Type Label Description mastership_mode 1:0 RW Selects the mode of the Master Circuitry. “00” = backup on A; “01” = backup on B; “10” = master on A; “11” = master on B. When ct_c8_frame_a_oe, ct_c8_frame_b_oe, ct_compatibility_oe are '0', this value does not matter. slaveship_mode 3:2 RW Selects the mode of the Slave Circuitry. “00” = Track ct_c8_a & ct_frame_a; “01” = Track ct_c8_b & ct_frame_b; “10” = Track ct_c8_a & ct_frame_a, but if they fail track ct_c8_b & ct_frame_b; “11” = Track ct_c8_b & ct_frame_b, but if they fail track ct_c8_a & ct_frame_a. reserved 15:4 RW Reserved. Must always be “0000_0000_0000” Table 174 - H.100/H.110 Master Register 1 Address: 730h Label: clock_rates Reset Value: AAAAh Label Bit Type Position Description groupa_speed 1:0 RW Selects the clock speed of H100 streams ct_c[3:0]. “00” = 2 MHz; “01” = 4 MHz; “10” = 8 MHz; “11” = reserved. groupb_speed 3:2 RW Selects the clock speed of H100 streams ct_c[7:4]. “00” = 2 MHz; “01” = 4 MHz; “10” = 8 MHz; “11” = reserved. groupc_speed 5:4 RW Selects the clock speed of H100 streams ct_c[11:8]. “00” = 2 MHz; “01” = 4 MHz; “10” = 8 MHz; “11” = reserved. groupd_speed 7:6 RW Selects the clock speed of H100 streams ct_c[15:12]. “00” = 2 MHz; “01” = 4 MHz; “10” = 8 MHz; “11” = reserved. groupe_speed 9:8 RW Selects the clock speed of H100 streams ct_c[19:16]. “00” = 2 MHz; “01” = 4 MHz; “10” = 8 MHz; “11” = reserved. groupf_speed 11:10 RW Selects the clock speed of H100 streams ct_c[23:20]. “00” = 2 MHz; “01” = 4 MHz; “10” = 8 MHz; “11” = reserved. groupg_speed 13:12 RW Selects the clock speed of H100 streams ct_c[27:24]. “00” = 2 MHz; “01” = 4 MHz; “10” = 8 MHz; “11” = reserved. grouph_speed 15:14 RW Selects the clock speed of H100 streams ct_c[31:28]. “00” = 2 MHz; “01” = 4 MHz; “10” = 8 MHz; “11” = reserved. Table 175 - Clock Rates Register 158 MT90502 Preliminary Datasheet Address: 732h Label: timing_conf Reset Value: 0000h Label Bit Position Type slave_sampling 1:0 oe_early_disable_override RW Selects sampling point for the ct_d pins. The sampling point is relative to the ct_c8 clock period. “00” = falling edge; “01”= 75%; “10” = rising-edge; “11” = reserved. 2 reserved Description RW Selects if the ct_d output should be tri-stated before the rising edge of the ct_c8 clock or immediately after it. '0' = output enable asserted after rising edge and de-asserted before rising edge; '1' = output enable asserted and de-asserted after rising edge. 15:3 RW Reserved. Must always be “0000_0000_0000_0” Table 176 - Timing Configuration Register Address: 740h Label: gpio_out_reg0 Reset Value: 0000h Label gpio_0_output_select Bit Type Position 4:0 Description RW Output mux selector. “00000”=ct_c8_a_in; “00001”=ct_c8_b_in; “00010”=ct_frame_a_in; “00011”=ct_frame_b_in; “00100”=ct_c8_selected; “00101”=ct_frame_selected; “00110”=output_constant ('0'/'1'); “00111”=ct_netref1_in; “01000”=ct_netref2_in; “01001”=gpio_in(0); “01010”=gpio_in(1); “01011”=gpio_in(2); “01100”=gpio_in(3); “01101”=gpio_in(4); “01110”=gpio_in(5); “01111”=gpio_in(6); “10000”=gpio_in(7); “10001”=adapa_ref; “10010”=adapb_ref; “10011”=clkrecov_pulse_a; “10100”=clkrecov_pulse_b; “10101”=mc_clock; “10110”=ct_mc_in. gpio_0_output_constant 5 RW If the gpio_X_output_select selects a constant, this value will be sent out on the gpio_X pin. gpio_0_output_enable 6 RW gpio_X pin output enable. '0'= tri-state; '1'= output enabled. Reserved 7 RO Reserved. Always read as “0” gpio_1_output_select 12:8 RW Output mux selector. “00000”=ct_c8_a_in; “00001”=ct_c8_b_in; 00010=ct_frame_a_in; “00011”=ct_frame_b_in; “00100”=ct_c8_selected; “00101”=ct_frame_selected; “00110”=output_constant ('0'/'1'); “00111”=ct_netref1_in; “01000”=ct_netref2_in; “01001”=gpio_in(0); “01010”=gpio_in(1); “01011”=gpio_in(2); “01100”=gpio_in(3); “01101”=gpio_in(4); “01110”=gpio_in(5); “01111”=gpio_in(6); “10000”=gpio_in(7); “10001”=adapa_ref; “10010”=adapb_ref; “10011”=clkrecov_pulse_a; “10100”=clkrecov_pulse_b; “10101”=mc_clock; “10110”=ct_mc_in. gpio_1_output_constant 13 RW If the gpio_X_output_select selects a constant, this value will be sent out on the gpio_X pin. gpio_1_output_enable 14 RW gpio_X pin output enable. '0'= tri-state; '1'= output enabled. Reserved 15 RO Reserved. Always read as “0” Table 177 - General Purpose I/O Output Register 0 159 MT90502 Preliminary Datasheet Address: 742h Label: gpio_out_reg1 Reset Value: 0000h Label gpio_2_output_select Bit Position Type Description 4:0 RW Output mux selector. “00000”=ct_c8_a_in; “00001”=ct_c8_b_in; 00010=ct_frame_a_in; “00011”=ct_frame_b_in; “00100”=ct_c8_selected; “00101”=ct_frame_selected; “00110”=output_constant ('0'/'1'); “00111”=ct_netref1_in; “01000”=ct_netref2_in; “01001”=gpio_in(0); “01010”=gpio_in(1); “01011”=gpio_in(2); “01100”=gpio_in(3); “01101”=gpio_in(4); “01110”=gpio_in(5); “01111”=gpio_in(6); “10000”=gpio_in(7); “10001”=adapa_ref; “10010”=adapb_ref; “10011”=clkrecov_pulse_a; “10100”=clkrecov_pulse_b; “10101”=mc_clock; “10110”=ct_mc_in. gpio_2_output_constant 5 RW If the gpio_X_output_select selects a constant, this value will be sent out on the gpio_X pin. gpio_2_output_enable 6 RW gpio_X pin output enable. '0'= tri-state; '1'= output enabled. reserved 7 RO Reserved. Always read as “0” gpio_3_output_select 12:8 RW Output mux selector. “00000”=ct_c8_a_in; “00001”=ct_c8_b_in; 00010=ct_frame_a_in; “00011”=ct_frame_b_in; “00100”=ct_c8_selected; “00101”=ct_frame_selected; “00110”=output_constant ('0'/'1'); “00111”=ct_netref1_in; “01000”=ct_netref2_in; “01001”=gpio_in(0); “01010”=gpio_in(1); “01011”=gpio_in(2); “01100”=gpio_in(3); “01101”=gpio_in(4); “01110”=gpio_in(5); “01111”=gpio_in(6); “10000”=gpio_in(7); “10001”=adapa_ref; “10010”=adapb_ref; “10011”=clkrecov_pulse_a; “10100”=clkrecov_pulse_b; “10101”=mc_clock; “10110”=ct_mc_in. gpio_3_output_constant 13 RW If the gpio_X_output_select selects a constant, this value will be sent out on the gpio_X pin. gpio_3_output_enable 14 RW gpio_X pin output enable. '0'= tri-state; '1'= output enabled. reserved 15 RO Reserved. Always read as “0” Table 178 - General Purpose I/O Output Register 1 160 MT90502 Preliminary Datasheet Address: 744h Label: gpio_out_reg2 Reset Value: 0000h Label gpio_4_output_select Bit Position Type Description 4:0 RW Output mux selector. “00000”=ct_c8_a_in; “00001”=ct_c8_b_in; 00010=ct_frame_a_in; “00011”=ct_frame_b_in; “00100”=ct_c8_selected; “00101”=ct_frame_selected; “00110”=output_constant ('0'/'1'); “00111”=ct_netref1_in; “01000”=ct_netref2_in; “01001”=gpio_in(0); “01010”=gpio_in(1); “01011”=gpio_in(2); “01100”=gpio_in(3); “01101”=gpio_in(4); “01110”=gpio_in(5); “01111”=gpio_in(6); “10000”=gpio_in(7); “10001”=adapa_ref; “10010”=adapb_ref; “10011”=clkrecov_pulse_a; “10100”=clkrecov_pulse_b; “10101”=mc_clock; “10110”=ct_mc_in gpio_4_output_constant 5 RW If the gpio_X_output_select selects a constant, this value will be sent out on the gpio_X pin. gpio_4_output_enable 6 RW gpio_X pin output enable. '0'= tri-state; '1'= output enabled. reserved 7 RO Reserved. Always read as “0” gpio_5_output_select 12:8 RW Output mux selector. “00000”=ct_c8_a_in; “00001”=ct_c8_b_in; 00010=ct_frame_a_in; “00011”=ct_frame_b_in; “00100”=ct_c8_selected; “00101”=ct_frame_selected; “00110”=output_constant ('0'/'1'); “00111”=ct_netref1_in; “01000”=ct_netref2_in; “01001”=gpio_in(0); “01010”=gpio_in(1); “01011”=gpio_in(2); “01100”=gpio_in(3); “01101”=gpio_in(4); “01110”=gpio_in(5); “01111”=gpio_in(6); “10000”=gpio_in(7); “10001”=adapa_ref; “10010”=adapb_ref; “10011”=clkrecov_pulse_a; “10100”=clkrecov_pulse_b; “10101”=mc_clock; “10110”=ct_mc_in gpio_5_output_constant 13 RW If the gpio_X_output_select selects a constant, this value will be sent out on the gpio_X pin. gpio_5_output_enable 14 RW gpio_X pin output enable. '0'= tri-state; '1'= output enabled. reserved 15 RO Reserved. Always read as “0” Table 179 - General Purpose I/O Output Register 2 Address: 746h Label: gpio_out_reg3 Reset Value: 0000h Label gpio_6_output_select Bit Type Position 4:0 Description RW Output mux selector. “00000”=ct_c8_a_in; “00001”=ct_c8_b_in; 00010=ct_frame_a_in; “00011”=ct_frame_b_in; “00100”=ct_c8_selected; “00101”=ct_frame_selected; “00110”=output_constant ('0'/'1'); “00111”=ct_netref1_in; “01000”=ct_netref2_in; “01001”=gpio_in(0); “01010”=gpio_in(1); “01011”=gpio_in(2); “01100”=gpio_in(3); “01101”=gpio_in(4); “01110”=gpio_in(5); “01111”=gpio_in(6); “10000”=gpio_in(7); “10001”=adapa_ref; “10010”=adapb_ref; “10011”=clkrecov_pulse_a; “10100”=clkrecov_pulse_b; “10101”=mc_clock; “10110”=ct_mc_in Table 180 - General Purpose I/O Output Register 3 161 MT90502 Preliminary Datasheet gpio_6_output_constant 5 RW If the gpio_X_output_select selects a constant, this value will be sent out on the gpio_X pin. gpio_6_output_enable 6 RW gpio_X pin output enable. '0'= tri-state; '1'= output enabled. reserved 7 RO Reserved. Always read as “0” gpio_7_output_select 12:8 RW Output mux selector. “00000”=ct_c8_a_in; “00001”=ct_c8_b_in; 00010=ct_frame_a_in; “00011”=ct_frame_b_in; “00100”=ct_c8_selected; “00101”=ct_frame_selected; “00110”=output_constant ('0'/'1'); “00111”=ct_netref1_in; “01000”=ct_netref2_in; “01001”=gpio_in(0); “01010”=gpio_in(1); “01011”=gpio_in(2); “01100”=gpio_in(3); “01101”=gpio_in(4); “01110”=gpio_in(5); “01111”=gpio_in(6); “10000”=gpio_in(7); “10001”=adapa_ref; “10010”=adapb_ref; “10011”=clkrecov_pulse_a; “10100”=clkrecov_pulse_b; “10101”=mc_clock; “10110”=ct_mc_in gpio_7_output_constant 13 RW If the gpio_X_output_select selects a constant, this value will be sent out on the gpio_X pin. gpio_7_output_enable 14 RW gpio_X pin output enable. '0'= tri-state; '1'= output enabled. reserved 15 RO Reserved. Always read as “0” Table 180 - General Purpose I/O Output Register 3 (continued) Address: 748h Label: gpio_out_reg4 Reset Value: 0000h Label ct_netref1_output_select Bit Position Type Description 4:0 RW Output mux selector. “00000”=ct_c8_a_in; “00001”=ct_c8_b_in; 00010=ct_frame_a_in; “00011”=ct_frame_b_in; “00100”=ct_c8_selected; “00101”=ct_frame_selected; “00110”=output_constant ('0'/'1'); “00111”=ct_netref1_in; “01000”=ct_netref2_in; “01001”=gpio_in(0); “01010”=gpio_in(1); “01011”=gpio_in(2); “01100”=gpio_in(3); “01101”=gpio_in(4); “01110”=gpio_in(5); “01111”=gpio_in(6); “10000”=gpio_in(7); “10001”=adapa_ref; “10010”=adapb_ref; “10011”=clkrecov_pulse_a; “10100”=clkrecov_pulse_b; “10101”=mc_clock; “10110”=ct_mc_in. ct_netref1_output_constant 5 RW If the ct_netrefX_select selects a constant, this value will be sent out on the ct_netrefX pin. ct_netref1_output_enable 6 RW ct_netrefX pin output enable. '0'= tri-state; '1'= output enabled. reserved 7 RO Reserved. Always read as “0” ct_netref2_output_select 12:8 RW Output mux selector. “00000”=ct_c8_a_in; “00001”=ct_c8_b_in; 00010=ct_frame_a_in; “00011”=ct_frame_b_in; “00100”=ct_c8_selected; “00101”=ct_frame_selected; “00110”=output_constant ('0'/'1'); “00111”=ct_netref1_in; “01000”=ct_netref2_in; “01001”=gpio_in(0); “01010”=gpio_in(1); “01011”=gpio_in(2); “01100”=gpio_in(3); “01101”=gpio_in(4); “01110”=gpio_in(5); “01111”=gpio_in(6); “10000”=gpio_in(7); “10001”=adapa_ref; “10010”=adapb_ref; “10011”=clkrecov_pulse_a; “10100”=clkrecov_pulse_b; “10101”=mc_clock; “10110”=ct_mc_in Table 181 - General Purpose I/O Output Register 4 162 MT90502 Preliminary Datasheet ct_netref2_output_constant 13 RW If the ct_netrefX_select selects a constant, this value will be sent out on the ct_netrefX pin. ct_netref2_output_enable 14 RW ct_netrefX pin output enable. '0'= tri-state; '1'= output enabled. reserved 15 RO Reserved. Always read as “0” Table 181 - General Purpose I/O Output Register 4 (continued) Address: 74Ah Label: gpio_in Reset Value: 0000h Label Bit Position Type Description gpio_0_value 0 RO Current level of the corresponding pin. gpio_1_value 1 RO Current level of the corresponding pin. gpio_2_value 2 RO Current level of the corresponding pin. gpio_3_value 3 RO Current level of the corresponding pin. gpio_4_value 4 RO Current level of the corresponding pin. gpio_5_value 5 RO Current level of the corresponding pin. gpio_6_value 6 RO Current level of the corresponding pin. gpio_7_value 7 RO Current level of the corresponding pin. ct_netref1_value 8 RO Current level of the corresponding pin. ct_netref2_value 9 RO Current level of the corresponding pin. 15:10 RO Reserved. Always read as “0000_00” reserved Table 182 - General Purpose I/O Input Register Address: 74Ch Label: gpio_status Reset Value: 0000h Label Bit Position Type Description gpio_0_change 0 ROL This bit is set if the level of the corresponding pin changes. gpio_1_change 1 ROL This bit is set if the level of the corresponding pin changes. gpio_2_change 2 ROL This bit is set if the level of the corresponding pin changes. gpio_3_change 3 ROL This bit is set if the level of the corresponding pin changes. gpio_4_change 4 ROL This bit is set if the level of the corresponding pin changes. gpio_5_change 5 ROL This bit is set if the level of the corresponding pin changes. gpio_6_change 6 ROL This bit is set if the level of the corresponding pin changes. gpio_7_change 7 ROL This bit is set if the level of the corresponding pin changes. ct_netref1_change 8 ROL This bit is set if the level of the corresponding pin changes. Table 183 - General Purpose I/O Status Register 163 MT90502 Preliminary Datasheet ct_netref2_change 9 reserved 15:10 ROL This bit is set if the level of the corresponding pin changes. ROL Reserved. Always read as “0000_00” Table 183 - General Purpose I/O Status Register (continued) Address: 74Eh Label: gpio_status_ie Reset Value: 0000h Label Bit Position Type Description gpio_0_change_ie 0 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. gpio_1_change_ie 1 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. gpio_2_change_ie 2 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. gpio_3_change_ie 3 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. gpio_4_change_ie 4 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. gpio_5_change_ie 5 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. gpio_6_change_ie 6 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. gpio_7_change_ie 7 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ct_netref1_change_ie 8 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. ct_netref2_change_ie 9 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. 15:10 IE Reserved. Always read as “0000_00” reserved Table 184 - General Purpose I/O Status Interrupt Enable Register 164 MT90502 Preliminary Datasheet Address: 774h Label: mastership_hidden0 Reset Value: 0000h Label Bit Position Type Description automatic_master_override 0 RW When '1', the automatic H100 Master programming values are overridden. mux0_select_override 1 RW 0' = don't swap; '1' = swap. mux1_select_override 2 RW 0'=Divide by 4; '1' = ct_c8 pin. mux2_select_override 3 RW 0'=Local Ref; '1' = ct_c8 pin. mux3_select_override 5:4 RW “00”=PLL Used; “01”=32 MHz local ref used; “10”=16 MHz local ref used; “11”=8 MHz local ref used. reserved 15:6 RW Reserved. Always read as “0000_0000_00” Table 185 - H.100/H.110 Master Hidden Register 0 Address: 776h Label: mastership_hidden1 Reset Value: 0000h Bit Type Position Label h100_check_automatic_override 0 Description WO When '1', the following two field will control the ct_c8 frequency checker. h100_min_mem_clk_ct_c8_override 5:1 RW minimum period (in mem_clk cycles) between 2 H100 ct_c8 clock rising edges. h100_max_mem_clk_ct_c8_override 10:6 RW Maximum period (in mem_clk cycles) between 2 H100 ct_c8 clock rising edges. h100_sample_tristate_override 11 Reserved WO When '1', the values in the following registers will be used to control the sampling and tri-state delays. 15:12 WO Reserved. Always read as “0000” Table 186 - H.100/H.110 Master Hidden Register 1 Address: 778h Label: mastership_hidden2 Reset Value: 0000h Label Bit Type Position Description h100_samp_clk_delay_flops 3:0 RW Number of flops used = 8 + value of this register. “1111” is reserved for selecting falling edge ct_c8 clock h100_samp_clk_delay_buff 7:4 RW “1111” is reserved for selecting rising edge ct_c8 clock h100_oe_clk_delay_flops 11:8 RW Number of flops used = 8 + value of this register h100_oe_clk_delay_buff 15:12 RW Table 187 - H.100/H.110 Master Hidden Register 2 165 MT90502 3.8 Preliminary Datasheet Miscellaneous Registers Address: 802h Label: status0 Reset Value: 0000h Bit Type Position Label Description cell_assembly_event_buf_overflow 0 ROL Overflow in the cell assembly event queue. Fatal chip error. pointa_buf_overflow 1 ROL Overflow in the clock recovery point A buffer. pointb_buf_overflow 2 ROL Overflow in the clock recovery point B buffer. reserved 15:3 ROL Reserved. Always read as “0000_0000_0000_0” Table 188 - Miscellaneous Status Register Address: 804h Label: status0_ie Reset Value: 0000h Bit Type Position Label Description cell_assembly_event_buf_overflow 0 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. pointa_buf_overflow 1 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. pointb_buf_overflow 2 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. reserved 15:3 RO Reserved. Always read as “0000_0000_0000_0” Table 189 - Miscellaneous Interrupt Enable Register Address: 810h Label: tone_buffer_control Reset Value: 0000h Label Bit Type Position Description sdram_tone_base 4:0 RW Represents bits 23:19 of the byte address to the SDRAM tone buffers sdram_tone_size 6:5 RW “00” = 16KBytes, “01” = 32K, “10” = 64K, “11” = reserved. Size is for a single buffer. sdram_tone_enable 7 RW Enables the use of the tones contained in the SDRAM. ssram_tone_enable 8 RW Enables the use of the tones contained in the SSRAM. reserved 15:9 RW Reserved. Must always be “0000_000” Table 190 - Tone Buffer Control Register 166 MT90502 Preliminary Datasheet Address: 820h Label: pointa_manage Reset Value: 0000h Label Bit Position Type Description pointa_buffer_base_add 8:0 RW Bits 20:12 of the base address of the clock recovery point buffer A in external SSRAM pointa_buffer_size 11:9 RW “000” = 4KBytes, “001” = 8K, “010” = 16K, “011” = 32K, “100” = 64K, “101” = 128K, others = reserved. Size is for a single buffer. reserved 15:12 RW Reserved. Must always be “0000” Table 191 - Point A Buffer Management Register Address: 822h Label: pointa_read Reset Value: 0000h Label Bit Position Type Description pointa_rpnt 13:0 RW The CUP’s read pointer to the clock recovery point FIFO. This read pointer has an extra bit to allow for a full buffer (for example, 2048 points instead of 2047) Reserved 15:14 RW Reserved. Must always be “00” Table 192 - Point A Read Pointer Register Address: 824h Label: pointa_write Reset Value: 0000h Label Bit Position Type Description pointa_wpnt 13:0 RO The chip's write pointer to the clock recovery point FIFO. This read pointer has an extra bit to allow for a full buffer (for example, 2048 points instead of 2047) Reserved 15:14 RO Reserved. Always read as “00” Table 193 - Point A Write Pointer Register Address: 828h Label: pointb_manage Reset Value: 0000h Label Bit Position Type Description pointb_buffer_base_add 8:0 RW Bits 20:12 of the base address of the clock recovery point buffer B in external SSRAM pointb_buffer_size 11:9 RW “000” = 4KBytes, “001” = 8K, “010” = 16K, “011” = 32K, “100” = 64K, “101” = 128K, others = reserved reserved 15:12 RW Reserved. Must always be “0000” Table 194 - Point B Buffer Management Register 167 MT90502 Preliminary Datasheet Address: 82Ah Label: pointb_read Reset Value: 0000h Label Bit Position Type Description pointb_rpnt 13:0 RW The CUP’s read pointer to the clock recovery point FIFO. This read pointer has an extra bit to allow for a full buffer (for example, 2048 points instead of 2047) reserved 15:14 RW Reserved. Must always be “00” Table 195 - Point B Read Pointer Register Address: 82Ch Label: pointb_write Reset Value: 0000h Label Bit Position Type Description pointb_wpnt 13:0 RO The chip's write pointer to the clock recovery point FIFO. This read pointer has an extra bit to allow for a full buffer (for example, 2048 points instead of 2047) reserved 15:14 RO Reserved. Always read as “00” Table 196 - Point B Write Pointer Register Address: 830h Label: cid_base Reset Value: 0000h Label Bit Position Type Description cid_descriptor_base_address 4:0 RW Bits 23:21 of the CID descriptor’s base address in the SDRAM reserved 15:5 RW Reserved. Must always be “0000_0000_000” Table 197 - CID Base Address Register 168 MT90502 Preliminary Datasheet 3.9 RX TDM Registers Address: 900h Label: control Reset Value: 0000h Label Bit Position Type 0 hdlc_type Description RW 0'=Bit wise HDLC Framing; '1'=Byte Wise HDLC Framing. rx_tdm_time_slot_lead 3:1 RW Set to “111” for normal operation. number_packets_per_frame 6:4 RW “000” = 32 packets, “001” = 64 packets, “010” = 128 packets, “011” = 256 packets, “100” = 512 packets, “101” = 1024, “11x” = reserved reserved 7 RW Reserved. Must always be “0”. llman_process_enable 8 RW Enables the treatment of incoming RX SAR bytes going to the H100 bus. u_law_zero_illegal 9 RW When '1', the u-law value 00h will be replaced by 02h. padding_law 11:10 test_status RW “00” = don't translate padding, OL bit in Rx TDM Control Structure is ignored for padding bytes; “01” = padding is in u-law only, “10” = padding is in A-law only. 15 TS Reserved. Must always be “0”. Table 198 - RX TDM Control Register Address: 902h Label: status0 Reset Value: 0000h Label Bit Type Position Description llman_process_crashed 0 ROL Indicates that the linked-list manager crashed. This indicates corrupt data in the linked list memory. underrun_detect 1 ROL Underrun detected on a channel. underrun_wrap_detect 2 ROL Indicates that the 16-bit underrun counter on a single channel has wrapped. rxtdm_read_cache_overflow 3 ROL Overflow in the RX TDM read cache. Fatal chip error. rxtdm_write_cache_overflow 4 ROL Overflow in the RX TDM write cache. Fatal chip error. write_back_cache_overflow 5 ROL Overflow in the RX TDM write back cache. rx_tdm_fifo_overflow 6 ROL Overflow in the RX TDM data FIFO. Fatal chip error. rxsar_pointer_wb_overflow 7 ROL Overflow in the RX SAR pointer write back FIFO. Fatal chip error. reserved 15:8 ROL Reserved. Always read as “0000_0000” Table 199 - RX TDM Status Register 0 169 MT90502 Preliminary Datasheet Address: 904h Label: status0_ie Reset Value: 0000h Bit Position Type Label Description llman_process_crashed_ie 0 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. underrun_detect_ie 1 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. underrun_wrap_detect_ie 2 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. rxtdm_read_cache_overflow_ie 3 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. rxtdm_write_cache_overflow_ie 4 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. write_back_cache_overflow_ie 5 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. rx_tdm_fifo_overflow_ie 6 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. rxsar_pointer_wb_overflow_ie 7 IE When ‘1’ and the corresponding status bit is ‘1’ an interrupt will be generated. reserved 15:8 RO Reserved. Always read as “0000_0000” Table 200 - RX TDM Interrupt Enable Register 0 Address: 908h Label: monitor Reset Value: 0000h Label hdlc_pcm_channel_error reserved Bit Position Type 9:0 15:10 Description RO Indicates the channel number, according to its position in the RX TDM control memory, on which the last underrun or underrun wrap error occurred RO Reserved. Always read as “0000_00” Table 201 - RX TDM Channel Number Monitor Register 170 MT90502 Preliminary Datasheet 4.0 Electrical Specification 4.1 DC Characteristics Absolute Maximum Ratings Parameter Symbol Min Max Units VDD -0.5 5.0 V Voltage on 3.3V Input pins VI -0.5 VDD+0.5 V Voltage on 3.3V Output pins VO -0.5 VDD+0.5 V Storage Temperature TS -40.0 +125.0 °C Supply Voltage - 3.3 Volt Rail * Exceeding these figures may cause permanent damage. Functional operation under these conditions is not guaranteed. Voltage measurements are with respect to ground (V SS) unless otherwise stated. Long-term exposure to absolute maximum ratings may affect device reliability, and permanent damage may occur if operate exceeding the rating. The device should be operated under recommended operating condition. Recommended Operating Conditions Sym Min Typa Max Unit s Operating Temperature TOP 0.0 25.0 70.0 °C Supply Voltage, 3.3 Volt Rail VDD 3.135 3.3 3.465 V Characteristics Test Conditions a. Typical figures are at 25° C and are for design aid only; not guaranteed and not subject to production testing. Voltage measurements are with respect to ground (V SS) unless otherwise stated. DC Characteristics Unit s Test Conditions b 1.19 A 60.0 MHz, Nominal output loads, 1023 Channels II 2.31 mA Continuous current at digital outputs IO 3.04 mA Device Power Dissipation PDDS 3.927 W Input High Voltage VIH Input Low Voltage VIL Output HIGH Voltage VOH Output LOW Voltage VOL Schmitt Trigger Positive Threshold Vt+ 1.6 V Schmitt Trigger Neg. Threshold Vt- 1.2 V Input Leakage Current Inputs with gated pull-up Inputs with gated pull-down II Characteristics Sym Supply Current - 3.3 V supply IDD Continuous current at digital inputs Min Typa Max 60.0 MHz, Nominal output loads, 1023 Channels 0.7VDD 0.3VDD 2.4 V V 0.4 -1.0 V 1.0 µA VIN = VDDx or Vss IIH -30.0 -70.0 µA VIN = VDD IIL 30.0 70.0 µA VIN = Vss 171 MT90502 Preliminary Datasheet DC Characteristics (continued) Characteristics Sym Min Typa Max Unit s Input Pin Capacitance CI 5.0 pF Output Pin Capacitance CO 5.0 pF Output High Impedance Leakage IOZ 1.0 uA 3.3V output HIGH current (6 mA buffer) IOH 6.0 mA 3.3V output LOW current (6 mA buffer) IOL 6.0 mA 3.3V output HIGH current (12 mA buffer) IOH 12.0 mA 3.3V output LOW current (12 mA buffer) IOL 12.0 mA 3.3V output HIGH current (24 mA buffer) IOH 24.0 mA 3.3V output LOW current (24 mA buffer) IOL 24.0 mA Junction-to-Ambient Thermal Resistance θJ-A 14.0 °C/W Test Conditions b VO = VSS or VDD 0 cfm air flow (natural convection airflow only) a. Typical figures are at 25 ° C and are for design aid only; not guaranteed and not subject to production testing. b. TOP = 0°C to 70° C; 3.135V < VDD < 3.465V Voltage measurements are with respect to ground (V SS) unless otherwise stated. 172 MT90502 Preliminary Datasheet 4.2 AC Characteristics 4.3 Intel/Motorola Interface write_access_active (when both CS and WR are low) t2_writes1 t1_non_muxed t2_non_muxed cpu_a[14:0]/cpu_a_das cpu_d[15:0] t2_writes2 t1_writes t6 t4 t5 cpu_rdy_ndtack Figure 71 - Non-Multiplexed CPU Interface - Intel Mode - Write Access Symbol Description Min Typical Max Unit t1_non_muxed write_access_active falling edge to cpu_a valid cpu_a_das valid 2 * upclk - 4 ns t1_writes 2 * upclk - 4 ns write_access_active falling edge to cpu_d valid t2_non_muxed cpu_rdy_ndtack rising edge to cpu_a invalid cpu_a_das invalid 0 ns t2_writes1 cpu_rdy_ndtack rising edge to write_access_active rising edge 0 ns t2_writes2 cpu_rdy_ndtack rising edge to cpu_d invalid 0 ns t4 write_access_active falling edge to cpu_rdy_ndtack falling edge 0 t5 Write Access Time t6 write_access_active rising edge to cpu_rdy_ndtack tri-state 0 12 ns 740 ns 10 ns Table 202 - Non-Multiplexed CPU Interface - Intel Mode - Write Access 173 MT90502 Preliminary Datasheet read_access_active (when both CS and RD are low) t2_reads t2_non_muxed t1 cpu_a[14:0]/cpu_a_das t8 cpu_d[15:0] t4 t6 t5 t13 cpu_rdy_ndtack Figure 72 - Non-Multiplexed CPU Interface - Intel Mode - Read Access Symbol Description t1 read_access_active falling edge to cpu_a valid cpu_a_das valid t2_reads cpu_rdy_ndtack rising edge to read_access_active rising edge (reads) Min Typical Max 2 * upclk - 4 0 Unit ns ns t2_non_muxed cpu_rdy_ndtack rising edge to cpu_a invalid (non-multiplexed) cpu_a_das invalid (non-multiplexed) ns t4 read_access_active falling edge to cpu_rdy_ndtack falling edge 0 12 t5 Read Access Time t6 read_access_active rising edge to cpu_rdy_ndtack tri-state 0 t8 read_access_active falling edge to cpu_d driven 3 * upclk - 4 ns t13 cpu_d valid to cpu_rdy_ndtack rising edge upclk - 4 ns See Table 205, “t5 Read Access Times,” on page 177. 10 Table 203 - Non-Multiplexed CPU Interface - Intel Mode - Read Access 174 ns ns MT90502 Preliminary Datasheet inmo_cs inmo_rd_ds t11 t12 R/W t5 t4 t7 t6 inmo_rdy_ndtack t1 t3 Address Valid inmo_a[14:0] t1 inmo_d[15:0] t3 Data Valid t3 t1 inmo_a_das Figure 73 - Non-Multiplexed CPU Interface - Motorola Mode - Write Access inmo_cs inmo_rd_ds t12 t11 R/W t5 t4 t7 t6 t9 inmo_rdy_ndtack t3 t1 Address Valid inmo_a[14:0] t3 t1 inmo_a_das t10 inmo_d[15:0] Data Valid Figure 74 - Non-Multiplexed CPU Interface - Motorola Mode - Read Access 175 MT90502 Sym Preliminary Datasheet Description Write Access Min Typ Max Unit t1 Address & Data Setup -- cpu_cs and cpu_rd_ds asserted to cpu_a[14:0] and cpu_d[15:0] and cpu_a_das valid t3 Address & Data Hold -- cpu_rdy_ndtack low to cpu_a[14:0] and cpu_d[15:0] and cpu_a_das invalid t4 cpu_rdy_ndtack high -- cpu_cs and cpu_rd_ds asserted 0 to cpu_rdy_ndtack driving one 12 ns t5 cpu_rdy_ndtack delay -- cpu_cs and cpu_rd_ds asserted to cpu_rdy_ndtack driving zero 740 ns t6 cpu_rdy_ndtack hold -- cpu_cs and cpu_rd_ds de-asserted to cpu_rdy_ndtack driving one 0 10 ns t7 cpu_rdy_ndtack high impedance -- cpu_rdy_ndtack driving one to cpu_rdy_ndtack high impedance 2 8 ns t11 cpu_r/w low to both cpu_cs and cpu_ds asserted 0 ns t12 cpu_cs or cpu_ds high to cpu_r/w high 0 ns 2*upclk - 4 0 ns ns Note: t1, t4, and t5 are dependent upon the last of cpu_cs and cpu_rd_ds to be asserted. t6 is dependent on the first of cpu_cs and cpu_rd_ds to be de-asserted. Sym Description Read Access Min Typ Max 2*upclk - 4 Unit t1 Address Setup -- cpu_cs and cpu_rd_ds asserted to cpu_a[14:0] and cpu_a_das valid t3 Address Hold -- cpu_rdy_ndtack low to cpu_a[14:0] and 0 cpu_a_das invalid t4 cpu_rdy_ndtack high -- cpu_cs and cpu_rd_ds asserted 0 to cpu_rdy_ndtack driving one t5 cpu_rdy_ndtack delay -- cpu_cs and cpu_rd_ds asserted to cpu_rdy_ndtack asserted t6 cpu_rdy_ndtack hold -- cpu_cs or cpu_rd_ds de-asserted to cpu_rdy_ndtack driving one 0 10 ns t7 cpu_rdy_ndtack high impedance -- cpu_rdy_ndtack driving one to cpu_rdy_ndtack high-impedance 2 8 ns t9 Data to cpu_rdy_ndtack delay -- cpu_d[15:0] valid to cpu_rdy_ndtack asserted upclk - 4 t10 Data output hold -- cpu_cs or cpu_rd_ds de-asserted to 0 cpu_d[15:0] invalid t11 cpu_r/w high to both cpu_cs and cpu_ds asserted 0 ns t12 cpu_cs or cpu_ds high to cpu_r/w low 0 ns ns 12 ns See Table 205, ns “t5 Read Access Times,” on page 177. Table 204 - Non-Multiplexed CPU Interface - Motorola Mode 176 ns ns 10 ns MT90502 Preliminary Datasheet Symbol Description Burst Length (read only) Max Unit t5 Register and internal memory access 1-word 740 ns t5 SSRAM 1-word 1.07 µs t5 SSRAM 8-words 1.44 µs t5 SSRAM 128-words 8.78 µs t5 SDRAM 1-word 1.16 µs t5 SDRAM 8-words 2.32 µs t5 SDRAM 128-words 24.9 µs Table 205 - t5 Read Access Times write_access_active (when both CS and WR are low) t15 t2_muxed t1_muxed cpu_ale t17 t16 t1_writes addr cpu_d[15:0] data t2_writes2 t5 t4 t6 t2_writes1 cpu_rdy_ndtack Figure 75 - Multiplexed CPU Interface - Intel Mode - Write Access 177 MT90502 Preliminary Datasheet Symbol Description Min Typical Max Unit t1_muxed write_access_active falling edge to cpu_ale fall 2 * upclk - 4 ns t1_writes write_access_active falling edge to cpu_d valid 2 * upclk - 4 ns t2_muxed cpu_rdy_ndtack rising edge to cpu_ale rising edge 0 ns t2_writes1 cpu_rdy_ndtack rising edge to write_access_active rising edge 0 ns t2_writes2 cpu_rdy_ndtack rising edge to cpu_d invalid 0 ns t4 write_access_active falling edge to cpu_rdy_ndtack falling edge 0 12 ns t5 Write Access Time 740 ns t6 write_access_active rising edge to cpu_rdy_ndtack tri-state 0 10 ns t15 cpu_ale high pulse width 5 ns t16 cpu_d valid to cpu_ale falling edge 5 ns t17 cpu_ale falling edge to cpu_d invalid 5 ns Table 206 - Multiplexed CPU Interface - Intel Mode - Write Access read_access_active (when both CS and RD are low) t15 t2_muxed t1 cpu_ale t17 t16 t8 cpu_d[15:0] t6 t5 t4 t13 t2_reads cpu_rdy_ndtack Figure 76 - Multiplexed CPU Interface - Intel Mode - Read Access Symbol t1 Description Min Typical read_access_active falling edge to cpu_ale fall Max Unit 2 * upclk - 4 ns t2_muxed cpu_rdy_ndtack rising edge to cpu_ale rising edge 0 ns t2_reads cpu_rdy_ndtack rising edge to read_access_active rising edge 0 ns t4 read_access_active falling edge to cpu_rdy_ndtack falling edge t5 Read Access Time 0 Table 207 - Multiplexed CPU Interface - Intel Mode - Read Access 178 12 see Table 205 ns MT90502 Preliminary Datasheet t6 read_access_active rising edge to cpu_rdy_ndtack tri-state 0 t8 read_access_active falling edge to cpu_d driven t13 cpu_d valid to cpu_rdy_ndtack rising edge t15 10 ns 3 * upclk - 4 ns upclk - 4 ns cpu_ale high pulse width 5 ns t16 cpu_d valid to cpu_ale falling edge 5 ns t17 cpu_ale falling edge to cpu_d invalid 5 ns Table 207 - Multiplexed CPU Interface - Intel Mode - Read Access (continued) write_access_active (when all CS, R/W and DS are low) t15 t3_muxed t1_muxed cpu_ale t17 t16 t1_writes cpu_d[15:0] t11 t3_writes2 t9 t5 t3_writes1 t10 cpu_rdy_ndtack Figure 77 - Multiplexed CPU Interface - Motorola Mode - Write Access Symbol Description Min Typical Max Unit t1_muxed write_access_active falling edge to cpu_ale fall 2 * upclk - 4 ns t1_writes write_access_active falling edge to cpu_d valid 2 * upclk - 4 ns t3_muxed cpu_rdy_ndtack falling edge to cpu_ale rising edge 0 ns t3_writes1 cpu_rdy_ndtack falling edge to write_access_active rising edge 0 ns t3_writes2 cpu_rdy_ndtack falling edge to cpu_d invalid 0 ns t5 Write Access Time 740 ns t9 write_access_active falling edge to cpu_rdy_ndtack driven high 0 12 ns t10 write_access_active rising edge to cpu_rdy_ndtack rising edge 0 10 ns t11 cpu_rdy_ndtack rising edge to cpu_rdy_ndtack tri-state 2 8 ns t15 cpu_ale high pulse width 5 ns t16 cpu_d valid to cpu_ale falling edge 5 ns t17 cpu_ale falling edge to cpu_d invalid 5 ns Table 208 - Multiplexed CPU Interface - Motorola Mode - Write Access 179 MT90502 Preliminary Datasheet read_access_active (when both CS, DS are low and R/W is high) t15 t3_muxed t1 cpu_ale t17 t12 t16 t8 cpu_d[15:0] t5 t9 t11 t14 t10 t3_reads cpu_rdy_ndtack Figure 78 - Multiplexed CPU Interface - Motorola Mode - Read Access Symbol t1 Description Min read_access_active falling edge to cpu_ale fall Typical Max Unit 2 * upclk - 4 ns t3_muxed cpu_rdy_ndtack falling edge to cpu_ale rising edge 0 ns t3_reads cpu_rdy_ndtack falling edge to read_access_active rising edge 0 ns t5 Read Access Time see Table 205 t8 read_access_active falling edge to cpu_d driven t9 read_access_active falling edge to cpu_rdy_ndtack driven high 0 12 ns t10 read_access_active rising edge to cpu_rdy_ndtack rising edge 0 10 ns t11 cpu_rdy_ndtack rising edge to cpu_rdy_ndtack tri-state 2 8 ns t15 cpu_ale high pulse width 5 ns t16 cpu_d valid to cpu_ale falling edge 5 ns t17 cpu_ale falling edge to cpu_d invalid 5 ns 3 * upclk - 4 Table 209 - Multiplexed CPU Interface - Motorola Mode - Read Access 180 ns MT90502 Preliminary Datasheet 4.3.1 UTOPIA Interface UTOPIA Timing {tx,rx}{a,b,c}_ clk t1 t2 input t3 t4 t5 t6 output Figure 79 - UTOPIA Timing Symbol Characteristics Min Type Max Units t1 Input setup time 4 ns t2 Input hold time 1 ns t3 Clock to data valid t4 Clock to data change 2 ns t5 Clock rising to signal driven 1 ns t6 Clock rising to signal tri-state 1 12 20 ns ns Table 210 - UTOPIA Timing 4.3.2 External Memory Interface mem_clk t1 t2 mem_*(input) t3 t5 t4 t6 mem_*(output) Figure 80 - External Memory Timing (both SSRAM and SDRAM) 181 MT90502 Symbol Preliminary Datasheet Characteristics Min Type Max Units t1 Input setup time 2 ns t2 Input hold time 0 ns t3 Clock to data valid t4 Clock to data change t5 Clock rising to signal driven t6 Clock rising to signal tri-state 8.30 Load ns 50 pF 2 ns 50 pF 2 ns 10 ns Table 211 - External Memory Timing 4.3.3 H.100/H.110 Interface ct_c8 t4 t3 cd_d(1/2_cycle) t2 t1 cd_d(3/4_cycle) t5 t6 cd_d(4/4_cycle) Figure 81 - H.100/H.110 Timing - H.100 Input Sampling Symbol Description t1 ct_c8 rise to ct_d valid t2 ct_c8 rise to ct_d invalid t3 Min Typical Unit 69 ns 102 ns ct_d valid to ct_c8 fall 3 ns t4 ct_c8 fall to ct_d invalid 1 ns t5 ct_d valid to ct_c8 rise 5 ns t6 ct_c8 rise to ct_d invalid 0 ns Table 212 - H.100/H.110 Timing - H.100 Input Sampling 182 Max MT90502 Preliminary Datasheet ct_c8 t10 cd_d(valid data to early tri-state) t11 t14 t12 cd_d(valid data to valid data) t13 cd_d(tri-state to valid data) Figure 82 - H.100/H.110 Timing - H.100 Output Symbol Description Min Typical Max Unit Load 122 ns 200 pf t10 ct_c8 rise to ct_d tri-state t11 ct_c8 rise to ct_d invalid 102 ns 200 pf t12 ct_c8 rise to ct_d invalid 2 ns 200 pf t13 ct_c8 rise to ct_d driven 2 ns 200 pf t14 ct_c8 rise to ct_d valid ns 200 pf 22 Table 213 - H.100/H.110 Timing - H.100 Output ct_c8 t20 t21 ct_frame Figure 83 - H.100/H.110 Timing - H.100 Frame Sampling Symbol Description Min Typical Max Unit t20 ct_frame valid to ct_c8 rise 5 ns t21 ct_c8 rise to ct_frame invalid 5 ns Table 214 - H.100/H.110 Timing - H.100 Frame Sampling 183 MT90502 Preliminary Datasheet t31 t30 ct_c8 ct_frame mc_clock H.100 Message Channel Clock t40 t41 mc_tx ct_mc H.100 Message Transmission Delay t50 ct_mc mc_rx H.100 Message Reception Delay Figure 84 - H.100/H.110 Message Timing Symbol Description Min Typical Unit Load t30 ct_c8 rise to mc_clock rise 15 ns t31 ct_c8 fall to mc_clock fall 15 ns t40 mc_tx fall to ct_mc low 3 15 ns 200 pf t41 mc_tx rise to ct_mc tri-state 3 15 ns 200 pf t50 ct_mc fall to mc_rx fall 3 15 ns Table 215 - H.100/H.110 Message Timing 184 Max MT90502 Preliminary Datasheet H.100 Clock Skew (when chip is Master) t60 ct_c8_a ct_c8_b ct_frame_a ct_frame_b c2 c4 sclk sclkx2 frcomp c16+ c16- Figure 85 - H.100/H.110 Clock Skew Symbol Description t60 maximum skew when signals generated by MT90502 Min Typical Max Unit Load 5 ns 200 pF Table 216 - H.100/H.110 Clock Skew Table 185 MT90502 5.0 Glossary of Terminology 5.1 Standard Terms and Abbreviations Preliminary Datasheet AAL0: ATM Adaptation Layer 0. AAL0 is a straight packaging of 48 bytes of data within an ATM cell. AAL0 can be used to treat either data cells (managed by CPU) or CBR cells (managed by TX SAR and RX SAR). AAL2: ATM Adaptation Layer 2. AAL2 is used to transport constant bit rate (CBR) and variable bit rate (VBR) data on ATM. AAL2 cells are made up of AAL2 CPS-Packets of different lengths containing different kinds of data. ADPCM: Adaptive Differential Pulse Code Modulation. ADPCM is a compression standard that allows the encoding of PCM data at rates of 40, 32, 24 and 16 kbps. CBR: Constant Bit Rate. CBR data means that cells on that particular channel are sent out at a regular rate. CBR is applicable to voice channels. CRC: Cyclic Redundancy Check. The CRC is a method of error detection and correction that is applied to a certain field of data. CRC is an efficient method of error detection because the odds of erroneously detecting a correct payload are low. FIFO: First In, First Out. A FIFO memory is one in which the first byte to have been written into the memory is the first one to be read from the read port. GFC: Generic Flow Control. The GFC field is kept in the 4 highest bits of an ATM cell’s header and is used for local functions (not carried end-to-end). The default value is “0000”, meaning that GFC protocol is not enforced. H.100/H.110: A TDM bus standard developed by ECTF to provide backward compatibility to existing TDM busses with more bandwidth and potential for development. HDLC: High-level Data Link Control. An encapsulation protocol that defines specific bit patterns as de-limiters and thus allows transmission of data over a serial link. In the MT90502, HDLC is used to carry variable-length packets on the H.100/H.110 bus. OC-3: Optical Carrier level-3. A SONET channel that carries a bandwidth of 155.55 Mbps. PCM: Pulse Code Modulation. PCM is the basic method of encoding an analog voice signal into digital form. PHY: PHYsical layer. The bottom layer of the ATM Reference Model, it provides ATM cell transmission over the physical interfaces that interconnect the various ATM devices. PLL: Phase Lock Loop. A phase lock loop is a component that generates an output clock by synchronizing itself to an input clock. PLLs are often used to multiply the frequency of clocks. RAM: Random Access Memory. RAM is the main memory in the computer. It is called “random” because any random address can be accessed in an equal amount of time. SAR: Segmentation And Reassembly. Method of partitioning, at the source, frames into ATM cells and reassembling, at the destination, these cells back into information frames. SAR is the lower sub-layer of the AAL which inserts data from the information frames into cells and then add the required header, trailer, and/or padding bytes to create 48-byte payloads to be transmitted to the ATM layer. TDM: Time Division Multiplexing. TDM busses carry voice data divided according to frames. In a single 125 us frame, the TDM bus will have carried one byte from each channel it contains. UTOPIA: Universal Test and Operations PHY Interface for ATM. A PHY-level interface to provide connectivity between ATM components. VC: Virtual Circuit. VCs define a point-to-point connection between two nodes in a network. A single ATM cell carries data that belongs to a single VC. VCI: Virtual Channel Identifier. This is the label given to an ATM VC to identify it and determine its destination. The VCI is a 16-bit number that is included in the header of an ATM cell. VPI: Virtual Path Identifier. A virtual path determines the way an ATM cell should be routed. The VPI is an 8-bit (in UNI) or 12-bit (in NNI) number that is included in the header of an ATM cell. 186 Preliminary Datasheet 5.2 MT90502 Terms specific to AAL2 CID: Channel IDentifier. The CID is an 8-bit field that identifies an AAL2 CPS-Packet and determines which of the 255 AAL2 channels on this VC it belongs to. The value of 00h is illegal for the CID, values 01h to 07h are denoted as reserved for use by the AAL type 2. EDU: Encoding Data Unit. A group of 8 PCM bytes or 8 ADPCM samples that represent 1 ms of voice traffic. The size of every PCM or ADPCM CPS-Packet sent on AAL2 is an integer number of EDUs. LI: Length Indicator. The LI is a 6-bit field encoded with a value that is one less than the number of octets in the CPS-Packet Payload portion of a CPS-Packet. SID: Silent Insertion Descriptor. A SID CPS-Packet is an AAL2 CPS-Packet containing a single byte of payload that is inserted when a valid CPS-Packet has been suppressed because it was silent. The payload byte indicates the energy level of the voice that was suppressed. UUI: User-to-User Indication. The UUI is a 5-bit field contained within the AAL2 header that is used to indicate the type of an AAL2 CPS-Packet. When indicating voice data, the UUI is often used as a 4-bit sequence number. 5.3 Terms specific to this specification AAL2 Channel: Any sub-channel carried by an AAL2 VC. An AAL2 channel is uniquely identified by its CID and the VPI/VCI of the VC it belongs to. AAL2 CPS-Packet: A CPS-Packet contained within one or many AAL2 cells. AAL2 CPS-Packets contain 3 bytes of overhead (including CID, LI, UUI and HEC) and from 1 to 64 bytes of payload. Because of this 64-byte maximum, they can straddle many cells. Also known as CPS-packet. HDLC Stream: A group of HDLC channels that are carried over the same time slots. HDLC CPS-Packets in streams have an address byte that indicates to which HDLC channel they belong. Usually, HDLC streams carry a series of channels communicating to and from the same agent (e.g. a DSP). HDLC Streams must be carried over a single H.100 stream and over one or multiple consecutive time slots on that stream. HDLC channel: An HDLC channel carries CPS-Packets destined to the same AAL2 channel. All CPS-Packets of an HDLC channel are carried by the same HDLC stream. PDV: Packet Delay Variation. AAL2 CPS-Packets arrive with a certain delay with respect to when they were sent. PDV is a measure of how much that delay varies on an AAL2 channel. PDV measures the peak-to-peak packet delay throughout the network. PDV is only relevant on CBR connections. Time Slot: In this document, the term time slot is often used to define a combination of a time slot and a stream on the H.100 bus. Thus a time slot would represent a single 8-bit slot every 125 us on the TDM bus. 5.4 Register types CNT: Counter. Events in the MT90502 will cause the counter to increment. CRL: Counter Roll-Over: This bit indicates its respect counter has wrapped. IE: Interrupt Enable. This is a register bit that enables a status event to generate an interrupt. This bit is always active-high. PC: Process Control bit. This is a register bit type that is written to ‘1’ to initiate a hardware process. When the process completes, the hardware clears the bit. PUL: Pulse. This bit is used to set an event. Setting this bit, creates a pulse in the MT90502 of 1 clock period. The hardware then clears this bit. 187 MT90502 Preliminary Datasheet RO: Read Only. This serves to define registers that cannot be written to by the CPU. ROL: Read Only Latch. This defines status bits. Status bits cannot be written to ‘1’ by the CPU; however, once the status bit is set, the CPU can clear it by writing a ‘1’ over it. RW: Read Write. This type of register bit will be readable and writable by the CPU. TS: Test Status. This type is for test purposes only and should not be written by the user. WO: Write Only. This type of register bit is writable by the CPU. The value read back by the CPU may not reflect the true value of the bit. 5.5 Units and Conventions All numbers in this document are decimal unless otherwise specified. Hexadecimal numbers can be identified by the ‘h’ suffix (e.g. 00A5h). Binary numbers are either in double quotes for multiple bits or in single quotes for individual bits (e.g. “1001”, ‘0’). All addresses are specified in hexadecimal and point to bytes. Addresses are converted from bytes to words to double words using the little endian format, unless otherwise specified. 188 MT90502 Preliminary Datasheet Mechanical Drawing D A1 Corner D1 A1 Ball Pad Indicator E1 E Top View A2 A1 Seating Plane Side View A A1 Corner Dimension Min Max A 1.92 (2.12) 2.32 (2.54) A1 0.50 0.70 A2 1.12 1.22 D D1 E E1 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 30.70 35.00 BSC 30.00 30.70 I 1.625 REF J 1.625 REF b b 0.60 AB AC AD AE AF 0.90 e 1.27 BSC N 456 3 2 1 B C D E F G H J K L M N P R T U V W Y AA 35.00 BSC 30.00 4 A e 6.0 J e 2 Layers (4 Layers) I BOTTOM VIEW Figure 86 - MT90502 Package Outline Drawing (456 PBGA) 189 MT90502 190 Preliminary Datasheet For more information about all Zarlink products visit our Web Site at www.zarlink.com Information relating to products and services furnished herein by Zarlink Semiconductor Inc. or its subsidiaries (collectively “Zarlink”) is believed to be reliable. However, Zarlink assumes no liability for errors that may appear in this publication, or for liability otherwise arising from the application or use of any such information, product or service or for any infringement of patents or other intellectual property rights owned by third parties which may result from such application or use. Neither the supply of such information or purchase of product or service conveys any license, either express or implied, under patents or other intellectual property rights owned by Zarlink or licensed from third parties by Zarlink, whatsoever. Purchasers of products are also hereby notified that the use of product in certain ways or in combination with Zarlink, or non-Zarlink furnished goods or services may infringe patents or other intellectual property rights owned by Zarlink. This publication is issued to provide information only and (unless agreed by Zarlink in writing) may not be used, applied or reproduced for any purpose nor form part of any order or contract nor to be regarded as a representation relating to the products or services concerned. The products, their specifications, services and other information appearing in this publication are subject to change by Zarlink without notice. No warranty or guarantee express or implied is made regarding the capability, performance or suitability of any product or service. Information concerning possible methods of use is provided as a guide only and does not constitute any guarantee that such methods of use will be satisfactory in a specific piece of equipment. It is the user’s responsibility to fully determine the performance and suitability of any equipment using such information and to ensure that any publication or data used is up to date and has not been superseded. Manufacturing does not necessarily include testing of all functions or parameters. These products are not suitable for use in any medical products whose failure to perform may result in significant injury or death to the user. All products and materials are sold and services provided subject to Zarlink’s conditions of sale which are available on request. Purchase of Zarlink’s I2C components conveys a licence under the Philips I2C Patent rights to use these components in and I2C System, provided that the system conforms to the I2C Standard Specification as defined by Philips. Zarlink, ZL and the Zarlink Semiconductor logo are trademarks of Zarlink Semiconductor Inc. Copyright Zarlink Semiconductor Inc. All Rights Reserved. TECHNICAL DOCUMENTATION - NOT FOR RESALE