• No results found

AN75. Si322X DUAL PROSLIC DEMO PBX AND GR 909 LOOP TESTING SOFTWARE GUIDE. 1. Introduction

N/A
N/A
Protected

Academic year: 2021

Share "AN75. Si322X DUAL PROSLIC DEMO PBX AND GR 909 LOOP TESTING SOFTWARE GUIDE. 1. Introduction"

Copied!
14
0
0

Loading.... (view fulltext now)

Full text

(1)

AN75

Si322

X

D

UAL

P

RO

SLIC D

EMO

PBX

AND

GR 909 L

OOP

T

ESTING

S

OFTWARE

G

UIDE

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.

(2)

AN75

Figure 1. Software Block Diagram

Table 1. SLIC.c/SLIC.h Function

unsigned char

dualProSLIC_channelInit(void) Initializes and calibrates the ProSLIC. This function is nec-essary 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 per-forms the proper calibration routine. Refer to “AN58: Si3220/Si3225 Programmer’s Guide” for the correct initial-ization procedure.

void activateRinging(void); void goActive(void); void goOpen(void); void goOHT(void);

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).

unsigned char

getLoopSta-tus(void); Returns value of the loop closure bit in LCRRTP(Register 9). Returns 1 if off-hook and 0 if on-hook. unsigned char

get_DTMFdigit(void); Returns DTMF digit value in TONDTMF (Register 69). void disableOscillators(); Turns off oscillators. Stops generated tones.

void breakConnection( unsigned char c1, unsigned char c2); void makeConnection( unsigned char c1, unsigned char c2);

Makes and Breaks a direct PCM connection between 2 channels.

void waitForTheChannel(void) Checks MSTRSTAT (register 3) to ensure the ProSLIC is up and running.

void genTone(tone_struct *tone) Generates a tone with the internal oscillator.

void initilaize_ringing (void) Initializes ringing registers before ringing is activated. void enable_PulseMetering(void) Initializes pulse metering registers.

Main .C PBX Demo.C ISR .C SLIC .C GR909.C Caller .C dual_I20.C I/O Port SPI Hardware Si3220 HARDWARE SOFTWARE Interface drivers SlIC drivers Demo .C Data .C

(3)

AN75

Figure 2. State Machine

On hook

On Hook

First Ring

Congestion

Connecting

Ringback

Digit

Decoding

DTMF

Dialtone

Off hook

Dialpulse

Busy

Caller ID

Ringing

(4)

AN75

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-TIP-GND ac voltage greater than 50 Vrms or dc voltage greater than 135 VDC 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-TIP-GND ac voltage greater than

10 VRING 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.

Figure 3. OPEN State DC Impedance

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 VOC (open circuit voltage) RAM register. VOC 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

402 k 800 k 402 k TIP RING GND 1.5 V 1.5 V – + – +

(5)

AN75

charge a capacitive load.

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.

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 Vrms 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 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.

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.

Figure 8. REVERSE GROUND START State DC

Impedance

800 k 320  Vcm RING TIP Vcm+Voc GND 320  800 k 402 k RING TIP Voc+Vcm GND – + 1.5 800 k 320  RING TIP AC AC Z Ringer Load GND 800 k 320  Vcm+Voc RING TIP Vcm GND 403 k 800 k 320  Voc + Vcm RING TIP GND 1.5 V– +

(6)

AN75

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 pass filter. The low-pass filter architecture is shown in Figure 9.

Figure 9. Low-Pass Filter Architecture

This implements a simple first order IIR filter with the following transfer function:

Therefore, the low-pass pole frequency is approximately

Where Fs = 800 Hz.

The low-pass filter coefficient is programmed by

where DIAGxCCO refers to the DIAGACCO and DIAGDCCO registers.

For example:

 DIAGxCC0 = 4096 = 0x4000 => N = 1 => the low-pass 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 ring-gnd. 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

Measure-ment

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 sub-ringing threshold signal generation/measurement.

2.6.1. Using Single-Slope Conversion

The Si322x is able to charge a capacitive line load to VOC 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.

1/N (N-1)/N Z-1 + H z  1 N ----1 N ----1--- zN –1 ---= Fp = 2 N 1---Fs DIAGxCCO = 4096---Ndec

(7)

AN75

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 Genera-tion/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 Vrms 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 Vrms or >135 VDC 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 Vrms or dc greater than 6 VDC. 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 interpo-late.

(8)

AN75

2.8. Open Voltage

An algorithm flow chart follows:

AC voltages can be found by subtracting the average dc value from each sample voltage.

VX = Voltage under consideration

Vavgdc = Average dc voltage from the above algorithm

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 VLOOP. 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:

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.

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

ACvoltage Vx–Vavgdc2 N 0= N

= t = C B+ C = t B---–

(9)

AN75

2.9.1. Algorithm Flowchart

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.

The absolute value of TIP and RING current is averaged over a one second period of 17 Vrms 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

where Start Note time Set VOL = 55 While VOL 55 Note time End

B

t

C

 Loop = 50 Set VOL = 60 While VOL 60

320

806k

C

C 1.25 10 –6 6.405 10 11– z2 2  f z2102400 ---= z Vrms Irms ---= f = ringing frequency REN 000248 z 806320 –  11562+390625 · – z 320–  ---where  2 =  f =

(10)

AN75

Algorithm Flowchart

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.

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.

Accuracy: 20%

Start

Start Ringing

Read DIAGAC

Calculate

capacitance/REN

End

Range: 300 nF–3 F

Wait 1 second

(11)

AN75

2.11. Resistive Fault

Figure 10. Resistive Fault

Accuracy: 10% Range 30 k – 5 M Where Vr= Ring Voltage Vt= tip Voltage

Vtr= 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 non-linear 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. 800k Vt Vr Vt r 402k

±

GND 1.5 V 402k

±

1.5 V T R RTR RRG RTG RRG VVr800 tr–2Vr+3   --- 1000 = RTG VVt800 tr–2Vr+3   --- 1000 = RTR(Tip open) VVtr800 tr–2Vr+3 --- 1000 = RTR(Ring open) V–Vtr800 tr  –2Vt+3 ---=

(12)

AN75

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. LogitudinalCurrentOverVoltageReverseAc-tive 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, 5 REN, 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.

(13)

AN75

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 Measure the Open Circuit ac and

dc voltages. 150 1.25 OPEN

tipRingCurrentOverVolt-ageFwrd Measure the Resistance in For-ward Active linefeed condition. 1000 100 FORWARD ACTIVE

tipRingCurrentOverVolt-ageRev Measure the resistance in Reverse Active linefeed condi-tion.

2500 100 REVERSE

ACTIVE ringToGroundCurrent Measure the resistance from

Ring to Ground. 2000 100 REVERSE

GROUND-START tipToGroundCurrent Measure the resistance from Tip

to Ground. 2000 100 FORWARD

GROUND-START REN test Measure the REN Load for REN

greater than 3 REN. 1000 100 REVERSE ACTIVE

LowREN Measure REN values less than 1

REN. 2000 10 THEN OPENFORWARD

lineCap Measure the capacitance using

limit cycle approach. 100 100 FORWARD ACTIVE

fusePresent Measure the assumed 800 k resistance indicating presents of the Tip/Ring fuses.

100 100 FORWARD

GROUND-START

logitudinalCurrentOver-VoltageReverseAcitive Measure longitudinal voltage over various reverse active lev-els.

1500 NONE RINGING

capUsingRinging Measure capacitance using

20 Hz 17 Vrms Ringing signal. 1500 NONE RINGING CapUsingRinging40Hz Measure capacitance using

20 Hz 8.5 Vrms Ringing signal. 600 NONE RINGING

RTG/RRG/RTGrin-gopen/RRGtipopen Measure resistance greater than 100 k using 800 k resistance. Fuse can be inferred.

300 NONE REVERSE

GROUND-START

(14)

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

Smart. Connected. Energy-Friendly

Products

References

Related documents