This disclosure relates generally to electronic circuits, and in particular, but not exclusively to the calibration of an All-Digital Phase Locked Loop (ADPLL).
Phase-locked loops are used in many applications, including use in local oscillators of wireless transceivers (i.e., receivers and/or transmitters). In certain applications, such phase-locked loops are implemented with analog circuitry. However, as the operating speeds of digital circuits increase, it is becoming more feasible to implement at least portions of a phase-locked loop for traditionally analog applications using digital building blocks. These phase-locked loops are often referred to as All-Digital Phase Locked Loops (ADPLLs).
In operation, an ADPLL may be configured to receive a frequency signal (e.g., FREQ) that is representative of a desired output frequency of the ADPLL. When the ADPLL is locked, the phase, frequency, or both, of an output of the ADPLL is locked relative to the frequency signal. In certain wireless transceivers, the reference clock signal may be generated by a baseband processor, or the like.
In some applications, a modulator may be used with the ADPLL to produce an output with a variety of frequencies. The modulator may be used in some instances to enable finer tuning of the output frequency of the ADPLL, or in the case of a wireless transceiver, enable the transceiver to perform frequency modulation of digital data.
Modulation of an ADPLL relies on a calibrated feedforward path in order to enable fast modulation rates, while a slower feedback path of the ADPLL ensures accurate settling of the modulation. However, calibration of the feedforward path of the ADPLL may be time consuming, complicated, and error prone. For example, a transceiver for use in wireless communications may generate numerous frequencies due to the large number of communication channels, where each operating frequency may require a separate calibration. Furthermore, certain conventional ADPLLs may drift out of calibration during operation with temperature or other process-related conditional changes.
The following presents a simplified summary relating to one or more aspects and/or embodiments associated with the mechanisms disclosed herein for the model-based calibration of an All-Digital Phase Locked Loop (ADPLL). As such, the following summary should not be considered an extensive overview relating to all contemplated aspects and/or embodiments, nor should the following summary be regarded to identify key or critical elements relating to all contemplated aspects and/or embodiments or to delineate the scope associated with any particular aspect and/or embodiment. Accordingly, the following summary presents certain concepts relating to one or more aspects and/or embodiments relating to the mechanisms disclosed herein to calibrate an ADPLL in a simplified form to precede the detailed description presented below.
According to one aspect, a method of calibrating an All-Digital Phase Locked Loop (ADPLL) includes obtaining a model of the ADPLL and applying an input signal to both the ADPLL and to the model. The ADPLL generates an actual output of the ADPLL, while the model generates a model output. An error between the actual output of the ADPLL and the model output is then sensed. The method also includes generating a calibration value based on the error between the actual output of the ADPLL and the model output, and adjusting a feedforward gain of the ADPLL based on the calibration value.
According to another aspect, an apparatus includes an All-Digital Phase Locked Loop (ADPLL), a model of the ADPLL, and a calibration value generator. The ADPLL is configured to generate an actual output of the ADPLL in response to an input signal and the model is configured to generate a model output in response to the input signal. The calibration value generator is coupled to the model and to the ADPLL, where the calibration value generator is configured to: (i) sense an error between the actual output of the ADPLL and the model output, and (ii) generate a calibration value based on the error between the actual output of the ADPLL and the model output to adjust a feedforward gain of the ADPLL.
According to yet another aspect, an apparatus includes: (i) means for obtaining a model of an All-Digital Phase Locked Loop (ADPLL); (ii) means for applying an input signal to the ADPLL to generate an actual output of the ADPLL; (iii) means for applying the input signal to the model to generate a model output; (iv) means for sensing an error between the actual output of the ADPLL and the model output; (v) means for generating a calibration value based on the error between the actual output of the ADPLL and the model output; and (vi) means for adjusting a feedforward gain of the ADPLL based on the calibration value.
According to still another aspect, a non-transitory computer-readable medium includes program code stored thereon for calibrating an All-Digital Phase Locked Loop (ADPLL). The program code includes instructions to direct the apparatus to: (i) obtain a model of the ADPLL; (ii) apply an input signal to the ADPLL to generate an actual output of the ADPLL; (iii) apply the input signal to the model to generate a model output; (iv) sense an error between the actual output of the ADPLL and the model output; (v) generate a calibration value based on the error between the actual output of the ADPLL and the model output; and (vi) adjust a feedforward gain of the ADPLL based on the calibration value.
The accompanying drawings are presented to aid in the description of embodiments of the invention and are provided solely for illustration of the embodiments and not limitation thereof.
Various aspects are disclosed in the following description and related drawings directed to specific aspects of the invention. Alternate embodiments may be devised without departing from the scope of the invention. Additionally, well-known elements of the invention will not be described in detail or will be omitted so as not to obscure the relevant details of the invention.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. Likewise, the term “embodiments of the invention” does not require that all embodiments of the invention include the discussed feature, advantage or mode of operation.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of embodiments of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises”, “comprising,”, “includes” and/or “including”, when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Further, many embodiments are described in terms of sequences of actions to be performed by, for example, elements of a computing device. It will be recognized that various actions described herein can be performed by specific circuits (e.g., application specific integrated circuits (ASICs)), by program instructions being executed by one or more processors, or by a combination of both. Additionally, these sequence of actions described herein can be considered to be embodied entirely within any form of non-transitory computer readable storage medium having stored therein a corresponding set of computer instructions that upon execution would cause an associated processor to perform the functionality described herein. Thus, the various aspects of the invention may be embodied in a number of different forms, all of which have been contemplated to be within the scope of the claimed subject matter.
Also illustrated in
Accordingly, aspects of the present disclosure provide a method and apparatus for a model-based calibration of an ADPLL. As will be discussed in more detail below, aspects of the present disclosure may utilize an idealized model of the modulated ADPLL in order to dynamically generate a calibration value that adjusts a feedforward gain of the ADPLL to correct for variations that may occur in the feedforward path. In some examples, the model-based calibration of the ADPLL allows calibration at all times (e.g., as a background calibration), even while the ADPLL is transmitting data. Even still, in some aspects, the model-based calibration of the ADPLL may allow arbitrary selection of a loop bandwidth. For example, a low bandwidth may be selected (e.g., lower than dictated by the modulation), where the model-based calibration then provides for the correct modulation even with the lower bandwidth.
In one example, model 202 is an idealized mathematical model of the ADPLL 108. Model 202 may be implemented in hardware (e.g., application specific integrated circuit (ASIC), programmable gate array (PGA), discrete digital circuits, etc.) or in a combination of hardware and software (e.g., a software model executed by a corresponding processor). In certain aspects, the model 202 includes duplicates of one or more components used in the implementation of ADPLL 108. For example, model 202 may include an exact copy of the digital filter 124 included in ADPLL 108. That is, if digital filter 124 is implemented in ADPLL 108 as a software module then the same software module may be duplicated in the implementation of model 202. Similarly, if one or more components of the ADPLL 108 are implemented by way of a PGA, or a series of logic gates, a duplicate PGA or duplicate logic gates may be used to implement corresponding components within the model 202.
In operation, model 202 receives the same input signal 103 (i.e., digital data representative of an amount to deviate the output frequency of the actual output 205 (FDCO) of the ADPLL 108) as applied to the ADPLL 108 via modulator 104. In response to the input signal 103, model 202 generates a model output 203. The model output 203 represents an idealized output of the ADPLL 108 (e.g., based on a mathematical model of the ADPLL 108). The model output 203 is then provided to calibration value generator 204, which senses an error between the actual output 205 and the model output 203. In one example, the error is representative of a difference in frequency between the actual output 205 and the model output 203. In another example, the error is representative of a difference in phase between the actual output 205 and the model output 203. In yet another example, the error is representative of a difference in a combination of frequency and phase. The calibration value generator 204 then generates a calibration value 207, which is provided to modulator 104. As will be discussed in more detail below, the calibration value 207 may be dynamically determined to reduce or otherwise eliminate the sensed error between the model output 203 and the actual output 205.
In the illustrated example of
Furthermore, in some implementations, the gain of the feedforward path 132 may be data dependent. That is, the gain of the feedforward path 132 may depend, in part, on the logic states of the digital data D, represented by input signal 103. Accordingly, in some examples, the calibration value generator 204 may be further configured to receive the input signal 103, where the calibration value 207 is determined in part, based on the logic state of the digital data D. The calibration value generator 204 may adjust the determined calibration value 207 in response to the input signal 103, where the adjusted calibration value is then used to adjust the feedforward gain of the ADPLL 108. For example, calibration value generator 204 may be configured to generate a first calibration value in response to the digital data D being in a first logic state (e.g., logic “0”), where the first calibration value is output as calibration value 207 to adjust the feedforward gain of feedforward path 132 when the digital data is in the first logic state. If the digital data D is in a second logic state (e.g., logic “1”), a second (i.e., different) calibration value is output as the calibration value 207 to adjust the feedforward gain when the digital data is in the second logic state.
In some aspects, calibration value generator 204 may be configured to only generate a new calibration value 207 when a transition of the digital data D between logic states is detected. For example, calibration value generator 204 may be configured to detect a transition of the digital data D from a first logic state to a second logic state in response to the input signal 103. Upon detecting the transition, calibration value generator 204 generates a new calibration value 207 based on the sensed error between the model output 203 and the actual output 205. However, if no transition of the digital data D is detected (i.e., an absence of a transition is detected), then calibration value generator 204 may output a previously generated calibration value 207 (e.g., a calibration value determined in response to a previously sensed error between the actual output 205 and the model output 203). By way of example, the calibration value generator 204 may be configured to generate a first calibration value (i.e., calibration value 207) based at least on the model output 203 and the actual output 205 when the digital data D is in a first logic state (e.g., “0”). If the next bit of the digital data D is the same logic state (e.g., “0”) then no transition of the digital data D has occurred and the calibration value generator 204 may continue generating the previously determined first calibration value. If however, the next bit of the digital data D is a second logic state (e.g., “1”) then a transition of the digital data D has occurred and the calibration value generator 204 may generate a second calibration value that is based on the current outputs of model output 203 and actual output 205.
Thus, in some examples, the value of KFF may be dependent on the input signal 103 so the logic state (u) and the corresponding KFF can have many states (i.e., KFF=KFF(u)). That is, KFF(u)=adapt(q,u) where q is a set of parameters to be adapted and the adaptation of KFF may include the use of a multidimensional adaptation loop. Thus, in certain aspects, the adaptation of KFF may change since both the adapt function listed above and the parameters q can be changed.
What follows is an example illustrating a modification of the update function of the adaptation algorithm that includes updating KFF based on the whole range of logic states in (u) (i.e., logic states of input signal 103). In this example, the calibrated KFF is dependent on the logic state (u), but where only two logic states, u0 and u1, may be used for adaptation with one adaptation loop:
KFF(u)=f0(u)*KFF(u0)+f1(u)*KFF(u1)=function(KFF(u0),KFF(u1),f0,f1,u)
Here, a linear interpolation is performed between two calibrated states with weighting factors f0(u) and f1(u): f0(u)+f1(u)=1. One function here is f0(u)=1−a(u) and f1(u)=a(u), where a(u)=(u−u0)/(u1−u0) normalize the range of a to be between 0 and 1. The adaptation performed by calibration value generator 204 may provide an update of DKFF(u)=DKFF in terms of DKFF(u0) and DKFF(u1):
DKFF(u)=f0(u)*DKFF(u0)+f1(u)*DKFF(u1) EQ. 1
One example update is as follows:
DKFF(u0)=f0(u)*DKFF/(f0(u)*f0(u)+f1(u)*f1(u)) EQ. 2
DKFF(u1)=f1(u)*DKFF/(f0(u)*f0(u)+f1(u)*f1(u)) EQ. 3
The two calibrated states are updated as KFF(u0)=1+DKFF(u0) and KFF(u1)=1+DKFF(u1).
Thus, calibration value generator 204 may estimate and provide two KFF calibrated values (one for state u0, and another for state u1) and interpolate KFF to estimate the rest of the states KFF(u). Other examples may include a more advanced and complete adaptation loop that could produce an estimate of KFF(u) (e.g., if KFF(u) is not linear).
In operation, summer 502 is configured to sense an error between the model output and the FDCO output signal. The error output of summer 502 is then provided to gain block 504, which provides an amplified error signal to summers 506A and 506B. The output of summers 506A and 506B are then provided to integrators 508A and 508B, respectively, to generate a respective updated calibration value (e.g., DKFF(u0) and DKFF(u1). As shown in
The wireless transceiver 600 is illustrated as having distinct transmit and receive processing paths. Although
The antenna 622 can be shared by both transmit and receive processing paths.
The antenna 622 couples received wireless signals to transmit/receive switch 620 (also referred to as a duplexer) that can be configured to couple the receive signals from the antenna 622 to the remainder of the receive operating path while isolating the receive path from transmit signals. The receive output from the transmit/receive switch 620 is coupled to receive matching network 626 which is coupled to front end amplifier 628, which can be, for example, a low noise amplifier (LNA). The front end amplifier 628 typically operates to substantially govern the total receiver noise figure, and thus, is typically implemented as an LNA having 10-20 dB of gain. The output from the front end amplifier 628 is coupled to mixer 630 which is coupled to a low pass filter 632.
The low pass filter 632 operates to perform RF selection by eliminating or otherwise attenuating signals outside a desired receive RF operating band. The low pass filter 632 can, for example, contribute to adjacent channel rejection. The output from the low pass filter 632 can be coupled to an RF input of a frequency converter, here depicted as mixers 634 and 636. The second inputs to the mixers 634 and 636 are driven by divider 624, which is driven by a local oscillator signal that is generated by ADPLL 602. The ADPLL 602 may be substantially or wholly implemented within wireless transceiver 600.
The output from the low pass filters 638 and 640 can be baseband signals that are coupled to respective ADCs 642 and 644 that operate to generate a digital representation of the respective baseband signals. The digital baseband signals are coupled to be received at an input of the digital controller 610. In one example, the digital controller 610 is a baseband processor configured to further process the received digital baseband signals.
The ADPLL 602 may be configured to operate in conjunction with a first frequency reference (not shown) to generate one or more oscillator signals. The one or more oscillator signals can be used as a local oscillator for the received frequency translation operation via receive buffer 612 and/or for transmit operations via transmit buffer 614. As shown in
The receiver embodiment illustrated in
As shown in
The output from the transmit buffer 614 can be coupled to a transmit amplifier 616 that may alternatively be referred to as a power amplifier (PA). The transmit amplifier 616 can have a variable gain or a variable gain stage and can be configured to amplify the modulated second oscillator signal to a desired transmit power level. The output from the transmit amplifier 616 is coupled to a transmit input of the transmit/receive switch 620 where it is coupled to the antenna 622.
While internal components of wireless devices such as the wireless devices 700A and 700B can be embodied with different hardware configurations, a basic high-level configuration for internal hardware components is shown as platform 702 in
In one aspect, wireless communications by wireless devices 700A and 700B may be enabled by transceiver 706 based on different technologies, such as CDMA, W-CDMA, time division multiple access (TDMA), frequency division multiple access (FDMA), Orthogonal Frequency Division Multiplexing (OFDM), GSM, 2G, 3G, 4G, LTE, or other protocols that may be used in a wireless communications network or a data communications network. Voice transmission and/or data can be transmitted to the electronic devices from a RAN using a variety of networks and configurations. Accordingly, the illustrations provided herein are not intended to limit the embodiments of the invention and are merely to aid in the description of aspects of embodiments of the invention.
Accordingly, aspects of the present disclosure can include a wireless device (e.g., wireless device 700A, 700B, etc.) configured, and including the ability to perform the functions as described herein. For example, transceiver 706 may be implemented as wireless transceiver 600 of
Next, process block 804 includes applying an input signal to the ADPLL to generate an actual output of the ADPLL. By way of example,
Process block 806 includes applying the input signal to the model to generate a model output. Again, by way of example,
In a process block 808, a calibration value generator (e.g., 204) senses an error between the actual output of the ADPLL and the model output. Next, in process block 810, calibration value generator (e.g., 204) generates a calibration value (e.g., 207) based on the error between the actual output of the ADPLL and the model output. In a process block 812, the feedforward gain of the ADPLL is adjusted based on the calibration value. For example, as shown in
A module 902 for obtaining a model of an ADPLL may correspond at least in some aspects to, for example, model 202 of
The functionality of the modules 902-912 may be implemented in various ways consistent with the teachings herein. In some designs, the functionality of modules 902-912 may be implemented as one or more electrical components. In some designs, the functionality of modules 902-912 may be implemented as a processing system including one or more processor components. In some designs, the functionality of modules 902-912 may be implemented using, for example, at least a portion of one or more integrated circuits (e.g., an ASIC). As discussed herein, an integrated circuit may include a processor, software, other related components, or some combination thereof. Thus, the functionality of different modules may be implemented, for example, as different subsets of an integrated circuit, as different subsets of a set of software modules, or a combination thereof. Also, it will be appreciated that a given subset (e.g., of an integrated circuit and/or of a set of software modules) may provide at least a portion of the functionality for more than one module.
In addition, the components and functions represented by
Further, those of skill in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or a combination of computer software and electronic hardware. To clearly illustrate this interchangeability of hardware and hardware-software combinations, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The methods, sequences and/or algorithms described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
Accordingly, an embodiment of the invention can include a non-transitory computer readable media embodying a method for the model-based calibration of an ADPLL. Accordingly, the invention is not limited to illustrated examples and any means for performing the functionality described herein are included in embodiments of the invention.
While the foregoing disclosure shows illustrative embodiments of the invention, it should be noted that various changes and modifications could be made herein without departing from the scope of the invention as defined by the appended claims. The functions, steps and/or actions of the method claims in accordance with the embodiments of the invention described herein need not be performed in any particular order. Furthermore, although elements of the invention may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.