CMX983 CML Microcircuits COMMUNICATION SEMICONDUCTORS Analogue Front End (AFE) for Digital Radio D/983/6 June 2015 Advance Information Features Rx channel Two 16-bit Σ-Δ A/D Converters Programmable Channel Filter Tx Channel Two 14-bit Σ-Δ D/A Converters Programmable Channel Filter RF Support Two 2.1GHz Fractional-N Synthesisers Auxiliary Functions 10-bit A/D Converter supporting 10 inputs Five Analogue Comparators 10-bit D/A Converters driving 9 outputs DSP Interface C-BUS Control and Configuration Port Fast Serial Interface for Rx/Tx Data 2015 CML Microsystems Plc Duplex and Half duplex operation Direct connection to: CMX998 Cartesian Loop Transmitter CMX994 Direct Conversion Receiver Low power operation 3.3V and 1.8v supplies Small 64-pin VQFN Package Applications Software Defined Radio (SDR) Satellite Communication Wireless Data Terminals Digital PMR/LMR Radio TETRA DMR PDT Analogue Front End (AFE) for Digital Radio 1 CMX983 Brief Description The CMX983 is an Analogue Front End (AFE) IC that bridges the gap between a digital radio’s RF section and the DSP. Specifically designed to meet the needs of a Software Designed Radio (SDR), the CMX983 performs critical DSP-intensive functions, provides dual channel analogue to digital and digital to analogue conversion, includes two RF fractional-N synthesisers, and embeds a host of auxiliary ADCs and DACs for use within the radio system. The CMX983 meets the low operating power requirements of SDR-based terminals and is powered from separate 3.3V and 1.8V power supplies. A facility is provided to allow the PLL charge pumps to be operated at up to 5V, providing low noise operation. The device is available in a small 64-lead VQFN package. 2015 CML Microsystems Plc 2 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 CONTENTS Section Page 1 Brief Description ..................................................................................................... 2 2 Block Diagram ........................................................................................................ 7 3 General Description ............................................................................................... 8 4 Pin and Signal List ................................................................................................. 9 5 External Components........................................................................................... 13 6 6.1 6.2 6.3 6.4 C-BUS Interface ................................................................................................... 16 C-BUS Operation ........................................................................................... 16 C-BUS Register Details ................................................................................. 18 C-BUS General Reset ................................................................................... 19 C-BUS Status and Interrupt ........................................................................... 20 7 Bias Generator ..................................................................................................... 22 8 System Clock Generator ...................................................................................... 23 9 9.1 9.2 Receive Channel .................................................................................................. 26 Rx Signal Routing and ADCs ........................................................................ 26 Receive Channel Filters ................................................................................ 29 10 Transmit Channel ................................................................................................. 37 11 Serial Ports ........................................................................................................... 44 11.1 Rx Serial Port ................................................................................................ 44 11.2 Tx Serial Port ................................................................................................. 47 12 Fractional-N Frequency Synthesizers .................................................................. 49 12.1 Register Loading Order ................................................................................. 57 12.2 Fractional-N Programming Examples ........................................................... 57 12.3 Lock Detector Configuration Guidelines ........................................................ 58 12.3.1 Digital Lock Detector ............................................................................... 59 12.3.2 Analogue Lock Detector .......................................................................... 60 13 Auxiliary ADC and Comparators .......................................................................... 63 13.1 Auxiliary ADC ................................................................................................ 64 13.2 Auxiliary Comparators ................................................................................... 70 14 Auxiliary DACs ..................................................................................................... 72 15 Performance Specification ................................................................................... 76 15.1 Absolute Maximum Ratings ........................................................................... 76 15.2 Operating Limits ............................................................................................ 76 15.3 Operating Characteristics .............................................................................. 77 15.4 Timing Diagrams ........................................................................................... 83 2015 CML Microsystems Plc 3 D/983/6 Analogue Front End (AFE) for Digital Radio 15.5 CMX983 Typical Performance Characteristics ............................................................. 85 16 Packaging ............................................................................................................ 93 Table Table 1 Table 2 Table 3 Table 4 Page Pin and Signal List .............................................................................................. 10 Definition of Power Supply and Reference Voltages .......................................... 12 C-BUS Register Map .......................................................................................... 19 Operational Characteristics - Test Conditions .................................................... 77 Figure Page Figure 1 Block Diagram...................................................................................................... 7 Figure 2 CMX983Q1 Pin Arrangement (top view) ............................................................. 9 Figure 3 Recommended External Components - General............................................... 13 Figure 4 Power Supply Decoupling .................................................................................. 14 Figure 5 Recommended External Components – Rx Inputs ........................................... 15 Figure 6 Recommended External Components – Tx Outputs ......................................... 15 Figure 7 Basic C-BUS Transactions ................................................................................ 16 Figure 8 C-BUS Data-streaming Operation ..................................................................... 17 Figure 9 C-BUS Status and Interrupt ............................................................................... 20 Figure 10 Bias Voltage Generator ................................................................................... 22 Figure 11 System Clock Generator .................................................................................. 23 Figure 12 Rx Input Switching ........................................................................................... 26 Figure 13 Rx Channel Filters ........................................................................................... 29 Figure 14 Tx Channel A and B ......................................................................................... 37 Figure 15 Rx Serial Port ................................................................................................... 44 Figure 16 Rx Port Timing (Channel A and B both selected) ............................................ 44 Figure 17 Rx Port Timing (Channel B only selected) ....................................................... 45 Figure 18 Tx Serial Port ................................................................................................... 47 Figure 19 Tx Port Timing (Channel A and B both selected) ............................................ 47 Figure 20 Tx Port Timing (Channel B only selected) ....................................................... 48 Figure 21 Fractional-N Frequency Synthesizer ............................................................... 49 Figure 22 Digital Lock Detector ........................................................................................ 59 Figure 23 Digital Lock Detector State Transitions ........................................................... 60 Figure 24 Analogue Lock Detector .................................................................................. 61 Figure 25 Auxiliary ADC and Comparators ...................................................................... 63 Figure 26 Auxiliary ADC Threshold Trigger Range ......................................................... 68 Figure 27 Comparator and Threshold Status Flag .......................................................... 71 Figure 28 Auxiliary DACs ................................................................................................. 72 Figure 29 Aux DAC RAM contents example .................................................................... 75 Figure 30 AC Test Load for Digital Outputs ..................................................................... 83 Figure 31 C-BUS Timings ................................................................................................ 83 Figure 32 Serial Port Timings .......................................................................................... 84 Figure 33 ADC SINAD vs. Input Level ............................................................................. 85 2015 CML Microsystems Plc 4 D/983/6 Analogue Front End (AFE) for Digital Radio Figure 34 Figure 35 Figure 36 Figure 37 Figure 38 Figure 39 Figure 40 Figure 41 Figure 42 Figure 43 Figure 44 Figure 45 CMX983 ADC SFDR vs. Input Level .............................................................................. 85 ADC Two Tone Test ........................................................................................ 86 DAC SINAD vs. Input Code Level ................................................................... 87 DAC SFDR vs. Input Code Level..................................................................... 87 PLL1 Output Spectra ....................................................................................... 88 PLL1 Lock Time ............................................................................................... 89 PLL1 Indicated Lock Time vs. Fast Lock Current (965 to 875.525 MHz) ........ 89 PLL2 Output Spectra ....................................................................................... 90 PLL2 Lock Time ............................................................................................... 91 PLL2 Indicated Lock Time vs. Fast Lock Current (2125 to 2043 MHz) ........... 91 Relative Performance of PLL Options ............................................................. 92 64-lead VQFN Mechanical Outline: Order as part no. CMX983Q1 ................. 93 It is always recommended that you check for the latest product datasheet version from the Datasheets page of the CML website: [www.cmlmicro.com]. 2015 CML Microsystems Plc 5 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 History Version 6 5 4 3 2 1 Changes Section 15.3 (Operating Characteristics), Synthesiser 1 and 2, RF Input Sensitivity: Note 12 added, providing additional clarification and qualification to the stated figures. Section 15.5 – Typical Performance Characteristics added Section 12 – Diagram modified, advice regarding connection to single ended VCO added Section 12 – PLL1_CON and PLL2_CON bits 13-11 description expanded Section 12 – PLL1_FLCK and PLL2_FLCK bits 1-0 description expanded Section 12 – PLL1_BLEED and PLL2_BLEED guidelines added Section 12.2 – References to modulator type corrected Section 12.3, 12.3.1, 12.3.2 – lock detector configuration guidelines added Section 15 – Performance Specification: corrections made New title for device and datasheet Front page – features, applications and system diagram replaced Brief Description and General Description rewritten Section 12 – Frac-N Synthesisers: expanded to include mode select options Section 12 – PLL1_BLEED - $51: 8-bit Write and PLL2_BLEED - $5A: 8-bit Write registers added Section 12 – PLL_CFG - $CE: 16-bit Write register added Section 13, Figure 22 edited to show alternate routing for AuxADC Channels 6 and 7 Section 15 – Performance Specification: entire section rewritten to include data from Evaluation testing Front page applications list added and brief description updated, addition of 2 extra AuxADC inputs, PLL Lock Detect output, clarification of PLL status and the application of RESETN, standardisation of power supply nomenclature. First release, Advance Information 2015 CML Microsystems Plc 6 Date th 30 June 2015 th 28 Nov 2014 nd 22 Sept 2014 th 6 May 2014 nd 2 Aug 2013 th 20 May 2013 D/983/6 Analogue Front End (AFE) for Digital Radio 2 CMX983 Block Diagram RX CALI CALQ IRXN I Input Switch IRXP Σ-Δ ADC Q QRXP Serial Ports sincN/ decimate 128 tap FIR/ decimate sincN/ decimate 128 tap FIR/ decimate Upsample/ hold Upsample/ interpolate Upsample/ hold Upsample/ interpolate Σ-Δ ADC QRXN Serial Port Rx RXCLK RXFS RXD Serial Port Tx TXCLK TXFS TXD TX I ITXP Σ-Δ DAC ITXN Q QTXP Σ-Δ DAC QTXN RF1VDD (1.8V) RF1P RF1N CP1 CP1VDD (<5.0V) FLCK1 PLL1 Frac-N divider Charge pump Phase detect Ref clock 1 * AVSS is connected directly to the metal pad on the underside of the package CLK RF2VDD (1.8V) RF2P RF2N CP2 CP2VDD (<5.0V) FLCK2 x2 x2 x2 x2 x4 Master CLK div MCLK RESETN PLL2 Frac-N divider Charge pump C-BUS Configuration and Control Phase detect DVDD (1.8V) DVSS IOVDD (3.3V) IOVSS AVDD (3.3V) AVSS* Ref clock 2 SCLK CSN CDATA RDATA IRQN Bias RXI RXQ Aux ADC Mux AUXADC5 + - AUXADC3 + - AUXADC2 + - AUXADC1 + - AUXADC0 Voltage reference VBIAS VBBUF Aux DAC Latch AUXADC4 + - + - Aux ADC & Comparators Ramp RAM 9x Aux DAC AUXDAC8 AUXDAC7 AUXDAC6 AUXDAC5 AUXDAC4 AUXDAC3 AUXDAC2 AUXDAC1 AUXDAC0 Figure 1 Block Diagram 2015 CML Microsystems Plc 7 D/983/6 Analogue Front End (AFE) for Digital Radio 3 CMX983 General Description The CMX983 is an Analogue Front End (AFE) for a DSP used in Software Defined Radio systems and acts as a bridge between the analogue and digital sections of advanced digital radio systems. The device also performs critical DSP-intensive functions with low operating power thereby reducing the overall system power consumption. The receive path accepts differential analogue baseband I/Q signals. These are converted to digital, decimated and passed through programmable FIR channel filters to simplify host DSP processing and data extraction. The transmit path accepts digital I/Q data streams. These are up-sampled, interpolated and converted to analogue format, then driven off-chip for external up-conversion and transmission. Two fractional-N RF synthesisers are provided which are capable of operating with external VCOs of up to 2.1GHz. These have the advantage, over integer-N synthesisers, of allowing a higher PLL reference frequency, which gives improved noise performance and agility. The fractional modulator can be configured for either 16-bit or 24-bit operation, enabling very fine frequency resolution. The synthesisers also include a fast-lock feature that helps minimise lock time when switching channels and provides an indication of when lock is achieved. An auxiliary ADC (with multiplexed inputs) and a number of auxiliary DACs are included for control and measurement functions such as AFC, AGC and RSSI. The ADC has a digital threshold compare function, and one of the DACs has a programmable auto-ramping feature that is especially useful for controlling the rampup and ramp-down profile of the transmitter power amplifier. Five analogue comparators with programmable thresholds are provided; these share the auxiliary ADC input pins and give the user the option of sensing monitoring signals with very low power consumption. The CMX983 is clocked from a full-swing logic level, or by low-amplitude sine wave or clipped sine wave. This may be used directly as a reference source or fed to an on-chip PLL capable of generating a wide range of internal clock frequencies. The CMX983 is suitable for radio systems employing channel bandwidths up to 25kHz and is usable in satellite communication, high performance wireless data and professional two-way radio systems. The CMX983 features a high level of configurability, supporting numerous sample rates and filtering characteristics. This configurability enables a high level of functionality, integration and connectivity with RF building block ICs. The CMX983 connects seamlessly with CML’s CMX994 Direct Conversion Receiver and the CMX998 Cartesian Feedback Loop Transmitter, to provide a complete, small form factor, RF-to-digitised baseband solution operating at up to 1GHz. The Rx and Tx channels interface to the external DSP through dedicated fast serial ports. A separate C-BUS port is provided for general control and configuration of the CMX983, and a configurable interrupt generator may be used to minimise the load on the host processor. 2015 CML Microsystems Plc 8 D/983/6 Analogue Front End (AFE) for Digital Radio VBIAS 1 AVDD VBBUF CALQ CALI MCLK RF2VDD RF2N RF2P FLCK2 CP2 CP2VDD CP1VDD CP1 FLCK1 RF1N RF1P RF1VDD 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 Pin and Signal List ○ 48 RESETN 2 47 DVDD IRXP 3 46 DVSS IRXN 4 45 IRQN QRXP 5 44 CSN QRXN 6 43 CDATA AVDD 7 42 RDATA ITXP 8 41 SCLK ITXN 9 40 IOVDD QTXP 10 39 IOVSS QTXN 11 38 TXCLK AUXADC0 12 37 TXFS AUXADC1 13 36 TXD AUXADC2 14 35 RXCLK AUXADC3 15 34 RXFS AUXADC4 16 33 RXD 27 28 29 30 31 32 AUXDAC7 AUXDAC8 IOVSS IOVDD DVSS DVDD 23 AVDD 26 22 AUXDAC3 25 21 AUXDAC2 AUXDAC6 20 AUXDAC1 AUXDAC5 19 AUXDAC0 24 18 AVDD AUXDAC4 17 METAL PAD AUXADC5 4 CMX983 The exposed metal pad at the underside of the package must connect to AVSS Figure 2 CMX983Q1 Pin Arrangement (top view) 2015 CML Microsystems Plc 9 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Table 1 Pin and Signal List Package Q1 Pin Name Pin No. Type Signal Description 1 VBIAS O/P 2 AVDD PWR Analogue power (3.3V) 3 IRXP I/P I channel positive input 4 IRXN I/P I channel negative input 5 QRXP I/P Q channel positive input 6 QRXN I/P Q channel negative input 7 AVDD PWR 8 ITXP O/P Positive output for I channel 9 ITXN O/P Negative output for I channel 10 QTXP O/P Positive output for Q channel 11 QTXN O/P Negative output for Q channel 12 AUXADC0 I/P Auxiliary ADC 0 input 13 AUXADC1 I/P Auxiliary ADC 1 input 14 AUXADC2 I/P Auxiliary ADC 2 input 15 AUXADC3 I/P Auxiliary ADC 3 input 16 AUXADC4 I/P Auxiliary ADC 4 input 17 AUXADC5 I/P Auxiliary ADC 5 input 18 AVDD PWR Analogue power (3.3V) 19 AUXDAC0 O/P Auxiliary DAC 0 output 20 AUXDAC1 O/P Auxiliary DAC 1 output 21 AUXDAC2 O/P Auxiliary DAC 2 output 22 AUXDAC3 O/P Auxiliary DAC 3 output 23 AVDD PWR Analogue power (3.3V) 24 AUXDAC4 O/P Auxiliary DAC 4 output 25 AUXDAC5 O/P Auxiliary DAC 5 output 26 AUXDAC6 O/P Auxiliary DAC 6 output 27 AUXDAC7 O/P Auxiliary DAC 7 output (Auxiliary ADC 6 input can be selected) 28 AUXDAC8 O/P Auxiliary DAC 8 output (Auxiliary ADC 7 input can be selected) 29 IOVSS PWR IO driver ground (0V) 30 IOVDD PWR IO driver power (3.3V) 31 DVSS PWR Digital ground (0V) 32 33 DVDD RXD PWR O/P Core power (1.8V) Serial port receive data 34 RXFS O/P 2015 CML Microsystems Plc Internally generated bias voltage of VDDA/2 Analogue power (3.3V) Serial port receive frame sync 10 D/983/6 Analogue Front End (AFE) for Digital Radio Package Q1 Pin Name Pin No. CMX983 Type Signal Description 35 RXCLK O/P Serial port receive clock 36 TXD I/P Serial port transmit data 37 TXFS O/P Serial port transmit frame sync 38 TXCLK O/P Serial port transmit clock 39 IOVSS PWR IO driver ground (0V) 40 IOVDD PWR IO driver power (3.3V) 41 SCLK I/P C-BUS serial clock input from the µC 42 RDATA T/S C-BUS serial data output (3-state) to the µC 43 CDATA I/P C-BUS serial data input from the µC 44 CSN I/P C-BUS chip select input (active low) from the µC 45 IRQN O/P C-BUS interrupt request (open drain, active low) to the µC 46 DVSS PWR Digital ground (0V) 47 DVDD PWR Core power (1.8V) 48 RESETN I/P 49 RF1VDD PWR 50 RF1P I/P PLL1 VCO positive input 51 RF1N I/P PLL1 VCO negative input 52 FLCK1 O/P PLL1 fast-lock output 53 CP1 O/P PLL1 charge pump output 54 CP1VDD PWR PLL1 charge pump input supply 55 CP2VDD PWR PLL2 charge pump input supply 56 CP2 O/P PLL2 charge pump output 57 FLCK2 O/P PLL2 fast-lock output 58 RF2P I/P PLL2 VCO positive input 59 RF2N I/P PLL2 VCO negative input 60 RF2VDD PWR 61 MCLK I/P Master clock input 62 CALI I/P I channel test calibration input 63 CALQ I/P Q channel test calibration input 64 VBBUF O/P Buffered mid-rail reference voltage PAD AVSS PWR Device reset pin (active low) RF power (1.8V) RF power (1.8V) Analogue ground (0V) Signal Definitions Notes: I/P O/P BI = = = 2015 CML Microsystems Plc Input Output Bidirectional 11 D/983/6 Analogue Front End (AFE) for Digital Radio T/S PWR NC = = = CMX983 3-state Output Power Connection No Connection Table 2 Definition of Power Supply and Reference Voltages Signal Name Pins Usage VDD Analogue, AVDD AVDD 3.3V positive supply rail for the analogue circuits VBIAS VBIAS Internal analogue reference level, derived from AVDD VBBUF VBBUF Buffered mid-rail reference voltage (=AVDD /2) VDD RF, RF1VDD, RF2VDD RF1VDD, RF2VDD 1.8V positive supply rail for RF power VDD Charge Pump, CP1VDD, CP2VDD <5.0V positive supply rail for the Charge Pumps CP1VDD, CP2VDD VSS Analogue, AVSS AVSS Ground for all analogue circuits (central metal pad) IOVDD DVDD VSS Digital, DVSS 2015 CML Microsystems Plc IOVDD DVDD DVSS, IOVSS 3.3V positive supply rail for the I/O pads 1.8V positive supply rail for the digital core circuits Ground for all digital circuits 12 D/983/6 Analogue Front End (AFE) for Digital Radio 5 CMX983 External Components Figure 3 Recommended External Components - General C1 = (Qty = 4) C2 = C5, C7, C8, C9 = C16, C19 = 10nF 1nF 10nF 10nF (Qty = 4) C3 = (Qty = 4) C4 = C10 = C18, C20 = 1nF 3.9nF 100nF 10nF (Qty = 4) R3 = (Qty = 4) R4 = C11, C12, C13, C14 = C6, C15, C17 = 6.2kΩ 1.2kΩ 10nF 10µF Resistors ±5%, capacitors and inductors ±20%, in Figure 3 to Figure 6 inclusive, unless otherwise stated. 2015 CML Microsystems Plc 13 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Figure 4 Power Supply Decoupling To achieve good noise performance, VDD and VBIAS decoupling and protection of the receive path from extraneous in-band signals are very important. It is recommended that the printed circuit board is laid out with ground planes in the CMX983 area to provide a low impedance connection between the VSS pins and the VDD and VBIAS decoupling capacitors. 100nH inductors or 10Ω resistors, in combination with 10nF capacitors, should be used to decouple the power supplies, as shown in Figure 4. 2015 CML Microsystems Plc 14 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Differential I/Q Inputs and Outputs: Rx Inputs R4 IRXP C4 R4 IRXN Filter 1 R4 C4 QRXP C4 R4 QRXN C4 Figure 5 Recommended External Components – Rx Inputs Example values: R4 = 1.2k, C4 = 3.9nF (R4 x C4 time constant gives -3dB at 34kHz 10%) The anti-alias filter stage formed by R4 and C4 should have a low enough cutoff frequency to give adequate attenuation of unwanted signals near the main ADC clock frequency fCR1, but also have a high enough cutoff frequency to minimise the group delay variation within the passband in order to prevent intersymbol interference (ISI). If these conflicting requirements cannot be achieved simultaneously, then the filter should be designed to give adequate attenuation of the unwanted signals near f CR1, and compensation for the group delay variation should be applied in the Rx channel FIR filter. Alternatively, a higher order anti-alias filter with a flat group delay response could be used to replace components R4 and C4. In either case, positioning the anti-alias filter components close to the chip inputs may help to remove any pick-up from other noise sources. Tx Outputs R3 R3 QTXP ITXP C3 C3 R3 R3 QTXN ITXN C3 C3 Figure 6 Recommended External Components – Tx Outputs Example values: R3 = 22k, C3 = 68pF (R3 x C3 time constant should give -3dB at 106kHz 10%) nd For each transmit channel, the RC stage formed by R3 and C3 combine with the internal 2 -order continuous rd time filter to create a 3 -order Bessel filter with a -3dB cutoff frequency of approximately 80kHz. 2015 CML Microsystems Plc 15 D/983/6 Analogue Front End (AFE) for Digital Radio 6 CMX983 C-BUS Interface 6.1 C-BUS Operation This block provides for the transfer of data and control or status information between the CMX983 and the host processor over the C-BUS serial bus. Each transaction consists of a single register address byte sent from the host which may be followed by a data word sent from the host to be written into one of the C-BUS’s write-only registers, or a data word read out from one of the C-BUS’s read-only registers; all C-BUS data words are a multiple of 8 bits wide, the width depending on the source or destination register. Note that certain C-BUS transactions require only an address byte to be sent from the host, no data transfer being required. The operation of the C-BUS is illustrated in Figure 7. Data sent from the host on the CDATA (command data) line is clocked into the CMX983 on the rising edge of the SCLK input. Data sent from the CMX983 to the host on the RDATA (reply data) line is valid when SCLK is high. The CSN line must be held low during a data transfer and kept high between transfers. The C-BUS interface is compatible with most common µC serial interfaces and may also be easily implemented with general-purpose µC I/O pins controlled by a simple software routine. C-BUS single byte command (no data) CSN Note: The SCLK line may be high or low at the start and end of each transaction. SCLK CDATA 7 6 5 MSB RDATA 4 3 2 Address 1 0 LSB = Level not important Hi-Z C-BUS n-bit register write CSN SCLK CDATA 7 6 5 MSB RDATA 4 3 2 Address 1 4 3 2 Address 1 0 n-1 n-2 n-3 2 Write data 1 LSB MSB 0 LSB Hi-Z C-BUS n-bit register read CSN SCLK CDATA 7 6 5 MSB RDATA Hi-Z 0 LSB n-1 n-2 n-3 2 Read data MSB 1 0 LSB Figure 7 Basic C-BUS Transactions 2015 CML Microsystems Plc 16 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 To maximise data bandwidth across the C-BUS interface, some read and write registers are capable of datastreaming operation. This allows a single address byte to be followed by the transfer of multiple read or write data words, all within the same C-BUS transaction. This can significantly increase the transfer rate of large data blocks, as shown in Figure 8. Example of C-BUS data-streaming (8-bit write register) CSN SCLK CDATA RDATA 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Address First byte Second byte … 7 6 5 4 3 2 1 0 Last byte … 7 6 5 4 3 2 1 0 Last byte Hi-Z Example of C-BUS data-streaming (8-bit read register) CSN SCLK CDATA RDATA 7 6 5 4 3 2 1 0 Address Hi-Z 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 First byte Second byte Figure 8 C-BUS Data-streaming Operation 2015 CML Microsystems Plc 17 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 6.2 C-BUS Register Details A summary of the C-BUS addresses and registers is shown below. After power-up, the CMX983 must be reset using the RESETN pin before the C-BUS can be used. Then, before the internal system clock (CLK) is running, C-BUS accesses are limited to the GENRESET command, the STATUS register, and the clock control registers CLK_CON and CLKPLL_CON0/1. After CLK is running, indicated by STATUS register bit 7 going high, then the rest of the C-BUS registers can be accessed. C-BUS address $01 $08 $09 $10 $11 $12 $13 $14 $15 $1D $1E $1F $20 $21 $25 $26 $27 $28 $29 $2A $2B $2C $2D $2E $2F $30 $31 $34 $35 $36 $37 $38 C-BUS No. of Register name ► type data bits GENRESET Cmd STATUS Rd 8 INT_ENAB Wr 8 VBIAS_CON Wr 8 CLK_CON Wr 16 CLKPLL_CON0 Wr 16 CLKPLL_CON1 Wr 16 CLK_OFF Cmd CLK_ON Cmd RX_INPUT Wr 16 RX_OVF Wr 16 RX_CON0 Wr 8 RX_CON1 Wr 16 RX_CON2 Wr 16 RX_CON3 Wr 8 RX_VERNIER Wr 16 RX_BITSEL1 Wr 16 RX_BITSEL2 Wr 16 (DS) RX_COEFF0 Wr 16 (DS) RX_COEFF1 Wr 16 (DS) RX_COEFF2 Wr 16 (DS) RX_COEFF3 Wr 16 RX_ADDR Wr 8 RX_STATUS Rd 16 RX_ST_ENAB Wr 16 TX_CON0 Wr 8 TX_CON1 Wr 16 TX_CON2 Wr 16 TX_GAIN Wr 16 (DS) TX_COEFF0 Wr 16 (DS) TX_COEFF1 Wr 16 TX_ADDR Wr 8 2015 CML Microsystems Plc 18 C-BUS address $5C $5D $5E $5F $60 $61 $62 $63 $64 $65 $66 $67 $68 $69 $6A $6B $6C $6D $6E $6F $70 $71 $72 $73 $74 $75 $76 $77 $78 $79 $7A $7B C-BUS No. of Register name ► type data bits PLL2_IDIV Wr 16 PLL2_FDIV0 Wr 16 PLL2_FDIV1 Wr 8 PLL2_STATUS Rd 8 AUXADC_START Cmd AUXADC_ABORT Cmd AUXADC_CLK Wr 16 AUXADC_PWRUP Wr 16 AUXADC_CON Wr 16 AUXADC_THR0 Wr 16 AUXADC_THR1 Wr 16 AUXADC_THR2 Wr 16 AUXADC_THR3 Wr 16 AUXADC_THR4 Wr 16 AUXADC_THR5 Wr 16 AUXADC_THR6 Wr 16 AUXADC_THR7 Wr 16 AUXADC_STAT Rd 8 AUXADC_DATA0 Rd 16 AUXADC_DATA1 Rd 16 AUXADC_DATA2 Rd 16 AUXADC_DATA3 Rd 16 AUXADC_DATA4 Rd 16 AUXADC_DATA5 Rd 16 AUXADC_DATA6 Rd 16 AUXADC_DATA7 Rd 16 AUXCMP_CON0 Wr 8 AUXCMP_CON1 Wr 8 AUXCMP_CON2 Wr 8 AUXCMP_CON3 Wr 8 AUXCMP_CON4 Wr 8 AUXCMP_STAT Rd 8 D/983/6 Analogue Front End (AFE) for Digital Radio C-BUS address $39 $3A $40 $41 $48 $49 $4E $4F $50 $51 $52 $53 $54 $55 $56 $57 $58 $59 $5A $5B C-BUS No. of type data bits Rd 8 Wr 8 Wr 8 Wr 8 Wr 8 Wr 8 Wr 16 Wr 16 Wr 16 W 8 Wr 8 Wr 16 Wr 16 Wr 8 Rd 8 Wr 16 Wr 16 Wr 16 W 8 Wr 8 CMX983 Register name ► TX_STATUS TX_ST_ENAB RXPORT_CON0 RXPORT_CON1 TXPORT_CON0 TXPORT_CON1 PLL1_CON PLL1_LOCKDET PLL1_FLCK PLL1_BLEED PLL1_RDIV PLL1_IDIV PLL1_FDIV0 PLL1_FDIV1 PLL1_STATUS PLL2_CON PLL2_LOCKDET PLL2_FLCK PLL2_BLEED PLL2_RDIV C-BUS address $7C $82 $83 $84 $85 $86 $87 $88 $89 $8A $8B $8C $8D $8E $8F $90 $91 $CE C-BUS No. of type data bits Wr 8 Wr 16 (DS) Wr 16 Wr 8 Cmd Cmd Cmd Cmd Wr 16 Wr 16 Wr 16 Wr 16 Wr 16 Wr 16 Wr 16 Wr 16 Wr 16 W 16 Register name ► AUXCMP_ST_EN AUXDAC_CLK AUXDAC_RAMD AUXDAC_RAMA AUXDAC_UP AUXDAC_DOWN AUXDAC_CYCLE AUXDAC_RST AUXDAC_DATA0 AUXDAC_DATA1 AUXDAC_DATA2 AUXDAC_DATA3 AUXDAC_DATA4 AUXDAC_DATA5 AUXDAC_DATA6 AUXDAC_DATA7 AUXDAC_DATA8 PLL_CFG (DS) – These registers are capable of data-streaming transactions. Note: C-BUS locations not defined in the above table are reserved and must not be written to. Table 3 C-BUS Register Map 6.3 C-BUS General Reset The CMX983 can be reset using the C-BUS GENRESET command – this has the same result as resetting the device using the RESETN pin. After reset is applied, the CMX983 will stay in a quiescent state until the system clock generator is programmed (see section 8). GENRESET - $01 C-BUS command, no data required When the GENRESET command is sent from the host processor, the internal device reset is applied on the eighth rising edge of the SCLK pin and is released on the subsequent rising edge of CSN. 2015 CML Microsystems Plc 19 D/983/6 Analogue Front End (AFE) for Digital Radio 6.4 CMX983 C-BUS Status and Interrupt Figure 9 C-BUS Status and Interrupt The C-BUS STATUS register, shown in Figure 9, is a read-only register that contains the status of various circuits within the CMX983. The STATUS register can be polled by the host processor, or it can be interrupt driven: the interrupt pin IRQN will be asserted when any bit of the STATUS register is set to 1 and the associated bit in the INT_ENAB register is also set to 1. Enabling an interrupt by setting an INT_ENAB bit (0→1) after the corresponding STATUS register bit has already been set to 1 will also cause the IRQN output to be asserted. The IRQN pin is an active low open-drain output. STATUS - $08: 8-bit Read Reset value = $00 Bit: 7 6 5 4 3 2 1 0 Aux Aux AnaStartADC PLL2 PLL1 Rx Tx ADC logue up digital lock lock chan chan end of comp done comp status status status status conv status status STATUS b7: Startup done This status bit gets set to 1, if enabled, when the startup timer in the system clock generator has reached its endcount value. This indicates that it is safe to access the other C-BUS registers within the CMX983. This bit gets automatically cleared to 0 when it is read. STATUS b6: Aux ADC end of convert This bit gets set to 1 when an Aux ADC convert sequence completes, and automatically gets cleared to 0 when it is read. STATUS b5: Aux ADC digital comparator status This bit gets set to 1 if any of the bits in the AUXADC_STAT register are set to 1, indicating that one or more ADC conversion results were within the programmed threshold range. To clear this status bit, the AUXADC_STAT register must be read. 2015 CML Microsystems Plc 20 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 STATUS b4: Analogue comparator status This bit gets set to 1 if any of the bits in the AUXCMP_STAT register are set to 1 (indicating that an analogue comparator input has crossed its threshold) as long as the associated bit in the AUXCMP_ST_EN register is also set to 1. This status bit can be cleared either by reading the AUXCMP_STAT register or by clearing the associated enable bit(s) in the AUXCMP_ST_EN register. STATUS b3: PLL2 lock status This bit indicates the PLL2 lock status. It can only be cleared by clearing PLL2_STATUS bits 1-0 (see section 12 for details). STATUS b2: PLL1 lock status This bit indicates the PLL1 lock status It can only be cleared by clearing PLL1_STATUS bits 1-0 (see section 12 for details). STATUS b1: Rx channel status This bit gets set to 1 if any of the bits in the RX_STATUS register are set to 1 and the associated bit in the RX_ST_EN register is also set to 1. For details about clearing this bit, see section 9.2. STATUS b0: Tx channel status This bit gets set to 1 if any of the bits in the TX_STATUS register are set to 1 and the associated bit in the TX_ST_EN register is also set to 1. For details about clearing this bit, see section 10. INT_ENAB - $09: 8-bit Write Reset value = $80 Bit: 7 6 5 4 3 2 1 0 Interrupt enable INT_ENAB b7-0: Interrupt enable Setting any of these bits to 1 enables the corresponding bit in the STATUS register to generate an interrupt. This will cause the active-low open-drain IRQN pin to pull down. After a reset, bit 7 of this register will be high which allows a “startup done” interrupt to be generated. 2015 CML Microsystems Plc 21 D/983/6 Analogue Front End (AFE) for Digital Radio 7 CMX983 Bias Generator VBIAS_CON AVDD VBIAS enable 100kΩ Buffer enable + 100kΩ VBBUF - AVSS VBIAS To main ADC/DAC CEXT Figure 10 Bias Voltage Generator The bias generator provides a mid-rail reference voltage (AVDD/2) that is used by the main ADCs and DACs. An external decoupling capacitor is required on the VBIAS pin; no other connections should be made to this pin. A buffered version of the bias voltage, available on the VBBUF pin, can be used to drive external circuitry. VBIAS_CON - $10: 8-bit Write Reset value = $00 Bit: 7 6 5 4 3 2 0 0 0 0 0 0 1 0 VBIAS Buffer enab enab VBIAS_CON b7-2: Reserved, set to 0 VBIAS_CON b1: VBIAS enable Set to 1 to enable the mid-rail VBIAS generator – this must be done before using the main ADC or DAC channels. Set to 0 to disable and powersave the VBIAS generator. Note that the VBIAS voltage takes some time to settle, determined by the effective 50k source impedance and the value of the external capacitor CEXT. VBIAS_CON b0: Buffer enable Set to 1 to enable the VBIAS buffer amplifier. Set to 0 to disable and powersave the VBIAS buffer. When disabled, the VBBUF pin will go high impedance. 2015 CML Microsystems Plc 22 D/983/6 Analogue Front End (AFE) for Digital Radio 8 CMX983 System Clock Generator Figure 11 System Clock Generator The system clock generator buffers the MCLK input signal and generates the internal clocks required by the rest of the CMX983 circuitry. The MCLK pin can optionally be driven by a full swing logic level, or by the low amplitude sinewave or clipped sinewave that is typically output by a precision oscillator module. In the latter case, an internal low phase noise amplifier is used to convert the MCLK input signal to a full logic level. The buffered MCLK signal is used to directly drive the reference dividers in the two fractional-N synthesizers. The main system clock signal CLK is generated either by dividing down the MCLK signal, or by dividing down an internally generated PLL clock signal (if a non-integer related frequency is required). When the CMX983 comes out of reset the CLK signal is disabled, which prevents all C-BUS accesses except to the three system clock control registers (CLK_CON and CLKPLL_CON0/1), the STATUS register and the GENRESET command. The clock control registers must be configured directly after the CMX983 comes out of reset in order to start the CLK signal. If using the PLL, then CLKPLL_CON0 and CLKPLL_CON1 must be written first. Then when CLK_CON is written, the system clock generator powers up and begins operating. As part of the power up sequence, a startup delay timer ensures that the internal CLK signal is kept inactive until a programmable number of clock pulses have been generated by the clock divider – this gives the MCLK amplifier bias circuit and the PLL time to stabilise. A “startup done” status bit can optionally be generated to indicate that the startup delay timer has expired and that the CLK signal is active. Note that once the CLK_CON register has been written, all further changes to the three clock control registers are disabled until the CMX983 is reset again. CLK_CON - $11: 16-bit Write Reset value = $0000 Bit: 15 14 13 0 0 Enab startup done 12 11 10 9 8 Startup delay 7 6 5 4 Clock divide 3 2 1 0 Enab MCLK amp CLK_CON b15-14: Reserved, set to 0 2015 CML Microsystems Plc 23 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 CLK_CON b13: Enable startup done Set this bit to 1 to enable the “startup done” status bit. This status bit appears in the main STATUS register, and indicates to the host processor that the startup delay counter has timed out and the internal clock CLK is running. CLK_CON b12-8: Startup delay This value determines how long the system clock generator circuits are allowed to stabilise before the internal CLK signal is enabled. The delay time should be sufficient to allow the bias for the ACcoupled MCLK amplifier to settle and for the clock PLL to achieve lock, assuming these circuits are enabled. The startup delay counter is triggered immediately when CLK_CON is written, and counts output clock pulses from the clock divider. When the startup delay counter reaches its programmed endcount, the CLK signal is activated and, if CLK_CON bit 13 = 1, a startup interrupt is generated. Startup delay $00 $01 $02 $03 … $13 $14 $15 - $1F 0 Delay (cycles) = 2 (1) 1 Delay (cycles) = 2 (2) 2 Delay (cycles) = 2 (4) 3 Delay (cycles) = 2 (8) … 19 Delay (cycles) = 2 (524288) 20 Delay (cycles) = 2 (1048576) Illegal, do not use CLK_CON b7-1: Clock divide Sets the division ratio between MCLK (or PLLCLK) and the system clock CLK. This value can be set to between 1 and 128 (0000000 = 128). CLK_CON b0: Enable MCLK amplifier Set to 1 to enable the low-noise MCLK amplifier, for use when the MCLK signal is a low-amplitude sinewave or clipped sinewave. Set to 0 to disable the MCLK amplifier, for use when MCLK is a full swing logic level. Clock PLL registers Do not write to these registers if the clock PLL is not being used. CLKPLL_CON0 - $12: 16-bit Write Bit: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CLKPLL_CON1 - $13: 16-bit Write Bit: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 For assistance in using the clock PLL, please contact the Technical Support Team at CML. 2015 CML Microsystems Plc 24 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 CLK_OFF - $14 C-BUS command, no data required The CLK_OFF command causes the internal system clock CLK to stop, but leaves the MCLK amplifier and PLL (if either are being used) enabled. This command can be used during periods of device inactivity to save power, but allows CLK to be rapidly restarted using the CLK_ON command. After a CLK_OFF command all C-BUS accesses are prevented except for the GENRESET and CLK_ON commands. CLK_ON - $15 C-BUS command, no data required The CLK_ON command immediately starts the internal system clock CLK running after previously being stopped by the CLK_OFF command. 2015 CML Microsystems Plc 25 D/983/6 Analogue Front End (AFE) for Digital Radio 9 Receive Channel 9.1 Rx Signal Routing and ADCs CMX983 Figure 12 Rx Input Switching The I/Q inputs connect to the main ADCs through a signal switching block and programmable gain amplifiers as shown in Figure 12. The calibration inputs can be connected to the programmable gain amplifiers to assist with system setup. Each ADC is a fourth-order sigma-delta type that outputs a single-bit pulse density modulated bitstream to the following digital channel filters. Status bits are produced that indicate an input overload; these can be read from the RX_STATUS register (section 9.2). Each input requires an external anti-alias filter, although the high oversampling rate typically used by the sigma-delta modulator relaxes the design requirements of these filters. To achieve optimum performance, signals at the sampling frequency (typically around 2.4MHz) should be attenuated to -110dB or lower. Additionally, in order to reduce the complexity of the digital channel filters, the anti-alias filter may be able to usefully suppress signals at the first decimation rate. The outputs of the Rx A and Rx B programmable gain amplifiers are also connected to channels 6 and 7 of the Auxiliary ADC through differential-to-single-ended converters (see section 13). Enabling either differentialto-single-ended converter in the Auxiliary ADC automatically enables the associated Rx A or Rx B programmable gain amplifier, without also enabling that channel’s sigma-delta modulator. This feature can be used to implement a low power input signal level monitor during periods when the main Rx signal path is not active. 2015 CML Microsystems Plc 26 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 The following C-BUS registers control the signal routing, gain setting and overflow status of the two Rx input circuits: RX_INPUT - $1D: 16-bit Write Reset value = $0000 Bit: 15 14 Cal Rx B select enable 13 ADC B invert 12 11 10 9 8 Rx B gain (-12dB … 12dB, +mute) 7 6 5 0 Rx A enable ADC A invert 4 3 2 1 0 Rx A gain (-12dB … 12dB, +mute) RX_INPUT b15: Calibration select When this bit is set to 1 the calibration pin CALI is connected to channel A positive input, CALQ is connected to channel B positive input, and the mid-rail reference voltage VBIAS is buffered and applied to both the channel A and B negative inputs. Also, the Rx A and Rx B programmable gain amplifiers are automatically set to 0 dB while the calibration select bit is set to 1. RX_INPUT b14: Rx B enable Set to 1 to enable channel B gain stage and ADC modulator. RX_INPUT b13: ADC B invert Set to 1 to invert the channel B modulator output. RX_INPUT b12-8: Rx B gain Set channel B input gain to between -12dB and +12dB in 1dB steps, or mute the output. The gain setting is in 2’s complement format: 10000 = mute 10100 = -12.0dB 10101 = -11.0dB ... 11111 = -1.0dB 00000 = 0.0dB 00001 = 1.0dB ... 01011 = 11.0dB 01100 = 12.0dB RX_INPUT b7: Reserved, set to 0 RX_INPUT b6: Rx A enable Set to 1 to enable channel A gain stage and ADC modulator. RX_INPUT b5: ADC A invert Set to 1 to invert the channel A modulator output. RX_INPUT 4-0: Rx A gain Set channel A input gain, similar in operation to bits 12-8. 2015 CML Microsystems Plc 27 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 RX_OVF - $1E: 16-bit Write Reset value = $0000 Bit: 15 0 14 13 Enab Filt i/p B length overB flow 12 11 10 9 8 Overflow threshold B 7 0 6 5 4 Enab Filt i/p A length overA flow 3 2 1 0 Overflow threshold A The input overflow circuit uses a separate running average filter for each of the modulator output bitstreams (channels A and B) using a selectable window width of 32 or 64 bits. The modulator output bits have a weighting of ± ½, so the maximum theoretical filter output value is ± 16 (with a window width of 32) or ± 32 (with a window width of 64). The average filter output value, for a dc level of 1V pk-pk at the input of the sigma-delta modulator, is approximately 4.82 (window width = 32) or 9.64 (window width = 64). If at any time the filter output for a channel exceeds the specified threshold value (in either the positive or negative direction), and if the overflow flag is enabled, then the associated status bit in the RX_STATUS register gets set to 1. RX_OVF b15: Reserved, set to 0 RX_OVF b14: Filter length B For channel B, set to 1 for a running average filter length of 64, set to 0 for a filter length of 32. RX_OVF b13: Enable input overflow B For channel B, set to 1 to enable the filters, set to 0 to disable the filters. RX_OVF b12-8: Overflow threshold B If the absolute value of the (enabled) channel B running average filter output is greater than the overflow threshold B value, then an overflow is flagged in the RX_STATUS register. RX_OVF b7: Reserved, set to 0 RX_OVF b6: Filter length A For channel A, set to 1 for a running average filter length of 64, set to 0 for a filter length of 32. RX_OVF b5: Enable input overflow A For channel A, set to 1 to enable the filters, set to 0 to disable the filters. RX_OVF b4-0: Overflow threshold A If the absolute value of the (enabled) channel A running average filter output is greater than the overflow threshold A value, then an overflow is flagged in the RX_STATUS register. 2015 CML Microsystems Plc 28 D/983/6 Analogue Front End (AFE) for Digital Radio 9.2 CMX983 Receive Channel Filters Figure 13 Rx Channel Filters The CMX983 has two main channel filters (Figure 13). Within each channel filter, the signal is decimated N twice. Data from the ADC passes into a sinc filter, a bit selector circuit and a vernier phase adjustment before the first downsampler. The resulting signal then passes into a programmable 128-tap FIR filter, a second bit selector and the second downsampler before being passed to the serial port for transmission to the host processor. The serial port data is formatted as 16-bit 2’s complement values. Each stage in the Rx channel (sinc filter, bit select, vernier adjust, downsample and FIR filter) is programmable. Sinc filter The bitstream produced by each sigma-delta modulator has a characteristic high-pass filtered noise profile. The sinc filter attenuates this quantisation noise, along with any other noise or unwanted signals coming from 2015 CML Microsystems Plc 29 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 the device inputs, to prevent aliasing problems in the first downsampler. The number of cascaded stages in the sinc filter can be configured to between 3 and 6, with each stage having a length of up to 64. The length of the sinc filter should be set to an integer multiple (usually 1x) of the first downsample rate M1 so that the zeroes in the filter transfer function appear at multiples of the CR2 clock rate. This minimises the amount of in-band energy in the aliased signals after decimation. Note that the sinc filter transfer characteristic causes droop in the wanted signal, and this droop increases as the number of sinc stages or the sinc length is increased. However, moderate amounts of droop can be compensated for in the following FIR filter. With a nominal power supply voltage (AVDD = 3.3V), the “gain” of the ADC between the input pins and the output of the sinc filter is given by the expression: G 0.1506 ALN where L = sinc length, N = number of sinc stages and A = analogue gain (see section 9.1). For example, with an analogue gain of 0dB, a sinc length of 32 and a sinc number of 5, then a dc input signal of 1V (differential) 6 at the input pins will give a nominal output of 5.053x10 (~ $4D1B00) into the first bit selector. First bit selector The bit selector at the output of the sinc filter selects which 20 bits of the 37-bit sinc filter accumulator are passed to the following phase vernier and downsampler. Phase vernier The phase vernier allows fine adjustment of the signal phase by setting which sinc output sample the first decimator selects. The A and B channel signals can be independently delayed by a programmable number of cycles of the CR1 clock, with the maximum number of delay cycles being one less than the first downsample rate. First downsampler The first downsampler reduces the sample rate of the signal by a factor of M1 = f CR1/fCR2. This process causes any residual signal components around multiples of the CR2 clock rate to be aliased, so it is important to make sure that the preceding filters (sinc filter and external anti-alias filter) have adequately attenuated these signal components. FIR filter The purpose of the FIR filter is to attenuate out-of band signals and quantisation noise, perform any transfer function shaping that is required by the transmission standard and, if necessary, compensate for the droop caused by the sinc filter. The FIR filter acts as an anti-alias filter for the second downsampler (if used) by ensuring that signal components around multiples of the CR3 frequency are adequately attenuated. The filter operates with 20-bit data samples and 16-bit coefficients, and can be configured with up to 128 taps. There are four banks of programmable coefficients. Second bit selector The bit selector at the output of the FIR filter selects which 16 bits of the 42-bit FIR filter accumulator are passed to the following downsampler. Second downsampler The second downsampler reduces the sample rate of the signal by a factor of M2 = f CR2/fCR3. This process causes any residual signal components around multiples of the CR3 clock rate to be aliased, so it is important to make sure that the preceding filters have adequately attenuated these signal components. 2015 CML Microsystems Plc 30 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 The following C-BUS registers are used to configure the Rx channels. The settings in RX_CON0/1/2 are applied to both channel filter A and channel filter B: RX_CON0 - $1F: 8-bit Write Reset value = $00 Bit: 7 6 5 0 4 3 2 1 0 ADC clock divide RX_CON0 b7: Reserved, set to 0 RX_CON0 b6-0: ADC clock divide Sets the division ratio between CLK and CR1, where CR1 is the clock for the sigma-delta modulator and sinc filter. This value can be set to between 2 and 128 (0000000 = 128). RX_CON1 - $20: 16-bit Write Reset value = $0000 Bit: 15 14 0 0 13 12 11 10 Sinc number 9 8 7 6 5 Sinc length 4 3 2 1 0 First downsample rate RX_CON1 b15-14: Reserved, set to 0 RX_CON1 b13-12: Sinc number 3 These bits determine the number of cascade stages in the sinc filter: 00 = 3 stages (sinc ); 01 = 4 4 5 6 stages (sinc ); 10 = 5 stages (sinc ); 11 = 6 stages (sinc ). RX_CON1 b11-6: Sinc length Sets the length of each sinc filter section to between 1 and 64 (000000 = 64). This is normally set to the same value as the first downsample rate. RX_CON1 b5-0: First downsample rate Sets the division ratio between the CR1 and CR2 clock, which determines the first downsample rate M1. This can be set to between 1 and 64 (000000 = 64). RX_CON2 - $21: 16-bit Write Reset value = $0000 Bit: 15 14 13 0 0 FIR bypass 12 11 10 9 8 FIR filter length 7 6 5 4 3 2 1 0 Second downsample rate RX_CON2 b15-14: Reserved, set to 0 RX_CON2 b13: FIR bypass Set this bit to 1 to disable and bypass the FIR filter. Data from the output of the first downsampler will then be sent directly to the input of the second bit selector (in the 20 most-significant bit positions). When the FIR bypass bit is changed from 0 to 1, an initialisation sequence is performed which resets 2015 CML Microsystems Plc 31 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 all data samples in FIR filter to zero (coefficient RAMs are not altered). This initialisation takes 128 CLK cycles to complete. RX_CON2 b12-6: FIR filter length Sets the number of taps in the FIR filter to a value between 1 and 128 (0000000 = 128). The filter length is also subject to the following restriction, based on the CLK and ADC sample frequencies: f f CR2 FilterLength CLK 1 f CR3 RX_CON2 b5-0: Second downsample rate Sets the division ratio between the CR2 and CR3 clock, which determines the second downsample rate M2. This can be set to between 1 and 64 (000000 = 64). Note that the maximum CR3 clock frequency is further restricted to f CR3 ≤ fCLK/4, i.e. (N × M1 × M2) ≥ 4, although this limit is unlikely to be approached in a typical receive channel configuration. RX_CON3 - $25: 8-bit Write Reset value = $00 Bit: 7 6 0 Rx B enable 5 4 FIR B coeff select 3 2 0 Rx A enable 1 0 FIR A coeff select RX_CON3 b7: Reserved, set to 0 RX_CON3 b6: Rx B enable Set this bit to 1 to enable Rx channel B filter logic (sinc filter onwards) and start the transfer of data to the serial port. When this bit is set to 1, the “channel B idle” bit in RX_STATUS will read as 0. After reset, or when the Rx B enable bit is changed from 1 to 0, the channel B logic ceases operating and an initialisation sequence is performed which resets all data samples in the sinc filter and FIR filter to zero (coefficient RAMs are not altered). This initialisation takes 128 CLK cycles to complete, after which the “channel B idle” bit in RX_STATUS will be set to 1. It is recommended that the Rx B enable bit should be set to 1 only after the configuration bits in RX_CON0/1/2 have been initialised, and that these registers do not get changed again until the Rx B enable bit is cleared to 0 and channel B is idle. RX_CON3 b5-4: FIR B coefficient select Selects which bank of coefficients the channel B FIR filter uses: 00 = RX_COEFF0 01 = RX_COEFF1 10 = RX_COEFF2 11 = RX_COEFF3 RX_CON3 b3: Reserved, set to 0 RX_CON3 b2: Rx A enable Set this bit to 1 to enable Rx channel A filter logic, similar in operation to bit 6. RX_CON3 b1-0: FIR A coefficient select 2015 CML Microsystems Plc 32 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Selects which bank of coefficients the channel A FIR filter uses: 00 = RX_COEFF0 01 = RX_COEFF1 10 = RX_COEFF2 11 = RX_COEFF3 RX_VERNIER - $26: 16-bit Write Reset value = $0000 Bit: 15 14 0 0 13 12 11 10 9 8 Phase vernier B 7 6 0 0 5 4 3 2 1 0 Phase vernier A RX_VERNIER b15-14: Reserved, set to 0 RX_VERNIER b13-8: Phase vernier B Allows fine adjustment of the channel B signal phase by setting which sinc output sample the first downsampler selects. Setting the phase vernier value to 0 gives an ‘on-time’ signal; setting the value to N gives a ‘late’ signal, delayed by N cycles of the CR1 clock. The phase vernier value must be less than the value set for the first downsample rate in the associated decimator control register RX_CON1. RX_VERNIER b7-6: Reserved, set to 0 RX_VERNIER b5-0: Phase vernier A Allows fine adjustment of the channel A signal phase (similar in operation to bits 13-8). RX_BITSEL1 - $27: 16-bit Write Reset value = $0000 Bit: 15 14 13 0 0 0 12 11 10 9 8 Rx B first bit select 7 6 5 0 0 0 4 3 2 1 0 Rx A first bit select RX_BITSEL1 b15-13: Reserved, set to 0 RX_BITSEL1 b12-8: Rx B first bit select In Rx channel B, selects which 20 bits of the 37-bit sinc filter accumulator are passed to the following phase vernier and downsample stage. This value determines the number of most-significant bits discarded (valid range = 0 to 17): a value of 0 selects the most significant 20 bits of the sinc accumulator, a value of 1 discards the MSB of the accumulator and selects the next most significant 20 bits, and so on. Convergent rounding is applied to the selected bits and the selector output saturates in the case of an overflow (positive saturation = $7FFFF, negative saturation = $80000). To assist with setup, an overflow causes a status bit to be set in the RX_STATUS register. RX_BITSEL1 b7-5: Reserved, set to 0 RX_BITSEL1 b4-0: Rx A first bit select Rx channel A first bit select, similar in operation to bits 12-8. 2015 CML Microsystems Plc 33 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 RX_BITSEL2 - $28: 16-bit Write Reset value = $0000 Bit: 15 14 13 0 0 0 12 11 10 9 8 Rx B second bit select 7 6 5 0 0 0 4 3 2 1 0 Rx A second bit select RX_BITSEL2 b15-13: Reserved, set to 0 RX_BITSEL2 b12-8: Rx B second bit select In Rx channel B, selects which 16 bits of the 42-bit FIR filter accumulator are passed to the following downsample stage. This value determines the number of most-significant bits discarded (the valid range = 0 to 26): a value of 0 selects the most significant 16 bits of the FIR accumulator, a value of 1 discards the MSB of the accumulator and selects the next most significant 16 bits, and so on. Convergent rounding is applied to the selected bits and the selector output saturates in the case of an overflow (positive saturation = $7FFF, negative saturation = $8000). To assist with setup, an overflow causes a status bit to be set in the RX_STATUS register. RX_BITSEL2 b7-5: Reserved, set to 0 RX_BITSEL2 b4-0: Rx A second bit select Rx channel A second bit select, similar in operation to bits 12-8. RX_COEFF0 - $29: 16-bit Write, data-streaming RX_COEFF1 - $2A: 16-bit Write, data-streaming RX_COEFF2 - $2B: 16-bit Write, data-streaming RX_COEFF3 - $2C: 16-bit Write, data-streaming Reset value = undefined Bit: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 FIR coefficient values (2’s complement) These four C-BUS locations allow the 128-word FIR coefficient RAMs for the Rx channels to be loaded. Each coefficient RAM can be loaded in ascending order by repeatedly writing data to the same C-BUS location (an internal address pointer automatically increments after each write). To increase the loading rate of the coefficients, data-streaming operation is supported for these four CBUS addresses. Only as many coefficients as are required (determined by the FIR length) need to be loaded into each RAM, unused RAM locations do not need to be written. Before loading each of the four coefficient RAMs, the internal address pointer needs to be initialised (usually to address 0); this is done by writing to register RX_ADDR. Note that all four RAMs share this address pointer, so the address needs to be initialised before each coefficient RAM is loaded. During operation, with a filter length of N, the FIR filter stores the previous N data samples provided by the first downsampler. Then, whenever the second downsampler requires a new sample, the FIR filter generates this by performing a sequence of N multiply/accumulate operations using the selected filter coefficients and the stored data samples. The coefficient at RAM address 0 is multiplied by the most recent data sample from the first downsampler, the coefficient at address 1 is multiplied by the data delayed by one cycle of CR2, the coefficient at address 2 is multiplied by the data delayed by two cycles of CR2, and so on. The accumulated total, after scaling/rounding and downsampling, is sent to the serial port for transmission. 2015 CML Microsystems Plc 34 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 RX_ADDR - $2D: 8-bit Write Reset value = $00 Bit: 7 6 0 5 4 3 2 1 0 Rx coefficient address pointer The Rx coefficient address pointer determines the address at which data gets written during a C-BUS write to any of the four Rx coefficient RAMs. The Rx coefficient address pointer automatically increments after each 16-bit coefficient value is written, so if the coefficients are written in an ascending sequence the pointer only needs to be initialised once before each bank of coefficients is loaded. RX_STATUS - $2E: 16-bit Read Reset value = $0101 Bit: 15 0 14 13 12 Ch. B Ch. B Ch. B 2nd bit vern. FIR select error error overflow 11 10 9 8 Ch. B Ch. B Ch. B 1st bit input buffer Ch. B select over- over- idle overflow run flow 7 0 6 5 4 Ch. A Ch. A Ch. A 2nd bit vern. FIR select error error overflow 3 2 1 0 Ch. A Ch. A Ch. A 1st bit input buffer Ch. A select over- over- idle overflow run flow RX_STATUS b15: Reserved, set to 0 RX_STATUS b14: Channel B vernier error This bit gets set if Rx channel B is enabled and the vernier value is incorrect, i.e. it has been set to a value equal to or greater than first downsample rate in channel B. To clear this bit, first correct the error (or disable the channel) then read the RX_STATUS register again. RX_STATUS b13: Channel B FIR error This bit gets set, if Rx channel B is enabled, if a new output value from the FIR filter is not ready when the rising edge of the CR3 clock occurs. This happens if the FIR filter length is too large for the chosen clock and sample rates. When this happens, data sent from the FIR filter to the Rx serial port may become lost or corrupted. This bit gets cleared only when RX_STATUS is read. nd RX_STATUS b12: Channel B 2 bit selector overflow nd This bit gets set to 1 when the channel B 2 bit selector output value saturates to maximum positive ($7FFF) or maximum negative ($8000). This bit gets cleared only when RX_STATUS is read. st RX_STATUS b11: Channel B 1 bit selector overflow st This bit gets set to 1 when the channel B 1 bit selector output value saturates to maximum positive ($7FFFF) or maximum negative ($80000). This bit gets cleared only when RX_STATUS is read. RX_STATUS b10: Channel B input overflow This bit gets set to 1 when the channel B input exceeds a pre-programmed limit (see section 9.1). This bit gets cleared only when RX_STATUS is read. RX_STATUS b9: Channel B buffer overrun This bit gets set to 1 whenever Rx channel B generates a data sample before the Rx serial port is able to take it, for instance if the Rx serial port gets disabled or is configured to run too slowly. When 2015 CML Microsystems Plc 35 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 this happens, the data sample will be lost. The buffer overrun bit gets cleared only when RX_STATUS is read. RX_STATUS b8: Channel B idle This bit is a level sensitive signal that is set to 1 whenever channel B is in the idle state. RX_STATUS b7: Reserved, set to 0 RX_STATUS b6-0: (Channel A status bits) Similar in operation to bits 14-7. RX_ST_ENAB - $2F: 16-bit Write Reset value = $00 Bit: 15 0 14 13 12 11 10 9 8 Rx status enable (channel B) 7 0 6 5 4 3 2 1 0 Rx status enable (channel A) RX_ST_ENAB b15, b7: Reserved, set to 0 RX_ST_ENAB b14-8, b6-0: Rx status enable If any of these bits is high while the corresponding bit in the RX_STATUS register is also high, then the Rx status bit (in STATUS register bit 1) gets set to 1. 2015 CML Microsystems Plc 36 D/983/6 Analogue Front End (AFE) for Digital Radio 10 CMX983 Transmit Channel Figure 14 Tx Channel A and B The CMX983 has two Tx channels (Figure 14). Within each Tx channel, data can be upsampled twice. Data from the serial port, formatted as 16-bit 2’s complement values, optionally passes through a first upsampler, a programmable FIR interpolation filter and a bit selector. The data then passes through a second upsampler and into a sigma-delta modulator. The resulting signal then passes through a reconstruction filter and variable gain block before being driven onto the Tx output pins. First upsampler The first upsampler takes 16-bit 2’s complement values from the serial port at a rate equal to CT1 and outputs them to the interpolation filter at a rate equal to CT2. The upsampler uses zero padding, so for an upsample factor of L1 (= fCT2/fCT1) there are L1-1 zero-valued samples inserted between each of the original time samples. This upsampling process results in unwanted spectral images at multiples of the CT1 frequency, but 2015 CML Microsystems Plc 37 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 otherwise the original signal remains undistorted. The first upsample factor can be set to any value up to 8. Alternatively, the first upsampler, FIR filter and bit selector can be disabled and bypassed. Interpolation filter The interpolation filter is a 128-tap FIR type that takes the zero padded samples from the first upsampler at a frequency equal to CT2. There are two banks of programmable coefficients. The purpose of the low-pass interpolation filter is to attenuate the unwanted spectral images caused by the first upsampler, perform any transfer function shaping that is required by the transmission standard and, if necessary, provide compensation for the droop caused by the second upsampler or the DAC reconstruction filter. Bit selector The bit selector at the output of the interpolation filter selects which 16 bits of the 38-bit FIR filter accumulator are passed to the following upsample and hold stage. Second upsample and hold The second upsampler includes a zero-order hold function, so for an upsample factor of L2 (= fCT3/fCT2) there are L2-1 repeated sample values inserted after each sample value from the bit selector. This upsampling process results in unwanted spectral images at multiples of the CT2 frequency, but these lie near the nulls in transfer function of the zero-order hold so they are usefully attenuated. The transfer function of the zero-order -L2 hold is H(z)=(1-z )/(z-1), where the sample period T=1/fCT2. This transfer function also causes droop in the wanted signal, but if the CT2 clock rate is high enough this can be made insignificant. If necessary, droop compensation can be performed in the preceding FIR interpolation filter. The second upsample factor can be set to any value up to 32. Sigma-delta modulator and reconstruction filter nd The sigma-delta modulator is a 2 -order type whose output has a characteristic high-pass filtered noise profile, with the quantisation noise rising at 12dB per octave. The reconstruction filter attenuates this quantisation noise, along with any spectral remnants from the upsamplers. The reconstruction filter comprises a linear-phase switched capacitor filter (with a selectable bandwidth) followed by a linear-phase continuous time filter. These have the following nominal transfer characteristics, with a sample period T=1/fCT3: Switched capacitor section: 0.0413510 0.00206664 z 1 Low bandwidth : H ( z ) 1 0.958649 z 1 1 1.93323z 1 0.935301z 2 0.00826662 z 1 High bandwidth : H ( z ) 0.0794179 1 0.920582 z 1 1 1.86233z 1 0.870601z 2 Continuous time section: H ( s) 1 1.8684 10 12 2 s 1.9780 10 6 1 6 s 1 1 .496 10 s 1 Recommended off chip filter With a sigma-delta clock frequency of 2.4MHz, the switched capacitor section has a -3dB cutoff frequency of approximately 12.2kHz (low b/w) or 23.9kHz (high b/w). The continuous time filter has a -3dB cutoff frequency of approximately 80kHz. Output gain stage 2015 CML Microsystems Plc 38 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 The final analogue gain stage between the reconstruction filter and the Tx output pins can be set to a gain of between -11dB and 11dB (in 0.5dB steps). A mute setting is also provided. With the gain set to 0dB and with a fixed digital input of ±32767, the differential output voltage from the Tx DAC is approximately ±0.75 × AVDD. The following C-BUS registers are used to configure the transmit channels: TX_CON0 - $30 : 8-bit Write Reset value = $00 Bit: 7 6 5 SC high b/w 4 3 2 1 0 DAC clock divide TX_CON0 b7: SC high b/w Set to 1 to select the high bandwidth cutoff for the reconstruction filter switched capacitor section. Set to 0 to select the low bandwidth cutoff. TX_CON0 b6-0: DAC clock divide Sets the division ratio between CLK and CT3, where CT3 is the clock for the sigma-delta modulator and reconstruction filter. This value can be set to between 2 and 128 (0000000 = 128). TX_CON1 - $31: 16-bit Write Reset value = $0000 Bit: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 st 2nd upsample rate 1 stage bypass Interpolation filter length 1st upsample rate TX_CON1 b15-11: Second upsample rate Sets the division ratio between the CT3 and CT2 clock, which determines the second upsample rate L2. This can be set to between 1 and 32 (00000 = 32). TX_CON1 b10: First stage bypass Set this bit to 1 to disable the first upsampler, interpolation filter and bit selector, and cause Tx data from the serial port to be driven directly into the second upsampler. TX_CON1 b9-3: Interpolation filter length Sets the number of taps in the interpolation filter to a value between 1 and 128 (0000000 = 128). This must be set to an integer multiple of the first upsample rate. The filter length is also subject to the following restriction, based on the CLK and DAC sample frequencies: FilterLength f CLK f CT 2 f CT1 TX_CON1 b2-0: First upsample rate The first upsample rate can be set to any value between 1 and 8 (000 = 8). 2015 CML Microsystems Plc 39 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 TX_CON2 - $34: 16-bit Write Reset value = $0000 Bit: 15 14 13 12 Tx B bit select 11 10 9 8 Tx B Tx B FIR B digital analog coeff enable enable select 7 6 5 4 3 Tx A bit select 2 1 0 Tx A Tx A FIR A digital analog coeff enable enable select TX_CON2 b15-11: Tx B bit select In Tx channel B, selects which 16 bits of the 38-bit FIR filter accumulator are passed to the following upsample stage. This value determines the number of most-significant bits discarded (valid range = 0 to 22): a value of 0 selects the most significant 16 bits of the FIR accumulator, a value of 1 discards the MSB of the accumulator and selects the next most significant 16 bits, and so on. Convergent rounding and saturation are applied to the selected bits. To assist with setup, an overflow causes a status bit to be set in the TX_STATUS register. TX_CON2 b10: Tx B digital enable Set this bit to 1 to enable the Tx channel B logic, from the first upsampler to the sigma-delta modulator, and start the transfer of data from the serial port. The channel idle status in the TX_STATUS register immediately goes low when the Tx channel B logic is enabled. The Tx B digital enable bit should be set after all other Tx channel B configuration bits have been initialised. When the Tx B digital enable bit changes from 1 to 0, the Tx channel stops requesting data from the Tx serial port but continues processing the buffered data (up to 2 words) until an underrun occurs. The interpolation filter data RAM is then cleared immediately (all data samples reset to zero) in readiness for the next time the channel is enabled; the coefficient RAMs are not altered. Clearing the data samples takes 128 CLK cycles, after which the channel idle status gets set to 1. If the Tx B digital enable bit goes high while the associated Tx serial port remains disabled, default data values of $0000 will be fed into the Tx channel. This continues until the Tx serial port becomes enabled, at which point normal data transfers through the Tx serial port will commence. If the Tx serial port is subsequently disabled while the Tx B digital enable bit remains high, then the Tx channel will repeatedly transmit the final 16-bit data value obtained from the Tx serial port, and a buffer underrun will be flagged in TX_STATUS. TX_CON2 b9: Tx B analogue enable Set this bit to 1 to enable the Tx channel B reconstruction filter and output gain stage. Normally the analogue enable would be activated in advance of the digital enable and deactivated after all data in a transmission has been processed. TX_CON2 b8: FIR B coefficient select Selects which coefficients the channel B interpolation filter uses: 0 = TX_COEFF0 1 = TX_COEFF1 TX_CON2 b7-3: Tx A bit select Similar in operation to bits 15-11. TX_CON2 b2: Tx A digital enable Set this bit to 1 to enable the Tx channel A logic, similar in operation to bit 10. TX_CON2 b1: Tx A analogue enable 2015 CML Microsystems Plc 40 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Set this bit to 1 to enable the Tx channel A reconstruction filter and output gain stage, similar in operation to bit 9. TX_CON2 b0: FIR A coefficient select Selects which coefficients the channel A interpolation filter uses: 0 = TX_COEFF0 1 = TX_COEFF1 TX_GAIN - $35: 16-bit Write Reset value = $0000 Bit: 15 14 0 Tx B clamp 13 12 11 10 9 8 Tx B gain 7 6 0 Tx A clamp 5 4 3 2 1 0 Tx A gain TX_GAIN b15: Reserved, set to 0 TX_GAIN b14: Tx B clamp When the Tx analog is disabled (TX_CON2 bit 9 = 0), this bit controls what happens to the DAC output pins QTXP and QTXN: when the Tx B clamp bit is set to 1 then QTXP and QTXN get clamped to a mid-rail reference voltage AVDD/2; otherwise, QTXP and QTXN will become high impedance (greater than 100kΩ). TX_GAIN b13-8: Tx B gain Set channel B output gain to between -11dB and +11dB in 0.5dB steps, or mute the output. The gain setting is in 2’s complement format with an implicit binary point between bit 9 and 8: 100000 101010 101011 101100 = mute = -11.0dB = -10.5dB = -10.0dB ... 111110 = -1.0dB 111111 = -0.5dB 000000 = 0.0dB 000001 = 0.5dB 000010 = 1.0dB ... 010100 = 10.0dB 010101 = 10.5dB 010110 = 11.0dB TX_GAIN b7: Reserved, set to 0 TX_GAIN b6: Tx A clamp Controls ITXP and ITXN clamp level, similar in operation to bit 14. TX_GAIN b5-0: Tx A gain Set channel A output gain, similar in operation to bits 13-8. 2015 CML Microsystems Plc 41 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 TX_COEFF0 - $36: 16-bit Write, data-streaming TX_COEFF1 - $37: 16-bit Write, data-streaming Reset value = undefined Bit: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 FIR coefficient values (2’s complement) These two C-BUS locations allow the 128-word FIR coefficient RAMs for Tx channel A and B to be loaded. Each coefficient RAM can be loaded in ascending order by repeatedly writing data to the same C-BUS location (an internal address pointer automatically increments after each write). To increase the loading rate of the coefficients, data-streaming operation is supported for these two CBUS addresses. Only as many coefficients as are required (determined by the FIR length) need to be loaded into each RAM, unused RAM locations do not need to be written. The length of the interpolation filter, set in TX_CON2, must be an integer multiple of the first upsample rate L1. Because of the way the interpolation filter is implemented, the coefficients must be scrambled before loading as demonstrated in the following code example: // initialise array of coefficients int coefficient[FILTER_LENGTH] = {0x0002, 0x0031, 0xFFA3, ...}; // initialise pointer cbus_write_8bits(TX_ADDR, 0x00); // load coefficients into CMX983 for (i = 0; i < UPSAMPLE_RATE1; i++) for (j = 0; j < FILTER_LENGTH; j += UPSAMPLE_RATE1) cbus_write_16bits(TX_COEFF0, coefficient[i + j]); For instance, if the first upsample ratio is set to 5 and the filter length is set to 60, the coefficients C0..C59 would be loaded in the following sequence. Note that C0 is the coefficient that is multiplied by the most recent data sample from the first upsampler: C0, C5, C10, … C50, C55, C1, C6, C11, … C51, C56, C2, C7, C12, … C52, C57, C3, C8, C13, … C53, C58, C4, C9, C14, … C54, C59 Before loading either of the two coefficient RAMs, the internal address pointer needs to be initialised (usually to address 0); this is done by writing to register TX_ADDR. Note that both coefficient RAMs share this address pointer, so the address needs to be initialised before each coefficient RAM is loaded. TX_ADDR - $38: 8-bit Write Reset value = $00 Bit: 7 0 6 5 4 3 2 1 0 Tx coefficient address pointer The Tx coefficient address pointer determines the address at which data gets written during a C-BUS write to either of the Tx coefficient RAMs. The Tx coefficient address pointer automatically increments 2015 CML Microsystems Plc 42 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 after each 16-bit coefficient value is written, so if the coefficients are written in an ascending sequence the pointer only needs to be initialised once before each coefficient RAM is loaded. TX_STATUS - $39: 8-bit Read Reset value = $11 Bit: 7 6 5 4 3 Ch. B Ch. B bitsel buffer Ch. B over- under- idle flow run 0 2 1 0 Ch. A Ch. A bitsel buffer Ch. A over- under- idle flow run 0 TX_STATUS b7: Reserved, set to 0 TX_STATUS b6: Channel B bit selector overflow This bit gets set to 1 when the channel B bit selector output value saturates to maximum positive ($7FFF) or maximum negative ($8000). This bit gets cleared only when TX_STATUS is read. TX_STATUS b5: Channel B buffer underrun This bit gets set to 1 whenever Tx channel B runs out of data from the serial port, for instance if the Tx serial port gets disabled or is configured to run too slowly. When this happens, the Tx channel will retransmit the previous data sample. The buffer underrun bit gets cleared only when TX_STATUS is read. TX_STATUS b4: Channel B idle This bit is a level sensitive signal that is set to 1 whenever channel B is in the idle state. TX_STATUS b3: Reserved, set to 0 TX_STATUS b2-0: (Channel A status bits) Similar in operation to bits 6-4. TX_ST_ENAB - $3A: 8-bit Write Reset value = $00 Bit: 7 6 5 4 3 2 1 0 0 Tx status enable (channel B) 0 Tx status enable (channel A) TX_ST_ENAB b7, b3: Reserved, set to 0 TX_ST_ENAB b6-4, b2-0: Tx status enable If any of these bits is high while the corresponding bit in the TX_STATUS register is also high, then the Tx status bit (in STATUS register bit 0) gets set to 1. 2015 CML Microsystems Plc 43 D/983/6 Analogue Front End (AFE) for Digital Radio 11 Serial Ports 11.1 Rx Serial Port CMX983 Figure 15 Rx Serial Port Data from Rx channel A and B are output from the CMX983 through a PCM serial port (Figure 15). PCM data is sent in Short Frame Sync mode with the CMX983 acting as a master. The PCM clock RXCLK is divided down from the system clock CLK, and data transmission is most significant bit first. If both Rx Channel A and B are selected, the two 16-bit data words are multiplexed through a single output data pin RXD as shown in Figure 16. If only one of the two Rx channels is selected, then the 16-bit serial port shift register for the disabled channel is bypassed and only the data for the selected channel is shifted out (example shown in Figure 17). tCYC_RXCLK RXCLK tCYC_RXFS RXFS RXD 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Channel A data 15 14 13 Channel B data Figure 16 Rx Port Timing (Channel A and B both selected) 2015 CML Microsystems Plc 44 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 tCYC_RXCLK RXCLK tCYC_RXFS RXFS RXD 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 Channel B data Figure 17 Rx Port Timing (Channel B only selected) 2015 CML Microsystems Plc 45 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 The following C-BUS registers are used to configure the Rx serial port: RXPORT_CON0 - $40: 8-bit Write Reset value = $00 Bit: 7 6 5 4 3 2 1 0 RXCLK divide value RXPORT_CON0 b7-0: RXCLK divide value Sets the division ratio between CLK and RXCLK. This value can be set to between 2 and 256 (00000000 = 256). RXCLK has a nominal 50:50 duty cycle, and its frequency must be at least 32 times greater than fCR3 (the frequency of the Rx channel second downsample clock, section 9.2); back-to-back data frames are allowed. Note: to avoid jitter on the RXFS signal, the frequency ratio fRXCLK / fCR3 must be an integer. RXPORT_CON1 - $41: 8-bit Write Reset value = $00 Bit: 7 6 5 0 0 0 4 3 2 1 0 Chan. Chan. Rx Invert RXD B data A data port RXhi-Z select select enable CLK RXPORT_CON1 b7-5: Reserved, set to 0 RXPORT_CON1 b4: Channel B data select Set to 1 to cause the 16-bit channel B data to be output on the RXD pin. Set to 0 to prevent channel B data from being output on the RXD pin (this bypasses the 16-bit channel B shift register). RXPORT_CON1 b3: Channel A data select Set to 1 to cause the 16-bit channel A data to be output on the RXD pin. Set to 0 to prevent channel A data from being output on the RXD pin (this bypasses the 16-bit channel A shift register). RXPORT_CON1 b2: RXD hi-Z Set to 1 to cause the RXD pin to go high impedance between data packets. Set to 0 to cause the RXD pin to be driven low between data packets. RXPORT_CON1 b1: Rx port enable Set to 1 to enable the Rx serial port and start the RXCLK pin oscillating. The frame sync pulse RXFS will only be generated when the Rx serial port is enabled, and the Rx channel(s) are enabled. Set to 0 to disable the Rx serial port and drive RXCLK low. When the Rx serial port is disabled, data samples generated by the Rx channels will be discarded. If the Rx port enable bit changes from 1 to 0 during a data frame, the frame will complete before the RXCLK pin stops oscillating. RXPORT_CON1 b0: Invert RXCLK Set this bit to 1 to invert the RXCLK signal. This bit should not be changed if the Rx port enable bit has already been set to 1. 2015 CML Microsystems Plc 46 D/983/6 Analogue Front End (AFE) for Digital Radio 11.2 CMX983 Tx Serial Port Figure 18 Tx Serial Port Data for Tx channel A and B are input to the CMX983 through a PCM serial port (Figure 18). PCM data is sent in Short Frame Sync mode with the CMX983 acting as a master. The PCM clock TXCLK is divided down from the system clock CLK, and data transmission is most significant bit first. If both Tx Channel A and B are selected, the two 16-bit data words are multiplexed through a single input data pin TXD as shown in Figure 19. If only one of the two Tx channels is selected, then the 16-bit serial port shift register for the disabled channel is bypassed and only the data for the selected channel is shifted in (example shown in Figure 20). tCYC_TXCLK TXCLK tCYC_TXFS TXFS TXD 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Channel A data 15 14 13 Channel B data Figure 19 Tx Port Timing (Channel A and B both selected) tCYC_TXCLK TXCLK tCYC_TXFS TXFS TXD 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 Channel B data 2015 CML Microsystems Plc 47 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Figure 20 Tx Port Timing (Channel B only selected) The following C-BUS registers are used to configure the Tx serial port: TXPORT_CON0 - $48: 8-bit Write-only Reset value = $00 Bit: 7 6 5 4 3 2 1 0 TXCLK divide value TXPORT_CON0 b7-0: TXCLK divide value Sets the division ratio between CLK and TXCLK. This value can be set to between 2 and 256 (00000000 = 256). TXCLK has a nominal 50:50 duty cycle, and its frequency must be at least 32 times greater than fCT1 (the frequency of the Tx channel first upsample clock, section 10); back-toback data frames are allowed. Note: to avoid jitter on the TXFS signal, the frequency ratio f TXCLK / fCT1 must be an integer. TXPORT_CON1 - $49: 8-bit Write Reset value = $00 Bit: 7 6 5 4 0 0 0 0 3 2 1 0 Chan. Chan. Tx Invert B data A data port TXselect select enable CLK TXPORT_CON1 b7-4: Reserved, set to 0 TXPORT_CON1 b3: Channel B data select Set to 1 to cause the 16-bit channel B data to be input on the TXD pin. Set to 0 to prevent channel B data from being input on the TXD pin (this bypasses the 16-bit channel B shift register). TXPORT_CON1 b2: Channel A data select Set to 1 to cause the 16-bit channel A data to be input on the TXD pin. Set to 0 to prevent channel A data from being input on the TXD pin (this bypasses the 16-bit channel A shift register). TXPORT_CON1 b1: Tx port enable Set to 1 to enable the Tx serial port and start the TXCLK pin oscillating. The frame sync pulse TXFS will only be generated when the Tx serial port is enabled, and the Tx channel(s) are enabled. Set to 0 to disable the Tx serial port and drive TXCLK low. If the Tx port enable bit changes from 1 to 0 during a data frame, the frame will complete before the TXCLK pin stops oscillating. TXPORT_CON1 b0: Invert TXCLK Set this bit to 1 to invert the TXCLK signal. This bit should not be changed if the Tx port enable bit has already been set to 1. 2015 CML Microsystems Plc 48 D/983/6 Analogue Front End (AFE) for Digital Radio 12 CMX983 Fractional-N Frequency Synthesizers PLL1 lock status PLL1_CFG PLL1_STATUS PLL1_CON PLL1_LOCKDET PLL1_BLEED PLL1_RDIV Lock detector Bleed current VCO CP1VDD R3 MCLK Ref divider (÷1 … ÷128) Phase detector Charge pump Fastlock timer CLK PLL1_FDIV1 R1 R2 C3 RF1N dither Σ-Δ mod 16/24 bit C1 RF1P Multi-modulus divider (÷32 … ÷2047) PRBS C2 CP1 Divider update PLL1_IDIV FLCK1 Ground capacitor on RF1N if VCO output is singleended Fastlock control PLL1_FLCK PLL1_FDIV0 Figure 21 Fractional-N Frequency Synthesizer The CMX983 has two identical, independently programmable, 2.1 GHz fractional-N frequency synthesizers; a block diagram of one of the synthesizers is shown in Figure 21. Note that a single ended VCO signal can be used; if so, it should be ac-coupled to RF1P and the capacitor connected to RF1N should be grounded. The synthesizers use a sigma-delta modulation technique that allows use of a high reference frequency, thus providing rapid frequency switching and low phase noise performance. The 24-bit fractional divider resolution provides an ultra-fine step size for narrowband applications, and can be used to compensate for crystal oscillator frequency drift or Doppler shift. A fast locking mechanism is provided that increases the transition rate when changing to a new operating frequency. This is done by temporarily modifying the loop filter characteristics and charge pump gain whenever the main divider settings are updated, allowing the responsiveness of the closed loop system to be increased without compromising the loop stability. The fast lock mode automatically turns off after a predetermined delay, thus reverting the PLL to its standard, low noise mode of operation. Each synthesizer has a programmable lock detector circuit that indicates when the loop is in lock. The lock detectors can be configured for analogue or digital operation, and no external components are required. 2015 CML Microsystems Plc 49 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 The PLL synthesizers are configured through a number of C-BUS registers. The registers for PLL1 and PLL2 operate in an identical way: PLL1_CON - $4E; 16-bit Write PLL2_CON - $57: 16-bit Write Reset value = $0000 Bit: 15 14 0 Resolution 13 12 Mode select 11 10 9 8 7 Enab dither 0 Enab PLL Inv. CP 6 5 4 Out- Lock In-lock of-lock status status status edge enab enab trigger 3 2 1 0 Charge pump current PLL1[2]_CON b15: Reserved, set to 0 PLL1[2]_CON b14: Resolution Set this bit to 0 to select a 24-bit fractional value for the main divider (using registers PLL1[2]_FDIV1 and PLL1[2]_FDIV0). Set this bit to 1 to select a 16-bit fractional value for the main divider (using register PLL1[2]_FDIV0 only). PLL1[2]_CON b13-11: Mode select Sets the main divider operating mode: 000 Integer mode (sigma-delta disabled) rd 001 Fractional-N divider with 3 order modulator rd 110 Fractional-N divider with alternative 3 order modulator Other values should not be used. The two types of Fractional-N modulator offer different noise characteristics. The type ‘110’ generally has the best close-in noise (characterised by 1 Hz Normalised Phase Noise), whereas the type ‘001’ has lower sigma-delta noise at offset around 1 MHz. Note: the exact characteristics of the PLL noise will depend on the overall PLL design including the VCO gain and loop filter. PLL1[2]_CON b10: Enable dither Set this bit to 1 to add a “dither” to the LSB of the fractional divide value. This helps to suppress idle tones from the sigma-delta modulator output. Set this bit to 0 to disable the dither. PLL1[2]_CON b8: Enable PLL Set to 1 to enable the PLL circuit (sigma-delta modulator, multi-modulus divider, reference divider, phase detector and charge pump). Set to 0 to disable and powersave the PLL circuit. PLL1[2]_CON b7: Invert charge pump With this bit set to 0 the charge pump will sink current when the main divider output frequency fmain is a higher frequency than the reference clock f ref. Set this bit to 1 to invert the charge pump output, so that it sources current when fmain > fref. PLL1[2]_CON b6: In-lock status enable Set to 1 to allow the in-lock status bit in the PLL1[2]_STATUS register to be set when lock is detected. The in-lock status bit can either be edge-triggered or level-triggered, depending on the state of PLL1[2]_CON bit 4. PLL1[2]_CON b5: Out-of-lock status enable 2015 CML Microsystems Plc 50 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Set to 1 to allow the out-of-lock status bit in the PLL1[2]_STATUS register to be set when lock is lost. The out-of-lock status bit can either be edge-triggered or level-triggered, depending on the state of PLL1[2]_CON bit 4. PLL1[2]_CON b4: Lock status edge trigger When this bit is set to 1, the in-lock status bit and out-of-lock status bit (PLL1[2]_STATUS bits 1-0) will be edge triggered. This means that the in-lock status bit gets set each time the lock signal transitions from 0 to 1, and the out-of-lock status bit gets set each time the lock signal transitions from 1 to 0. When this bit is set to 0, the in-lock status bit and out-of-lock status bit (PLL1[2]_STATUS bits 1-0) will be level triggered. This means that the in-lock status bit will be continuously set high as long as lock = 1 and PLL1[2]_CON bit 6 = 1, and the out-of-lock status bit will be continuously set high as long as lock = 0 and PLL1[2]_CON bit 5 = 1. PLL1[2]_CON b3-0: Charge pump current Sets the value of the charge pump output current pulses. The value can be set in increments of 25µA, from 25µA (0000) to 400µA (1111). PLL_CFG - $CE: 16-bit Write Reset value = $2000 All bits in this register should be cleared to zero for optimum performance. PLL1_LOCKDET - $4F: 16-bit Write PLL2_LOCKDET - $58: 16-bit Write Reset value = $0000 Bit: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Analogue configuration bits: Lock Lock Reset detect mode lock enab 0 0 0 0 0 Lock discharge rate Lock charge rate Digital configuration bits: Loss-of-lock window Lock window Loss-of-lock threshold Lock threshold PLL1[2]_LOCKDET b15: Lock detect enable Set this bit to 1 to enable the lock detector circuit. Set this bit to 0 to disable and powersave the lock detector circuit. PLL1[2]_LOCKDET b14: Lock mode Set this bit to 1 to use the analogue lock detector. Set this bit to 0 to use the digital lock detector. PLL1[2]_LOCKDET b13: Reset lock Writing a 1 to this bit generates a short pulse that resets the lock detector (either analogue or digital) to an out-of-lock condition and clears PLL1[2]_STATUS bits 1-0. Immediately after writing a 1 to the reset lock bit, it is cleared back to 0 and the lock detector and lock status bits resume normal operation. Analogue configuration bits 2015 CML Microsystems Plc 51 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 These bits are active when PLL1[2]_LOCKDET bit 14 = 1: PLL1[2]_LOCKDET b12-8: Reserved, set to 0 PLL1[2]_LOCKDET b7-4: Lock discharge rate These bits control the discharge rate of the analogue lock detector capacitor, which determines the time taken for the lock signal to go inactive when lock is lost. The discharge rate is specified as a multiple of the selected charge rate (see bits 3-0). PLL1[2]_LOCKDET bits 7-4 $0 $1 $2 $3 $4 $5 $6 $7 Discharge rate 5 x charge rate 7 x charge rate 10 x charge rate 15 x charge rate 20 x charge rate 30 x charge rate 50 x charge rate 70 x charge rate PLL1[2]_LOCKDET bits 7-4 $8 $9 $A $B $C $D-$F Discharge rate 100 x charge rate 150 x charge rate 200 x charge rate 300 x charge rate 500 x charge rate Do not use PLL1[2]_LOCKDET b3-0: Lock charge rate These bits control the charge rate of the analogue lock-detector capacitor, and so determine the time taken for the lock signal to become active when the phase detector inputs are in phase. The nominal time taken for the capacitor to fully charge from a reset state, assuming no discharge pulses occur, is shown below: PLL1[2]_LOCKDET bits 3-0 $0 $1 $2 $3 $4 $5 $6 $7 Charge time 5 µs 7 µs 10 µs 15 µs 20 µs 30 µs 50 µs 70 µs PLL1[2]_LOCKDET bits 3-0 $8 $9 $A $B $C $D $E $F Charge time 100 µs 150 µs 200 µs 300 µs 500 µs 700 µs 1 ms Do not use Digital configuration bits These bits are active when PLL1[2]_LOCKDET bit 14 = 0: PLL1[2]_LOCKDET b12-11: Loss-of-lock window While the loss-of-lock counter is active (i.e. lock = 1), these bits determine the phase detector error window: if the difference in arrival time of the phase detector inputs is outside this window, they are deemed to be “out of phase”. When enough consecutive “out of phase” pulses occur (determined by PLL1[2]_LOCKDET bits 7-5) then the lock signal gets set to 0. The loss-of-lock window is specified as a multiple of the lock window value, which in turn is determined by PLL1[2]_LOCKDET bits 10-8. PLL1[2]_LOCKDET Loss-of-lock window bits 12-11 2015 CML Microsystems Plc 52 D/983/6 Analogue Front End (AFE) for Digital Radio 00 01 10 11 CMX983 1.0× lock window 1.5× lock window 2.0× lock window Illegal, do not use PLL1[2]_LOCKDET b10-8: Lock window While the lock counter is active (i.e. lock = 0), these bits determine the phase detector error window: if the difference in arrival time of the phase detector inputs is within this window, they are deemed to be “in phase”. When sufficient consecutive “in phase” pulses occur (determined by PLL1[2]_LOCKDET bits 4-0) then the lock signal gets set to 1. The nominal value of the error window is shown in the following table: PLL1[2]_LOCKDET bits 10-8 $0 $1 $2 $3 PLL1[2]_LOCKDET bits 10-8 $4 $5 $6 $7 Lock window ±7 ns ±10 ns ±15 ns ±20 ns Lock window ±30 ns ±50 ns ±70 ns ±100 ns PLL1[2]_LOCKDET b7-5: Loss-of-lock threshold While the lock indicator is active (lock = 1), these bits determine how many consecutive “out of phase” signals must occur at the phase detector before loss-of-lock is detected, causing the lock indicator to go inactive (lock = 0). The loss-of-lock threshold can be set to between 1 and 8 (000 = 8). PLL1[2]_LOCKDET b4-0: Lock threshold While the lock indicator is inactive (lock = 0), these bits determine how many consecutive “in phase” signals must occur at the phase detector before lock is detected, causing the lock indicator to go active (lock = 1). The lock threshold can be set to between 1 and 32 (00000 = 32). PLL1_FLCK - $50: 16-bit Write PLL2_FLCK - $59: 16-bit Write Reset value = $0000 Bit: 15 14 13 12 0 0 0 Enab fastlck 11 10 9 8 7 Fastlock timer coarse divide 6 5 4 Fastlock timer fine divide 3 2 1 0 Fastlock current PLL1[2]_FLCK b15-13: Reserved, set to 0 PLL1[2]_FLCK b12: Enable fastlock Set to 1 to enable fastlock. Then each time the main divider registers are updated, the associated fastlock pin (FLCK1 or FLCK2) is pulled to ground, the charge pump current changes to the value set by PLL1[2]_FLCK bits 1-0, and the fastlock timer is started. The fastlock state continues until the timer expires, at which point the fastlock pin returns to a high impedance state and the charge pump current reverts to the value determined by PLL1[2]_CON bits 3-0. PLL1[2]_FLCK b11-9: Fastlock timer coarse divide PLL1[2]_FLCK b8-2: Fastlock timer fine divide 2015 CML Microsystems Plc 53 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 These bits control the duration of the fastlock mode. The coarse divide can be set to a value between 0 and 7, and the fine divide can be set to between 1 and 128 (0000000 = 128). The fastlock timer is clocked by the internal system clock CLK, and its period is given by the following expression: 4 CoarseDivide FineDivide TFASTLOCK f CLK PLL1[2]_FLCK b1-0: Fastlock current Sets the value of the charge pump output current pulses in fastlock mode. The value is set as a multiple of the nominal charge pump current: PLL1[2]_FLCK bits 1-0 00 01 10 11 Charge pump current multiplier M 4x 8x 12x 16x To maintain loop stability with fastlock active the resistor R1 shown in Figure 21 will typically need to be set to the following value: 𝑅2 𝑅1 ≈ √𝑀 − 1 With fastlock active, the PLL lock time is decreased by a factor of approximately √𝑀. In practice, an even greater reduction is often achieved because fastlock can reduce or eliminate “cycle slipping” in the phase detector. PLL1_BLEED - $51: 8-bit Write PLL2_BLEED - $5A: 8-bit Write Reset value = $00 Bit: 7 6 5 0 0 Enab bleed 4 3 Bleed coarse 2 1 0 Bleed fine These registers can be used to add a bleed current to the charge pump output of the PLLs. The bleed current adds a phase shift to the PLL loop and can help reduce spurious products associated with the sigma-delta modulator by operating the charge pump in a more linear region. Excessive bleed current should be avoided because it can increase the PLL reference spurs and phase noise. A good initial compromise is to set the phase shift to about four VCO cycles: 𝐼𝑏𝑙𝑒𝑒𝑑 ≈ 4𝑓𝑀𝐶𝐿𝐾 𝐼𝐶𝑃 𝑅𝑑𝑖𝑣 𝑓𝑉𝐶𝑂 where Rdiv is the reference divider value and ICP is the charge pump current setting. This bleed current value can then be adjusted to optimise performance. Any leakage current from external components on the CP1 or CP2 pins must also be considered as this will alter the effective bleed current. PLL1[2]_BLEED b7-6: Reserved, set to 0 PLL1[2]_BLEED b5: Enable bleed Set to 1 to enable a constant bleed current to be sourced into the associated charge pump output pin. 2015 CML Microsystems Plc 54 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 PLL1[2]_BLEED b4-2: Bleed current (coarse) PLL1[2]_BLEED b1-0: Bleed current (fine) These bits control the nominal bleed current sourced into the charge pump output pin, according to the following formula: bleed _ fine I bleed 0.5A 2 bleed _ coarse 1 4 The bleed current can therefore be set to a value within the range 0.5µA … 112µA. For instance, if PLL1[2]_BLEED bits 4-2 = 1012 and PLL1[2]_BLEED bits 1-0 = 112, the resulting nominal bleed 5 current will be 0.5µA×2 ×1.75 = 28µA. Note that during fastlock, the bleed current is scaled up in the same proportion as the main charge pump current, as determined by PLL1[2]_FLCK bits 1-0. PLL1_RDIV - $52: 8-bit Write PLL2_RDIV - $5B: 8-bit Write Reset value = $00 Bit: 7 6 5 0 4 3 2 1 0 Reference divider PLL1[2]_RDIV b7: Reserved, set to 0 PLL1[2]_RDIV b6-0: Sets the division ratio between the master clock MCLK and the PLL reference clock. This value can be set to between 1 and 128 (0000000 = 128). PLL1_IDIV - $53: 16-bit Write PLL2_IDIV - $5C: 16-bit Write Reset value = $0020 Bit: 15 14 13 12 11 0 0 0 0 0 10 9 8 7 6 5 4 3 2 1 0 Main divider integer value PLL1[2]_IDIV b15-11: Reserved, set to 0 PLL1[2]_IDIV b10-0: Main divider integer value These bits represent the integer portion closest to the desired fractional-N divider value. The integer value is combined with the fractional value from registers PLL1[2]_FDIV1 and PLL1[2]_FDIV0 (which represent a fractional offset of between approximately +0.5 and –0.5) to allow selection of the desired VCO frequency. The valid range for the main divider integer value is from 32 to 2047 (in integer-N mode), or from 36 to 2043 (in fractional-N mode). PLL1_FDIV0 - $54: 16-bit Write PLL2_FDIV0 - $5D: 16-bit Write Reset value = $0000 2015 CML Microsystems Plc 55 D/983/6 Analogue Front End (AFE) for Digital Radio Bit: 15 14 13 12 11 CMX983 10 9 8 7 6 5 4 3 2 1 0 Main divider fractional value (LSB) PLL1_FDIV1 - $55: 8-bit Write PLL2_FDIV1 - $5E: 8-bit Write Reset value = $00 Bit: 7 6 5 4 3 2 1 0 Main divider fractional value (MSB) PLL1[2]_FDIV0 b15-0: Main divider fractional value (LSB) PLL1[2]_FDIV1 b7-0: Main divider fractional value (MSB) In fractional-N mode, the fractional divide value ranges between approximately –0.5 and +0.5 as determined by the PLL1[2]_FDIV1 and PLL1[2]_FDIV0 registers: With fractional resolution set to 24 bits, the registers are concatenated to form a 24-bit 2’s 24 complement number fdiv. The resulting fractional divide value is equal to (fdiv 2 ), which is in the range –0.5 to +0.49999994… With fractional resolution set to 16 bits, the PLL1[2]_FDIV1 register is ignored and the value in the PLL1[2]_FDIV0 register is treated as a 16-bit 2’s complement number fdiv. The fractional divide value 16 is equal to (fdiv 2 ), which is in the range –0.5 to +0.49998474… In integer-N mode, both the PLL1[2]_FDIV1 and PLL1[2]_FDIV0 registers are ignored. PLL1_STATUS - $56: 8-bit Read PLL2_STATUS - $5F: 8-bit Read Reset value = $00 Bit: 7 6 5 4 3 2 Lock 0 0 0 0 0 1 0 OutIn-lock of-lock status status PLL1[2]_STATUS b7: Lock This bit shows the current state of the lock detector output: lock = 1 indicates “in lock”, and lock = 0 indicates “out of lock”. This bit can be polled by the host processor. PLL1[2]_STATUS b6-2: Reserved, set to 0 PLL1[2]_STATUS b1: In-lock status To enable this status bit, the in-lock status enable bit (PLL1[2]_CON bit 6) must be set to 1. The inlock status bit can be either edge triggered or level triggered, depending on the state of PLL1[2]_CON bit 4. When configured as edge triggered, the in-lock status bit gets set high after each 0 to 1 transition of the lock signal, and gets cleared when the PLL1[2]_STATUS register is read. When configured as level triggered, the in-lock status bit gets continuously set high as long as lock = 1 and PLL1[2]_CON bit 6 = 1, and gets cleared when the PLL1[2]_STATUS register is read and either lock = 0 or PLL1[2]_CON bit 6 = 0. Note: the in-lock status bit is also cleared to 0 when a “reset lock” operation is performed (see description of PLL1[2]_LOCKDET bit 13). 2015 CML Microsystems Plc 56 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 PLL1[2]_STATUS b0: Out-of-lock status To enable this status bit, the out-of-lock status enable bit (PLL1[2]_CON bit 5) must be set to 1. The out-of-lock status bit can be either edge triggered or level triggered, depending on the state of PLL1[2]_CON bit 4. When configured as edge triggered, the out-of-lock status bit gets set high after each 1 to 0 transition of the lock signal, and gets cleared when the PLL1[2]_STATUS register is read. When configured as level triggered, the out-of-lock status bit gets continuously set high as long as lock = 0 and PLL1[2]_CON bit 5 = 1, and gets cleared when the PLL1[2]_STATUS register is read and either lock = 1 or PLL1[2]_CON bit 5 = 0. Note: the out-of-lock status bit is also cleared to 0 when a “reset lock” operation is performed (see description of PLL1[2]_LOCKDET bit 13). The in-lock status (bit 1) and the out-of-lock status (bit 0) are ORed together and the resulting signal is passed to the main STATUS register (section 6.4). This can be used to generate an interrupt signal. 12.1 Register Loading Order To use the PLL1 synthesiser, the registers must be loaded in the order specified below. Similar rules apply to PLL2. Registers PLL1_CON, PLL1_LOCKDET, PLL1_FLCK and PLL1_RDIV should be initialised before the main divider registers are loaded for the first time. The PLL enable bit (PLL1_CON bit 8) should be set during this process to power up the synthesizer circuit, but the charge pump output will remain in a high impedance state until the main divider registers are loaded. After the main divider registers are loaded in the correct order (which depends on the operating mode), the PLL synthesizer begins operating. The main divider registers can be changed at any subsequent time, but must always be updated in the specified order: Integer-N mode: Load PLL1_IDIV with the desired value, at which point the new divide ratio will take effect. Fractional-N mode, 16-bit fractional resolution: Load PLL1_IDIV (if necessary), then load PLL1_FDIV0. The new divide ratio only takes effect when PLL1_FDIV0 is loaded. Fractional-N mode, 24-bit fractional resolution: Load PLL1_IDIV and PLL1_FDIV1 (if necessary), then load PLL1_FDIV0. The new divide ratio only takes effect when PLL1_FDIV0 is loaded. Each time the main divide registers are updated, at the point when the new divide ratio takes effect, a fastlock sequence in the associated PLL is triggered (if enabled). 12.2 Fractional-N Programming Examples Example 1: To operate PLL1 in 16-bit fractional mode (modulator type 001) with a VCO frequency fVCO = 803.125MHz, a master clock frequency fMCLK = 19.2MHz, and a PLL comparison frequency f REF = 2.4MHz. Rdiv = fMCLK ÷ fREF = 19.2MHz ÷ 2.4MHz = 8 Ndiv = fVCO ÷ fREF = 803.125MHz ÷ 2.4MHz = 334.6354167 2015 CML Microsystems Plc 57 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Split the N divider value into integer and fractional parts: Idiv = Round(334.6354167) = 335 (decimal) = 0x014F (hex) Fdiv (16-bit mode) = Round(2 16 × (Ndiv – Idiv)) = -23893 (decimal) = 0xA2AB (hex) Load C-BUS registers: PLL1_CON bit 14 = 1 (16-bit), bit 13-11 = 001, bit 8 = 1 (enable), set other bits as desired Set PLL1_LOCKDET and PLL1_FLCK as desired PLL1_RDIV = 0x08 PLL1_IDIV = 0x014F PLL1_FDIV0 = 0xA2AB At this point, the charge pump is enabled and PLL1 begins to acquire lock. There is no need to load 16 PLL1_FDIV1 in 16-bit mode. The frequency step size in this example is 2.4MHz ÷ 2 ≈ 36.621Hz. Example 2: To operate PLL2 in 24-bit fractional mode (modulator type 110) with a VCO frequency fVCO = 1721.386MHz, a master clock frequency f MCLK = 20.736MHz, and a PLL comparison frequency f REF = 1.728MHz. Rdiv = fMCLK ÷ fREF = 20.736MHz ÷ 1.728MHz = 12 (decimal) = 0x0C (hex) Ndiv = fVCO ÷ fREF = 1721.386MHz ÷ 1.728MHz = 996.1724537 Split the N divider value into integer and fractional parts: Idiv = Round(996.1724537) = 996 (decimal) = 0x03E4 (hex) Fdiv (24-bit mode) = Round(2 24 × (Ndiv – Idiv)) = 2893293 (decimal) = 0x2C25ED (hex) Load C-BUS registers: PLL2_CON bit 14 = 0 (24-bit), bit 13-11 = 110 , bit 8 = 1 (enable), set other bits as desired Set PLL2_LOCKDET and PLL2_FLCK as desired PLL2_RDIV = 0x0C PLL2_IDIV = 0x03E4 PLL2_FDIV1 = 0x2C PLL2_FDIV0 = 0x25ED At this point, the charge pump is enabled and PLL2 begins to acquire lock. The frequency step size in 24 this example is 1.728MHz ÷ 2 ≈ 0.103Hz. Note: if the calculated fractional part of Ndiv is exactly equal to 0.5 then the Idiv value should be rounded up. For example, if Ndiv = 312.5000 then Idiv = Round(Ndiv) = 313. 12.3 Lock Detector Configuration Guidelines The CMX983 Fractional-N PLL synthesizers each contain an analogue lock detector and a digital lock detector. Both types of lock detector use the phase error in the PLL loop to determine whether the PLL is in 2015 CML Microsystems Plc 58 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 lock. The user can select the type of lock detector that works best in their particular application. The following guidelines describe how the lock detectors in PLL1 operate; the lock detectors in PLL2 are identical. 12.3.1 Digital Lock Detector Digital lock detector mode is selected when PLL1_LOCKDET bit 14 = 0. The digital lock detector is connected to the R-divider and N-divider output clocks as shown in Figure 22. The PLL phase error is measured as the time difference between the positive edges of those clock signals. If the phase error is within the specified error window then an “in_phase” pulse is generated, otherwise an “out_of_phase” pulse is generated. The number of consecutive “in_phase” and “out_of_phase” pulses is accumulated and is used to determine the state of the lock output. PLL1_RDIV MCLK VCO_CLK R-divider N-divider Σ-Δ mod + PLL1_FDIV1/0 PLL1_IDIV PDCLK_R 1 D Q R PDCLK_N PLL1_BLEED Phase Detector 1 UP delay DOWN Charge pump CP1 D Q R Digital Lock Detector in_phase Measure phase error out_of_phase PLL1_LOCKDET rst LOCK count inc Control Counter Figure 22 Digital Lock Detector Typical R-divider and N-divider output waveforms are shown in Figure 23, along with the state transition diagram of the lock detector. The lock signal goes active after a number of consecutive “in_phase” pulses are received by the control logic, defined by the lock threshold (PLL1_LOCKDET bits 4-0); the lock signal subsequently goes inactive after a number of consecutive “out_of_phase” pulses are received, defined by the loss-of-lock threshold (PLL1_LOCKDET bits 7-5). Note that when the PLL is out of lock (lock = 0), the error window width is set by the “lock window” value in PLL1_LOCKDET bits 10-8; when the PLL is in lock (lock = 1), the error window width is increased by the “loss-of-lock” multiplier in PLL1_LOCKDET bits 12-11.The lock status is communicated to the host µC through the PLL1_STATUS register. 2015 CML Microsystems Plc 59 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 State Transition Diagram out_of_phase LOCK=0 Nominal “in-lock” phase detector signals count=0 in_phase Loss-of-lock window (PLL1_LOCKDET bits 12-11) RESET Y count++ count == loss-of-lock threshold? Lock window (PLL1_LOCKDET bits 10-8) N PDCLK_R N PDCLK_N (no bleed) VCO cycle PDCLK_N (with bleed) toffset count == lock threshold? Y count=0 count++ out_of_phase in_phase LOCK=1 Figure 23 Digital Lock Detector State Transitions In fractional-N mode the position of the N-divider edge varies by up to ±4 cycles of the VCO clock due to the action of the sigma-delta modulator, and has an extra offset of up to ±0.5 cycles depending on the fractional division value in PLL1_FDIV1/0. The effect of applying a bleed current is also shown in Figure 23; this increases the phase error as the PLL feedback loop compensates for the extra charge added on each phase detector cycle. Any leakage current on the CP1 pin adds a further shift – the source of this leakage current may be the on-chip current sources in the charge pump, or the off-chip loop filter or VCO components. The total amount of shift caused by the bleed and leakage current is given by 𝑡𝑜𝑓𝑓𝑠𝑒𝑡 ≅ 𝑅𝑑𝑖𝑣 (𝐼𝑏𝑙𝑒𝑒𝑑 +𝐼𝑙𝑒𝑎𝑘𝑎𝑔𝑒) 𝑓𝑀𝐶𝐿𝐾 𝐼𝐶𝑃1 (units are Amps, Hertz, seconds) where Rdiv is the MCLK division value set by PLL1_RDIV, Ileakage is the leakage current being sourced into the CP1 pin and ICP1 is the charge pump current setting. When configuring the digital lock detector the selected lock window width must be large enough to encompass the maximum expected phase error, with sufficient margin to give reliable lock detector operation in the presence of noise. A good starting point is to set the lock window approximately 50% larger than the maximum expected phase error: 4.5 𝐿𝑜𝑐𝑘 𝑤𝑖𝑛𝑑𝑜𝑤 ≈ ±1.5 × ( + |𝑡𝑜𝑓𝑓𝑠𝑒𝑡 |) 𝑓𝑉𝐶𝑂 The digital lock detector performance can be further optimised by adjusting the lock threshold and loss-of-lock threshold in PLL1_LOCKDET bits 7-0. Setting these thresholds to larger values makes the lock signal less liable to glitch as the PLL acquires lock and less sensitive to noise when in lock, but less responsive if the PLL loses lock. 12.3.2 Analogue Lock Detector Analogue lock detector mode is selected when PLL1_LOCKDET bit 14 = 1. The analogue lock detector is connected to the phase detector outputs as shown in Figure 24. 2015 CML Microsystems Plc 60 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 PLL1_RDIV MCLK VCO_CLK R-divider N-divider Σ-Δ mod + PLL1_FDIV1/0 PLL1_IDIV PLL1_BLEED Phase Detector PDCLK_R 1 D Q R PDCLK_N 1 UP delay Charge pump DOWN CP1 D Q R Analogue Lock Detector PLL1_LOCKDET R1 charge rate VH phase error R2 + - LOCK 0 discharge rate VL 1 C + - R1 reset_lock Figure 24 Analogue Lock Detector The output of the exclusive-OR gate in the analogue lock detector pulses every phase detector cycle, going high on the first rising edge of the two phase detector inputs and going low on the rising edge of the other input. The duration of this pulse is a measure of the phase error of the PLL loop, with a longer pulse representing a larger phase error. The pulse is used to control the charging and discharging of a capacitor. When the phase error signal is low the capacitor charges up, and when the phase error signal is high the capacitor discharges. When the average PLL phase error is small enough, an overall positive current is supplied to the capacitor and its voltage increases. When the capacitor voltage eventually exceeds the upper threshold in the comparator circuit the lock output goes high, indicating that the PLL is in lock. If the PLL phase error subsequently increases so that the overall current supplied to the capacitor is negative, the capacitor voltage decreases. When the capacitor voltage falls below the lower threshold in the comparator circuit the lock output goes low, indicating that lock has been lost. PLL1_LOCKDET bits 3-0 control the time taken for the capacitor voltage to increase from 0V to the upper comparator threshold voltage VH, in the absence of any phase error in the PLL loop. This value should be set to some multiple of the phase detector cycle time 𝑅𝑑𝑖𝑣 𝑡𝑐ℎ𝑎𝑟𝑔𝑒 ≈ 𝐿 ( ) 𝑓𝑀𝐶𝐿𝐾 where L is approximately the number of “in phase” cycles that must occur before the lock signal goes high. Typically, the value of L will be set to greater than 30 in order to achieve reliable lock detector operation. PLL1_LOCKDET bits 6-4 set the discharge rate of the capacitor, which is defined as a multiple of the charge rate. Note that the discharge current is always higher than the charge current. To configure the discharge rate the average “in-lock” phase error must be calculated. In the absence of any bleed or leakage current the phase error varies from cycle to cycle (in fractional-N mode) by an average of approximately 2 VCO cycles. 2015 CML Microsystems Plc 61 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Adding bleed or leakage current will increase the average phase error because it shifts the position of the Ndivider output with respect to the R-divider output. The amount of this shift, as described in section 12.3.1, is 𝑡𝑜𝑓𝑓𝑠𝑒𝑡 ≅ 𝑅𝑑𝑖𝑣 (𝐼𝑏𝑙𝑒𝑒𝑑 + 𝐼𝑙𝑒𝑎𝑘𝑎𝑔𝑒 ) 𝑓𝑀𝐶𝐿𝐾 𝐼𝐶𝑃1 For the purpose of calculations the average “in-lock” phase error is approximately 2 2 𝑡𝑝ℎ𝑎𝑠𝑒_𝑒𝑟𝑟 ≅ √𝑡𝑜𝑓𝑓𝑠𝑒𝑡 2 + ( ) 𝑓𝑉𝐶𝑂 In order for the lock detector capacitor voltage to increase when the PLL is in lock, the average charge supplied to the capacitor on each cycle must be greater than the charge removed. To achieve this, the discharge factor set by PLL1_LOCKDET bits 6-4 should set to: 𝑑𝑖𝑠𝑐ℎ𝑎𝑟𝑔𝑒_𝑟𝑎𝑡𝑒 ≈ 1 𝑅𝑑𝑖𝑣 ( − 1) 𝑀 𝑓𝑀𝐶𝐿𝐾 𝑡𝑝ℎ𝑎𝑠𝑒_𝑒𝑟𝑟 where M is the ratio (when in lock) of the charge added to the capacitor to the charge removed on each phase detector cycle. A good rule is to make M=4, although this value can be adjusted to achieve reliable lock detector operation. 2015 CML Microsystems Plc 62 D/983/6 Analogue Front End (AFE) for Digital Radio 13 CMX983 Auxiliary ADC and Comparators AVDD 2.5V Threshold adjust Analogue comparator status Output invert/ latch + - 0 + - 1 Digital comparator status AUXCMP_ST_EN AUXCMP_STAT + - 2 AUXADC_STAT 8 AUXCMP_CON0 + - Threshold comparators AUXCMP_CON1 3 + - AUXADC_THR0 AUXADC_THR1 5 4 AUXADC_THR2 AUXADC_THR3 AUXADC_THR4 AUXCMP_CON2 AUXADC_THR5 AUXCMP_CON3 AUXADC_THR6 AUXCMP_CON4 AUXADC_THR7 Analogue Comparators AUXADC0 AUXADC1 AUXADC2 AUXADC3 AUXADC4 AUXADC5 AUXADC_DATA0 AUXADC_DATA1 10-bit ADC 10 Sample/ Hold 2 DEMUX MUX Sample/ Hold 1 AUXDAC8 (AUXADC7) Alternate routing for AuxADC Channels 6 and 7 I Q ÷N ÷4M ÷N AUXADC_DATA5 End of convert status ÷2P ÷4M AUXADC_DATA4 AUXADC_DATA7 Clock div CLK AUXADC_DATA3 AUXADC_DATA6 AuxADCClk AUXDAC7 (AUXADC6) AUXADC_DATA2 Timer ADC control logic PwrUp AUXADC_CON AUXADC_START AUXADC_ABORT AUXADC_CLK From input gain stage AUXADC_PWRUP Figure 25 Auxiliary ADC and Comparators The Auxiliary ADC and Comparators circuit is shown in Figure 25. The auxiliary analogue to digital converter is a 10-bit successive approximation ADC with eight multiplexed inputs. Six of the ADC inputs connect to dedicated input pins and the remaining two inputs can be individually configured to connect to either the main Rx channel I/Q gain stages, or to the AUXDAC7/8 pins. If using either of the AUXDAC7/8 pins as an ADC input, the associated auxiliary DAC cannot be used and must be disabled. Each auxiliary ADC channel includes a digital threshold comparator that can assert a status flag when any of the programmed threshold levels have been exceeded. There are five analogue comparators that share five of the ADC input signals. Each of these five inputs is compared against an internal voltage threshold, and a separate flag is set when any of the programmed threshold levels have been crossed. 2015 CML Microsystems Plc 63 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 13.1 Auxiliary ADC Each of the eight auxiliary ADC inputs can be disabled if required. Two sample-and-hold (S/H) circuits are used so that while one channel is being converted, the next channel is charging the opposite S/H. The ADC uses the analogue supply AVDD as a reference – an input value of 0V gives a nominal digital output of 0, and an input value equal to AVDD gives a nominal output of 1023 ($3FF). The ADC can be configured into one of two conversion modes: 1. Single shot convert – when the host processor issues an AUXADC_START command through the C-BUS, a convert sequence (an A/D conversion on each enabled input in ascending order) is performed. 2. Continuous convert – Convert sequences are performed repeatedly, under control of an internal timer. In both conversion modes a status bit is generated at the end of each convert sequence. A separate status bit is generated when the converted data values of selected channels cross a high or low preset threshold value. These status bits appear in the main STATUS register (section 6.4) and can either be polled by the host μC, or used to generate an interrupt signal. Note that although the “end of convert” indication occurs when all selected channels have completed conversion, each individual result register is updated when the respective channel finishes a conversion. Therefore, in continuous convert mode, there is a limited time after the “end of convert” is asserted before the next convert sequence overwrites the first enabled channel’s data register. The host μC must read the result within this time otherwise the data will be lost. To save power, the Aux ADC can be configured to automatically power down parts of its analogue circuitry when no channels are selected for conversion, or after a convert sequence (in either single shot or continuous convert mode) has completed on all enabled channels. When this power down mode is selected, a programmable delay must be added at the start of each new convert sequence before the ADC starts doing its first conversion. This delay, controlled by the AUXADC_PWRUP register, allows time for circuits to power up and stabilise and adds directly to the time taken to complete a convert sequence. The following C-BUS registers are used to configure the auxiliary ADCs: AUXADC_START - $60 C-BUS command, no data required When the Aux ADC is configured in single shot convert mode, a convert sequence is initiated when the host μC issues an AUXADC_START command. This command is ignored it the ADC is configured in continuous convert mode, or in single shot mode if a convert sequence is already in progress. AUXADC_ABORT - $61 C-BUS command, no data required Issuing this command immediately terminates an active single shot or continuous convert sequence, without generating an “end of convert” status bit. The AUXADC_ABORT command also resets the convert mode to single shot (AUXADC_CON bit 8 = 0), but leaves all other configuration bits unaltered. 2015 CML Microsystems Plc 64 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 AUXADC_CLK - $62: 16-bit Write Reset value = $0000 Bit: 15 14 13 12 11 10 Aux ADC clock divide 9 8 7 6 5 4 Timer coarse divide 3 2 1 0 Timer fine divide AUXADC_CLK b15-10: Aux ADC clock divide These bits hold the prescaler value P that determines the frequency of the auxiliary ADC clock ‘AuxADCClk’. The value P can be set to between 1 and 64 (000000 = 64); the frequency of AuxADCClk is given by: f AuxADCClk f CLK 2 P AuxADCClk should be set to a frequency of between 1MHz and 2MHz. Each individual ADC conversion takes 11 periods of AuxADCClk to perform, plus one extra cycle of CLK to store the result in the associated data register. If there are N channels enabled, then a convert sequence will be completed in a time given by: 11 1 TConvert N f AuxADCClk f CLK If the AUXADC_PWRUP register is loaded with a value greater than 0, the convert sequence will be lengthened by that number of AuxADCClk cycles. AUXADC_CLK b9-7: Timer coarse divide AUXADC_CLK b6-0: Timer fine divide The Aux ADC timer determines the rate at which convert sequences are started in continuous convert mode. The coarse divide can be set to a value between 0 and 7, and the fine divide can be set to between 1 and 128 (0000000 = 128). The timer interval is given by this expression: TTimer 4 CoarseDivide FineDivide f CLK For instance, if the coarse divide is set to 2 (010) and the fine divide is set to 125 (1111101) then the 2 timer interval will equal 4 x125 = 2000 cycles of CLK. The timer period TTimer should be set to a value greater than the convert sequence time T Convert, unless back-to-back convert sequences are required in which case set the coarse divide to 000 and the fine divide to 0000001. AUXADC_PWRUP - $63: 16-bit Write Reset value = $0000 Bit: 15 Pwrup enab 14 0 13 0 12 0 11 10 0 Power up coarse divide 9 8 7 6 5 4 3 2 1 0 Power up fine divide AUXADC_PWRUP b15: Power-up enable 2015 CML Microsystems Plc 65 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Set to 1 to enable the power-up delay timer. Set to 0 to disable the delay timer – this should only be done if the sample/hold circuits remain powered up between convert sequences (see register AUXADC_CON). AUXADC_PWRUP b14-11: Reserved, set to 0 AUXADC_PWRUP b10-8: Timer coarse divide AUXADC_PWRUP b7-0: Timer fine divide The power-up divider determines how many cycles of AuxADCClk will occur after a convert sequence is initiated before the conversion actually begins. The coarse divide can be set to a value between 0 and 7, and the fine divide can be set to between 1 and 256 (00000000 = 256). The delay is given by: 4 CoarseDivide FineDivide TPowerup f CLK With the Aux ADC configured to power down the sample/hold circuits between convert sequences, this delay allows the circuits time to power back up and stabilise when a new convert sequence begins. The required delay time is defined in section 14.3 (Operating Characteristics). AUXADC_CON - $64: 16-bit Write Reset value = $0200 Bit: 15 14 0 0 13 12 11 10 9 8 7 “Q” “I” ADC7 ADC6 S/H single single Conv. alt alt autoended ended mode input input power enable enable 6 5 4 3 2 1 0 Channel Enable AUXADC_CON Register b15-14: Reserved, set to 0 AUXADC_CON Register b13: ADC7 Alternative Input Set to 1 to connect pin AUXDAC8 to ADC input 7, set to 0 to connect the Q channel differential to single-ended converter to ADC input 7. When using pin AUXDAC8 as an input to the aux ADC, the pin must be put into a high impedance state by disabling Aux DAC8 (clear AUXDAC_DATA8 register b15). AUXADC_CON Register b12: ADC6 Alternative Input Set to 1 to connect pin AUXDAC7 to ADC input 6, set to 0 to connect the I channel differential to single-ended converter to ADC input 6. When using pin AUXDAC7 as an input to the aux ADC, the pin must be put into a high impedance state by disabling Aux DAC7 (clear AUXDAC_DATA7 register b15). AUXADC_CON Register b11: Q-channel single-ended converter enable Set to 1 to enable the differential to single-ended converter on ADC input 7, and enable the associated input gain stage in Rx channel B (if not already enabled). Set this bit to 0 to power down the converter. The converter cannot automatically power down between convert sequences. AUXADC_CON Register b10: I-channel single-ended converter enable Set to 1 to enable the differential to single-ended converter on ADC input 6, and enable the associated input gain stage in Rx channel A (if not already enabled). Set this bit to 0 to power down the converter. The converter cannot automatically power down between convert sequences. 2015 CML Microsystems Plc 66 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 AUXADC_CON Register b9: Sample/hold auto-power Set this bit to 1 to automatically power down the sample/hold circuits between conversion sequences. Set this bit to 0 to keep the sample/hold circuits powered up between conversion sequences. AUXADC_CON Register b8: Convert Mode Set to 0 for single shot convert mode. Issuing a C-BUS AUXADC_START command then starts a single conversion on each of the enabled ADC inputs from lowest to highest. Set to 1 for continuous convert mode. Convert sequences (A/D conversions on each enabled input from lowest to highest) are then automatically performed at regular intervals, as determined by the timer divide value in the AUXADC_CLK register. This bit is automatically cleared to 0 by an AUXADC_ABORT command. AUXADC_CON Register b7-0: Channel Enable When any of the channel enable bits is set to 1 it causes the corresponding input to be selected for analogue to digital conversion. During a convert sequence each enabled channel, from the lowest to the highest, is converted in turn. The channel enable bits should not be modified while a convert sequence is underway. Channel Select 7 6 5 4 Analogue Input Q input I input AUXADC5 AUXADC4 Channel Select 3 2 1 0 Analogue Input AUXADC3 AUXADC2 AUXADC1 AUXADC0 Aux ADC inputs 0 to 5 (pins AUXADC0 to AUXADC5) are direct inputs to the ADC multiplexer. Inputs 6 and 7 connect to the main ADC channel A and B signal inputs through differential to singleended converters. These have good common mode rejection and a differential gain of 0.5, so that an input signal of, say, 5V pk-pk differential will give a 2.5V pk-pk output, centred on AVDD/2. AUXADC_THR0 - $65 AUXADC_THR1 - $66 AUXADC_THR2 - $67 AUXADC_THR3 - $68 AUXADC_THR4 - $69 AUXADC_THR5 - $6A AUXADC_THR6 - $6B AUXADC_THR7 - $6C Reset value = $00FF Bit: 15 14 16-bit Write 16-bit Write 16-bit Write 16-bit Write 16-bit Write 16-bit Write 16-bit Write 16-bit Write 13 12 11 10 9 8 Aux ADC threshold value B 7 6 5 4 3 2 1 0 Aux ADC threshold value A At the end of a convert sequence the result for each enabled ADC channel is compared against the two threshold values in the associated threshold register, and a bit in the AUXADC_STAT register is set accordingly (this may also set a bit in the main STATUS register). Only the most significant 8 bits of the Aux ADC values are used for the comparison. Using Aux ADC channel 0 as an example, the 2015 CML Microsystems Plc 67 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 associated ADC status bit (AUXADC_STAT bit 0) is set as shown below. The other seven channels operate in a similar way. (a) If threshold value A (AUXADC_THR0 b7-0) threshold value B (AUXADC_THR0 b15-8), then the status bit (AUXADC_STAT b0) is set if: ADC result (AUXADC_DATA0 b9-2) > threshold value A (AUXADC_THR0 b7-0), OR ADC result (AUXADC_DATA0 b9-2) < threshold value B (AUXADC_THR0 b15-8) (b) If threshold value A (AUXADC_THR0 b7-0) < threshold value B (AUXADC_THR0 b15-8), then the status bit (AUXADC_STAT b0) is set if: ADC result (AUXADC_DATA0 b9-2) > threshold value A (AUXADC_THR0 b7-0), AND ADC result (AUXADC_DATA0 b9-2) < threshold value B (AUXADC_THR0 b15-8) Setting the threshold values according to (a) is useful for testing if the ADC value has exceeded a particular range, and (b) is useful for testing if the ADC value has entered a particular range, as shown in Figure 26. Note that the threshold comparison for a particular channel can be disabled by setting threshold value A = $FF and threshold value B = $00. Case (a): $3FF → ← Threshold A → Threshold status bit set if ADC result enters this range… Case (b): $3FF → Threshold B → ← Threshold B → ← $000 → … or if ADC result enter this range Threshold A → Threshold status bit set if ADC result enters this range. $000 → Figure 26 Auxiliary ADC Threshold Trigger Range AUXADC_STAT - $6D: 8-bit Read Reset value = $00 Bit: 7 6 5 4 3 2 1 0 ADC ADC ADC ADC ADC ADC ADC ADC thresh thresh thresh thresh thresh thresh thresh thresh flag 7 flag 6 flag 5 flag 4 flag 3 flag 2 flag 1 flag 0 AUXADC_STAT Register b7-0: ADC threshold flag 7..0 Each ADC threshold flag gets set to 1 at the end of a convert sequence if the associated ADC channel is enabled and the corresponding ADC result is within the programmed threshold range (see description of AUXADC_THR7..0 registers). The threshold flags in AUXADC_STAT are sticky: once they are set to 1 they remain in that state until a C-BUS read of AUXADC_STAT is performed, after which they are automatically cleared to 0. The eight threshold flags in the AUXADC_STAT register are ORed together and the resulting digital comparator status bit is passed to the CMX983 STATUS register (section 6.4). 2015 CML Microsystems Plc 68 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 AUXADC_DATA0 - $6E: 16-bit Read AUXADC_DATA1 - $6F; 16-bit Read AUXADC_DATA2 - $70: 16-bit Read AUXADC_DATA3 - $71: 16-bit Read AUXADC_DATA4 - $72; 16-bit Read AUXADC_DATA5 - $73: 16-bit Read AUXADC_DATA6 - $74: 16-bit Read AUXADC_DATA7 - $75: 16-bit Read Reset value = $0000 Bit: 15 14 13 12 11 10 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 Aux ADC data Each of the eight registers AUXADC_DATA0 to AUXADC_DATA7 holds the 10-bit result of the last conversion performed on the associated channel. The data is updated immediately that the respective channel has been converted during a convert sequence, the registers are not updated simultaneously when the convert sequence has completed. 2015 CML Microsystems Plc 69 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 13.2 Auxiliary Comparators Each of the five analogue comparator channels can be individually enabled. The positive inputs of the comparators are connected to the AUXADC4..0 input pins, and the negative inputs of the comparators are connected to a set of five programmable threshold voltages. The threshold voltages can be individually set in nominal 100mV increments, and can use either the analogue supply or an on-chip bandgap voltage as a reference. Each comparator output can be optionally inverted so that a status flag is generated either when the input pin is above or below the associated threshold voltage. The following C-BUS registers are used to configure the auxiliary ADCs: AUXCMP_CON0 - $76: 8-bit Write AUXCMP_CON1 - $77: 8-bit Write AUXCMP_CON2 - $78; 8-bit Write AUXCMP_CON3 - $79: 8-bit Write AUXCMP_CON4 - $7A: 8-bit Write Reset value = $00 Bit: 7 6 5 4 3 2 1 0 CON0: Enab Invert Vref cmp 0 cmp 0 sel 0 Comparator 0 threshold voltage CON1: Enab Invert Vref cmp 1 cmp 1 sel 1 Comparator 1 threshold voltage CON2: Enab Invert Vref cmp 2 cmp 2 sel 2 Comparator 2 threshold voltage CON3: Enab Invert Vref cmp 3 cmp 3 sel 3 Comparator 3 threshold voltage CON4: Enab Invert Vref cmp 4 cmp 4 sel 4 Comparator 4 threshold voltage Each of these five registers controls one of the analogue comparators: AUXCMP_CON0-4 Register b7: Enable comparator Set to 1 to enable the associated channel (comparator + threshold voltage generator), or set to 0 to disable and powersave the channel. The comparators are prevented from setting their associated flag bit in the AUXCMP_STAT register when they are disabled, or for 256 CLK cycles after the enable bit changes from 0 to 1 (to allow time for the internal threshold voltage to settle). AUXCMP_CON0-4 Register b6: Invert comparator Set to 1 to invert the comparator output, causing the comparator flag to be set when the input voltage goes below the comparator threshold voltage. Set to 0 to cause the comparator flag to be set when the input voltage goes above the comparator threshold voltage. AUXCMP_CON0-4 Register b5: Voltage reference select Set to 1 to use the internally generated voltage (2.5V) as the reference for the comparator threshold. Set to 0 to use the analogue supply voltage (AVDD) as the reference for the comparator threshold. AUXCMP_CON0-4 Register b4-0: Comparator threshold voltage Set the comparator threshold voltage from 0.0V (000002) to 3.1V (111112) in 100mV (nominal) steps. Note: if using the internally generated voltage as a reference, then the maximum voltage that can be set is 2.5V (110012). 2015 CML Microsystems Plc 70 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 AUXCMP_STAT - $7B: 8-bit Read Reset value = $00 Bit: 7 6 5 0 0 0 4 3 2 1 0 Cmp Cmp Cmp Cmp Cmp thresh thresh thresh thresh thresh flag 4 flag 3 flag 2 flag 1 flag 0 AUXCMP_STAT Register b7-5: Reserved, set to 0 AUXCMP_STAT Register b4-0: Comparator threshold flag 4..0 Each comparator threshold flag gets set to 1 if the associated comparator is enabled and the corresponding input pin voltage is greater than the programmed threshold voltage (or less than, if the comparator output is inverted). The threshold flags in AUXCMP_STAT are sticky: once they are set to 1 they remain in that state until a C-BUS read of AUXCMP_STAT is performed, after which they are automatically cleared to 0. When AUXCMP_STAT is read, if the comparator input is still greater than the programmed threshold voltage then the flag will stay high. Disabling a comparator channel does not automatically clear the associated flag bit. The five threshold flags in the AUXCMP_STAT register are gated with the enable bits in the AUXCMP_STAT_EN register and are then ORed together. The resulting analogue comparator status bit is passed to the CMX983 STATUS register (section 6.4), as shown in Figure 27. This can be used to generate an interrupt signal. From channels 1...4 + - 4 3 2 1 Analogue comparator status set Q rst [Comparator / latch channel 0 shown] CLK AUXCMP_CON0 bit 7 (Enab cmp) AUXCMP_CON0 bit 6 (Invert cmp) AUXCMP_STAT bit 0 AUXCMP_ST_EN bit 0 (Enab stat 0) Read AUXCMP_STAT Figure 27 Comparator and Threshold Status Flag AUXCMP_ST_EN - $7C: 8-bit Write Reset value = $00 Bit: 7 6 5 0 0 0 4 3 2 1 0 Enab Enab Enab Enab Enab stat 4 stat 3 stat 2 stat 1 stat 0 AUXCMP_ST_EN Register b7-5: Reserved, set to 0 AUXCMP_ST_EN Register b4-0: Enable status 4..0 Setting any of the enable status bits to 1 allows the associated comparator threshold flag in the AUXCMP_STAT register to drive the analogue comparator status bit to 1. 2015 CML Microsystems Plc 71 D/983/6 Analogue Front End (AFE) for Digital Radio 14 CMX983 Auxiliary DACs Figure 28 Auxiliary DACs The CMX983 has nine general-purpose 10-bit D/A converters (pins AUXDAC0 – AUXDAC8) to assist in a variety of control functions (Figure 28). These Aux DACs operate independently, and can be individually enabled or powered down. The Aux DACs are designed to provide an output as a proportion of the analogue supply voltage, depending on the Aux DACs data register setting: a value of 0 drives that Aux DACs output to AVSS; a value of 1023 ($3FF) drives the output to AVDD. DAC0 has an additional ramping feature where the contents of an internal 64 word × 10 bit DAC RAM can be transferred in ascending order to DAC0 (ramp up), in descending order (ramp down) or repeatedly up and down (cyclical ramping) at a programmable rate. The DAC0 ramp up and ramp down facility is particularly useful for controlling the power of an RF transmitter at the beginning and end of a transmit slot, in order to minimise adjacent-channel splatter. The following C-BUS registers are used to configure the auxiliary DACs: AUXDAC_CLK - $82: 16-bit Write Reset value = $0000 Bit: 15 14 13 12 11 0 0 0 0 0 10 9 8 7 Ramp coarse divide 6 5 4 3 2 1 0 Ramp fine divide AUXDAC_CLK Register b15-11: Reserved, set to 0 2015 CML Microsystems Plc 72 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 AUXDAC_CLK Register b10-8: Ramp coarse divide AUXDAC_CLK Register b7-0: Ramp fine divide The ramp clock divider determines the rate at which the 64-word DAC RAM is read during a ramp sequence – a total of 63 reads are performed during a ramp up or ramp down. The coarse divide can be set to a value between 0 and 7, and the fine divide can be set to between 1 and 256 (00000000 = 256). The total time taken to ramp up or down is given by the following expression: 4 CoarseDivide FineDivide TRAMP 63 f CLK For instance, if the coarse divide is set to 2 (010) and the fine divide is set to 15 (00001111) then the 2 ramp time will equal 63x4 x15 = 15120 cycles of CLK. During cyclical ramping, the period of a single output cycle will equal 2xTRAMP. AUXDAC_RAMD - $83: 16-bit Write, data-streaming Reset value = undefined Bit: 15 14 13 12 11 10 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 Aux DAC RAM values The 64-word DAC RAM can be loaded in ascending order by repeatedly writing data to this C-BUS location (the internal address pointer automatically increments after each write). To increase the loading rate of the coefficients, data-streaming operation is supported for this C-BUS address. Before loading the DAC RAM, the internal address pointer needs to be initialised (usually to address 0); this is done by writing to register AUXDAC_RAMA. Note that writes to the DAC RAM are disabled if the DAC0 select bit (AUXDAC_DATA0 bit 12) is set to 1. AUXDAC_RAMA - $84: 8-bit Write Reset value = $00 Bit: 7 6 0 0 5 4 3 2 1 0 DAC RAM address pointer The DAC RAM address pointer determines the address at which data gets written during a C-BUS write to the auxiliary DAC RAM. The address pointer automatically increments after each 16-bit value is written, so if the RAM is written in an ascending sequence the pointer only needs to be initialised once before the RAM is loaded. AUXDAC_UP - $85 C-BUS command, no data required When the AUXDAC_UP command is issued, the DAC RAM contents are read out in an ascending sequence and applied to DAC0 (through the multiplexer) until the final location at address 63 has been read. AUXDAC_DOWN - $86 C-BUS command, no data required 2015 CML Microsystems Plc 73 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 When the AUXDAC_DOWN command is issued, the DAC RAM contents are read out in a descending sequence and applied to DAC0 (through the multiplexer) until the final location at address 0 has been read. AUXDAC_CYCLE - $87 C-BUS command, no data required When the AUXDAC_CYCLE command is issued, the DAC RAM will cycle continuously between ramp up and ramp down operations. The rate at which data is read from the RAM is determined by the AUXDAC_CLK register, and it takes a total of 2x63 = 126 reads to complete one up + one down cycle. This mode of operation can be terminated by issuing an AUXDAC_UP, AUXDAC_DOWN or AUXDAC_RST command, or by setting AUXDAC_DATA0 bit 12 to 0. AUXDAC_RST - $88 C-BUS command, no data required When the AUXDAC_RST command is issued, any active ramp operation is immediately terminated and the DAC RAM pointer is reset to 0. AUXDAC_DATA0 - $89: 16-bit Write AUXDAC_DATA1 - $8A: 16-bit Write AUXDAC_DATA2 - $8B: 16-bit Write AUXDAC_DATA3 - $8C: 16-bit Write AUXDAC_DATA4 - $8D: 16-bit Write AUXDAC_DATA5 - $8E: 16-bit Write AUXDAC_DATA6 - $8F: 16-bit Write AUXDAC_DATA7 - $90: 16-bit Write AUXDAC_DATA8 - $91: 16-bit Write Reset value = $0000 Bit: 15 14 13 12 Ramp Ramp DAC0 revrse hold select 11 10 9 8 7 6 5 4 0 0 Aux DAC0 data DAC0: Enab DAC1: Enab 0 0 0 0 0 Aux DAC1 data DAC2: Enab 0 0 0 0 0 Aux DAC2 data DAC3: Enab 0 0 0 0 0 Aux DAC3 data DAC4: Enab 0 0 0 0 0 Aux DAC4 data DAC5: Enab 0 0 0 0 0 Aux DAC5 data DAC6: Enab 0 0 0 0 0 Aux DAC6 data DAC7: Enab 0 0 0 0 0 Aux DAC7 data DAC8: Enab 0 0 0 0 0 Aux DAC8 data 3 2 1 0 AUXDAC_DATA0-8 Register b15: DAC0 – DAC8 enable Setting any of these bits to 1 enables the corresponding Aux DAC circuit and causes a voltage to be driven onto its output pin. When a DAC is disabled it goes into a zero-power state and its output pin goes high impedance. AUXDAC_DATA0 Register b14: Ramp reverse mode 2015 CML Microsystems Plc 74 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 This bit determines the behaviour of DAC0 during a ramp operation when a C-BUS command is issued that reverses the direction of the ramp, i.e. issuing an AUXDAC_UP command while the DAC is ramping down, or issuing an AUXDAC_DOWN command while the DAC is ramping up. When this bit is set to 0, the ramp direction reverses immediately. When this bit is set to 1, the ramp direction reverses only when the currently active ramp operation completes. AUXDAC_DATA0 Register b13: Ramp hold Set this bit to 1 to pause a ramp up, ramp down or ramp cycle operation; this freezes the DAC0 output. Setting this bit to 0 allows the ramp function to continue. AUXDAC_DATA0 Register b12: DAC0 select This bit controls the multiplexer at the input to DAC0. When this bit is set to 1, the DAC RAM output register is connected to DAC0 and C-BUS writes to the DAC RAM are disabled. When this bit is set to 0, the AUXDAC_DATA0 register is connected to DAC0 and any active ramp operation is immediately terminated. AUXDAC_DATA1-8 Register b14-12: Reserved, set to 0 AUXDAC_DATA0-8 Register b11-10: Reserved, set to 0 AUXDAC_DATA0-8 Register b9-0: DAC0 – DAC8 data The least significant 10-bit values in registers AUXDAC_DATA1 – AUXDAC_DATA8 are driven directly into the corresponding auxiliary DACs. The least significant 10-bit value in register AUXDAC_DATA0 is multiplexed with the output of the ramp circuit before being driven into DAC0; this multiplexer is controlled by AUXDAC_DATA0 bit 12. An example of the Aux DAC RAM contents for a raised cosine ramp profile is shown in Figure 29. Aux DAC RAM contents (hexadecimal) 0 000 16 09A 32 20C 48 376 1 001 17 0AD 33 226 49 387 2 003 18 0C1 34 23F 50 397 3 006 19 0D5 35 258 51 3A6 4 00A 20 0EA 36 271 52 3B4 5 010 21 100 37 28A 53 3C1 6 017 22 116 38 2A2 54 3CC 7 01F 23 12D 39 2BA 55 3D7 8 028 24 145 40 2D2 56 3E0 9 033 25 15D 41 2E9 57 3E8 10 03E 26 175 42 2FF 58 3EF 11 04B 27 18E 43 315 59 3F5 12 059 28 1A7 44 32A 60 3F9 13 068 29 1C0 45 33E 61 3FC 14 078 30 1D9 46 352 62 3FE 15 089 31 1F3 47 365 63 3FF Figure 29 Aux DAC RAM contents example 2015 CML Microsystems Plc 75 D/983/6 Analogue Front End (AFE) for Digital Radio 15 CMX983 Performance Specification 15.1 Absolute Maximum Ratings Exceeding these maximum ratings can result in damage to the device. Power Supplies IOVDD - IOVSS DVDD - DVSS AVDD - AVSS RF1VDD - AVSS RF2VDD - AVSS CP1VDD - AVSS CP2VDD - AVSS Voltage differential between power supplies: IOVSS, DVSS and AVSS Voltage on any pin to DVSS Current into or out of any pin, except power supply pins Q1 Package (64-pin VQFN) Total Allowable Power Dissipation at TAMB = 25 C ... Derating Storage Temperature Operating Temperature Min. Max. Units -0.3 -0.3 -0.3 -0.3 -0.3 -0.3 -0.3 4.0 2.16 4.0 2.16 2.16 6.0 6.0 V V V V V V V 0 -0.3 -20 – Min. -55 -40 50 IOVDD + 0.3 +20 mV V mA Max. 3500 35.0 +125 +85 Units mW mW/°C C °C 15.2 Operating Limits Correct operation outside these limits is not implied. IOVDD - IOVSS DVDD - DVSS AVDD - AVSS RF1VDD - AVSS RF2VDD - AVSS CP1VDD - AVSS CP2VDD - AVSS Voltage differential between power supplies: IOVSS, DVSS and AVSS Operating Temperature Master Clock Frequency (MCLK) Internal Clock Frequency (CLK) Min 3.0 1.7 3.0 1.7 1.7 3.0 3.0 Typ 3.3 1.8 3.3 1.8 1.8 5.0 5.0 Max. 3.6 1.9 3.6 1.9 1.9 5.25 5.25 Units V V V V V V V 0 – 50 mV -40 5.0 5.0 – – – +85 30 50 °C MHz MHz It is recommended that the 1.8V supplies (DVDD, RF1VDD and RF2VDD) be brought up and the RESETN pin driven low before the analogue supply (AVDD) is brought up. The charge pump supplies (CP1VDD, CP2VDD) can be brought up either before or after the other supplies. If this sequence is not followed then the analogue circuits may power up in an indeterminate or active state, and this state may persist until the 1.8V supplies are brought up and the RESETN pin is driven low. The CMX983 will not suffer physical damage or reliability degradation if the recommended power up sequence is not followed. 2015 CML Microsystems Plc 76 D/983/6 Analogue Front End (AFE) for Digital Radio 15.3 CMX983 Operating Characteristics For the conditions in Table 4 below unless otherwise specified: Table 4 Operational Characteristics - Test Conditions Power supplies General AVDD, IOVDD 3.3 V fMCLK, fCLK CP1VDD, CP2VDD 5.0 V TAMB DVDD, RF1VDD, RF2VDD 1.8 V 19.2 25 MHz C Main ADC and Rx channel configuration Signal tone 1010 Hz Signal amplitude, peak 1.98 V Rx input gain 0 dB Σ-Δ clock rate (CR1) 2.4 MHz Sinc filter length 16 Sinc filter no. 5 Bit selector 1 17 Decimator 1 rate 16 FIR filter Bypass Bit selector 2 1 Decimator 2 rate 1 Output sample rate (CR3) 150 kHz Measurement bandwidth 9 kHz Main DAC and Tx channel configuration Signal tone 1010 Hz Input code level, peak ±30178 Input sample rate (CT1) 150 kHz Upsampler 1 rate Bypass FIR filter Bypass Bit selector Bypass Upsampler 2 rate 16 Σ-Δ clock rate (CT3) 2.4 MHz SC filter bandwidth Low Tx output gain 0 dB External RC filter -3dB 100 kHz Measurement bandwidth 9 kHz DC Parameters Supply Current – Powersave IOIDD DIDD AIDD RF1IDD or RF2IDD CP1IDD or CP2IDD Notes 1 Min. Typ. Max. Unit – – – – – 10 100 20 10 10 – – – – – µA µA µA µA µA 6 – – 0.83 0.52 – – mA mA Supply Current – I and Q Tx Channels Active IOIDD DIDD DIDD AIDD 1, 2 1, 2 1, 5 1, 2 – – – – 1.7 6.5 5.7 6.5 – – – – mA mA mA mA Supply Current – I and Q Rx Channels Active IOIDD DIDD DIDD AIDD 1, 2 1, 2 1, 5 1, 2 – – – – 0.8 7.8 7.0 7.2 – – – – mA mA mA mA Supply Current – Idle (CLK running) DIDD AIDD 2015 CML Microsystems Plc 77 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Additional Currents from Idle Mode One RF Synthesiser active: DIDD AIDD RF1IDD or RF2IDD CP1IDD or CP2IDD – – – – 0.09 1.2 9.2 0.75 – – – – mA mA mA mA Digital PLL active: DIDD – 0.47 – mA One AuxADC input active: DIDD AIDD – – 0.06 0.45 – – mA mA One AuxDAC output active: DIDD AIDD – – 0.02 0.26 – – mA mA VBIAS Buffer active: AIDD – 0.11 – mA 2015 CML Microsystems Plc 3 4 78 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 DC Parameters Digital Interfaces Input Logic ‘1’ Input Logic ‘0’ Input Leakage Current (Logic ‘1’ or ‘0’) Input Capacitance Output Logic ‘1’ (IOH = 2mA) Output Logic ‘0’ (IOL = -5mA) “Off” State Leakage Current Notes VBIAS Output voltage offset wrt AVDD/2 (IOL < 1A) Output impedance Start-up time VBBUF (VBIAS Buffer) Output load current 7 Min. Typ. Max. Unit 70% – -1.0 – 90% – -1.0 – – – – – – – – 30% 1.0 7.5 – 10% 1.0 IOVDD IOVDD µA pF IOVDD IOVDD µA – – – ±2% 50 10.5 – – – AVDD k ms – – 50 µA Notes: 1. TAMB = 25°C, not including any current drawn from the device pins by external circuitry. 2. Includes 2 x RF Synthesisers, digital PLL, AuxADC and AuxDAC. 3. Lock detect active. 4. Per charge pump, with an output current of 100µA. 5. No digital PLL, RF synthesisers or auxiliary circuits. 6. MCLK amplifier active. 7. With 100nF load. 2015 CML Microsystems Plc 79 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Operating Characteristics (continued) AC Parameters Clocks MCLK frequency (fMCLK) MCLK sensitivity (AC-coupled) MCLK slew rate (AC-coupled) MCLK amplifier phase noise CLK frequency (fCLK) Notes Min. Typ. Max. Unit 5 0.2 10 – 5 – – – -83 – 30 0.8 – – 50 MHz Vpk-pk V/µs dBc/Hz MHz 100 50 150 – -20 -4 0.5 – – – 25-400 – – – – 32 36 – – – – -205 2100 MHz 500 mVpk – V/µs – µA 20 % 4 % CP1/2 V VDD - 0.5 30 MHz 2047 2043 – dBc/Hz Main ADCs Gain stage error Sigma-delta clock rate (CR1) SINAD Input voltage (after gain stage) SFDR Zero error (offset) -0.3 – 87 – - 0 2.4 88 – 95 ±5.5 0.3 2.6 – 20 to 80 ±10 dB MHz dB %AVDD dB mV Main DACs Gain stage error Sigma-delta clock rate (CT3) Output voltage Resolution (gain = 0dB) Output load (per output, to AVDD/2) SINAD SFDR Zero error (offset) -0.3 – – – 20 72 – – 0 2.4 – 75.5 – 76 85 ±3.0 0.3 2.6 10 to 90 – – – – ±10 dB MHz %AVDD µV/bit kΩ dB dB mV 10 Synthesiser 1 and 2 RF input frequency (fRF1,2) RF input sensitivity RF input slew rate Charge pump sink/source (programmable) Charge pump absolute accuracy Charge pump matching Charge pump compliance range 12 PD comparison frequency (fCOMP) N-Divider range (Integer mode) N-Divider range (Fractional mode) 1Hz normalised phase noise floor 11 Notes: 10. MCLK = 19.2MHz sinewave, 400mVpk-pk, measured at 1kHz offset. 11. 1Hz Normalised Phase Noise Floor (PN1Hz) can be used to calculate the phase noise within the PLL loop bandwidth by: Measured Phase Noise (in 1Hz) = -PN1Hz - 20log10(N) - 10log10(fcomparison); fcomparison = Frequency at the output of the reference divider; N = main divider ratio. Measured with fcomparison = 2.4MHz, charge pump current = 400uA, modulator setting = 001. Value will vary depending on PLL settings. 12. An input sinewave below 477MHz requires an amplitude greater than 50mVpk in order to meet the minimum slew rate specification. 2015 CML Microsystems Plc 80 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Operating Characteristics (continued) AC Parameters Aux ADC Sample/hold startup time Resolution Aux ADC clock period Integral non-linearity Differential non-linearity Zero error (offset) Input capacitance Notes 20 20, 21 Aux Comparators Internal 2.5V reference voltage Comparator offset voltage Aux DACs Capacitive load on Aux DAC output Resolution Settling time to 0.5 LSB Integral non-linearity Differential non-linearity Zero error (offset) Output current (individual Aux DAC output) Total output current (sum of all Aux DACs) Output noise voltage (100 Hz – 30kHz) 22 24 23 Min. Typ. Max. Unit 30 – 500 – – – – – 10 – – – – – – – 1000 ±2 ±1 ±10 5 µs bits ns bits bits mV pF 2.3 – 2.5 ±6.5 2.7 ±10 V mV – – – – – – – – – – 10 – – – ±5.5 – – 30 100 – 10 ±4 ±1 ±10 ±2.3 ±10 – pF bits µs bits bits mV mA mA µV rms Notes: 20. Non-linearity is specified between 0.5% and 99.5% of full scale. 21. Guaranteed monotonic (no missing codes). 22. Worst case large signal transition. 23. DAC output voltage in the range 0.2V to AVDD – 0.2V at maximum output current 24. Not applicable in alternate routing mode 2015 CML Microsystems Plc 81 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Operating Characteristics (continued) AC Parameters C-BUS Timing Input pin rise/fall time (10% - 90% of IOVDD) Capacitive load on RDATA and IRQN tCSE CSN enable to SCLK high time tCSH Last SCLK high to CSN high time tLOZ SCLK low to RDATA output enable time tHIZ CSN high to RDATA high impedance tCSOFF CSN high time between transactions tCK SCLK cycle time tCH SCLK high time tCL SCLK low time tCDS CDATA setup time tCDH CDATA hold time tRDV SCLK low to RDATA valid time Notes 30 30 31 Serial Port Timing Input pin rise/fall time (10% - 90% of IOVDD) Capacitive load on Rx and Tx port output pins tRCK RXCLK cycle time tRCKH RXCLK high time tRCKL RXCLK low time tRCHD RXCLK high to RXD or RXFS delay tRCLOZ RXCLK high to RXD output enable time tRXDS RXD or RXFS setup time to RXCLK low tRXDH RXD or RXFS hold time from RXCLK low tTCK tTCKH tTCKL tTCHD tTXDS tTXDH 31 30 TXCLK cycle time TXCLK high time TXCLK low time TXCLK high to TXFS delay TXD or TXFS setup time to TXCLK low TXD or TXFS hold time from TXCLK low 31 Min. Typ. Max. Unit – – 40 40 0 – 40 100 40 40 25 25 0 – – – – – – – – – – – – – 3 30 – – – 30 – – – – – – 35 ns pF ns ns ns ns ns ns ns ns ns ns ns – – 100 40 40 -20 0 20 20 – – – – – – – – – 3 30 – – – 20 – – – ns pF ns ns ns ns ns ns ns 100 40 40 -20 20 20 – – – – – – – – –0 20 – – ns ns ns ns ns ns Notes: 30. Measured with Test Load B on output pin 31. Measured with Test Load A on output pin 2015 CML Microsystems Plc 82 D/983/6 Analogue Front End (AFE) for Digital Radio 15.4 CMX983 Timing Diagrams DVDD Test Load A Test Load B R1 Device Under Test R1 = 1.2 kΩ R2 = 1 kΩ C1 = 5 pF (min), 30 pF (max) C2 = 5 pF Device Under Test R2 C1 C2 C1, C2 include jig DVSS DVSS DVSS Figure 30 AC Test Load for Digital Outputs … CSN … SCLK Address 7 CDATA 6 5 4 … Write Data 3 2 1 0 15 7 14 6 … 3 2 1 0 2 1 0 7 6 5 … Read Data RDATA 15 Hi-Z 14 7 … 6 3 … = Level undefined or not important tCSOFF 70% IOVDD CSN 30% IOVDD tCSE tCK tCSH tCH SCLK tCDS CDATA tCDH tCL tRDV tLOZ tRDV tHIZ RDATA Figure 31 C-BUS Timings 2015 CML Microsystems Plc 83 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 tRCK tRCKH RXCLK 70% IOVDD 30% IOVDD tRCHD tRXDH tRXDS tRCKL tRXDH tRXDS RXFS tRCLOZ tRCHD Data 15 RXD Data 14 Data 13 tTCK tTCKH TXCLK 70% IOVDD 30% IOVDD tTCHD tTXDH tTXDS tTCKL tTXDH tTXDS TXFS TXD Data 15 Data 14 Data 13 Figure 32 Serial Port Timings 2015 CML Microsystems Plc 84 D/983/6 Analogue Front End (AFE) for Digital Radio 15.5 CMX983 Typical Performance Characteristics Refer to Table 4 for details of the test conditions that apply to the following graphs. 100 90 80 70 dB 60 50 40 30 20 10 0 0.01 0.1 1 V pk-pk differential Figure 33 ADC SINAD vs. Input Level 120 100 dB 80 60 40 20 0 0.01 0.1 1 V pk-pk differential Figure 34 ADC SFDR vs. Input Level 2015 CML Microsystems Plc 85 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Figure 35 ADC Two Tone Test Note: For the graph shown in Figure 35, input level was 1.5V pk-pk for each of the two tones. 2015 CML Microsystems Plc 86 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 90 80 70 60 dB 50 40 30 20 10 0 10 100 1000 10000 100000 Input Code Level, peak Figure 36 DAC SINAD vs. Input Code Level 100 90 80 70 dB 60 50 40 30 20 10 0 10 100 1000 10000 100000 Input Code Level, peak Figure 37 DAC SFDR vs. Input Code Level 2015 CML Microsystems Plc 87 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Figure 38 PLL1 Output Spectra Note: The graph shown in Figure 38 shows the output spectra for fCOMP = 4.8MHz (RDIV = $4) and 250A charge pump current. Without fast lock: Loop Filter (reference design as shown in Figure 21) C1 = 6n8F / C2 = 27nF / R2 = 1k5ohms / R3 = 470ohms / C3 = 470pF 2015 CML Microsystems Plc 88 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Figure 39 PLL1 Lock Time Note: The graph shown in Figure 39 shows the lock times for a change in f VCO from 875MHz (IDIV = 182, FDIV = $4AAAAA) to 965MHz (IDIV = 201, FDIV = $0AAAAA) for f COMP = 4.8MHz (RDIV = $4) and 250A charge pump current. Without fast lock: Loop Filter (reference design as shown in Figure 21) C1 = 6n8F / C2 = 27nF / R2 = 1k5ohms / R3 = 470ohms / C3 = 470pF 1.4 1.2 1 ms 0.8 0.6 0.4 0.2 0 0 2 4 6 8 10 12 14 16 18 Fast lock current (x Charge Pump Current) Figure 40 PLL1 Indicated Lock Time vs. Fast Lock Current (965 to 875.525 MHz) Note: Fast lock timer, coarse = 4, fine = 80, giving 1.067ms 2015 CML Microsystems Plc 89 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Figure 41 PLL2 Output Spectra Note: The above graph shows the output spectra for fCOMP = 4.8MHz (RDIV = $4) and 250A charge pump current. Without fast lock: Loop Filter (reference design as shown in Figure 21) C1 = 1n5F / C2 = 9n4F (4n7F//4n7F) / R2 = 4k7ohms / R3 = 1k2ohms / C3 = 180pF 2015 CML Microsystems Plc 90 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 Figure 42 PLL2 Lock Time Note: The above graph shows the lock times for a change in f VCO from 2044MHz (IDIV = 426, FDIV = $D55555) to 2125MHz (IDIV = 443, FDIV = $B55555) for f COMP = 4.8MHz (RDIV = $4) and 250A charge pump current. Without fast lock: Loop Filter (reference design as shown in Figure 21) C1 = 1n5F / C2 = 9n4F (4n7F//4n7F) / R2 = 4k7ohms / R3 = 1k2ohms / C3 = 180pF 0.35 0.3 0.25 ms 0.2 0.15 0.1 0.05 0 0 2 4 6 8 10 12 14 16 18 Fast lock current (x Charge Pump Current) Figure 43 PLL2 Indicated Lock Time vs. Fast Lock Current (2125 to 2043 MHz) Note: Fast lock timer, coarse = 6, fine = 1, giving 213µs 2015 CML Microsystems Plc 91 D/983/6 Analogue Front End (AFE) for Digital Radio CMX983 -85 Type '110' Type '001' -87 -89 -91 dBc -93 -95 -97 -99 -101 -103 -105 100000 Offset Frequency Hz 1000000 Figure 44 Relative Performance of PLL Options 2015 CML Microsystems Plc 92 D/983/6 Analogue Front End (AFE) for Digital Radio 16 CMX983 Packaging Figure 45 64-lead VQFN Mechanical Outline: Order as part no. CMX983Q1 Handling precautions: This product includes input protection, however, precautions should be taken to prevent device damage from electro-static discharge. CML does not assume any responsibility for the use of any circuitry described. No IPR or circuit patent licences are implied. CML reserves the right at any time without notice to change the said circuitry and this product specification. CML has a policy of testing every product shipped using calibrated test equipment to ensure compliance with this product specification. Specific testing of all circuit parameters is not necessarily performed.