Calibrating a high-speed clock signal generated using a processor internal to the electronic authentication device without using a crystal oscillator

A method is used in calibrating an internal clock generator. An electronic device is instructed to output a high-speed clock signal which is communicated to an external calibration system. The high-speed clock signal is measured using measurement equipment associated with the external calibration system. One or more calibration values based on the measured clock signal value are calculated. The calculated calibration values are communicated to the electronic device. The electronic device is instructed to generate a calibrated clock signal by applying the one or more calibration values to an internally generated clock signal.

BACKGROUND

1. Technical Field

This application relates to calibrating an internal clock generator.

2. Description of Related Art

Various electronic devices require a more or less exact and reliable clock signal. Such clock signals are typically generated by various types of oscillators, which deliver an alternating current (AC) signal on a fixed or tunable frequency. There are certain applications which require an accurate reference frequency. Electronic paper display (EPD) driver and authentication tokes are but two of many such applications. In the case of EPDs, a typical requirement for an EPD driver is a precise 32.768K Hz clock.

Moreover, an increasing number of devices are designed to be operated by battery. These devices may be required to operate for a relatively long time, in some instances for one or more years. Examples of such devices include authentication tokens employing displays such as an LED or electronic paper display. In order to increase battery life, such devices are designed for reduced power consumption.

It is known in the art that high frequency crystal oscillators are generally much more accurate than resistor capacitor (RC) oscillators or internal clock signals generated by semiconductor devices such as a microprocessor. However, high frequency crystal oscillators are more costly, consume additional physical space, and have higher power consumption. For applications with extreme physical restrictions, it is sometimes impossible to include an external quartz crystal due to stringent space restrictions. RC oscillators available in semiconductor devices often have a high variation such that they don't provide the necessary precision.

SUMMARY OF THE INVENTION

A method is used in calibrating an internal clock generator. An electronic device is instructed to output a high-speed clock signal which is communicated to an external calibration system. The high-speed clock signal is measured using measurement equipment associated with the external calibration system. One or more calibration values based on the measured clock signal value are calculated. The calculated calibration values are communicated to the electronic device. The electronic device is instructed to generate a calibrated clock signal by applying the one or more calibration values to an internally generated clock signal.

DETAILED DESCRIPTION OF EMBODIMENT(S)

Some Electronic Paper Display (EPD) drivers and other display drivers require a stable and accurate 32.768K Hertz frequency to reliably generate visible characters on Electronic Paper Displays. Due to packaging restrictions of some applications, it may be physically impossible to include an external quartz crystal to provide the require frequency. Ordinarily, a microprocessor chip would include a high speed RC circuit that generates a high-speed frequency used for instruction timing. From this frequency it is possible to divide the frequency via firmware to arrive at the 32.768K Hertz frequency; however, the RC circuit network typically varies across parts due to process variations. In fact, some vendors specify that the frequency of an RC circuit can vary by as much as +/−25%. This variance would cause the target 32.768K Hz frequency to vary greatly, thus making the EPD inoperable.

The techniques described herein may be applied to a number of applications that require a precise clock signal, such as authentication tokes. Additional details regarding authentication tokens may be found in U.S. Pat. No. 7,973,607 B1, entitled “RTC CIRCUIT WITH TIME VALUE ADJUSTMENT,” issued on Jul. 5, 2011 and assigned to EMC Corporation of Hopkinton, Mass., which is hereby incorporated by reference in its entirety.

Referring now toFIG. 1, shown is an example of an embodiment of a technique for calibrating an internal high-speed clock generator. The calibration system includes a processor105, couple to electronic paper display (EPD) driver110. The processor105may also be coupled to an external programming/calibration station115via, for example, a general purpose I/O pin. The processor105and the external programming/calibration station115be also be coupled via a communications interface (COMM I/F) comprising N lines (where N may be one or more lines) and may use any suitable communications protocol. The external programming/calibration station115may be coupled to the processor105during, for example, one or more steps of the manufacturing process. The EPD driver110may be coupled to a display, such as an electronic paper display. This and other example embodiments presented herein utilize an electronic paper display as an example application for which techniques describe herein may be used to generate the precise clock such an application requires. However, the techniques described herein should not be construed as being limited to these applications and the techniques are equally applicable to various other applications (e.g., authentication tokens) that require precise internally generated clocks.

In this example, the display120may require a precise 32.768 KHz clock signal to successfully present characters on the display120. To generate such a calibrated clock signal, the processor105may be instructed to generate and output a high-speed clock signal on a general purpose input/output (I/O) pin or other applicable output resource. For example, the processor can be instructed to generate a 4.0 MHz reference signal. Although a processor is presented as generating the high-speed clock signal, one or more other electronic devices may be implemented in a similar manner.

The high-speed clock signal (also referred to herein as “high-speed reference clock signal”) may be communicated to the externally located programming/calibration station115via, for example, a general purpose I/O pin. The programming/calibration station115may be configured to precisely measure the signal using appropriate measurement equipment (not shown) such as a frequency counter or other equivalently precise measurement equipment.

The measured result(s) may be compared with the signal's programmed value to determine the difference or error. This result can be used to calculate one or more calibration values. These calculations may be performed at the programming/calibration station115and subsequently communicated to the processor via the communications interface in a variety of forms, such as an absolute value in hertz, counter value, time (e.g., nanoseconds), and the like. Alternatively, or in addition, divisor value may be calculated such that the value may be used by the processor115to generate the intended output signal. For example, if the 4.0 MHz high-speed clock signal was measured to be 3.997696 MHZ, a divisor of 122 (i.e., 4.0 MHz/3.997696 MHz) may be calculated such that measured signal high-speed signal internal to the processor may be divided by 122 to generate a precise 32.768 KHz clock signal. Other programmed and divisor values may be similarly utilized.

Alternatively, in this and other example embodiments described herein, a metric associated with the measure clock signal value may be communicated back to the processor105. The processor may then use the metric to perform the aforementioned calculations using internal math functions, an internal or external math co-processor, or other such calculation engine (not shown). In other alternative example embodiments, the calibration techniques described herein may be performed while varying one or more other operating or environmental parameters, such as temperature, voltage, current, time, humidity, atmospheric pressure, vibration, electromagnetic interference (EMI), and radiation. This list is meant illustrate a number of examples but is not exhaustive.

Thus, the processor may generate an internal high-speed clock signal that was previously measured and use the calculated calibration factor to generate an accurate 32.768 KHz output signal that may be communicated to the EPD driver110. The EPD driver110may then communicate this precise clock signal to drive the display120in a reliable manner.

Conventional methods are not capable of creating a sufficiently precise clock signal because of the aforementioned semiconductor process related variations. That is, RC circuit networks typically vary from part-to-part by as much as +/−25%. Thus, a 4 MHz clock signal may be as low as 3.0 MHz or as high as 5.0 MHz. For example, the intended signal, when dividing by 122, could be as low as 24.590 KHz or as high as 40.984 KHz. Such a large variation would be far too imprecise to reliably drive a display.

Referring now toFIG. 2, shown is an alternative example embodiment of a technique for calibrating an internal high-speed clock generator. In this example, the system includes a processor205that includes an integrated electronic paper display (EPD) driver210. The processor205may also be coupled to an external programming/calibration station215via, for example, a general purpose I/O pin. The processor205and the external programming/calibration station215be also be coupled via a communications interface (COMM I/F) comprising N lines (N may be one or more lines) and may use any suitable communications protocol. The external programming/calibration station215may be coupled to the processor205during, for example, one or more steps of the manufacturing process. The external programming/calibration station215may be coupled to the processor205during, for example, one or more steps of the manufacturing process. The EPD driver210may be coupled to a display, such as an electronic paper display.

In this example, the display220may similarly require a precise 32.768 KHz clock signal to successfully present characters on the display220. To generate such a calibrated clock signal, the processor205may be instructed to generate and output a high-speed clock signal on a general purpose input/output (I/O) pin or other applicable output resource. For example, the processor205can be instructed to generate a 4.0 MHz reference signal.

The high-speed clock signal may be communicated to the externally located programming/calibration station215via, for example, a general purpose I/O pin. In this example, during the calibration process, the reference clock signal may be routed through the EPD driver210in a by-pass mode or, alternatively, may be routed out a different general purpose I/O pin (not shown) to bypass the EPD driver210altogether. The programming/calibration station215may be configured to precisely measure the signal using appropriate measurement equipment (not shown) such as a frequency counter or other equivalently precise measurement equipment.

The measured result(s) may be compared with the signal's programmed value to determine the difference or error. This result can be used to calculate one or more calibration values. These calculations may be performed at the programming/calibration station215and subsequently communicated to the processor via the communications interface in a variety of forms, such as an absolute value in hertz, counter value, time (e.g., nanoseconds), and the like. Alternatively, or in addition, divisor value may be calculated such that the value may be used by the processor215to generate the intended output signal in a manner similar to that as described above with reference toFIG. 2.

Alternatively, in this and other example embodiments described herein, a metric associated with the measure clock signal value may be communicated back to the processor205. The processor205may then use the metric to perform the aforementioned calculations using internal math functions, an internal or external math co-processor, or other such calculation engine (not shown).

Referring now toFIG. 3, shown is another alternative example embodiment of a technique for calibrating an internal high-speed clock generator. In this embodiment, the calibration system includes a processor305, couple to electronic paper display (EPD) driver310. However, in this example, the processor305is wireless coupled to an external programming/calibration station315. Communication between the processor305and the programming/calibration station315may employ any suitable wireless protocol known in the art as is customary for such situations. For example, radio frequency (RF), infrared, sonar or other wireless technique may be utilized individually or in combination. Alternatively, both the processor305and the programming/calibration station315may be connected using both wireless and wired communication protocols and environments.

The external programming/calibration station315may be wirelessly coupled to the processor305during, for example, a calibration step as part of the manufacturing and/or maintenance process. The EPD driver310may be directly or indirectly coupled to a display, such as an electronic paper display.

In this example, the display320may similarly require a precise 32.768 KHz clock signal to successfully present characters on the display320. To generate such a calibrated clock signal, the processor305may be instructed to generate and wirelessly output a high-speed clock signal on a wireless general purpose input/output (I/O) pin or other applicable wireless output resource. For example, the processor can be instructed to generate a 4.0 MHz reference clock signal. Although a processor is presented as generating the high-speed clock signal, one or more other electronic devices employing wireless transmission techniques may be implemented in a similar manner.

The 4.0 MHz reference clock signal may be wirelessly communicated to the externally located programming/calibration station315. Upon receiving the wirelessly transmitted high-speed reference clock signal, the programming/calibration station315may be configured to precisely measure the signal using appropriate measurement equipment (not shown) such as a frequency counter or other equivalently precise measurement equipment.

The measured result may be compared with the signal's programmed value to determine the difference or error. This result can be used to calculate one or more calibration values. These calculations may be performed at the programming/calibration station315and wirelessly communicated back to the processor in a variety of forms, such as an absolute value in hertz, counter value, time (e.g., nanoseconds), and the like. Alternatively, or in addition, divisor value may be calculated and wireless transmitted such that the value may be used by the processor315to generate the intended output signal.

Thus, the processor may generate an internal high-speed clock signal that was previously measured and use the calculated calibration factor to generate an accurate 32.768 KHz output signal that may be communicated to the EPD driver310. The EPD driver310may then communicate this precise clock signal to drive the display320in a reliable manner.

Referring now toFIG. 4, shown is yet another alternative example embodiment of a technique for calibrating an internal high-speed clock generator. In this example, the system includes a processor405that includes an integrated electronic paper display (EPD) driver410. In this example, the processor405is in wireless communication with an external programming/calibration station415. Similar to that described above with referent toFIG. 3, communication between the processor405and the programming/calibration station415may employ any suitable wireless protocol and techniques known in the art. Alternatively, the processor405, EPD driver410, and the programming/calibration station415may be connected using both wireless and wired communication protocols and environments.

The external programming/calibration station415may be in wireless communication the processor405during, for example, one or more steps of the manufacturing process. The EPD driver410may be directly or indirectly coupled to a display, such as an electronic paper display.

In this example, the display420may similarly require a precise 32.768 KHz clock signal to successfully present characters on the display420. To generate such a calibrated clock signal, the processor405may be instructed to generate and wirelessly communicate a high-speed clock signal on a wireless general purpose input/output (I/O) pin or other applicable wireless output resource.

The 4.0 MHz high-speed reference clock signal may be wirelessly communicated to the externally located programming/calibration station415. In this example, during the calibration process, the reference clock signal may be routed through the EPD driver410or, alternatively, may be routed out a different wireless general purpose I/O pin (not shown) to bypass the EPD driver410altogether. The programming/calibration station415may be configured to precisely measure the signal using appropriate measurement equipment (not shown) such as a frequency counter or other equivalently precise measurement equipment.

The measured result may be compared with the signal's programmed value to determine the difference or error. This result can be used to calculate one or more calibration values. These calculations may be performed at the programming/calibration station415and then wirelessly communicated back to the processor in a variety of forms, such as an absolute value in hertz, counter value, time (e.g., nanoseconds), and the like. Alternatively, or in addition, divisor value may be calculated such that the value may be used by the processor415to generate the intended output signal in a manner similar to that as described above with reference toFIG. 4.

Referring toFIG. 5, shown is a flow diagram illustrating an example method for use in calibrating an internal high-speed clock generator. While various methods disclosed herein are shown in relation to a flowchart or flowcharts, it should be noted that any ordering of method steps implied by such flowcharts or the description thereof is not to be construed as limiting the method to performing the steps, or sub-steps within or among the steps, in that order. Rather, the various steps of each of the methods disclosed herein can be performed in any of a variety of sequences. In addition, as the illustrated flowcharts are merely example embodiments, various other methods that include additional steps or include fewer steps than illustrated are also within the scope of the present invention.

As shown, the calibration method can begin with a step515via an instruction from a provisioning system505. The method can be initiated manually by a user, for example, by entering a command in a command-line-interface or by clicking on a button or other object in a graphical user interface (GUI). The method can also be initiated automatically by storage management software and/or can be scheduled to run automatically at certain dates and times.

At step515, the provisioning system505may initiate an instruction instructing a processor510to output a high-speed reference clock signal. The provisioning system505(e.g., a programming/calibration system) that may one or more systems used during the manufacturing process and/or in the field during maintenance procedures. The output clock signal may be a reference signal used to calibrate out process variations inherently present as part of the semiconductor fabrication process.

In step520, the provisioning system505may enable measurement hardware such as a frequency counter or other suitably precise measurement system. Meanwhile, at step545, firmware on the processor510may enable a general purpose I/O pin to output a high-speed reference clock signal. At step550, the processor510turns on the high-speed reference clock signal which is communicated to the provisioning system505. The provisioning system505, at step525, may then measure the high-speed reference clock signal generated by the processor510. Once the provisioning system505completes the measurement process, the processor510is instructed to stop transmitting the high-speed reference clock signal at step555. At step560, the processor510is instructed to monitor the provisioning system505.

The provisioning system505may calibrate a metric representative of a calibration value that may be used to calibrate a processor510output signal. At step540, depending on the particular implementation details described herein, calibration information may be transmitted back to the processor510. At step565, the processor510may then generate a precise clock signal that may be used, for example, to drive an EPD driver. As described above, various communication steps may be performed via wired and/or wireless transmission techniques. Calibration calculations and processes may be performed at the provisioning system505and/or the processor510and/or other external devices (not shown).