Si322X DUAL PROSLIC DEMO PBX AND GR 909 LOOP TESTING SOFTWARE GUIDE 1. Introduction Silicon Laboratories has developed example software for the Si3220/Si3225 Dual ProSLIC. The source code itself is available on the Silicon Laboratories web site: www.silabs.com. This document describes the software interface and functions. When the software is running in a DOS console applications window, it controls the parallel port to drive an evaluation board set (Si3220PPT0-EVB or Si3225PPT0-EVB). This code can be easily ported to an embedded processor for a production application. The Dual ProSLIC LINC software is additional software provided with the evaluation board setup. It is a register graphical user interface (GUI) debugger for the Si322x. This LINC software allows the user to test static configurations of the SLIC and is the best environment for testing configurations of impedance synthesis coefficients, hybrid echo canceller coefficients, oscillators, ringing generation, pulse-metering generation, and SLIC voltage and current parameters. The PC demo code is best for testing real-time behavior and starting a baseline for SLIC device driver development. The SLIC interface itself is the basis for SLIC access. 1.1. Software The PC demo code creates a simple PBX. It can be open as a software project using Microsoft Visual Studio. When the demo.exe file is run, it will begin to control the Si3220 through the parallel port. When the program is running, a user can pick up any phone connected to a channel on the evaluation board stack, hear a dial tone, and dial any other phone. The phone number for channel 1 is 61; for channel 2, it is 62, and so on. The second phone will ring, and when picked up, a direct audio connection is made between the two phones. Additionally, the demo code demonstrates how to write software to run GR 909 loop tests. The command window gives the user the option of running diagnostic loop tests or entering PBX mode. The 32-bit PC version of the demo code is oversized because the Si322x PBX application requires very limited resources from the PC. The 8-bit microcontroller version of the PBX application described in AN73: Si3220/Si3225 System Demonstration Kit User s Guide uses a minimum amount of RAM and external memory options and can run on a slow platform. It is ideal for applications where the processor does not have sufficient resources. Both versions of the code are portable to any processor depending on RAM and MIPS limitations. The ProSLIC drivers are written such that it can be moved to any processor with little difficulty. 1.2. The Files Figure 1 shows a high-level block diagram of the layers in the software. Dual_i2o.c (associated header file: dual_io.h) is a low-level driver that communicates to the ProSLIC through the SPI port and sends the correct order of bytes to read/write to the Dual ProSLIC register/sram. Gr909.c, ISR.c, and SLIC.c are high-level drivers that demonstrate how to perform various common telephony tasks. (The associated header files are: SLIC.h, registers.h, SRAM.h, gr909.h.) Refer to code comments for more information on any of the software that is described here. SLIC.c has all the basic data structures and functionality to initialize the ProSLIC and perform all basic necessary telephony functions. Table 1 explains the functions contained in SLIC.c. This file is made portable enough to fit into any processor. These are the most common needed functions for any application. GR909.c demonstrates how to perform GR 909 diagnostic loop tests. Further information on how these tests are performed is described in the next section. Caller.c demonstrates how to send caller-id data using the Dual ProSLIC. Additionally, the DualDemo.c has details on how to detect dial pulses for pulse dialing. Code comments explain these algorithms in more detail. ISR.c contains the interrupt service routines of the program. Unlike the microcontroller version explained in AN73 where the software relies on being awakened by an interrupt handler, the PC here polls the interrupt status registers in the Dual ProSLIC. ISR.c processes the interrupt and sends the data back to the main program to perform the necessary action. Data.c and DualDemo.c contain the data structures and function on how the PBX runs. The main loop runs through each channel one by one and polls the interrupt status registers. Once an interrupt is found, it executes the state machine to determine what the next change of state should be. Figure 2 shows the basic state machine the PBX follows. Code comments explain these files in more detail. Rev. 0.1 10/06 Copyright 2006 by Silicon Laboratories AN75
Table 1. SLIC.c/SLIC.h Function unsigned char dualproslic_channelinit(void) void activateringing(void); void goactive(void); void goopen(void); void gooht(void); unsigned char getloopstatus(void); unsigned char get_dtmfdigit(void); void disableoscillators(); void breakconnection( unsigned char c1, unsigned char c2); void makeconnection( unsigned char c1, unsigned char c2); void waitforthechannel(void) void gentone(tone_struct *tone) void initilaize_ringing (void) void enable_pulsemetering(void) Initializes and calibrates the ProSLIC. This function is necessary to be run before any operation of the Si3220/ Si3225. Initial RAM and registers values are loaded from data structures elsewhere in this file. The function then performs the proper calibration routine. Refer to AN58: Si3220/Si3225 Programmer s Guide for the correct initialization procedure. These four functions change the linefeed states of the Si3220/25. They switch between open, active, on-hook transmission and ringing. They write to LINEFEED (Register 6). Returns value of the loop closure bit in LCRRTP (Register 9). Returns 1 if off-hook and 0 if on-hook. Returns DTMF digit value in TONDTMF (Register 69). Turns off oscillators. Stops generated tones. Makes and Breaks a direct PCM connection between 2 channels. Checks MSTRSTAT (register 3) to ensure the ProSLIC is up and running. Generates a tone with the internal oscillator. Initializes ringing registers before ringing is activated. Initializes pulse metering registers. SOFTWARE HARDWARE Demo.C SlIC drivers Interface drivers Data.C ISR.C I/O Port PBX Demo.C SLIC.C dual_i20.c SPI Hardware Main.C Caller.C Si3220 GR909.C Figure 1. Software Block Diagram 2 Rev. 0.1
On Hook Dialpulse Off hook First Ring On hook Dialtone Congestion Caller ID DTMF Ringing Digit Decoding Busy Ringback Connecting Figure 2. State Machine Rev. 0.1 3
2. GR 909 Loop Diagnostics The Dual ProSLIC integrates powerful ac and dc diagnostic capabilities for performing a wide variety of metallic loop tests. This application note describes how to implement the Si322x s diagnostic capabilities to meet North American metallic loop testing requirements as specified in Telcordia Technologies generic requirements document, GR 909. This application note is divided into the following sections: summary of the various GR 909 tests; how the Si322x s operating states and linefeed resources are utilized in metallic loop testing; description of software-controlled testing methods, and detailed analysis of the specific software functions used in testing to GR 909 specifications. The GR 909 testing sample source code described is available on Silicon Laboratories web site: www.silabs.com. 2.1. GR 909 Metallic Loop Tests There are five general test categories specified by GR 909. The Si322x addresses each of these in the manner and to the extent described below. Hazardous potential GR 909 specifies that a TIP- GND or RING-GND ac voltage greater than 50 V rms or dc voltage greater than 135 V DC constitutes a failure. The Si322x can measure hazardous voltages to the limit of line protection. Foreign voltage test GR 909 specifies that a TIP- GND or RING-GND ac voltage greater than 10 V RING or dc voltage greater than 6 V constitutes a failure. The Si322x provides foreign voltage measurement within the bounds of line protection. Resistive faults test GR 909 specifies that a TIP- RING, TIP-GND, or RING-GND on-hook dc resistance less than 150 k constitutes a failure. The Si322x provides resistive fault testing within practical limits for medium and short loop applications. Receiver off-hook test GR 909 specifies that the telecom system must be able to discriminate between a resistive fault and an off-hook condition. The Si322x is capable of detecting non-linear resistive loads, which is indicative of a resistive fault condition. Ringing equivalency number (REN) test GR 909 specifies that a measurement less than 0.175 REN or greater than 5.0 REN constitutes a failure. The Si322x is capable of measuring REN loading. 2.2. Linefeed State Descriptions The diagnostic software takes advantage of the eight linefeed states of the ProSLIC family to achieve precise line conditions for measurement. The ProSLIC line states are OPEN, FORWARD ACTIVE, ON-HOOK TRANSMISSION, GROUND START, RINGING, REVERSE ACTIVE, REVERSE GROUND START, and REVERSE ON-HOOK TRANSMISSION. 2.2.1. OPEN State In the OPEN State, the TIP and RING signals are not driven; they are held in high impedance. However, some impedance to ground is still present. This impedance is a by-product of the sense resistors for TIP, RING, and VBAT. Figure 3 illustrates the effective resistance seen at TIP and RING. The OPEN state is used during diagnostic testing to present a high-impedance condition. Specifically, the OPEN state is used in foreign and hazardous voltage tests. GND 1.5 V + 1.5 V + 402 k 402 k 800 k Figure 3. OPEN State DC Impedance TIP RING 2.2.2. FORWARD ACTIVE State The FORWARD ACTIVE state is used during diagnostics as a low-impedance source. The FORWARD ACTIVE state presents approximately 320 source resistance as shown in Figure 4. The TIP and RING signal voltages are programmed using the V OC (open circuit voltage) RAM register. V OC controls the voltage difference between TIP and RING during the FORWARD ACTIVE state. Longitudinal currents measured during the FORWARD ACTIVE state represent resistance between RING and GND. Metallic (differential) currents measured represent the resistance between TIP and RING. The diagnostics step through several voltage conditions for TIP and RING while simultaneously monitoring the loop current, from which TIP-RING resistance can be determined. The Forward active state is also used to 4 Rev. 0.1
charge a capacitive load. Vcm 320 TIP AC 320 TIP 800 k 800 k Z Ringer Load GND Vcm+Voc RING Figure 4. FORWARD ACTIVE State DC Impedance 2.2.3. GROUND START State The GROUND START state presents a low-impedance (320 ) source impedance between RING and ground. VOC controls the level of the voltage on RING. TIP is in a high-impedance (403 k ) state. The GROUND START state is used to measure longitudinal currents. GND AC Figure 6. RINGING State Impedance 2.2.6. REVERSE ACTIVE State The REVERSE ACTIVE state shown in Figure 7 is used to check for non-linearity in the resistance between TIP and RING. This may indicate a diode or an electronic device on the line. Vcm+Voc 320 RING TIP 1.5 + 402 k TIP 800 k 800 k GND Vcm RING GND Voc+Vcm 320 RING Figure 5. GROUND START State DC Impedance 2.2.4. ON-HOOK TRANSMISSION State The ON-HOOK TRANSMISSION state is not used because there is no advantage over using the FORWARD ACTIVE state. 2.2.5. RINGING State The RINGING state is used to measure high REN loads. A 17 V rms signal is applied to TIP and RING to measure REN. The ringing signal has an output impedance of 320 as shown in Figure 6. Figure 7. REVERSE ACTIVE State DC Impedance 2.2.7. REVERSE GROUND START State The REVERSE GROUND START state shown in Figure 8 is complementary to the FORWARD GROUND START state and is used in measuring longitudinal currents. Voc + Vcm 320 TIP 800 k GND 1.5 V + 403 k RING Figure 8. REVERSE GROUND START State DC Impedance Rev. 0.1 5
2.2.8. REVERSE ON-HOOK TRANSMISSION State REVERSE ON-HOOK TRANSMISSION is not used for SLIC testing because it is the same as REVERSE FORWARD ACTIVE as far as SLIC testing is concerned. 2.3. Line Voltage/Current Measurement The Silicon Laboratories Si322x part continuously monitors the TIP GND, RING GND, and TIP to RING voltages and currents at a rate of 800 Hz. An accurate measurement of these voltages/currents can be made at anytime via the appropriate registers. (See the data sheet). To test for Foreign Voltage, the Si322x should be in the OPEN state. It is good practice to allow 100 ms settling time for the line before voltage measurement takes place. The line voltage measurement software functions perform multiple samples to give an accurate dc voltage. The example code listed below uses raw samples to get a true rms value and dc average value. It is possible to throw out samples so that 1/20 samples are non-redundant. 2.4. Line Diagnostics The Si322x has internal capabilities to determine the dc, ac, and peak value of voltage/current waveforms. (See the data sheet). The dc measurement takes multiple samples and sends it through a low-pass filter. The lowpass filter architecture is shown in Figure 9. 1/N + (N-1)/N Z -1 Figure 9. Low-Pass Filter Architecture This implements a simple first order IIR filter with the following transfer function: Hz --- 1 N = ------------------------------------- 1 N ------------ 1 z N 1 Therefore, the low-pass pole frequency is approximately Fp = ------------------------- Fs 2 N 1 Where Fs = 800 Hz. The low-pass filter coefficient is programmed by 4096 dec DIAGxCCO = --------------------- N where DIAGxCCO refers to the DIAGACCO and DIAGDCCO registers. For example: DIAGxCC0 = 4096 = 0x4000 => N = 1 => the lowpass filter is wide open. DIAGxCC0 = 1 => N = 4096 => Fp = 0.031 Hz Calculated outputs are stored in DIAGDC. The ac filter works similarly, except its input is a rectified wave in the filter above; its output is stored in DIAGAC. The peak value gives the highest value of the rectified wave; its output is stored in DIAGPK. See the Si3220/25 data sheet for more information on initializing the diagnostics registers. 2.5. Resistive Fault Measurement GR 909 testing requires the ability to measure resistor faults below 150 k between tip-ring, tip-gnd, and ringgnd. These resistive measurements can be measured in two ways: Voltage division and V/I measurement. 2.5.1. Voltage Division Using the recommended 800 k resistor across tip-ring, a resistive fault can be found by taking voltage measurements when in the ground start and reverse ground start states and using basic voltage division calculations. 2.5.2. V/I measurement When the resistive faults gets low enough where accurate readings of the current can be taken, it is possible to take a measurement of voltage and current to find resistance. 2.6. Capacitance and REN Load Measurement GR 909 testing requires the ability to measure relatively small capacitive loads on the line. Two methods for measuring line capacitance are described here that can be implemented by the Si322x ProSLIC: a charge/ discharge single-slope conversion method and a subringing threshold signal generation/measurement. 2.6.1. Using Single-Slope Conversion The Si322x is able to charge a capacitive line load to V OC using the FORWARD ACTIVE state. The load is then allowed to discharge through TIP and RING in the OPEN state. Because the impedance time constant is directly related to the charge/discharge time, one can measure the charge and/or discharge time between two voltage points. Using multiple charge/discharge cycles increases the accuracy of the impedance calculation. 6 Rev. 0.1
Using this method, the example test code is able to measure REN loading within approximately 5% accuracy. 2.6.2. Using Sub-Ringing Threshold Signal Generation/Measurement GR 909 specifies that a sub-ringing threshold ringing amplitude can be applied to TIP and RING for the purpose of measuring REN load. A ringing signal less than 17 V rms should be small enough not to trigger an audible ring of the phone. The Si322x can be programmed to apply such a ringing signal to the line while simultaneously measuring loop current in order to derive the REN load between TIP and RING. 2.7. Test Function Notes and Usage This section describes the software functions used in performing GR 909 measurements. The source code is available on the Silicon Laboratories web site: www. silabs.com. 2.7.1. OpenVoltages void openvoltages ( unsigned short *acvloop, unsigned short *dcvloop, unsigned short *acvring, unsigned short *dcvring, unsigned short *acvtip, unsigned short *dcvtip ) The OpenVoltage test samples TIP and RING voltage 50 times while the Dual ProSLIC is in OPEN state. The sum of the samples is used to compute the average and the rms average of the voltages measured when the line is in OPEN state. The interpretation of these voltages is left to the user. The GR 909 guidelines are that >50 V rms or >135 V DC are hazardous voltages. Under these circumstances it is not advised that any other testing or operations continue. The same OpenVoltage readings can be used for determination of foreign voltage. The GR 909 guidelines for foreign voltage are ac greater than 10 V rms or dc greater than 6 V DC. To use OpenVoltage, allocate six short (16-bit) data items to receive the approximate ac and dc voltages TIP-GND, RING-GND, and TIP-RING. Note: It is possible to avoid using the square root function by doing limit comparisons against the square. It is also possible to use a table of square values and interpolate. Rev. 0.1 7
2.8. Open Voltage An algorithm flow chart follows: Start Linefeed = 0x0 Read RAM (V tip ) Ream RAM (V ring ) avg(v TIP,V RING ) Result End Loop = 50 Accuracy: ±.3 V Range: 0 to 64 V Accuracy: ±.6 V Range: 65 to 160 V AC voltages can be found by subtracting the average dc value from each sample voltage. N ACvoltage = V x V avgdc 2 N = 0 2.8.1. LowREN int LowREN(void) The LowREN function charges the load on TIP and RING to 30 V using the FORWARD ACTIVE linefeed state. The LowREN function then sets the loop to open state and monitors TIP and RING. If TIP and RING hold the voltage, the ringer s dc blocking capacitance is holding the charge. The LowREN function uses the FORWARD ACTIVE linefeed state and then the OPEN linefeed state. The discharge period for even very low REN loads should be hundreds of milliseconds. Accuracy =.2 REN Range = 0 2 2.8.2. LineCap int linecap(void) The LineCap function creates a square wave output between two limit voltages 55 and 60 V for 50 cycles. The time it takes to complete these 50 cycles measures the capacitance. The LineCap function can be used for very precise and very repeatable capacitance measurement in a system with 2 ms latency. To use LineCap function an external timer should periodically sample the V LOOP. The system time should be recorded before and after the 50 cycles are complete. 2.9. Line Cap The time the line takes to switch from 55 to 60 V and back to 55 V is a linear relationship with capacitance: thus: t = C+ B t B C = ---------- A quick calibration routine helps determine the constants (, ). Constant values in the sample code were derived under laboratory conditions. Accuracy: 5%* Range: 600 nf 3 F Note: The ESR of a capacitor affects the accuracy of the capacitor measurement. V X = Voltage under consideration V avgdc = Average dc voltage from the above algorithm 8 Rev. 0.1
2.9.1. Algorithm Flowchart Start Note time Set VOL = 55 Loop = 50 While VOL 60 The absolute value of TIP and RING current is averaged over a one second period of 17 V rms ringing. The resulting average current estimates the capacitance or REN load. The current through the load is the rms voltage divided by the impedance. It is reasonable to use this function for measuring REN between 2 and 5 REN with the valid conversion of 1 REN equals approximately 1 F. To use capusingringing, compute the difference between the beginning and end average cycles. The same measurement int capusingringing40hz(void) can give a differential comparison for capacitance versus REN. 2.10. Cap Using Ringing While VOL 55 Set VOL = 60 320 Note time 806k C C End t B 2.9.2. CapUsingRinging int capusingringing(void) If a capacitor impairment is between TIP and RING, it can be measured by using a low level ringing signal while monitoring the ac current. The same measurement can be used for measuring large REN greater than 3. 1.25 10 C 6 6.405 10 11 z = ---------------------------------------------------------------------------------------- 2 2 f z 2 102400 where z = V rms ----------- I rms f = ringing frequency 000248 z 806320 1156 2 + 390625 REN = ------------------------------------------------------------------------------------------------------------ z 320 where = 2 f Rev. 0.1 9
Algorithm Flowchart Start Start Ringing Read DIAGAC Calculate capacitance/ren End Wait 1 second Accuracy: 20% Range: 300 nf 3 F TIP and RING voltages are stepped in 10 V increments while monitoring the opposite pole (RING or TIP). The voltage appearing on the opposite pole will be one third of the voltage on TIP or RING if no impairment is present. When a tip-to-ground or ring-to-ground impedance goes below 15 k, it is possible to get a more accurate measurement using the ILOOP rather than a voltage divider calculation. Between 5 and 15 k, the function uses a V/I measurement instead of a voltage division measurement. For the loop resistance, if there is an impairment on ring-to-ground, an inaccurate value will be obtained because of differences in the voltage division ratio. For this reason, there is both a tip open and a ring open version of these functions to measure loop resistance. 2.10.1. CapUsingRinging40Hz int capusingringing40hz (void) This is identical to capusingringing except it is done at 40 Hz. Using both the 40 Hz function and the 20 Hz function, one can easily distinguish a Ringer from a Capacitor. A capacitor measures to be about the same value ±20%. A ringer measures to be twice as large at 40 Hz than at 20 Hz. 2.10.2. RENtest Void RENtest (unsigned* ren). By monitoring the metallic loop current after a step voltage, it is possible to determine the number of REN on the line. Here, the maximum current after a shift in voltage is directly proportional to the number of REN. Accuracy: ±.5 REN Range: 1 5 REN 2.10.3. RTG/RRG/RTRtip open or /RTRringopen, void RTG(void), void RRG(void), void RTRtipopen(void), void RTRringopen(void) Using the 800 k resistor between the TIP and RING and the 400 k sense resistor to TIP and RING separately, it is possible to sense a high-impedance impairment. The GROUND START and REVERSE GROUND START linefeed states allow the Si322x to supply a voltage divider. By looking at VTIP and VRING voltages, it is possible to infer impairments to ground. 10 Rev. 0.1
2.11. Resistive Fault T V t V t r 800k R TR R V r 402k 402k R RG R TG ± 1.5 V ± 1.5 V GND Figure 10. Resistive Fault V r 800 R RG = ------------------------------------ 1000 V tr 2V r + 3 V t 800 R TG = --------------------------------------- 1000 V tr 2V r + 3 R TR (Tip open) = V tr 800 V ------------------------------- tr 2V r + 3 1000 V tr 800 R TR (Ring open) = --------------------------------------- V tr 2V t + 3 Accuracy: 10% Range 30 k 5 M Where V r = Ring Voltage V t = tip Voltage V tr = tip-ring Voltage 2.11.1. TipRingCurrentOverVoltageFwrd int tipringcurrentovervoltagefwrd(short currentarray ) The TipRingCurrentOverVoltageFwrd function measures dc current at five TIP-RING voltages. The TipRingCurrentOverVoltageFwrd function steps through the voltages slowly to avoid accidental telephone ringing. Only the last two are used for resistive impairment determination; these are the highest voltages and give the greatest resolution. It is possible to step through more voltage levels for greater resolution. To use the TipRingCurrentOverVoltageFwrd function, allocate an array of sixteen bit values that will contain the amount of current for 10, 20, 30, 40, and 50 V after the function is executed. 2.11.2. TipRingCurrentOverVoltageRev int tipringcurrentovervoltagerev(short currentarray ) The TipRingCurrentOverVoltageRev function is identical to the TipRingCurrentOverVoltageFwd function except that measurements are made in REVERSE ACTIVE instead of FORWARD ACTIVE. This function can be used to determine if a resistive impairment has a nonlinear or possibly a single direction resistance. The forward and reverse tests together can determine if the impairment might be a broken or unexpected equipment fault. To use the TipRingCurrentOverVoltageRev function allocate an array of sixteen bit values which will contain the amount of current for 10, 20, 30, 40, and 50 V after the function is executed. 2.11.3. RingToGroundCurrent int ringtogroundcurrent(short currents[ ]) // 0 to 50 V in 10 V increments The ringtogroundcurrent function uses the GROUND- START linefeed state in conjunction with the longitudinal current measurement to produce a low impedance to RING and a high impedance to TIP. The measurement is made over five voltages. The measurement can be reduced to two voltages without any risk of ringing a phone since the TIP is at high impedance. Current from TIP should be due to impairment and the sense resistor. This test can be used in conjunction with the onehundredktest to measure higher impedance impairments. Rev. 0.1 11
To use the ringtogroundcurrent function, allocate an array of 16-bit values which will contain the amount of current for 10, 20, 30, 40, and 50 V after the function is executed. 2.11.4. TipToGroundCurrent int tiptogroundcurrent(short currents[ ]) // 0 to 50 V in 10 V increments This measurement is identical to the RingToGround measurement, only the TIP is the source and the RING is the sense. The tiptogroundcurrent function uses the REVERSE GROUND START linefeed state in conjunction with the longitudinal current measurement to produce a low impedance to TIP and a high impedance to RING. The measurement is made over five voltages. The measurement can be reduced to two voltages without any risk of ringing a phone since RING is high impedance. Current from TIP should be due to impairment and the sense resistor. This test can be used in conjunction with the onehundredktest to measure higher impedance impairments. To use the tiptogroundcurrent function allocate an array of 16-bit values which will contain the amount of current for 10, 20, 30, 40, and 50 V after the function is executed. 2.11.5. FusePresent int fusepresent(short scratch[ ]) // 0 to 50 V in 5 V increments The FusePresent function can be used to identify the presence of a fuse and the presence of a phone. It is redundant to LowREN (which can be used to detect a phone) and to one onehundredktest (which can be used to detect a fuse). FusePresent is a freestanding alternative for measuring the presence of the TIP and RING fuses. If a fuse is missing, it is possible to use onehundredktest to determine which fuse is missing. To use the FusePresent function, the scratch array can be used to store samples of voltages from which a fuse can be determined to be present or absent. An average of these samples is used to determine if the fuse is present. 2.11.6. LogitudinalCurrentOverVoltageReverseActive void logitudinalcurrentovervoltagereverseactive(unsigned short currents[ ]) Longitudinal currents are monitored for groundstart and reverse ground individually by the RingToGroundCurrent function and the TiptoGroundCurrent function. There is the possible common mode short to ground, which the RingToGroundCurrent and the TiptoGroundCurrent functions would not measure well. To use the LogitudinalCurrentOverVoltageReverseActive supply, the currents array and the five currents measured at 10, 20, 30, 40, and 50 V will be returned. 2.12. Realtime Requirement Table 2 gives the approximate execution times for each of the tests. Each entry includes an approximate total real-time and maximum latency time. The latency time is the maximum time between when a sample is ready and when the sample needs to be read. In some cases, the accuracy is compromised proportionally to the amount of time by which the latency time is violated. This is the case for each of the measurements using the low-pass filters. 2.13. Calibrating GR 909 Tests All tests have constants that as a rule should be calibrated to the individual system designs. Accuracy of the tests is affected by operating voltages and the presence of other impedance in the circuit. The calibration can be easily performed against known loads. It is better to calibrate the constants to known REN, capacitance, and resistance than to rely on numbers supplied by Silicon Laboratories. Performing these calibrations using 0.2 REN, 1 REN, 5REN, 1 F, 5 F, 10 k, 30 k, and 200 k resistances to the TIP-GND, RING-GND, and TIP-RING is recommended. The result of these measurements will allow the tests to display samples. Adjust the scalars of the measurements to yield the most accurate results. 2.14. Verify Timing In addition to the calibration, it is up to the implementor to verify the accuracy and realtime requirement for each system. It is strongly recommended that the EVB be used as a standard of comparison. 12 Rev. 0.1
Table 2. Test Function Execution and Latency Times Function Name Function Purpose Time From Start to Completion milliseconds Latency Requirement milliseconds Feed Condition doreset Reset the Evaluation Board. 500 NONE RESET openvoltages tipringcurrentovervoltagefwrd tipringcurrentovervoltagerev ringtogroundcurrent tiptogroundcurrent REN test Measure the Open Circuit ac and dc voltages. Measure the Resistance in Forward Active linefeed condition. Measure the resistance in Reverse Active linefeed condition. Measure the resistance from Ring to Ground. Measure the resistance from Tip to Ground. Measure the REN Load for REN greater than 3 REN. 150 1.25 OPEN 1000 100 FORWARD ACTIVE 2500 100 REVERSE ACTIVE 2000 100 REVERSE GROUND- START 2000 100 FORWARD GROUND- START 1000 100 REVERSE ACTIVE LowREN Measure REN values less than 1 REN. 2000 10 FORWARD THEN OPEN linecap fusepresent logitudinalcurrentover- VoltageReverseAcitive capusingringing CapUsingRinging40Hz Measure longitudinal voltage over various reverse active levels. RTG/RRG/RTGringopen/RRGtipopen Measure the capacitance using limit cycle approach. Measure the assumed 800 k resistance indicating presents of the Tip/Ring fuses. Measure capacitance using 20 Hz 17 V rms Ringing signal. Measure capacitance using 20 Hz 8.5 V rms Ringing signal. Measure resistance greater than 100 k using 800 k resistance. Fuse can be inferred. 100 100 FORWARD ACTIVE 100 100 FORWARD GROUND- START 1500 NONE RINGING 1500 NONE RINGING 600 NONE RINGING 300 NONE REVERSE GROUND- START Rev. 0.1 13
Smart. Connected. Energy-Friendly Products Quality www.silabs.com/products www.silabs.com/quality Support and Community community.silabs.com Disclaimer Silicon Laboratories intends to provide customers with the latest, accurate, and in-depth documentation of all peripherals and modules available for system and software implementers using or intending to use the Silicon Laboratories products. Characterization data, available modules and peripherals, memory sizes and memory addresses refer to each specific device, and "Typical" parameters provided can and do vary in different applications. Application examples described herein are for illustrative purposes only. Silicon Laboratories reserves the right to make changes without further notice and limitation to product information, specifications, and descriptions herein, and does not give warranties as to the accuracy or completeness of the included information. Silicon Laboratories shall have no liability for the consequences of use of the information supplied herein. This document does not imply or express copyright licenses granted hereunder to design or fabricate any integrated circuits. The products must not be used within any Life Support System without the specific written consent of Silicon Laboratories. A "Life Support System" is any product or system intended to support or sustain life and/or health, which, if it fails, can be reasonably expected to result in significant personal injury or death. Silicon Laboratories products are generally not intended for military applications. Silicon Laboratories products shall under no circumstances be used in weapons of mass destruction including (but not limited to) nuclear, biological or chemical weapons, or missiles capable of delivering such weapons. Trademark Information Silicon Laboratories Inc., Silicon Laboratories, Silicon Labs, SiLabs and the Silicon Labs logo, CMEMS, EFM, EFM32, EFR, Energy Micro, Energy Micro logo and combinations thereof, "the world s most energy friendly microcontrollers", Ember, EZLink, EZMac, EZRadio, EZRadioPRO, DSPLL, ISOmodem, Precision32, ProSLIC, SiPHY, USBXpress and others are trademarks or registered trademarks of Silicon Laboratories Inc. ARM, CORTEX, Cortex-M3 and THUMB are trademarks or registered trademarks of ARM Holdings. Keil is a registered trademark of ARM Limited. All other products or brand names mentioned herein are trademarks of their respective holders. Silicon Laboratories Inc. 400 West Cesar Chavez Austin, TX 78701 USA http://www.silabs.com