PRELIMINARY CUSTOMER PROCUREMENT SPECIFICATION 1 Z87001/Z87L01 1 ROMLESS SPREAD SPECTRUM CORDLESS PHONE CONTROLLER FEATURES Device ROM * (KWords) Z87001 Z87L01 64 64 RAM I/O (Words) Lines 512 512 32 32 Package Information ■ 144-Pin QFP 144-Pin QFP Note: *Maximum accessible external ROM ■ ■ Transceiver/Controller Chip Optimized for Implementation of 900 MHz Spread Spectrum Cordless Telephone – Adaptive Frequency Hopping – Transmit Power Control – Error Control Signaling – Handset Power Management – Support of 32 kbps ADPCM Speech Coding for High Voice Quality DSP Core Acts as Phone Controller – Zilog-Provided Embedded Transceiver Software to Control Transceiver Operation and Base StationHandset Communications Protocol – User-Modifiable Software Governs Telephone Features Transceiver Circuitry Provides Primary Cordless Phone Communications Functions – Digital Downconversion with Automatic Frequency Control (AFC) Loop – FSK Demodulator – FSK Modulator – – Symbol Synchronizer Time Division Duplex (TDD) Transmit and Receive Buffers ■ On-Chip A/D and D/A to Support 10.7 MHz IF Interface ■ Up to 64 Kw of External Program Memory Accessible by the DSP Core ■ Bus Interface to Z87010 ADPCM Processor ■ Static CMOS for Low Power Consumption ■ 3.0V to 3.6V, -20°C to +70°C, Z87L01 4.5V to 5.5V, -20°C to +70°C, Z87001 ■ 16.384 MHz Base Clock GENERAL DESCRIPTION The Z87001 /Z87L01 FHSS Cordless Telephone Transceiver/Controller is expressly designed to implement a 900 MHz frequency hopping spread spectrum cordless telephone compliant with US FCC regulations for unlicensed operation. The Z87001 and Z87L01 are distinct 5V and 3.3V versions, respectively, of the core device. For the sake of brevity, all subsequent references to the Z87001 in this document also apply to the Z87L01 unless specifically noted. The Z87001 is the ROMless version of the Z87000 Spread Spectrum Controller IC. Specifically intended to facilitate user specific software development, the Z87001 can access up to 64 kwords of external program ROM. DS96WRL0800 The Z87001 supports a specific cordless phone system design that uses frequency hopping and digital modulation to provide extended range, high voice quality, and low system costs. The Z87001 uses a Zilog 16-bit fixed-point two’s complement static CMOS Digital Signal Processor core as the phone and RF section controller. The Z87001’s DSP core processor further supports control of the RF section’s frequency synthesizer for frequency hopping and the generation of the control messages needed to coordinate incorporation of the phone’s handset and base station. Additional on-chip transceiver circuitry supports Frequency Shift Keying modulation/demodulation and multiplexing/demulti- PRELIMINARY 1 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog GENERAL DESCRIPTION (Continued) plexing of the 32 kbps voice data and 4 kbps command data between handset and base station. The Z87001 provides thirty-two I/O pins, including four wake-up inputs and two CPU interrupt inputs. These programmable I/O pins allow a variety of user-determined phone features and board layout configurations. Additionally, the pins may be used so that phone features and interfaces are supported by an optional microcontroller rather than by the Z87001’s DSP core. In combination with an RF section designed according to the system specifications, Zilog’s Z87010/Z87L10 ADPCM Processor, a standard 8-bit PCM telephone codec and minimal additional phone circuity, the Z87001 and its embedded software provide a total system solution. Codec Codec Z87010 ADPCM Processor Z87001 Spread Spectrum Controller RF Section RF Section Z87001 Spread Spectrum Controller Z87010 ADPCM Processor Telephone Line Interface Handset Base Station Figure 1. System Block Diagram of a Z87001/Z87010 Based Phone 2 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog RX VREF ADC (1-bit) TX DAC (4-bit) FSK Demodulator (downconverter, limiter discriminator, AFC, bit sync, frame sync, SNR detector) Receive Rate Buffer 256 Word RAM 0 RSSI ADC (8-bit) PWLV DAC (4-bit) Frame Counter(s), Event Trigger, T/R Switch Ctrl, Power On/Off Ctrl, Antenna Select 256 Word RAM 1 1 CLKOUT CODCLK Transmit Rate Buffer FSK Modulator RXSW TXSW PAON RFEON SYLE Z87010 Interface VXDATA[7..0] VXADD[2..0] VXSTRB VXRWB VXRDYB Port 0 P0[15..0] Port 1 P1[15..0] Analog Power Addr[15..0] Data[15..0] AVDD AGND Digital Power VDD GND DSP Core ANT0 ANT1 HBSW RESETB TEST Figure 2. Z87001 Functional Block Diagram DS96WRL0800 PRELIMINARY 3 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog VXRDYB GND VXRWB iaddr4 VXSTRB eib VXADD2 iaddr3 VDD trice iaddr2 iaddr1 VXADD1 iaddr0 VXADD0 irwb CODCLK intenb RESETB halt GND VDD MCLK triadd dspclk PAON SYLE RXSW TXSW addr14 addr15 109 1 Z87001 73 37 VXDATA0 data0 VXDATA1 data1 VXDATA2 data2 VDD VXDATA3 data3 VXDATA4 data4 VXDATA5 data5 VXDATA6 VXDATA7 data6 CLKOUT data7 HBSW data8 GND TEST VDD data9 ANT0 data10 ANT1 data11 P00 P01 data12 GND data13 P02 data14 P03 P14 idata13 P13 idata12 P12 idata11 GND P11 idata10 P10 idata9 P015 idata8 P014 VDD idata7 P013 idata6 P012 idata5 P011 P010 idata4 GND idata3 P09 idata2 P08 P07 idata1 P06 VDD idata0 P05 data15 P04 TX AGND RX AVDD VREF RFEON addr12 P115 addr11 GND addr10 P114 addr9 P113 addr8 P112 addr7 VDD addr6 P111 addr5 P110 addr4 P19 addr3 GND addr2 P18 addr1 P17 addr0 P16 idata15 VDD idata14 P15 addr13 AVDD RSSI PWLV AGND PIN DESCRIPTION Figure 3. 144 Pin QFP Pin Configuration 4 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 1. 144 Pin QFP Pin Configuration No 1 2,141 3 4,144 5 6 7,9,11,13,15,17,19, 21,23,25,27,29,31, 136,138,140 8,12,14,16,20,22,24, 28,30,32,36,37,39, 41,44,46 10,26,43,60,77,88, 109,128 18,34,51,68,86,102, 116,131 33,35,38,40,42,45, 47,49,52,54,56,59, 61,63,66,69 48,50,53,55,57,58, 62,64,65,67,70,72, 73,75,79,80 71,74,76,78,81,83, 85,89,91,93,96,98, 100,103,105,107 82,84 87 90 92 94,95,97,99,101, 104,106,108 110 111 112 113,117,119,121, 123 114 115 118,120,122 124 125 126 127 DS96WRL0800 Symbol TX AGND RX AVDD VREF RFEON addr[15..0] P1[15..0] Function Direction Analog transmit IF signal Analog ground Analog receive IF signal Analog power supply Output – Input – Analog reference voltage for RX signal RF on/off control DSP core program address bus – Output Output General-purpose I/O port 1 Input/Output GND Digital ground – VDD Digital power supply – idata[15..0] DSP core internal data bus Output P0[15..0] General-purpose I/O port 0 Input/Output data[15..0] DSP core program data bus Input ANT[1..0] TEST HBSW CLKOUT VXDATA[7..0] VXRDYB eib VXSTRB iaddr[4..0] VXRWB trice VXADD[2..0] CODCLK irwb /RESETB intenb RF antenna diversity control Test mode select Handset/base mode select Clock, ADPCM processor (16.384 MHz) ADPCM processor data bus Output Input Input Output Input ADPCM processor ready External register data strobe ADPCM processor data strobe External register address bus Output Output Input Output ADPCM processor read/write control ROMless mode select ADPCM processor address bus Clock to codec (2.048 MHz) External register read/write control Master reset Interrupt enable Input Input Input Output Output Input Input PRELIMINARY 1 5 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog PIN DESCRIPTION (Continued) Table 1. 144 Pin QFP Pin Configuration No 129 130 132 133 134 135 137 139 142 143 6 Symbol halt MCLK triadd PAON dspclk SYLE RXSW TXSW PWLV RSSI Function Halt/ single step control Master clock (16.384 MHz) Program address bus enable RF transmit enable DSP core clock RF synthesizer load enable Demodulator “on” indication RF receive enable RF transmit power level RF receive signal strength indicator PRELIMINARY Direction Input Input Input Output Output Output Output Output Input Input DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog ABSOLUTE MAXIMUM RATINGS Symbol Parameter Min Max Units VDD, AVDD DC Supply Voltage(1) VIN Input Voltage(2) -0.5 7.0 V -0.5 VDD + 0.5 V VOUT Output Voltage(3) -0.5 VDD + 0.5 V TA Operating Temperature Storage Temperature -20 +70 °C -65 +150 °C TSTG Stresses greater than those listed under Absolute Maximum Ratings may cause permanent damage to the device. This is a stress rating only; operation of the device at any condition above those indicated in the operational sections of these specifications is not implied. Exposure to absolute maximum rating conditions for extended period may affect device reliability. Notes: 1. Voltage on all pins with respect to GND. 2. Voltage on all inputs WRT VDD 3. Voltage on all outputs WRT VDD STANDARD TEST CONDITIONS The electrical characteristics listed below apply for the following standard test conditions, unless otherwise noted. All voltages are referenced to GND. Positive current flows into the referenced pins. Standard test conditions are as follows: ■ 3.0V < VDD < 3.6V (Z87L01) ■ 4.5V < VDD < 5.5V (Z87001) ■ GND = 0V ■ TA = -20 to +70 °C IoL Output Under Test Threshold Voltage 50pF IoH Figure 5. Test Load Diagram DS96WRL0800 PRELIMINARY 7 1 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog RECOMMENDED OPERATING CONDITIONS Table 3. 5V ± 0.5V Operation (Z87001) Symbol Parameter Min Max Units VDD, AVDD Supply Voltage 4.5 5.5 V VIH Input High Voltage 2.0 VDD + 0.3 V VIL Input Low Voltage GND -0.3 0.8 V IOH Output High Current -2.0 mA IOHICE Output High Current, ICE pins (1) -0.5 mA IOL1 Output Low Current 4.0 mA IOL2 Output Low Current, GPIO (limited usage, 2) 12.0 mA IOLICE Output Low Current, ICE pins (1) 0.5 mA TA Operating Temperature +70 °C -20 Notes: 1. ICE pins are addr[15..0], iaddr[15..0], idata[15..0], eib and irwb 2. Maximum 3 pins total from P0[15..0] and P1[15..0] Table 4. 3.3V ± 0.3V Operation (Z87L01) Symbol Parameter Min Max Units 3.0 3.6 V VDD Supply Voltage VIH Input High Voltage 0.7 VDD VDD+0.3 V VIL Input Low Voltage GND -0.3 0.1 VDD V IOH Output High Current -1.0 mA IOHICE Output High Current, ICE pins (1) -0.5 mA IOL1 Output Low Current 2.0 mA IOL2 Output Low Current, Ports (limited usage, 2) 6.0 mA IOLICE Output Low Current, ICE pins (1)) 0.5 mA TA Operating Temperature +70 °C -20 Notes: 1. ICE pins are addr[15..0], iaddr[15..0], idata[15..0], eib and irwb 2. Maximum 3 pins total from P0[15..0] and P1[15..0] 8 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog DC ELECTRICAL CHARACTERISTICS Conditions for DC characteristics are corresponding operating conditions, and standard test conditions, unless otherwise specified. 1 Table 5. 5V ± 0.5V Operation (Z87001) Symbol Parameter Test Condition Min VOH Output High Voltage VDD min, IOH max 2.4 V VOHICE Output High Voltage, ICE pins (1) VDD min, IOHICE max 2.4 V VOL1 Output Low Voltage VDD min, IOL1 max 0.6 V VOL2 Output Low Voltage, GPIO (2) VDD min, IOL2 max 1.2 V VOLICE Output Low Voltage, ICE pins (1) VDD min, IOLICE max 0.4 V IL Input Leakage 2 µA ICC Supply Current 80 mA ICC2 Standby Mode Current (3) 4 mA Max Units VIN = 0V, VDD -2 Max Units Notes: 1. ICE pins are addr[15..0], iaddr[15..0], idata[15..0], eib and irwb 2. Maximum 3 pins total from P0[15..0] and P1[15..0] 3. 2.3 mA typical at 25°C, 5 volts. Table 6. 3.3V ± 0.3V Operation (Z87L01) Symbol Parameter Test Condition Min VOH Output High Voltage VDD min, IOH max 1.6 V VOHICE Output High Voltage, ICE pins (1)VDD min, IOHICE max VOL1 Output Low Voltage VDD min, IOL1 max 0.4 V VOL2 Output Low Voltage, Ports(2) VDD min, IOL2 max 1.2 V VOLICE Output Low Voltage, ICE pins (1) VDD min, IOLICE max 0.4 V IL Input Leakage 2 µA ICC Supply Current 55 mA ICC2 Standby Mode Current(2) VIN = 0V, VDD 1.6 -2 1.4 V mA Notes: 1. ICE pins are addr[15..0], iaddr[15..0], idata[15..0], eib and irwb 2. Maximum 3 pins total from P0[15..0] and P1[15..0] 3. 1.6 mA typical at 25°C, 3.3 volts. DS96WRL0800 PRELIMINARY 9 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog ANALOG CHARACTERISTICS Table 7. 1-Bit ADC (Temperature: -20/+70°C) Parameter Resolution Power dissipation Power dissipation, Stop mode Sample frequency Sample window(1) Bandwidth Supply Range(=AVDD) Z87L01 Z87001 Acquisition time Settling time Conversion time Aperture delay Aperture uncertainty(2) Input voltage range (p-p) Reference voltage Z87L01 Z87001 Input resistance Input capacitance Minimum Typical Maximum Units 0.54 (70°c) 0.06 (70°c) 29 - 1 1.0 (40°c) 0.2 (40°c) 8.192 31 60 2.75 (-20°c) 1.1 (-20°c) 33 - bit mW MHz ns MHz 3.6 5.5 V V 8 18 18 8.5 0.5 1200 ns ns ns ns ns mV 3.0 4.5 2 8 4 2 800 3 10 6 3 1000 1.7 (AVDD= 3V) 1.9 (AVDD= 3.3V) 2.1 (AVDD= 3.6V) 2.7 (AVDD=4.5V) 3.0 (AVDD= 5V) 3.3 (AVDD= 5.5V) 10 - 18 10 25 - mW V V KOhm pF Notes: Window of time while input signal is applied to sampling capacitor; see next figure. Uncertainty in sampling time due to random variations such as thermal noise. 10 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog 1 CLK (16.384MHz) Aperture Delay Sampling SAMPLING WINDOW Latched Output INPUT SIGNAL Settling + Conversion Time (for Time digital output) Acquisition Time Figure 6. 1-Bit ADC Definition of Terms Table 8. 8-bit ADC (Temperature -20/+70°C) Parameter Resolution Integral non-linearity Differential non-linearity Power Dissipation (peak) Sample window Bandwidth Supply Range (=AVDD) Z87L01 Z87001 Input voltage range Conversion time Aperture delay Aperture uncertainty Input resistance Input capacitance Minimum Typical Maximum Units 5 - 6 0.5 35 - 1 0.5 70 120 2 bit LSB LSB mW ns Msps 3.0 4.5 3.3 5.0 3.6 5.5 V V 8.5 1 - µs ns ns Kohm pF 0-AVDD 0.5 2 - 3 25 10 V Notes: 1. 8-bit ADC only tested for 6-bit resolution. DS96WRL0800 PRELIMINARY 11 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 9. 4-bit DAC (Temperature: -20/+70°C) Parameter Resolution Integral non-linearity Differential non-linearity Settling time (1/2 LSB) Zero error at 25°C Conversion time (input change to output change) Power dissipation, 25 pF load Power dissipation, 25 pF load, Stop mode Conversion time (input change to output change) Rise time (full swing) Output slew rate Output voltage range Supply Range (=AVDD) Z87L01 Z87001 Output load resistance Output load capacitance 12 Minimum Typical Maximum Units 14 1.2 (70°c) 0.18 (70°c) 14.5 11 8 - 4 0.25 0.25 1 19 20 (40°c) 1.0 (40°c) 19.1 15 67 0.2 AVDD to 0.6AVDD 0.5 1 22.5 2 76 24.1 (-20°c) 1.1 (-20°c) 75.8 71 96 - bit LSB LSB ns mV ns mW ns ns V/µs V 3.0 4.5 3.3 5.0 3.6 5.5 V V - 330 25 - Ohm pF PRELIMINARY mW DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog INPUT/OUTPUT PIN CHARACTERISTICS All digital pins (all pins except VDD, AVDD, GND, AGND, VREF, RX, TX, RSSI and PWLV) have an internal capacitance of 5 pF. The RX analog input pin has an input capacitance of 10 pF. The RSSI analog input pin has an input capacitance of 10 pF. AC ELECTRICAL CHARACTERISTICS Clocks, Reset and RF Interface Table 10. Clocks, Reset and RF Interface No. 1 2 3 4 5 6 7 Symbol TpC TwC TrC, TfC TrCC, TfCC TrCO, TfCO TwR TrRF, TfRF Parameter MCLK input clock period (1) MCLK input clock pulse width MCLK input clock rise/fall time CLKOUT output clock rise/fall time CODCLK output clock rise/fall time RESETB input low width RF output controls rise/fall time (2) Min Max Units 61 20 61 40 15 6 6 ns ns ns ns ns TpC ns 2 2 18 2 6 Notes: 1. MCLK is 16.384 MHz ± 25 ppm 2. RF Controls are PAON, TXSW, RFEON, SYLE. DS96WRL0800 PRELIMINARY 13 1 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller ADPCM Processor Interface The Z87001 is a peripheral device for the ADPCM Processor. The interface from the Z87001 perspective is composed of an input address bus, a bidirectional data bus, strobe and read/write input control signals and a ready/wait output control signal. Zilog READ CYCLES refer to data transfers from the Z87001 to the ADPCM Processor. WRITE CYCLES refer to data transfers from the ADPCM Processor to the Z87001. Table 11. Read Cycles Signal Name Function Direction VXADD[2..0] VXDATA[7..0] VXSTRB VXRWB VXRDYB Address Bus Data Bus Strobe Control Signal Read/Write Control Signal Ready Control Signal ADPCM Proc. to Z87001 Bidirectional ADPCM Proc. to Z87001 ADPCM Proc. to Z87001 Z87001 to ADPCM Proc. Table 12. Write Cycles No. Symbol 8 9 10 11 12 13 14 15 16 TsAS ThSA TaDrS ThDrS TwS TsDwS ThDwS TaDrRY TdSRY Parameter Address, Read/Write setup time before Strobe falls Address, Read/Write hold time after Strobe rises Data read access time after Strobe falls Data read hold time after Strobe rises Strobe pulse width Data write setup time before Strobe rises Data write hold time after Strobe rises Data read valid before Ready falls Strobe high after Ready falls Min Max Units 30 (1) 40 (2) ns ns ns ns 10 3 8.5 20 10 3 22 0 ns ns ns ns Notes: 1. Requires wait state on ADPCM Processor read cycles 2. Requires no write cycle directly following read cycle on ADPCM Processor 14 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog AC TIMING DIAGRAMS 1 TwC(2) MCLK TrC(3) TfC(3) TpC (1) CLKOUT TrCC(4) TfCC(4) TrCO(5) TfCO(5) CODCLK 1 2 3 4 16 17 18 MCLK RESETB TwR(6) PAON TXSW RXSW RFEON SYLE TrRF(7) TfRF(7) Figure 7. Transceiver Output Signal DS96WRL0800 PRELIMINARY 15 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog TsAS(8) ThSA(9) VXADD VXRWB VXSTRB TaDrS(10) ThDrS(11) VXDATA VXRDYB VXDATA Read Cycle TsAS(8) ThSA(9) VXADD VXRWB TwS(12) VXSTRB ThDwS(14) TsDwS(13) VXDATA VXRDYB VXDATA Write Cycle Figure 8. Read/Write Cycle TImings 16 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog TsAS(8) ThSA(9) 1 VXADD VXRWB VXSTRB ThDrS(11) VXDATA TaDrRY(15) TdSRY(16) VXRDYB VXDATA Read Cycle with Wait State TsAS(8) ThSA(9) VXADD VXRWB TwS(12) VXSTRB ThDwS(14) TsDwS(13) VXDATA TdSRY(16) VXRDYB VXDATA Write Cycle with Wait State Figure 9. Read/Write Cycle Timing with Wait StatE DS96WRL0800 PRELIMINARY 17 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog PIN FUNCTIONS VDD. Digital power supply. CLKOUT (output). Clock output for external ADPCM processor. GND. Digital ground. CODCLK (output). Clock output for external voice codec. AVDD. Analog power supply. /RESETB (input, active low). Reset signal. AGND. Analog ground. VREF (analog reference). This signal is the reference voltage used by the high speed analog comparator to sample the RX input signal. RX (analog input). This is the RX IF receive signal from the RF module, input to the analog comparator and FSK demodulator. It is internally biased to the VREF DC voltage. The IF signal from the RF module should be AC coupled to the RX pin. TX (analog output). This is the IF transmit signal to the RF module, output from the FSK modulator and transmit 4-bit D/A converter. RXSW (output; active high or low programmable). This pin reflects the programming of the demodulator turn-on time. TXSW (output; active high or low programmable). Control for the receive switch on the RF module. Active during receive periods. PAON (output; active high or low programmable). Control for the transmit switch on the RF module. Active during transmit periods. RFEON (output; active high or low programmable). On/off control for the RF module. Active (on) during wake periods. Inactive (off) during sleep periods on the handset. RSSI (analog input). Receive signal strength indicator from RF module, input to the RSSI 8-bit ADC. PWLV (analog output). Power level control for RF module, output from the transmit power 4-bit DAC. SYLE (output). RF synthesizer load enable: latches new frequency hopping control word of external RF synthesizer. Programmable polarity. ANT[1..0] (output). Control for optional antenna diversity on the RF module. MCLK (input). Master clock input. 18 VXADD[2..0] (input). Address bus controlled by external ADPCM processor. The Z87001 acts as peripheral of the Z87010 ADPCM processor. VXDATA[7..0](input/output). Read/write data bus controlled by external Z87010 ADPCM processor. VXSTRB (input). Data strobe signal for the VXDATA bus, controlled by external Z87010. VXRWB (input). Read/write control for the VXDATA bus, controlled by external Z87010. VXRDYB (output, active low). Ready control for the VXDATA bus. This signal is driven high (de-asserted) by the Z87001 to insert wait states in the Z87010 ADPCM processor accesses. TEST (input, active high). Main test mode control. Must be set to GND. HBSW (input with internal pull-up). Control for handset/base configuration. Must be driven high or not connected for handset, low for base. P0[15..0] (input/output). General-purpose I/O port. Direction is bit-programmable. Pins P0[3..0],when configured in input mode, can also be individually programmed as wakeup pins for the Z87001 (wake-up active low; signal internally debounced and synchronized to the bit clock). P0 0 P0 1 P0 2 P0 3 WAKEUP0 WAKEUP1 WAKEUP2 WAKEUP3 P1[15..0] (input/output).General-purpose I/O port. Direction is bit-programmable. Pins P114 and P115, when configured in input mode, also behave as individually maskable interrupt pins for the core processor (positive edge-triggered). P1 14 P1 15 PRELIMINARY INT0 INT2 DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog FUNCTIONAL DESCRIPTION The functional partitioning of the Z87001 is shown in Figure 2. The chip consists of a receiver, a transmitter, and several additional functional blocks.The receiver consists of the following blocks: ■ Receive 1-bit ADC ■ Demodulator, including: – IF Downconverter – AFC (Automatic Frequency Control) – Limiter-Discriminator – Matched Filter – Bit Synchronizer – Bit Inversion – Frame Synchronizer (unique word detector) – SNR Detector ■ Receive Frame Timing Counter ■ Receive Buffer and Voice Interface The Transmitter Consists of the Following Blocks: ■ Transmit 4-Bit DAC In Addition, there are the following Shared Blocks. ■ Event Trigger Block, Controlling: – Transmit/Receive Switch – Power On/Off Switches (Modulator, Demodulator, RF Module) – Antenna Switch Control (used on Base Station only for Antenna Diversity) ■ 4-Bit DAC for Setting Transmit Power Level ■ 8-Bit ADC for Sampling the Received Signal Strength Indicator (RSSI) ■ DSP Core Processor ■ Two 16-Bit General-Purpose I/O Ports ■ Z87010 ADPCM Processor Interface Basic Operation ■ Transmit Buffer and Voice Interface ■ Transmit Frame Timing Counter (used on base station only) ■ Modulator, including: – NCO – Bit Inversion The transmitter and receiver operate in time-division duplex (TDD): handset and base station transmit and receive alternately. The TDD duty cycle lasts 4 ms and consists of the following events: ■ At the beginning of the cycle, the frequency is changed (hopping) ■ The base station transmits a frame of 144 bits while the handset receives ■ The handset then transmits a frame of 148 bits while the base receives. 4ms frame HOP 148 bits 144 bits BASE TX Frequency Hopping guard time HANDSET RX TDD switching guard time RX TX Figure 1. Basic Time Duplex Timing 19 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Receive 1-Bit ADC Demodulator The incoming receive signal at the RX analog input pin is sampled by a 1-bit analog-to-digital converter at 8.192 MHz. The demodulator includes a two-stage IF downconverter that brings the sampled receive signal to baseband. The receive signal is FSK-modulated (Frequency Shift Keying) with a carrier frequency of 10.7 MHz (Intermediate Frequency, or IF). The instantaneous frequency varies between 10.7 MHz plus or minus 32.58 kHz. Since the data rate is 93.09 kbps, there are 88 samples per data bit. This oversampled data is further processed by the demodulator to retrieve the baseband information. The 1-bit converter is implemented with a fast comparator, which determines whether the RX signal is larger or smaller than a reference signal (VREF). The Z87001 internally generates the DC level of both VREF and RX input pins. The received signal at 10.7 MHz should thus be AC coupled to the RX pin via a coupling capacitor. To ensure accurate operation of the converter, the user should also attach to the VREF pin a network whose impedance matches the DC impedance seen by the RX pin. The narrow-band 10.7 MHz receive signal, sampled at 8.192 MHz by the 1-bit ADC, provides a 2.508 MHz useful image. The first local oscillator used to downconvert this IF signal is obtained from a Numerically Controlled Oscillator (NCO) internal to the Z87001, at the nominal frequency of 460 kHz. The resulting signal is thus at 2.048 MHz (= 2.508 MHz - 460 kHz). A second downconversion by a 2.048 MHz signal brings the receive signal to baseband. The exact frequency of the 460 kHz NCO is slightly adjusted by the Automatic Frequency Control (AFC) loop for exact downconversion of the end signal to the zero frequency. The AFC circuit detects any DC component in the output of the limiter-discriminator (see below) when receiving a known sequence of data (preamble). This DC component is called the “frequency bias”. The bias estimate out of the AFC can be read by the DSP processor on every frame and subsequently filtered. The processor then adds or subtract this filtered bias to/from the NCO control word to correct the NCO frequency output. SNR SSB Rx signal 1-bit ADC Filter 460 kHz + bias LimiterDiscriminator Bit Sync 2.048 MHz Frame Sync Rx Buffer NCO AFC Figure 2. Demodulator Block Diagram The main element of the demodulator is its limiter-discriminator. The limiter-discriminator detects the frequency variations (ideally up to ± 32.58 kHz) and converts them to “0” or “1” information bits. First, the data is processed through low-pass filters to eliminate high frequency spurious components introduced by the 1-bit ADC. The resulting signal is then differentiated and fed to a matched filter. In the matched filter, an integrate-and-dump operation is performed to extract the digital information from its background noise. The symbol clock is provided by the bit synchronizer. The bit synchronizer circuit detects 0-to-1 and 1-to-0 transitions 20 in the incoming data stream in order to synchronize a digital phase-lock loop (DPLL). The PLL output is the recovered bit clock, used to time the receiver on the base station, and both receiver and transmitter on the handset. To ensure enough transitions in the voice data stream, a pseudo-random bit inversion operation is performed on the outgoing voice data. The inversion is then reversed on the demodulated data. Since the data is packed in frames sent alternately from base and handset every 4 ms (TDD), additional synchronization means are necessary. This is realized in a frame PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog FUNCTIONAL DESCRIPTION (Continued) synchronizer, based on detection of a “unique word” following the preamble. The receiver also features a signal-to-noise ratio detector, which allows the DSP software to detect noisy channels and eliminate them from the frequency hopping cycle. The SNR information is also used by the Z87001 software as a measure the current range between handset and base station. This information allows the adaptive power control algorithm to provide sufficient output power to the RF transmitter. Receive Frame Counter The receive frame counter is responsible to keep track of time within the frame. It is initialized by the frame synchronizer logic on detection of the unique word. It is then clocked by the recovered bit clock from the bit synchronizer. On the base station, the receive frame counter is used as time base for the receiver. On the handset, it is used as time base for both receiver and transmitter. Receive Rate Buffer and Voice Interface The voice signal is generated at the fixed rate of 32 kips by the Z87010 processor, and transmitted/received in bursts of 93.09 kips across the air. Data buffers in the transmitter and receiver are thus necessary to absorb the rate differences over time. These buffers are called “rate buffers”. They can store up to 144 data bits and are organized as an array of 36 4-bit nibbles. The receive rate buffer stores the received data from the demodulator. Incoming bits are arranged in 4-bit nibbles and transferred to successive locations of the rate buffer. When the last location is reached, transfers resume from the beginning (circular buffer). The system design guarantees that no buffer overrun nor enduring can occur. The receive rate buffer can be read by the DSP core processor of the Z87001 or by the Z87010 chip. On the Z87001 side, the buffer can be read as a random-access memory: the processor writes the nibble address in an address register and reads the 4-bit data from a data register. On the Z87010 side, a voice processor interface logic handles the addressing to automatically present the successive voice nibbles to the Z87010 in the order they were received. 21 Transmit Rate Buffer and Voice Interface The transmit rate buffer stores the data to be modulated. The data is sourced from the Z87010 or the Z87001 core processor. As for the receive rate buffer, the Z87010 sees a unique pipe to write to, while the Z87001 DSP core accesses the rate buffer as random-access memory. The modulator reads from the rate buffer as from a circular buffer. Transmit Frame Timing Counter On the handset, transmission does not start until the receiver has synchronized itself to the signal received from the base station. The transmission timing is based on the recovered clock. No additional counter is necessary. On the base station, the situation is different. Transmission timing is based on a local clock, while the reception’s timing is based on the clock recovered from the incoming received signal. Two counters, respectively clocked by local and recovered clocks, are necessary to track the transmit and receive signals. Note that the receive clock on the base station tracks the handset’s transmit clock, which is also the handset’s receive clock and tracks the transmit clock of the base station. As a result, receive and transmit clocks of the base station have exactly the same frequency; only their phases differ. Modulator The modulator consists of a numerically controlled oscillator (NCO) which generates an FSK (Frequency Shift Keying) signal at the carrier frequency of 2.508 MHz. The carrier frequency is shifted plus or minus 32.58 kHz for a “1” or a “0” data bit. To facilitate conformance to FCC regulations, the transitions from “1” to “0” or vice-versa are smoothed in order to decrease the amplitude of the side lobes of the transmit signal. In practice, the jump from one frequency to the next is performed in several smaller steps. The carrier frequency is adjustable by the DSP core processor in order to provide additional frequency adjustment between base and handset. This is provided in case of a frequency offset too large for possible correction by the AFC. The modulator also includes bit inversion logic as discussed in the receiver section. PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Tx signal 4-bit DAC Tx Buffer NCO Spectral Shaping Figure 3. Modulator Block Diagram Transmit 4-Bit DAC The transmit DAC clocks one new NCO value out of the Z87001 every 8.192 MHz period. Only the 10.7 MHz alias frequency component of the transmit signal (2.508 + 8.192 MHz image) is filtered, amplified and upconverted to the 900 MHz ISM band by the companion RF module. Event Trigger Block The event trigger block is responsible for scheduling the different events happening at the bit and frame levels. The event trigger block receives input from the frame counters as well as the register interface of the DSP core processor. rectly controlled by the Z87001 software through an output register. 8-Bit ADC for Sampling the Received Signal Strength Indicator (RSSI) RSSI information is typically generated from the last stage of the RF receiver. The RSSI is sampled once per frame by the 8-bit ADC and used by the Z87001 software to compute the necessary Transmit Power Level voltages. DSP Core Processor The event trigger schedules the following events: A DSP core processor constitutes the heart of the Z87001. The DSP runs the application software which performs the following functions: ■ Start of the 4 ms frame: a synthesizer load enable pulse is issued on the SYLE pin ■ Register initialization ■ ■ Power-up of the modulator section and transmission of the frame on handset and base station Implementation of high-level phone features; control of phone user interface (keypad, Led, etc.) ■ Control of the Z87010 ADPCM Processor ■ Use of the bit inversion as function of mode ■ Control of the phone line interface ■ Power-up of the demodulator section and reception of the frame on handset and base station ■ Ring detection by DSP processing ■ Communication protocol between handset and base station supporting voice and signalling channels ■ Control of the RF synthesizer and adaptive frequency hopping algorithm ■ Control of the RF power and adaptive power algorithm ■ Control of the demodulator (bit synchronizer loop filter, AFC bias estimate filtering) ■ Control of the modulator (carrier frequency) and adaptive frequency alignment ■ Signalling between base and handset to support above features ■ Control of PAON and TXSW output pins, to be used as TDD control signals for the T/R switch as well as the transmitter and receiver chains on the RF module ■ Control of RFEON pin, to be used as general on/off switch on the RF module ■ Control of the Z87001 sleep mode 4-Bit DAC for Setting Transmit Power Level In order to save battery life, the Z87001 only transmits the amount of RF power needed to reach the remote receiver with a sufficient SNR margin. The on-board transmit power 4-bit DAC provides 4 different voltage levels to the power amplifier in the RF module for that purpose. This DAC is di- 22 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog FUNCTIONAL DESCRIPTION (Continued) The DSP core is characterized by an efficient hardware architecture that allows fast arithmetic operations such as multiplication, addition, subtraction and multiply-accumulate of two 16-bit operands. Most instructions are executed in one clock cycle. ■ Control of battery charging and detection of low battery conditions ■ Implementation of additional features for customizing of the phone The DSP core is operated at the internal speed of 8.192 MHz. It has an internal RAM memory of 512 16-bit words divided in two banks. Six register pointers provide circular buffering capabilities and dual operand fetching. Three vectored interrupts are complemented by a six-level stack. One interrupt is used by the transceiver, while the two remaining vectors are mapped into port P1. In the phone system, one of these interrupts is customarily reserved for the Z87010 ADPCM Processor. The other interrupt can be used for custom purposes. Z87010 Interface The Z87001 may access up to 64K 16 bit words of external ROM including 4 words for interrupt and reset vectors. The ROM is mapped at addresses 0000h to 3FFFh, as shown in Figure 13. Int. Vector 0 Int. Vector 1 Int. Vector 2 Reset Vector 3FFFh 3FFFh 3FFEh 3FFDh 3FFCh In addition to providing clock signals to the Z87010 processor, the Z87001 interfaces to the Z87010 through two different paths: ■ A command/status interface ■ A data interface The command/status interface consists of two dual-port registers accessible by both Z87001 and Z87010 DSP core processors. On the Z87001 side, the registers are mapped into the DSP core processor’s register interface. To allow access by the Z87010, the internal command/status registers can also be decoded on the pinto of the Z87001. Arbitration logic resolves access contentions. The data interface allows the Z87010 processor direct access to the Z87001’s receive and transmit rate buffers. The rate buffers are decoded on the pin to of the Z87001, and dedicated voice processor interface logic handles the addressing within the rate buffers. The physical interface between Z87001 and Z87010 consists of an 8-bit data bus, a 3-bit address bus and control signals, as summarized in the following: 64K USER ROM (EXTERNAL) VXDATA[7.0] VXADD[2.0] VXSTRB VXRWB VXRDYB Data bus Address bus Data Strobe Read/Write Control Read Control This bus is controlled by the Z87010. Although in the system the Z87010 is enslaved to the Z87001 master, at the physical level the Z87001 acts as a peripheral of the Z87010. 0000h Figure 4. ROM Mapping The mapping of the command status and data interfaces from the Z87010 side is given below. Two 16-Bit General-Purpose I/O Ports Two 16-bit general-purpose I/O ports are directly accessible by the DSP core. These input and output pins are typically used for: ■ Implementation of the phone’s user interface (keypad, LED, optional display, etc.) ■ Control of phone line interface (on/off hook, ring detect) 23 Address Interface (VXADD [2.0]) Transmit rate buffer Receive rate buffer Command Status PRELIMINARY Read /Write Data (VXDATA[7.0]) 1 W ----3210 1 R ----3210 0 0 R W 76543210 76543210 DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog OPERATION Automatic Frequency Control Loop (Receiver) and Modulator The accumulated bias, available in BIAS_ERROR_DATA, can be used directly to correct the NCO frequency. Alternately, the estimated bias can be read by the DSP, further processed, and written to the CORE_BIAS_DATA field. The DSP controls which value is used by setting the USE_CORE_BIAS field. The selected value is added to the 460 kHz signal which downconverts the receive IF signal. AFC Loop The AFC loop consists of a bias estimator block, which determines frequency offsets in the incoming signal, an adder, to add this bias to the 460 kHz frequency control word driving the NCO, and various interface points to the DSP core processor. In particular, the DSP can read the bias estimate data and substitute its own calculated bias value to the NCO. The CORE_BIAS_DATA and BIAS_ERROR_DATA are two’s complement numbers in units of 125 Hz. In addition to correcting the difference in clock frequencies on the receiver using the AFC loop, a Z87001-base system can also modify the frequency of the remote transmit IF signals. The software has access to this frequency through the MOD_FREQ register fields. The bias estimator accumulates the discriminator output values (image of instantaneous frequency) that exceed a programmable threshold (BIAS_THRESHOLD). The processor can freeze the bias calculation any time by resetting the BIAS_ENABLE control bit. Rx signal Second downconvertor, Discriminator Discriminator Output Bias estimator 460 kHz + bias “0” BIAS_THRESHOLD BIAS_ENABLE BIAS_ERROR_DATA Downconverter NCO and bias adder DSP Core Processor CORE_BIAS_DATA USE_CORE_BIAS Figure 5. AFC Loop and Processor Control 24 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog OPERATION (Continued) Modulator Control Bit Synchronizer The MOD_FREQ fields specify the carrier center frequency (should be programmed to 2.508 MHz) and deviation for the FSK signal (should be programmed to ± 32.58 kHz). In addition, wave shaping is performed on bit transitions, in order to satisfy FCC regulations. Up to four different intermediate deviation values are programmable for each of the two FSK states. The MOD_FREQ fields are programmable in units of 62.5 Hz. The bit synchronizer circuit is an implementation of the Data-Transition-Tracking Loop (DTTL), best described in “Telecommunications Systems Engineering”, by W. Lindsey and M. Simon (Dover 1973; oh. 9 p. 442). Its operation is summarized in the following block diagram. Table 1. AFC and Modulator Control Fields Field BIAS_THRESHOLD BIAS_ENABLE BIAS_ERROR_DATA CORE_BIAS_DATA Discriminator Output Register CONFIG1 SSPSTATE BIAS_ERROR CORE_BIAS In-phase Matched Filter Bank EXT 3 EXT0 3 EXT2 2 EXT2 2 EXT4 Transition Detection Signed Error Mid-phase Matched Filter Error Magnitude Loop Filter Clock Generator division INT_SYM_ERR0 “by 1” “by 64” INT_SYM_ERR1 first order Recovered Bit clock SECOND_ORDER BSYNC_GAIN DSP Core Processor Figure 6. Bit Synchronizer Loop and Processor Control 25 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller The loop filter is controlled by the DSP core processor. The DSP core can implement a first order loop by setting the SECOND_ORDER field to zero. Typically, the BSYNC_GAIN would then be set to “divide-by-1” operation to provide a wide closed loop bandwidth and thus a quick acquisition of the bit clock. When the bit clock is in phase with the input data, the loop bandwidth can be narrowed to maintain tracking of the receive clock with minimum impact from signal noise. To reduce the loop bandwidth, the BSYNC_GAIN can be set to “divide-by-64” the first order gain, while the integrated tracking error (available to the DSP in fields INT_SYM_ERR0 and INT_SYM_ERR1) can be used by the DSP software to adjust the SECOND_ORDER term. The bit synchronizer relies on transitions in the received bit stream to operate. The bit inversion logic guarantees enough transitions for all transferred data. At the handset, the bit synchronizer must track both frequency and phase of the receive signal’s data clock. At the base, only the phase must be tracked. The frequency is inherently correct since the base is the source of the system’s data clock. Table 2. Bit Synchronizer Control Fields Field BYSNC_GAIN INT_SYM_ERR1 INT_SYM_ERR0 SECOND_ORDER Register Bank SSPSTATE BIT_SYNC INT_SYM-ERR0 BIT_SYNC 3 1 0 1 EXT EXT2 EXT2 EXT6 EXT2 Frame Counters The handset only has one frame counter, which times all receive and transmit events. The base station has distinct transmit and receive frame counters. When used in this document without any explicit reference to either base or handset, the terms “receive frame counter” and “transmit frame counter” refer to both sides. For the handset, both terms refer to the same unique counter. The frame counters are clocked at the bit rate, or 93.09 kHz (2.048 MHz/22). Each count lasts one bit = 1000/93.09 = 10.74 µs. 26 Zilog Each frame lasts 4 ms, which corresponds to (372 + 8/22) bits; the frame counters count from 0 to 371, with the last count lasting a bad longer than the other ones; at the end of count 371, the counters wrap around to 0. The “hop” command pulse is asserted to pin SYLE during count “0” of the frame counter (transmit frame counter on the base station). Frame Synchronizer, Timings and RF Interface The frame synchronizer tracks the received frames and resets the receive frame counter. The synchronization is performed by recognizing certain data patterns present in the receive bit stream: a comparison is done on the fly between the data pattern and the incoming bit stream; when the data match, the frame counter is reset. Two possible 16-bit data patterns are pre-programmed in the Z87001. One is named UW (Unique Word) and is used in acquisition mode for first-time synchronization to an incoming signal. UW can also be used to track an acquired signal. The second pattern is named SYNC_D and is used to track the received data frames while voice is being transferred. The transition from tracking UW to tracking SYNC_D is controlled by the DSP processor through the SYNC_SEARCH_WORD field. UW Synchronization When the Z87001 matches the UW, the receive frame counter is reset to the value of UW_LOCATION. This value is programmable by the DSP processor. On the handset, where the receive frame counter is used to derive all timings, UW_LOCATION actually defines the guard time between the frequency hop command and the beginning of data reception, which starts at FRAME_COUNTER = (UW_LOCATION - 84) as shown in the next figure. On the base station, data reception starts when the receive frame counter equals (UW_LOCATION - 84), but this has less significance since the hop pulse is synchronized with the transmit frame counter and there is no fixed relationship between transmit and receive frame counters. On the base station, the UW_LOCATION should be set to 301. PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog OPERATION (Continued) UW_LOCATION-84 Handset FRAME_COUNTER 0 1 2 SYLE timing Receive data at RX pin Figure 7. Frame Counter and UW_LOCATION on Handset Two modes of search are programmable through the SYNC_SEARCH_MODE field: “full search” and “window search”. The full search is used by the handset when first acquiring the signal from the base station. In full search, the handset is in receive mode and continuously looks for a match with the UW. When a match is found and the time reference established (UW_LOCATION is set), the DSP processor on the handset detects the synchronization (see below), switches to Time Division Duplex mode (TDD) and starts receiving and transmitting alternately. The search mode should also be switched to “window search” by the DSP software. The transition to voice mode proceeds in two steps, through an intermediate mode. The mode is set by the DSP processor by programming the MULTIPLEX_SWITCH field. The three modes are: The window search mode only searches for a match in a certain time window centered around the expected match time. The window size is programmable by the DSP processor in the WINDOW_SIZE field. If the matching does not occur at the expected time, due to so-called “bit slips”, the receive frame counter timing is adjusted. Note: although the bit synchronizer is meant to keep track of time and prevent bit slips when the phone is operating continuously in TDD mode, bit slips are still possible when the handset is in standby mode, and only receives once in a while (see description of sleep mode). ■ SYNC_D Synchronization When the DSP processor switches the Z87001 operation to voice mode, the frame synchronization parameters should be modified by the DSP software to: ■ ■ SYNC_SEARCH_MODE = window search SYNC_SEARCH_WORD = SYNC_D pattern In this mode, the receiver searches for the SYNC_D pattern in windows of the incoming data stream. The window size is determined by the WINDOW_SIZE field. 27 ■ SMUX: initial mode. This mode allows acquisition, AFC operation, UW synchronization and signalling; ADPCM Processor access disabled; bit inversion disabled. ■ STMUX: intermediate mode. This mode allows SYNC_D frame synchronization and signalling; ADPCM Processor access disabled; bit inversion enabled. TMUX: voice mode. This mode allows voice transmission, SYNC_D frame synchronization and signalling; ADPCM Processor access enabled; bit inversion enabled. In order to detect synchronizations, the software has access to the SYNC_ACQ_IND status field. This field is set by the Z87001 matching hardware every time a match is detected within the right time window. The software must reset the “IND” bit by setting the SYNC_ACQ_CLEAR field. In addition, the software can track the frame timing by reading the frame counter value, available in the FRAME_COUNTER field. On the base station, where two frame counters are in use, this field returns the value of the transmit frame counter. Every time the frame counter wraps around to 0, a frame start indicator bit is set (FRAME_START_IND status field). The software must reset this “IND” bit by setting the FRAME_START_CLEAR field. If the FS_INT_ENABLE bit is set, frame starts also trigger interrupts to the DSP processor. PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller The following table summarizes the fields allowing control of frame synchronization and basic frame timing. Table 3. Frame Synchronizer Control Fields Field SYNC_SEARCH-MODE Register SSPSTATE SYNC_SEARCH_WORD SSPSTATE UW_LOCATION RX_CONTROL WINDOW_SIZE CONFIG1 MULTIPLEX_SWITCH SSPSTATE SYNC_ACQ_IND SSPSTATUS SYNC_ACQ_CLEAR SSPSTATE FRAME_COUNTER SSPSTATUS FS_INT_ENABLE CONTROL FRAME_START_IND SSPSTATUS FRAME_START_CLEAR SSPSTATE SYNC_SEARCH-MODE SSPSTATE Bank Ext 3 3 2 3 3 3 3 3 1 3 3 3 EXT2 EXT2 EXT1 EXT0 EXT2 EXT3 EXT2 EXT3 EXT6 EXT3 EXT2 EXT2 RF Interface Several control fields are available in the Z87001 register set to control the timing and polarity of the RF module interface signals. A first field, RFEON_POLARITY, controls the polarity of the RFEON pin. This pin should be used to control the power of the RF module. It is asserted by the Z87001 when the RF module is in use, and de-asserted in sleep mode. The sleep mode is used by the handset to save battery life when no phone call is in process (See “Sleep mode”, below). The SYLE pin (Synthesizer Load Enable), which carries a “load enable” pulse that tells an external RF synthesizer to generate the next RF channel, is controlled by two fields. The HOP_ENABLE field is a global enable signal for the SYLE signals. The SYLE_POLARITY field defines the polarity of the SYLE pin. The system designer should ensure that the leading edge of the SYLE pulse triggers channel hopping. 28 Zilog In addition to the SYLE signal, the interface to the most RF synthesizers includes two more input lines, “data” and “clock”, for serial programming of the data values defining the RF channel. In order to allow interfacing to various popular synthesizers, the Z87001 does not have dedicated clock and data lines with fixed timing. Instead, two general I/O pins from ports P0 and P1 can be controlled in software by the DSP core to realize any particular interface timing. This flexibility is made possible by the high speed, singlecycle architecture of the DSP core. The transmitter control includes a global enable signal for all transmit functions: TX_ENABLE. The transmission start is controlled by the MOD_PWR_ON field. On the base station, the value programmed in MOD_PWR_ON is referenced to the transmit frame counter. Two additional fields, RFTX_PWR_ON and RFTX_PWR_OFF, define the duty cycle of the PAON output pin. On the base station, these fields are referenced to the transmit frame counter. The RFTX_POLARITY bit defines the polarity of the PAON pin. This pin can be used to control the transmit section and power amplifier of the external RF module. On the receive side, two fields define the internal timing of the receiver. The start of reception is controlled by the DEMOD_PWR_ON field. Stop of reception (and receiver power down) is controlled by the DEMOD_PWR_OFF field. On the base station, these fields are referenced to the receive frame counter. The RXSW output pin follows the timing defined by the DEMOD_PWR_ON and OFF fields. Two additional fields, RFRX_PWR_ON and RFRX_PWR_OFF, define the duty cycle of the TXSW output pin. On the base station, these fields are referenced to the TRANSMIT (!) frame counter. The RFRX_POLARITY bit defines the polarity of the TXSW and RXSW pins. The TXSW pin can be used to control the receive section of the external RF module. The various timing control registers reviewed in this paragraph should be programmed differently for handset and base station. If the same ROM code is used on base and handset, the software can determine which station it runs on by reading the HAND_BASE_SEL bit, which reflects the state of the HBSW pin. PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog OPERATION (Continued) The following figure and table summarize the RF interface control fields. HBSW HAND_BASE_SEL Sleep Mode Control RFEON RFEON_POLARITY DSP Core Processor HOP_ENABLE SYLE SYLE_POLARITY RFTX_PWR_ON MOD_PWR_ON RFTX_PWR_OFF PAON RFTX_POLARITY TX_ENABLE Modulator TX RFRX_PWR_ON RFRX_PWR_OFF TXSW RFRX_POLARITY DEMOD_PWR_ON RXSW DEMOD_PWR_OFF Demodulator RX,VREF Figure 8. RF interface Control Table 4. Timing and RF Interface Control Fields Field RFEON_POLARITY HOP_ENABLE SYLE_POLARITY TX_ENABLE MOD_PWR_ON RFRX_PWR_ON/OFF DEMOD_PWR_ON/OFF RFRX_POLARITY RFTX_PWR_ON/OFF RFTX_POLARITY HAND_BASE_SEL 29 Register RX_PWR_CTRL SSPSTATE CONFIG1 SSPSTATE MOD_PWR_CTRL RFRX_PWR_CTRL DEMOD_PWR_CTRL RFRX_PWR_CTRL RFTX_PWR_CTRL RFTX_PWR_CTRL SSP_STATUS PRELIMINARY Bank Ext 2 3 3 3 2 0 2 0 2 2 3 EXT6 EXT2 EXT0 EXT2 EXT5 EXT7 EXT6 EXT7 EXT7 EXT7 EXT3 DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Sleep Mode Clock Interface To save the phone’s battery life on the handset, the Z87001 can be operated in sleep mode while the phone is not in use. The sleep mode is entered by software command. The sleep mode first needs to be enabled by setting the SLEEP_WAKE field. Then a GO_TO_SLEEP command puts the processor to sleep by temporarily stopping its clock. The sleep period can be set to last between 4 ms and 1.02 s by programming the SLEEP_PERIOD field. In sleep mode, the RFEON pin is de-asserted. The Z87001 generates the Z87010 clock at 16.384 or 8.192 MHz, as set in VP_CLOCK. In addition, the clock can be stopped and restarted with the VP_STOP_CLOCK field in order to reduce power consumption (Note: a software handshaking between Z87001 and Z87010 is necessary before stopping and after restarting the clock). The processor comes out of sleep mode in one of two ways. Either the sleep counter counts down to zero, or one of the enabled pins from port P0 is asserted prior to normal expiration of the counter. Four port pins (P0[0..4]) can be individually enabled to provide the wake-up function by setting the appropriate bits in P0_WAKE_ENABLE. Typically, these port pins are connected to the telephone keypad. When the processor core wakes up, the software needs to know how much time it was actually asleep, in order to restore synchronization to the base station’s hopping sequence. For that purpose, the current value of the sleep counter is available to the processor in SLEEP_REMAINING. A value of zero indicates normal expiration of the sleep counter. In order to guarantee a good operation of the wake-up pins, the wake-up signals are hardware-denounced by the Z87001. Furthermore, these signals are internally synchronized to the bit clock. This ensures that the processor has enough time (one bit time = 10.74 ms) to read a stable value of the remaining sleep time and synchronize correctly to the base station’s hopping sequence. Table 5. Sleep Mode Control Fields Field SLEEP_EAKE Register SSPSTATE GO_TO_SLEEP SSPSTATE SLEEP_PERIOD CONFIG2 SLEEP_REMAINING CONFIG2 P0_WAKEUP_ENABLE CONTROL Bank Ext 3 3 3 3 1 EXT2 EXT2 EXT1 EXT1 EXT6 ADPCM Processor Interface and Rate Buffers The interface to the ADPCM Processor (Z87010) consists of clock control, command/status interface and data interface. The data interface gives the ADPCM Processor access to the rate buffers. 30 In addition to providing the Z87010 main clock, the Z87001 generates a CODCLK signal which will be used by the codec and by the Z87010 to synchronize its data transfers with the Z87001. On the base station, the CODCLK is simply obtained by dividing the 16.384 MHz input clock. On the handset, the CODCLK is synchronized to the base station’s CODCLK signal through the receive bit sync logic. This ensures that production and consumption of voice data is happening at identical rates on handset and base, eliminating buffer overrun and underrun situations. Command/Status Interface The Z87001 sends commands to the Z87010 through the VP_COMMAND write-only field. It reads the Z87010 status in the VP_STATUS read-only field. Both fields are located at the same address in the Z87001 register interface. A communication protocol should be established in software to ensure correct reception of all commands. Dedicated hardware ensures data integrity when both Z87001 and Z87010 simultaneously access the same register. Table 6. ADPCM Processor Control Fields Field VP_CLOCK VP_STOP_CLCOCKS VP_COMMAND VP_STATUS Register CONFIG1 SSPSTATE VP_INOUT VP_INOUT Bank Ext 3 3 2 2 EXT0 EXT2 EXT0 EXT0 Data Interface and Rate Buffers The digitized voice data is communicated between the Z87001 and Z87010 through the rate buffers and ADPCM Processor data interface. The transmit and receive rate buffers each contain 36 4-bit nibbles. To write to the transmit rate buffer, the Z87001 core processor must first set the nibble address in the TX_BUF_ADDR register field, then write the nibble data through TX_BUF_DATA. If the TX_AUTO_INCREMENT bit is set, the address is automatically incriminated (modulo 51 = the number of nibbles in rate buffer + 15 additional data words accessible through TX_BUF_DATA; for more information, see Register Description) after each data write. This allows the DSP core to write successive nibbles without resetting the address each time. PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog OPERATION (Continued) The operation of the receive rate buffer is identical. The Z87001 core processor must set the nibble address in RX_BUF_ADDR, then read the nibble from RX_BUF_DATA. If the RX_AUTO_INCREMENT bit is set, the read address is automatically incriminated (modulo 36 = number of nibbles in rate buffer) after each data read. This allows the DSP core to read successive nibbles without resetting the address each time. Through its register interface, the Z87001 also controls which rate buffer addresses the Z87010 ADPCM Processor can access. The nibble addresses are contained in the TX_BUF_VP_ADDR and RX_BUF_VP_ADDR register fields. After the Z87010 writes or reads a nibble to or from transmit or receive rate buffer, the corresponding “VP_ADDR” is automatically incriminated (modulo 36) to the next accessible address. The locations of accessible addresses are individually controlled by the Z87001 in the three TX_RX_NIBBLE_MARKER register fields. A marker bit equal to “1” enables the Z87010 to access the corresponding address; a bit equal to “0” causes the Z87010’s read or write access to skip to the next nibble that has a marker bit equal to “1”. Z87001 RX RATE BUFFER Demodulator RX_BUF_VP_ADDR Address Decoder TX_RX_NIBBLE_ MARKER TX_BUF_VP_ADDR TX RATE BUFFER Modulator Data RX_BUF_ADDR ADPCM Proc. Interface Addr Ctrl RX_AUTO_INCR. RX_BUF_DATA TX_BUF_DATA TX_BUF_ADDR TX_AUTO_INCR. DSP Core Processor VP_COMMAND VP_STATUS Figure 9. Rate Buffers Access and ADPCM Processor Interface 31 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 7. Data and Control Access to Rate Buffers Field Register RX_AUTO_INCREMENT RX_BUF_ADDR TX_AUTO_INCREMENT TX_BUF_ADDR RX_BUF_DATA TX_BUF_DATA TX_BUF_DATA RX_BUF_VP_ADDR TX_BUF_VP_ADDR TX_RX_NIBBLE_MARKER Bank RATE_BUF_ADDR RATE_BUF_ADDR RATE_BUF_ADDR RATE_BUF_ADDR RATE_BUF_DATA RATE_BUF_ADDR RATE_BUF_DATA RATE_BUF_DATA RATE_BUF_DATA RATE_BUF_DATA Next 1 1 1 1 1 1 1 1 1 1 EXT0 EXT0 EXT0 EXT0 EXT0 EXT1 EXT1 EXT1 EXT1 EXT1 ADDITIONAL FEATURES Power Control General-Purpose I/O Ports The Z87001 features several means of measuring and controlling power levels. One input pin (RSSI) connects an external “receive signal strength indicator” to a half flash 8bit ADC in the Z87001. This ADC is sampled once per frame during the receive portion of the TDD cycle. The RSSI value can be accessed in software in the RSSI_DATA register field. With external multiplexing, the 8-bit ADC can be used for additional purposes. The Z87001 includes two general-purpose input/output ports, P0 and P1, of 16 bit each. The direction of each bit is independently programmable by setting the register fields DIRECTION0 and DIRECTION1. Then, the software can access the input and output values by accessing DATA0 and DATA1. The RSSI data is used by the software to implement adaptive power control. In order to determine whether the RSSI information is made of signal or noise, the Z87001 includes logic to measure the signal-to-noise ratio (SNR) of the receive signal. This SNR value is available at the end of every frame in the SNR_ESTIMATE register field. It is also used by the adaptive frequency hopping algorithm to determine and avoid the noisy channels. Finally, a 4-bit DAC (resistive ladder) is provided to control RF power output level. The DAC is under software control through register field TX_PWR_DAC_DATA. Two pins of port P1 (pins 14 and 15), when configured in input mode, also behave as interrupt pins for the core processor. The software can enable or disable each interrupt by setting the INTERRUPT_0_ENABLE and INTERRUPT_2_ENABLE fields. The interrupts are positive edge-triggered. Pin Number Interrupt Number DSP Interrupt Vector P1 14 P1 15 INT0 INT2 3FFFh 3FFDh Table 8. Power Control Field RSSI_DATA SNR_ESTIMATE TX_PWR_DAC_DATA RSSI_DATA SNR_ESTIMATE Register RSSI RX_CONTROL CONTROL RSSI RX_CONTROL Table 9. General-Purpose I/O Ports Bank 2 2 1 2 2 Ext EXT3 EXT1 EXT6 EXT3 EXT3 Field DIRECTION0 Register GPI00DIR Bank Ext 3 EXT4 EXT5 EXT6 EXT7 EXT6 EXT6 DATA0 GPI00DATA 3 DIRECTION1 GPI0IDIR 3 DATA1 GPI0IDATA 3 INTERRUPT_0_ENABLE CONTROL 1 INTERRUPT_1_ENABLE CONTROL 1 Four pins of port P0 (pins 0 to 3), when configured in input mode, can also be individually programmed as wake-up pins for the Z87001 (See “Sleep mode”, above). 32 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog REGISTER DESCRIPTION The Z87001 DSP core processor has four banks of eight registers mapped in the core processor’s “external register” space, as summarized in the following table. 1 Table 10. Register Summary BANK ADDRESS Bank 3 Bank 2 Bank 1 Bank 0 REGISTER EXT0 CONFIG1 EXT1 EXT2 CONFIG2 SSPSTATE EXT3 SSPSTATUS EXT4 EXT5 EXT6 EXT7 EXT0 EXT1 EXT2 EXT3 EXT4 EXT5 EXT6 EXT7 EXT0 EXT1 GPIO0DIR GPIO0DATA GPIO1DIR GPIO1DATA VP_INOUT RX_CONTROL BIAS_ERROR RSSI CORE_BIAS MOD_PWR_CTRL DEMOD_PWR_CTRL RFTX_PWR_CTRL RATE_BUF_ADDR RATE_BUF_DATA EXT2 EXT3 EXT4 EXT5 EXT6 EXT7 EXT0 EXT1 EXT2 EXT3 EXT4 EXT5 EXT6 EXT7 BIT_SYNC RESERVED RESERVED RESERVED CONTROL RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED INT_SYM_ERR0 RFRX_PWR_CTRL DS96WRL0800 READ DESCRIPTION WRITE DESCRIPTION Clock Dividers, Use Core Bias, SYLE polarity, search window size, Bias Threshold Remaining Sleep time ANT0/1 control, Sleep Period Stop VP clock, Absent gain, Bias Enable, Tx Enable, Sync Search control, Hop Enable, Frame Start control, Multiplex control, Sleep mode control Frame Counter, Handset/Base, Sync Search control, Frame Start control General-Purpose I/O port 0 direction control General-Purpose I/O port 0 data General-Purpose I/O port 1 direction control General-Purpose I/O port 1 data ADPCM Processor Status ADPCM Processor Command SNR estimate UW location FCW value 8-bit ADC data (RSSI) Core Bias data MOD_PWR control RXSW, RFEON pin control PAON pin control Rate Buffer address Re Rate Buffer data Tx Rate Buffer data, control data Bit Sync monitoring Bit Sync control INT, WAKEUP pin control, 4-bit DAC data (PWLV) Bit Sync monitoring TXSW, RXSW pin control PRELIMINARY TABLE # Table 25 Table 26 Table 27 Table 28 Table 29 Table 30 Table 31 Table 32 Table 33 Table 34 Table 35 Table 36 Table 37 Table 38 Table 39 Table 40 Table 41 Table 42 Table 43 Table 44 Table 44 Table 44 Table 45 Table 46 Table 47 Table 47 Table 47 Table 47 Table 47 Table 47 Table 47 Table 49 33 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog REGISTER DESCRIPTION (Continued) The bank is selectable in software by writing to the core’s status register (see Table 24). Once a bank is selected, each of the eight external registers (EXT0 through EXT7) can be accessed by a single-cycle software instruction. Table 11. Bank Switching Bank Bank 0 Bank 1 Bank 2 Bank 3 Status Register Bank Function xxxx xxxx x00x xxxx b xxxx xxxx x01x xxxx b xxxx xxxx x10x xxxx b xxxx xxxx x11x xxxx b Test point access, TDD switching control Rate buffer access, miscellaneous ADPCM processor interface, RF interface, etc. Configuration, status, general-purpose port data and direction Bank 3 Registers Table 12. Bank 3 Registers Config 1 Field Bank 3 Bit Position RESERVED f--------------- VP_CLOCK -e-------------- EXT0 R/W R W USE_CORE_BIAS --d------------R W SYLE_POLARITY ---c-----------R W WINDOW_SIZE ----ba98-------R W BIAS_THRESHOL -------76543210 D R W Data Description Returns 0 Must be set to 1 Controls CLKOUT output pin (clock for ADPCM Processor). Returns 0 0 CLOCKOUT=16.384 MHz 1 CLOCKOUT = 8.192 Controls which bias value is used by the downconverter’s NCO as part of the automatic frequency control loop (AFC) Returns 0 0* Uses BIAS_ERROR_DATA value from AFC hardware 1 Uses CORE_BIAS_DATA value from DSP core Controls the polarity of the SYLE output pin (hop pulse) Returns 0 0 SYLE is a positive pulse 1 SYLE is a negative pulse Defines the search window size (in bits) for windowed search mode (for Unique Word or SYNC_D words). Returns 0 0000 Window size=1 0001 Window size =3 (1±1) ••• 1111 Window size = 31 (1± 15) Bias estimator threshold value Returns 0 XXh Sets the bias value Notes: 1. VP_CLOCK. Internally synchronized to avoid glitches. Changes to this bit take effect immediately. 2. SYLE_POLARITY. Changes to this bit take effect immediately. 3. BIAS_THRESHOLD. The bias threshold must be coded as a negative value (opposite of the threshold value) coded in 2’s complement. The nominal value for the threshold is -46 (=D3h). Internally, this value is sign-extended to 13 bits. 34 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 13. Bank 3 Register EXT1 Config 2 Field Bank 3 Bit Position EXT1 R/W Data ANTENNA_SW_DEFEAT f--------------R W ANTENNA_SW_OFFSET -edcba98-------R W SLEEP_PERIOD --------76543210 SLEEP_REMAINING --------76543210 W R 1 Description Controls optional antenna switching (ANT0 and ANT1 pins) Returns 0 0 Enables antenna switching 1 Disables antenna switching Controls antenna switching time advancement Returns 0 Offset in number of 2.048 MHz clock cycles xXh (<108) 00h Programs sleep duration in sleep mode Illegal 01h Sleep period=1 frame (4 ms) ••• FFh Sleep period = 255 frames (1.020s) Returns value of sleep counter when sleep mode is interrupted by a “wake” signal 00h Normal expiration of sleep counter 01h One frame left before normal expiration ••• FFh 255 frames left before normal expiration Notes: 1. SLEEP_PERIOD. In sleep mode, the RFEON pin is active. Changes to this bit take effect immediately. 2. SLEEP_REMAINING. A non-zero value indicates that the Z87001 was awakened by a key press activating one of the wake-up pins on port 0. In this case, the processor should immediately reset the SLEEP_WAKE field in SSPSTATE to prevent the process from going back to sleep when the user key press ceases. DS96WRL0800 PRELIMINARY 35 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog REGISTER DESCRIPTION (Continued) Table 14. Bank 3 Register Description SSPSTATE Field Bank 3 Bit Position SW_SYLE f--------------- EXT2 R/W Data R/W 0* 1 STOP_CODCLK -e-------------R/W 0* 1 DBP_STOP_CLOCK --d------------R/W 0* 1 BSYNC_GAIN ---c-----------R/W 0* 1 BIAS_ENABLE ----b----------R/W 0* 1 TX_ENABLE -----a---------R/W 0* 1 SYNC_SEARCH_WORD ------9--------R/W 0* 1 SYNC_SEARCH_MODE -------87------R/W 00* 01 10 11 HOP_ENABLE ---------6-----R/W 0 1 SYNC_ACQ_CLEAR ----------5----R W 1->0 FRAME_START_CLEAR -----------4---R W SLEEP_WAKE 1->0 ------------3--R/W 0 1 MULTIPLEX_SWITCH -------------21R/W 00* 01 10 11 36 Description Controls accelerated synthesizer programming after sleep Not Active Active Inhibits toggling of codec clock output during sleep CODCLK is free running CODCLK is frozen high Controls toggling of CLKOUT output pin (clock for ADPCM Processor). CLKOUT is free running CLKOUT is frozen high Selects gain for first order loop of the bit synchronizer Nominal gain Gain divided by 64 Controls closed-loop AFC circuit No new bias estimation is performed (latest estimate used) Enables BIAS_ERROR_DATA updates Global enable for all transmit functions Transmitter disabled Transmitter enabled Controls the word searched for in search mode Search for UW pattern (Unique Word) Search for SYNC_D pattern Controls the search mode (and frame synchronization) No search Window search (<= UW_LOCATION & WINDOW_SIZE) Full search (during whole frame) Not used Enables transmission of the hop pulse on SYLE pin Hop pulse disabled Hop pulse enabled Clears the SYNC_ACQ_IND flag. Returns last value written A transition from 1 to 0 clears the flag Clears the FRAME_START_IND flag Returns last value written A transition from 1 to 0 clears the flag Enable bit for entering sleep mode Wake mode only Sleep mode can be activated by GO_TO_SLEEP command Controls operation of the transceiver SMUX (bit inversion and ADPCM Processor access disabled) STMUX (bit inv. enabled; ADPCM Proc. access disabled) Reserved TMUX (bit inversion and ADPCM Processor access enabled) PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 14. Bank 3 Register Description SSPSTATE Field Bank 3 Bit Position GO_TO_SLEEP --------------0 TX_ENABLE SYNC_SEARCH_WORD SYNC_SEARCH_MODE HOP_ENABLE SYNC_ACQ_CLEAR FRAME_START_CLEAR SLEEP_WAKE MULTIPLEX_SWITCH GO_TO_SLEEP EXT2 R/W Data Description R W Command bit to place the Z87001 in sleep mode Returns last value written A transition from 0 to 1 causes Z87001 sleep mode 0->1 -----a---------R/W 0* 1 R/W 0* 1 R/W 00* 01 10 11 R/W 0 1 ------9--------- -------87------- ---------6------ ----------5----R W 1->0 R W 1->0 -----------4---- ------------3--R/W 0 1 R/W 00* 01 10 11 -------------21- ---------------0 R W 0->1 1 Global enable for all transmit functions Transmitter disabled Transmitter enabled Controls the word searched for in search mode Search for UW pattern (Unique Word) Search for SYNC_D pattern Controls the search mode (and frame synchronization) No search Window search (<= UW_LOCATION & WINDOW_SIZE) Full search (during whole frame) Not used Enables transmission of the hop pulse on SYLE pin Hop pulse disabled Hop pulse enabled Clears the SYNC_ACQ_IND flag. Returns last value written A transition from 1 to 0 clears the flag Clears the FRAME_START_IND flag Returns last value written A transition from 1 to 0 clears the flag Enable bit for entering sleep mode Wake mode only Sleep mode can be activated by GO_TO_SLEEP command Controls operation of the transceiver SMUX (bit inversion and ADPCM Processor access disabled) STMUX (bit inv. enabled; ADPCM Proc. access disabled) Reserved TMUX (bit inversion and ADPCM Processor access enabled) Command bit to place the Z87001 in sleep mode Returns last value written A transition from 0 to 1 causes Z87001 sleep mode Notes: 1. DBP_STOP_CLOCK. When this bit is set to 1, the ADPCM Processor clock (CLKOUT) is stopped within two clock periods. When this bit is set to 0, the ADPCM Processor clock restarts within two clock periods; in every case, the ADPCM Processor clock minimum specifications for high time and low time are respected. 2. BSYNC_GAIN. Changes to this bit take effect immediately. BIAS_ENABLE. This bit is a global enable for the Automatic Frequency Control. When the bit is set, the AFC hardware updates the current BIAS_ERROR_DATA during specific time windows, controlled by the event trigger hardware and suitable for a good operation of the AFC. When the bit is reset, the AFC operation is suspended. However, the current BIAS_ERROR_DATA, resulting from previous bias estimations, can still be used to bias the downconverter NCO. Changes to the BIAS_ENABLE bit take effect at the beginning of the frame following the change. 3. TX_ENABLE. Global control for all system transmit functions, including PAON pin control (timing set by the RFTX_PWR_ON/OFF register fields) and power to the modulator and NCO (timing set by MOD_PWR_ON and the wake/sleep modes). 4. Changes to this bit take effect immediately. 5. HOP_ENABLE. Changes to this bit take effect immediately. 6. SLEEP_WAKE. This bit must be set to enable the core to put itself to sleep via the GO_TO_SLEEP command. The SLEEP_WAKE bit must be reset to prevent the core to fall back to sleep after it is awaken by one of the Port 0 Wake-up pins when the sleep period has not expired. If the bit is not reset, the core will fall right back to sleep when the wake-up input is de-asserted (note that by design, a wake-up input has a minimum of 10 ms duration, to allow the software enough time to safely reset the SLEEP_WAKE bit). 7. SYNC_AQC_CLEAR. This bit must be set to “1” again after every “clear” operation to allow for the next “clear”. 8. FRAME_START_CLEAR. This bit must be set to “1” again after every “clear” operation to allow for the next ?“clear”. DS96WRL0800 PRELIMINARY 37 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog REGISTER DESCRIPTION (Continued) Table 15. Bank 3 Register Description SSPSTATUS Field Bank 3 Bit Position FRAME_COUNTER fedcba987------ EXT3 R/W R RESERVED ---------65---- HAND_BASE_SEL -----------4--- W R W R W SYNC_ACQ_IND ------------3-R W FRAME_START_IND ------------2-R W RESERVED -------------10 R W Data Description Current frame counter value 00h First value at beginning of frame (0) ... 173h Last value at end of frame (371) ... Illegal values No effect Returns 0 No effect Reflects status of Handset/Base select pin (HBSW) 0 Base (HBSW = 0) 1 Handset (HBSW = 1) No effect Indicates detection of a Sync word (UW or SYNC_D depending on SYNC_SEARCH_WORD search mode) No sync word detected 0 Sync word detected 1 No effect Indicates start of a new frame 0 No start of new frame (1 written to 1 FRAME_START_CLR) New frame started No effect Returns 0 No effect Notes: FRAME_COUNTER. Read the double-buffered current value of the Frame Counter. On the handset, a single frame counter is used to clock transmit and receive events. On the base station, the transmit frame counter value is returned Table 16. Bank 3 Register Description GPIO0DIR Field Bit 3 Bit Position DIRECTION0 fedcba9876543210 EXT4 R/W R/W 38 Data Description ..0. ..1. Independent control of Port 0 pin direction Sets pin in input mode Sets pin in output mode PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 17. Bank 3 Register Description GPIO0DATA Field Bank 3 Bit Position DATA0 fedcba9876543210 EXT5 R/W R W Data 1 Description Access to Port 0 data XXXXh Reads pin values XXXXh Writes output pin values Notes: DATA0. The read value returns the actual pin values and does not depend on the pin directions (i.e. for output pins, the output value is returned unless a contention occurs). Table 18. Bank 3 Register Description GPIO1DIR Field Bank 3 Bit Position DIRECTION1 fedcba9876543210 EXT6 R/W R/W Data ..0. ..1. Description Independent control of Port 1 pin direction Pin in input mode Pin in output mode Table 19. Bank 3 Register Description GPIO1DATA Field Bank 3 Bit Position DATA1 fedcba9876543210 EXT7 R/W R W Data Description Access to Port 1 data XXXXh Reads pin values XXXXh Writes output pin values Notes: DATA1. The read value returns the actual pin values and does not depend on the pin directions (i.e. for output pins, the output value is returned unless a contention occurs) DS96WRL0800 PRELIMINARY 39 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Bank 2 Registers Table 20. Bank 2 Register Description VP_INOUT Field Bank 2 Bit Position RESERVED fedcba98-------- VP_STATUS --------76543210 VP_COMMAND EXT0 R/W Data R W R XXh W XXh --------76543210 Description Returns 0 No effect Access to ADPCM Processor’s Command/Status mailbox Reads Status byte from ADPCM Processor Access to ADPCM Processor’s Command/Status mailbox Writes Command byte to ADPCM Processor Table 21. Bank 2 Register Description RX_CONTROL Field Bank 2 Bit Position SNR_ESTIMATE fedcba9876543210 UW_LOCATION -------876543210 EXT1 R/W Data Description Access to channel measurement (SNR) estimate Returns the SNR value R XXXXh W Location of the Unique Word XXXXh Initializes the value that the receive frame counter is set to on detection of the Unique Word Notes: SNR_ESTIMATE. This value is updated every frame. It should be read by the software during the frequency hopping guard time of the next frame. Table 22. Bank 2 Register Description BIAS_ERROR Field Bank 2 Bit Position BIAS_ERROR_DATA fedcba9876543210 EXT2 R/W R W Data Description Access to the bias estimate from the AFC loop. XXXXh Current bias estimate value No effect Notes: BIAS_ERROR_DATA. This value is used to bias the downconverter’s NCO if the USE_CORE_BIAS register field is reset. It is encoded as a 2’s complement number. The unit is 125 Hz . 40 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 23. Bank 2 Register Description RSSI Field Bank 2 Bit Position EXT3 R/W RESERVED fedcba98-------- RSSI_DATA -------76543210 Data R W R W XXh 1 Description Returns 0 No effect Access to 8-bit ADC (can be used for RSSI data) Returns latest value on 8-bit DAC No effect Note: RSSI_DATA. This value is sampled once per frame (4ms) approximately at bit 72 (middle) of the received data. Table 24. Bank 2 Register Description CORE_BIAS Field Bank 2 Bit Position EXT4 R/W RESERVED fed------------- CORE_BIAS_DATA ---cba9876543210 R W R W Data Description Returns 0 No effect Stores bias value for correction of downconverter’s NCO. Returns 0 xXXXh Updates bias value Notes: CORE_BIAS_DATA.This value is used if the USE_CORE_BIAS register field is set. It is encoded as a 2’s complement number. The unit is 125 Hz. Table 25. Bank 2 Register Description MOD_PWR_CTRL Field Bank 2 Bit Position RESERVED f--------------- MOD_PWR_ON -edcba98-------- RESERVED --------76543210 EXT5 R/W Data R W R W R W xXh Description Returns 0 No effect Determines modulator turn-on time referenced to the transmit frame counter Returns 0 Bits 6-0 of turn-on time (=(x modulo 128) -1) Returns 0 No effect Notes: 1. MOD_PWR_ON. Controls the turn-on time for the internal modulator and NCO. Only the 7 LSBits of the 9-bit value necessary to encode an event (from frame counter 0 to 371) are programmable. The two MSBits have fixed values which depend on whether base station or handset is selected: “00” on the base and “01” on the handset. The modulator’s turn-off time occurs a fixed time (number of bits) after the turn-on time: 144 bits on the base station, 148 bits on the handset. 2. Changes to this value take effect immediately. 3. To disable the modulator continuously, clear TX_ENABLE DS96WRL0800 PRELIMINARY 41 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog REGISTER DESCRIPTION (Continued) Table 26. Bank 2 Register Description DEMOD_PWR_CTRL Field Bank 2 Bit Position RFEON_POLARITY f--------------- EXT6 R/W R W DEMOD_PWR_ON Data 0 1 -edcba98-------- RESERVED --------7------- DEMOD_PWR_OFF ---------6543210 R W R W R W xXh XXh Description Controls the polarity of the RFEON output pin Returns 0 Active high Active Low Determines internal power up of demodulator and turn on time of RXSW pin, referenced to the receive frame counter Returns 0 Bits 6-0 of turn-on time (=(x modulo 128) -1) Returns 0 No effect Determine internal power down of demodulator and turn off time of RXSW pin, referenced to the receive frame counter Returns 0 Bits 6-0 of turn-off time (=(x modulo 128) -1) Notes: 1. DEMOD_PWR_ON, DEMOD_PWR_OFF. Controls internal receive hardware and the RXSW output pin. The turn-on and off times are given in number of received bit periods and are referenced to the Receive Frame Counter. Only the 7 LSBits of the 9-bit value are programmable. The two MSBits have fixed values which depend on whether base station or handset is selected. For DEMOD_PWR_ON, the two bits are “01” on the base and “00” on the handset. For DEMOD_PWR_OFF, the two bits are “10” on the base and “01” on the handset 2. Changes to these values take effect immediately. 3. To enable receive power continuously, clear TX_ENABLE and set SYNC_SEARCH_MODE to FULL_SEARCH (this is the case in acquisition mode). 4. The polarity of the RXSW output pin is controlled by the RFRX_POLARITY bit in the RFRX_PWR_CTRL register . 42 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 27. Bank 2 Register Description RFTX_PWR_CTRL Field Bank 2 Bit Position RFTX_POLARITY f--------------- EXT7 R/W R W RFTX_PWR_ON Data 0 1 -edcba98-------- RESERVED --------7------- RFTX_PWR_OFF ---------6543210 R W R W R W xXh xXh 1 Description Controls the polarity of the PAON output pin Returns 0 Active high Active Low Determines PAON output pin turn-on time referenced to the transmit frame counter Returns 0 Bits 6-0 of turn-on time (=(x modulo 128) -1) Returns 0 No effect Determine PAON output pin turn-off time referenced to the transmit frame counter Returns 0 Bits 6-0 of turn-off time (=(x modulo 128) -1) Notes: 1. RFTX_PWR_ON, RFTX_PWR_OFF. Controls the PAON output pin, and thereby the external RF module’s transmitter. The turn-on and off times are given in number of transmitted bit periods and are referenced to the transmit Frame Counter. Only the 7 LSBits of the 9-bit value are programmable. The two MSBits have fixed values which depend on whether base station or handset is selected. For RFTX_PWR_ON, the two bits are “00” on the base and “01” on the handset. For RFTX_PWR_OFF, the two bits are “01” on the base and “10” on the handset. 2. Changes to these values take effect immediately. 3. To disable the transmitter continuously, clear TX_ENABLE in SSP_STATE. DS96WRL0800 PRELIMINARY 43 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Bank 1 Registers Table 28. Bank 1 Register Description RATE_BUF_ADDR Field Bank 1 Bit Position RESERVED f-------------- EXT0 R/W R W RX_AUTO_INCREMENT -e------------R W RX_BUF_ADDR --dcba98-------R W RESERVED --------7------- R W TX_AUTO_INCREMENT ---------6-----R W TX_BUF_ADDR ----------543210 R W 44 Data Description Returns 0 No effect Controls the auto-increment feature of the Rx rate buffer 0 Returns 0 1 Disables auto-increment Enables auto-increment Access to Rx rate buffer address Returns 0 00h Address 0 ... ... 23h Address 23h = 35 ... Illegal Returns 0 No effect Controls the auto-increment feature of the Tx rate buffer Returns 0 0 Disables auto-increment 1 Enables auto-increment Access to Tx rate buffer address Returns 0 00h Address 0 ... ... 23h Address 23h = 35 24h Tx/Rx rate buffer address for ADPCM Processor 25h accesses 26h Tx/Rx Nibble Marker bits [15..0] 27h Tx/Rx Nibble Marker bits [31..16] 28h Tx/Rx Nibble Marker bits [35..32] 29h MOD_FREQ_DEV 0 2Ah MOD_FREQ_DEV 1 2Bh MOD_FREQ_DEV 2 2Ch MOD_FREQ_DEV 3 2Dh MOD_FREQ_DEV 4 2Eh MOD_FREQ_DEV 5 2Fh MOD_FREQ_DEV 6 30h MOD_FREQ_DEV 7 31h MOD_FREQ_DEV 8 32h MOD_FREQ_DEV 9 ... MOD_CENTER_FREQ Illegal PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog REGISTER DESCRIPTION (Continued) Table 29. Bank 1 Register Description RATE_BUF_DATA Field Bank 1 Bit Position EXT1 R/W RX_BUF_DATA ------------3210 R TX_BUF_DATA ------------3210 W TX_BUF_VP_ADDR --dcba98-------W RX_BUF_VP_ADDR ----------543210 W TX_RX_NIBBLE_MARKER fedcba9876543210 W MOD_FREQ fedcba9876543210 W Data Description Access to the Rx rate buffer data Reads value at current RX_BUF_ADDR address (0 to 23h) Access to the Tx rate buffer data XXXXh Writes value at current TX_BUF_ADDR address (0 to 23h) Sets the initialization value of the Tx rate buffer address used for ADPCM Processor accesses XXh Writes initialization value (TX_BUF_ADDR address= 24h) Sets the initialization value of the Rx rate buffer address used for ADPCM Processor accesses XXh Writes initialization value (TX_BUF_ADDR address= 24h) Sets the Nibble Marker register for Tx and Rx rate buffer accesses by ADPCM Processor XXXXh Write nibble marker value (TX_BUF_ADDR= 25h to 27h) Access to modulator settings XXXXh Writes modulator setting value (TX_BUF_ADDR=28h to 32h) Xh Note: The meaning and address for any RATE_BUF_DATA is set in the RATE_BUF_ADDR register. MOD_FREQ. The unit for center frequency and frequency deviation words is 62.5 Hz. These words are encoded as 2’s complement numbers. The meaning and address for any RATE_BUF_DATA is set in the RATE_BUF_ADDR register. MOD_FREQ. The unit for center frequency and frequency deviation words is 62.5 Hz. These words are encoded as 2’s complement numbers. Table 30. Bank 1 Register Description BIT_SYNC Field Bank 1 Bit Position INT_SYM_ERR1 fedcba9876543210 EXT2 R/W R SECOND_ORDER fedcba9876543210 W 45 Data Description Read access to the integrated symbol error from the bit synchronizer’s second order loop XXXXh Reads error data bits [23..8] (bits [7..0] are in bank 0, EXT6) Write access to the bit synchronizer’s second-order loop XXXXh Writes second order loop’s 16-bit value PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 31. Bank 1 Register Description EXT3 EXT4 EXT5R/W RESERVED Field Bank 1 Bit Position RESERVED fedcba9876543210 R W Data Description Returns 0 0000h Must be left alone or written to 0000h (or unpredictable results may occur) Table 32. Bank 1 Register Description CONTROL Field Bank 1 Bit Position RESERVED fedcb----------- FS_INT_ENABLE -----a---------- INTERRUPT_0_ENABLE INTERRUPT_2_ENABLE P0_WAKEUP_ENABLE TX_PWR_DAC_DATA EXT6 R/W Data R W R/W 0* 1 R/W 0* 1 R/W 0* 1 R/W 0000* 1xxx x1xx xx1x xxx1 R/W Xh ------9--------- -------8-------- --------7654---- ------------3210 Description Returns 0 No effect Controls frame start interrupt (INT1) Disables frame start interrupt Enables frame start interrupt Controls interrupt 0 (INT0 on P114) Disables interrupt 0 Enables interrupt 0 Controls interrupt 2 (INT2 on P115) Disables interrupt 2 Enables interrupt 2 Controls wake-up pins (P0[3..0]) Disables all wake-up pins Enables P03 as wake-up pin (if in input mode) Enables P02 as wake-up pin (if in input mode) Enables P01 as wake-up pin (if in input mode) Enables P00 as wake-up pin (if in input mode) Access to Tx power 4-bit DAC output data Sets output value Note: P0_WAKEUP_ENABLE. When enabled, pins P0[3..0] are active low wake-up pins for the Z87001 sleep mode. The input signal is internally debounced and synchronized to the bit clock. It is internally given a minimum duration of one bit to allow the software to exit sleep mode safely. Table 33. Bank 1 Register Description RESERVED Field Bank 1 Bit Position RESERVED fedcba9876543210 46 EXT7 R/W R W Data Description Returns 0 No effect PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Bank 0 Registers Table 34. Bank 0 Register Description EXT0 EXT1 EXT2 EXT3 EXT4 EXT5 R/W RESERVED Field Bank 0 Bit Position RESERVED fedcba9876543210 Data R W 1 Description Returns 0 No effect Table 35. Bank 0 Register Description INT_SYM_ERR0 Field Bank 0 Bit Position RESERVED fedcba98-------- INT_SYM_ERR0 --------76543210 EXT6 R/W R W R W DS96WRL0800 Data XXh Description Returns 0 No effect Read access to the integrated symbol error from the bit synchronizer’s second order loop Reads error data bits [7..0] (bits [23..8] are in bank1, EXT2) No effect PRELIMINARY 47 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 36. Bank 0 Register Description RFRX_PWR_CTRL Field Bank 0 Bit Position RFRX_POLARITY f--------------- EXT7 R/W R W RFRX_PWR_ON Data 0 1 -edcba98-------- RESERVED --------7------- RFRX_PWR_OFF ---------6543210 R W R W R W xXh xXh Description Controls the polarity of the TXSW (and RXSW) output pins Returns 0 TXSW active Low and RXSW active High TXSW active High and RXSW active Low Determines TXSW output pin turn-on time referenced to the transmit frame counter Returns 0 Bits 6-0 of turn-on time (=(x modulo 128) -1) Returns 0 No effect Determine TXSW output pin turn-off time referenced to the transmit frame counter Returns 0 Bits 6-0 of turn-off time (=(x modulo 128) -1) Notes: 1. RFRX_POLARITY. Caution: notice the inverse polarity of the TXSW pin. 2. RFRX_PWR_ON, RFRX_PWR_OFF. Controls the TXSW output pin. The turn-on and off times are given in number of transmitted bit periods and are referenced to the TRANSMIT (!) Frame Counter. Only the 7 LSBits of the 9-bit value are programmable. The two MSBits have fixed values which depend on whether base station or handset is selected. For RFRX_PWR_ON, the two bits are “00” on the base and “01” on the handset. For RFRX_PWR_OFF, the two bits are “01” on the base and “10” on the handset. 3. Changes to these values take effect immediately. 4. To disable transmit power continuously, clear TX_ENABLE. 48 PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog INSTRUCTION SET DESCRIPTION Refer to Zilog’s Z89C00 User’s Manual, Chapter 5 (Instruction Set Features) and Chapter 6 (Assembly Lan- guage Instruction Set), for a complete description of the core processor’s instruction set. Table 37. Instruction Set Summary Instruction Description ABS Opcode Absolute Value Synopsis Subroutine call 0010100 0010100 CCF Clear carry flag CALL [<cc>,]<address> Clear Carry Flag Clear OP flag Decrement Increment Jump ADD A,P0:0 ADD A,D0:0 ADD A,#%1234 ADD A,@@P0:0 ADD A,%F2 ADD A, @P1:1 ADD A,X A,<pregs> A,<dregs> A,<limm> A,<memind> A,<direct> A,<regind> A,<hwregs> 1 1 2 1 1 1 1 1 1 2 3 1 1 1 AND A,P2:0 AND A,D0:1 AND A,#%1234 AND A,@@P1:0 AND A, %2C AND A,@P1:2+LOOP AND A, EXT3 <cc>,<direct> <direct> 2 2 2 2 CALL sub1 CALL Z,sub2 None 1 1 CCF None 1 1 CIEF None 1 1 COPF A,<pregs> A,<dregs> A,<memind> A,<direct> A,<regind> A,<hwregs> A,<limm> 1 1 1 1 1 1 2 1 1 3 1 1 1 2 CP A,P0:0 CP A,D3:1 CP A,@@P0:0 CP A,%FF CP A,@P2:1+ CP A,STACK CP A,#%FFCF <cc>A, A 1 1 1 1 DEC NZ,A DEC A <cc>,A A 1 1 1 1 INC PL,A INC A <cc>,<direct> <direct> 2 2 2 2 JP NIE,Label JP Label JP [<cc>,]<address> 0100110 0100110 DS96WRL0800 1 1 2 3 1 1 1 INC [<cc>,] <dest> 1001000 1001000 JP 1 1 2 1 1 1 1 DEC [<cc>,]<dest> 1001000 1001000 INC A,<pregs> A,<dregs> A,<limm> A,<memind> A,<direct> A,<regind> A,<hwregs> CP<src1>,<src2> Comparison 0111001 0110001 0110101 0110011 0110001 0110000 0110100 DEC ABS NC,A ABS A COPF 1001010 CP 1 1 CIEF 1001010 COPF 1 1 CCF 1001010 CIEF <cc>,A A AND<dest>,<src> Bitwise AND 1011001 1010001 1010100 1010101 1010001 1010001 1010000 CALL Example ADD<dest>,<src> Addition 1001001 1000001 1000100 1000101 1000011 1000001 1000000 AND # # Words Cycles ABS[<cc>,]<src> 1001000 1001000 ADD Operands PRELIMINARY 49 1 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 37. Instruction Set Summary Instruction Description LD MLD MPYA Opcode Load destination with source 0000000 0000001 0001001 0000001 0000101 0000011 0000111 0000100 0001100 0001010 0000110 0000010 0001001 0000001 0000100 0100101 0000101 0000001 0000000 Multiply 1010010 1010010 1011011 1011011 LD<dest>,<src> Multiply and add MPYA <srcl>,<src2> [,<bank switch>] 1010010 1010010 1011011 1011011 MPYS NEG Multiply and subtract 0010010 0010010 0011011 0011011 Negate 1001000 1001000 NOP No operation OR Bitwise OR 0000000 1101001 1100001 1100100 1100101 1100011 1100001 1100000 50 Synopsis MLD<srcl>,<srcl> [,<bank switch>] Operands # # Words Cycles Example A,<hwregs> A,<dregs> A,<pregs> A,<regind> A,<memind> A,<direct> <direct>,A <dregs>,<hwregs> <pregs>,<simm> <pregs>,<hwregs> <regind>,<limm> <regind>,<hwregs> <hwregs>,<pregs> <hwregs>,<dregs> <hwregs>,<limm> <hwregs>,<accind> <hwregs>,<memind> <hwregs>,<regind> <hwregs>,<hwregs> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 2 3 3 1 1 LD A,X LD A,D0:0 LD A,P0:1 LD A,@P1:1 LD A,@D0:0 LD A, 124 LD 124, A LD DO:0, EXT7 LD P1:1,#%FA LD P1:1,EXT1 LD @P1:1,#%1234 LD @P1:1+,X LD Y,P0:0 LD SR,D0:0 LD PC,#%1234 LD X,@A LD Y,@D0:0 LD A,@P0:0-LOOP LD X, EXT6 <hwregs>,<regind> <hwregs>,<regind>,<ban k switch> <regind>,<regind> <regind>,<regind>,<bank switch> 1 1 1 1 1 1 1 1 MLD A,@P0:0+LOOP MLD A,@P1:0,OFF MLD @P1:1,@P2:0 MLD@P0:1,@P1:0,O N <hwregs>,<regind> <hwregs>,<regind>,<ban k switch> <regind>,<regind> <regind>,<regind>,<bank switch> 1 1 1 1 1 1 1 1 MPYA A@P0:0 MPYA A,@P1:0,OFF MPYA @P1:1,@P2:0 MPYA@P0:1,@P1:0, ON 1 1 1 1 1 1 1 1 MPYS A,@P0:0 MPYS A,@P1:0,OFF MPYS @P1:1,@P2:0 MPYS@P0:1,@P1:0, ON 1 1 1 1 NEG NZ,A NEG A 1 1 NOP 1 1 2 1 1 1 1 1 1 2 3 1 1 1 OR A, P0:1 OR A, D0:1 OR A,#%202 OR A,@@P2:1+ OR A, %2C OR A, @P1:0-LOOP OR A, EXT6 MPYS<src1>,<src2> [,<bank switch>] <hwregs>,<regind> <hwregs>,<regind>,<ban k switch> <regind>,<regind> <regind>,<regind>,<bank switch> NEG <cc>,A <cc>, A A NOP None OR <dest>,<src> A, <pregs> A, <dregs> A, <limm> A, <memind> A, <direct> A, <regind> A, <hwregs> PRELIMINARY DS96WRL0800 Z87001/Z87L01 ROMless Spread Spectrum Cordless Phone Controller Zilog Table 37. Instruction Set Summary Instruction Description POP PUSH RET RL Pop value from stack Push value onto stack Return from subroutine Rotate Left Opcode Synopsis 0001010 0000100 0000010 0000000 Shift left logical DS96WRL0800 None 1 2 RET <cc>,A A 1 1 1 1 RL NZ,A RL A <cc>,A A 1 1 1 1 RR C,A RR A None 1 1 SCF None 1 1 SIEF [<cc>,]A A 1 1 1 1 SLL NZ,A SLL A None 1 1 SOPF <cc>,A A 1 1 1 1 SRA NZ,A SRA A A,<pregs> A,<dregs> A,<limm> A, <memind> A, <direct> A, <regind> A, <hwregs> 1 1 2 1 1 1 1 1 1 2 3 1 1 1 SUB A,P1:1 SUB A,D0:1 SUB A,#%2C2C SUB A,@D0:1 SUB A,%15 SUB A, @P2:0-LOOP SUB A, STACK A, <pregs> A, <dregs> A, <limm> A, <memind> A, <direct> A, <regind> A, <hwregs> 1 1 2 1 1 1 1 1 1 2 3 1 1 1 XOR A, P2:0 XOR A,D0:1 XOR A,#13933 XOR A,@P2:1+ XOR A, %2F XOR A, @P2:0 XOR A, BUS SUB<dest>,<src> Subtract Bitwise exclusive OR PUSH P0:0 PUSH D0:1 PUSH @P0:0 PUSH BU5 PUSH #12345 PUSH @A PUSH @@P0:0 SRA<cc>,A 1001000 1001000 0011001 0010011 0010100 0010101 0010011 0010001 0010000 XOR 1 1 1 1 2 3 3 SOPF 1001010 SUB 1 1 1 1 2 1 1 SLL Set OP flag Shift right arithmetic <pregs> <dregs> <regind> <hwregs> <limm> <accind> <memind> SIEF 1001000 1001000 SRA POP P0:0 POP D0:1 POP @P0:0 POP A SCF 1001010 SOPF 1 1 1 1 RR <cc>,A 1001010 SLL 1 1 1 1 RL <cc>,A Set C flag Set IE flag <pregs> <regs> <regind> <hwregs> RET 0000000 Rotate Right SIEF 1 Example PUSH <src> 0001001 0000001 0000001 0000000 0000100 0100101 0000101 1001000 1001000 SCF # # Words Cycles POP <dest> 1001000 1001000 RR Operands XOR <dest>,<src> 1111001 1110001 1110100 1110001 1110011 1110001 1110000 PRELIMINARY 51