Patent Publication Number: US-6215990-B1

Title: Method and apparatus for minimizing initial frequency errors during transceiver power up

Description:
BACKGROUND OF THE INVENTION 
     1. Technical Field of the Invention 
     The present invention relates to the minimization of frequency errors during power up of a transceiver unit, and more particularly, to a method for minimizing frequency errors due to the effects of temperature differences on a voltage controlled, temperature compensated crystal oscillator. 
     2. Description of Related Art 
     The frequency at which a transceiver unit, such as a cellular telephone initially operates during power up is different from the final frequency that the unit operates at once the unit is locked onto a control channel frequency. The further the initial operating frequency of a cellular telephone is from the final frequency of the control channel, the greater the likelihood that the phone may never lock onto the control frequency or the greater amount of time is required to accomplish this goal. As the initial frequency error increases, the cellular telephone&#39;s ability to acquire synchronization with the digital control channel (DCCH) decreases. 
     The factor most greatly affecting the initial frequency error is the initial frequency signal produced by a voltage controlled, temperature compensated crystal oscillator (VCTCXO) within the cellular telephone. Most radio products, such as a cellular telephone, use a modular VCTCXO in which an analog control network compensates for frequency errors caused by variances in the temperature of the crystal oscillator. The analog circuit keeps the VCTCXO frequency within a specified ppm error over a variety of temperatures. The control voltage of the VCTCXO is used to calibrate the device at room temperature and for automatic frequency control (AFC). The initial control voltage value is stored and applied to the VCTCXO at system power up. An AFC algorithm based upon received frequency error reports is used to lock onto the digital control channel. 
     Due to the high cost of modular VCTCXO products, manufacturers are increasingly producing radios including discrete VCTCXOs with temperature compensation tables. For discrete circuits, the maximum expected frequency error relies upon the specifications of the crystal. The operating characteristics of the crystal can be characterized over various temperature ranges, and multiple temperature tables generated to improve the frequency performance at each particular temperature range. However, the use of a plurality of temperature tables greatly increases the cost of the VCTCXO. The discrete VCTCXO works similarly to the modular VCTCXO. The difference arises in the method of temperature compensation. A discrete VCTCXO stores a hex temperature compensation value that is added or subtracted from a factory calibrated, hex control voltage value. For each temperature value detected by an associated thermistor network, there is an associated hex temperature compensation value stored in the temperature table. Thus, for a given temperature, the microprocessor generates the initial control voltage indicated by the factory calibration value plus a temperature compensation value. 
     Thus, the need has arisen for a means for improving compensations for frequency drift caused by temperature changes within a cellular telephone that is less complex and more efficient than existing systems. 
     SUMMARY OF THE INVENTION 
     The present invention overcomes the foregoing problems with an improved method and apparatus for minimizing initial frequency errors in a voltage controlled temperature compensated crystal oscillator (VCTCXO). Coupled with the crystal oscillator is a digital-to-analoged controller generating a voltage signal to the crystal oscillator in response to an input voltage control signal received from a processing unit. A thermistor network detects the temperature of the crystal oscillator and provides a temperature signal to the processing unit. 
     The processing unit in response to the temperature signal and input from a default table containing default voltage control values for each of a plurality of temperatures and a compensation table including a plurality of updatable compensation values generates an input voltage control value. 
     In response to the detected temperature signal and the associated values from the default and compensation tables, the processor calculates an error in the presently applied control voltage signal. From the calculated error a compensation value necessary to overcome the error in the applied controlled voltage value is determined. Once the compensation value is determined a number of tests are performed to assure that the value is not too far from a set of predetermined limits in an attempt to assure the compensation value is not changed due to a non-standard base station. Upon passing the tests the compensation value within the compensation table at the detected temperature may be updated using the determined compensation value. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a more complete understanding of the present invention, reference is made to the following detailed description taken in conjunction with the accompanying drawings wherein: 
     FIG. 1 is a block diagram of an improved control system for a voltage controlled, temperature compensated crystal oscillator (VCTCXO); 
     FIG. 2 is a flow diagram of an algorithm for updating a temperature compensation table associated with a VCTCXO; and 
     FIG. 3 is a plot of maximum error due to crystal specification tolerance and the allowed update limits for maximum temperature segments. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring now to the Drawings, and more particularly to FIG. 1, there is illustrated a block diagram of a control system for an associated voltage controlled, temperature compensated crystal oscillator (VCTCXO)  10 . The VCTCXO  10  generates an output frequency  15  in response to an input control voltage  20  provided by a digital-to-analog converter (DAC)  25 . The DAC  25  generates the control voltage  20  in response to an input hexadecimal control voltage value  30  generated in accordance with a method which will be more fully discussed in a moment. The hexadecimal control voltage value  30  is generated by a microprocessor  35  associated with the VCTCXO  10  in response to a number of inputs from tables stored within either a read-only-memory (ROM)  40 , nonvolatile memory  45  or volatile memory  50 . 
     These tables include a default temperature table  55  (DEFAULT_TBL) stored in ROM  40 . The DEFAULT_TBL  55  comprises a constant table that may not be updated at various temperatures. A temperature compensation table  60  (USED_TBL) is stored in non-volatile memory  45 . The USED_TBL  60  may be changed or updated over the life of an associated cellular telephone unit. The USED_TBL  60  comprises updatable compensation values, which are the same as DEFAULT_TBL values initially, used to generate the hexadecimal control voltage value  30  generated by the microprocessor  35 . The USED_TBL  60  is continuously updatable based upon temperature information received during operation of the VCTCXO  10 . 
     Temperature data indicating the temperature of the VCTCXO  10  is generated via a thermistor network  65 . The temperature measured by the thermistor network  65  enables generation of a temperature voltage output  70  which is converted to a hexadecimal temperature value  80  via an analog-to-digital converter  75 . The hexadecimal temperature value  80  is used by the microprocessor  35  to select the proper values from the DEFAULT_TBL  55  and USED_TBL  60 . 
     Referring now to FIG. 2, there is illustrated the process for updating values within the USED_TBL  60 . When a cellular telephone is turned on at step  100 , the microprocessor  35  initially generates a hexadecimal control voltage value  30  according to a factory calibration offset for 25° C. (FAC_CAL) and a temperature compensation hex value from the temperature compensation table (USED_TBL)  60  added or subtracted from FAC_CAL. The value selected from the temperature compensation table  60  corresponds to a 25° C. temperature of the VCTCXO  10 . The first step in updating USED TBL  60  involves confirming that four separate criteria are met prior to any updating of the temperature compensation table  60 . This confirmation process occurs while the cellular telephone is camping on a digital control channel (DCCH) or a digital traffic channel (DTC). The criteria include: the cellular telephone must be in a digital mode; the cellular telephone must be locked on to a DCCH or DTC and be in an automatic frequency control maintenance mode; the cellular telephone must not presently be scanning; and the RSSI level of the cellular telephone must be greater than −95 dBm. Inquiry step  110  determines if these four initial criteria have been met. If not, control passes back to the beginning of the flow diagram. 
     If the initial criteria have been met, inquiry step  115  determines whether or not the cellular telephone is presently camped on a digital control channel. If the phone is not camped on a control channel, inquiry step  120  determines whether the cellular telephone is camped on a digital traffic channel. If the phone is not camped on a traffic channel, the process returns back to the beginning of the flow diagram. If inquiry step  120  determines that the cellular telephone is camped on a digital traffic channel, a matrix relating the cellular telephone temperature (TEMP_SENSE) to the hexadecimal control voltage value  30  (AFC_DAC) must be generated at step  125 . The matrix is stored in either volatile memory  50  or non-volatile memory  45 . If the matrix is stored in volatile memory  50 , the generated table will be lost once the cellular telephone unit is turned off. However, if the matrix is stored in non-volatile memory  45 , an additional variable must be set that indicates the status of the matrix (i.e., Has the matrix been used to update the temperature compensation table  60  previously?). 
     For each position within the matrix at step  130 , or if inquiry step  115  determines the telephone is camped on a digital control channel, inquiry step  135  monitors for a change in the cellular telephone temperature (TEMP_SENSE). Once a change in temperature is detected, the factory calibration offset (FAC_CAL) is subtracted from the hexadecimal control voltage value  30  (AFC_DAC) at step  140 . This process removes the factory calibration from the hexadecimal control voltage value  30  and results in a value indicating the error from absolute accuracy of the crystal oscillator  10  due to temperature and base station frequency errors. This new value is denoted as AFC_DAC 2 . 
     The present temperature of the cellular telephone unit is determined at step  145  from the thermistor network  65 . AFC_DAC 2  is compared with the USED_TBL and the DEFAULT_TBL values at the detected temperature at step  150 . Inquiry step  155  determines whether the addition of AFC_DAC 2  to the associated value of the USED_TBL  60  would cause the resulting value to pass through a zero crossing with respect to the DEFAULT_TBL  55  value at the detected temperature. Zero crossing refers to the value of the DEFAULT_TBL  55  value as zero. Thus, if the DEFAULT_TBL  55  value were, for example  3 , and the associated value in the USED_TBL changed from  4  to one, a zero crossing would occur. 
     When inquiry step  155  determines that a zero crossing condition occurs, the value associated with the present temperature in the USED_TBL  60  is updated to the value of the default temperature table (DEFAULT_TBL)  55  at the presently detected temperature at step  160 . If no zero crossing exists, the AFC_DAC 2  value is subtracted from the value associated with the present temperature within the USED_TBL  60  at step  165 . The results of this subtraction are analyzed at inquiry step  170  to determine if the difference is less than or equal to 0.5 ppm. If so, the improvement gained from an update to the USED_TBL is deemed to be too minimal, and no update is performed at step  175 . 
     The 0.5 ppm limit is used to minimize updates. If the initial guess is within 0.5 ppm the guess is close enough. If the difference is greater than 0.5 ppm the AFC_DAC 2  is subtracted from the associated temperature value of the DEFAULT_TBL  55  at step  180 . Inquiry step  185  then analyzes the difference to determine if the difference is greater than or equal to a predetermined limit for the presently detected temperature range at inquiry step  185 . The predetermined limit for selected temperature ranges is calculated from certain parameters associated with the VCTCXO  10 . The maximum expected frequency error of the VCTCXO  10  over a particular temperature range are known and associated with the VCTCXO  10 . Additionally, a control loop gain (K v  in HZ/V) is also known. Using the control voltage loop gain, a change in ppm per control DAC step can be determined. Once the change in ppm per control DAC step is known, the predetermined limit can be set to the amount of steps the temperature compensation table values are allowed to change from the default temperature compensation table values. This limit prevents non-compliant base stations from pulling the VCTCXO  10  too far from the desired frequency. The predetermined limit is determined by examining the maximum and minimum expected errors due to the crystal parameters over a selected temperature. 
     A cellular telephone&#39;s operating temperature range may be divided into a plurality of temperature segments each with varying limits associated therewith. This enables optimization of the update algorithm&#39;s performance by developing different limits for each temperature segment. The plot of FIG. 3 provides an example of maximum error due to crystal specification tolerances and the allowed update limits for various temperature segments. 
     If the difference is greater than the maximum limit for the selected temperature range determined at inquiry step  185 , the value for the temperature compensation table  60  is updated only to the maximum possible value. If the temperature difference of the update is less than the maximum limit, a direct write process is performed at step  200  where the AFC_DAC 2  to value is inserted into the USED_TBL at the detected temperature. Step  205  continues with the next temperature value in the matrix or waits for an additional temperature change before returning to step  135 . 
     Although a preferred embodiment of the method and apparatus of the present invention has been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it is understood that the invention is not limited to the embodiment disclosed, but is capable of numerous rearrangements, modifications, and substitutions without departing from the spirit of the invention as set forth and defined by the following claims.