Abstract:
A two-wire communication protocol between a controller device and a controlled device, wherein both devices are coupled by a clock line and a data line. The controller device sends control signals comprising N bits, N being greater than or equal to two, to the controlled device via the data line. Each bit of said control signals is latched onto the controlled device on consecutive edges of a clock signal sent by the controller device to the controlled device on the clock line.

Description:
BACKGROUND OF THE INVENTION 
   The present invention relates to a two-wire communication protocol between a controller device and a controlled device. The invention more particularly relates to digitally trimmable electronic devices such as a capacitor, a potentiometer, a current source, or other variable impedance elements. 
   Both controller and controlled devices are coupled by a clock line and a data line. The controller device sends control signals comprising N bits, N being greater than or equal to two, to the controlled device on the data line. 
   In the prior art, the document U.S. Pat. No. 5,084,667 discloses a variable impedance circuit for incorporation into electronic circuits in place of a potentiometer or similar mechanical variable impedance element. The impedance of the impedance circuit is set by electrical signals sent thereto. Once set, the impedance value is stored in a programmable non-volatile read only memory. When power is restored, this stored impedance value is re-established. 
     FIG. 1  is a block diagram of the impedance circuit according to this document. The variable impedance circuit  1  consists of an impedance network  2  which consists of a number of fixed impedance elements and switches which are not shown. The switches are used to connect various combinations of impedance elements between two terminals  3  and  4 . The particular combination is determined by a value stored in a control circuit which is counter  5 . The count stored in the counter may be altered by signals on two lines  6  and  7 . The Up/Down (U/D) signal on line  6  determines whether counter  5  will be incremented or decremented by a predetermined amount in response to an increment (INC) signal on line  7 . 
   A third signal line  8  which is referred to as chip select (CS) line  8  is used as an activation signal for counter  5 . When chip select line  8  is low, counter  5  responds to signals on lines  6  and  7 . This enables the circuit controlling the variable impedance circuit  1  to alter the value stored in counter  5 . This controlling circuit causes chip select line  8  to go low. It then couples the appropriate signals to counter  5  on lines  6  and  7  to cause the value stored in counter  5  to change to the new desired value. 
     FIG. 2  is an array of the selection mode of the variable impedance circuit. When the CS line is low, the value stored in the counter may be altered. On the falling edge of the INC line, the counter is incremented if the U/D line is high and decremented if U/D line is low. 
   Such a variable impedance circuit has some drawbacks. First, two lines INC and U/D are used to allow only two control signals for the counter, an increment and a decrement signal. Further, with these two lines INC and U/D no start and end signals are available. This is why it is provided with a third line CS which determines by its level whether the value stored in the counter is alterable or not. To implement such a solution, it is necessary to have an additional terminal on the circuit. 
   In the prior art, the document WO 01/76069 discloses a method of electronically adjusting electrical capacitors which may be variably set or trimmed to a desired value of capacitance. 
     FIG. 3  is a block diagram illustrating the electronic trim capacitor  10  which is implemented as a digitally programmable capacitance  11 . The electronic trim capacitor  10  has a first power terminal  12  (Vdd) and a second power terminal  13  (Vss); a first capacitor terminal  14  (C 1 ) and a second capacitor terminal  15  (C 2 ); a program terminal  16  (PROGRAM); and an enable terminal  17  (ENABLE). The first power terminal  12  and the second power terminal  13  may receive suitable electrical power to operate the electronic trim capacitor  10 . Also, the first capacitor terminal  14  and the second capacitor terminal  15  connect the electronic trim capacitor  10  to a general circuit (not shown) which requires capacitive adjustment such as an amplifier or an oscillator. The program terminal  16  and the enable terminal  17  here provide the ability to digitally program the electronic trim capacitor  10  to a desired specific value of capacitance. 
   The programming method used with the electronic trim capacitor  10  comprises the following main steps. In an initial step, programming is initiated by setting the enable terminal  17  to a particular electrical state. 
   In a following step, programming continues by supplying an appropriate pulse signal to the program terminal  16 . In this manner, supplying a selected number of pulses in the pulse signal, while the enable terminal  17  is enabled, will produce a desired total number of capacitance increments in the electronic trim capacitor  10 . 
   Finally in another step, the internal logic of the electronic trim capacitor  10  sets a capacitive value which is exhibited at the first capacitor terminal  12  and the second capacitor terminal  13 . 
   Such an electronic trim capacitor also has some drawbacks. After setting the enable terminal in order to activate the electronic trim capacitor, only an increment function is provided. With only one control signal available, there is no freedom to modify the value of the capacitance or to monitor this value. Further, if a decrement operation is requested or if the desired value is less than the current value of the electronic trim capacitor, it is necessary to provide with a reset terminal to reset the capacitance value or a mechanism which resets the capacitance value to zero when the maximum value is reached by successive increment signals. In both cases it is not worthy, the first alternative requires an additional terminal and the second one takes too much time. 
   SUMMARY OF THE INVENTION 
   The object of the present invention is to overcome the afore cited drawbacks of both prior arts and, in particular, to provide a simple two-wire communication protocol for digitally trimmable electronic devices with several control signals. 
   These objects are achieved as a result of a two-wire communication protocol as defined herein before and characterized in that each bit of the control signals is latched onto the controlled device on consecutive edges of the clock signal sent by the controller device to the controlled device on the clock line. 
   It is to be noticed that a bit is typically defined as a digital bit with two levels 
   Further, after at least one of the N−1 first bits of a control signal has been latched onto the controlled device, the data line is temporarily set in a high impedance state by the controller device during which a first acknowledgment data bit, which acknowledges whether a desired instruction is possible or not, is generated by the controlled device. 
   Preferably, the number of bits of a control signal is equal to 2, which allows four control signals, and the controlled device is an electronic device with a digitally adjustable quantity which comprises a counter storing a value of the digitally adjustable quantity, and the four control signals include at least an increment signal and a decrement signal of said value. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Other features and advantages of the invention will appear from the following description of particular embodiments of the invention, given by way of non-limiting examples, with reference to the annexed drawings, in which: 
       FIG. 1 , already described, is a block diagram of a variable impedance circuit of the prior art; 
       FIG. 2 , already described, is an array of the different functions of the circuit of  FIG. 1 ; 
       FIG. 3 , already described, is a block diagram of an electronic trim capacitor of the prior art; 
       FIG. 4  is a block diagram of a circuit according to the invention; 
       FIG. 5  is an array of possible control signals; 
       FIG. 6  is a timing diagram representing sequences of the two-wire communication protocol. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 4  shows a circuit  20  comprising a controller device, which may be in particular, a microcontroller  21  and a controlled device, which may be in particular, an electronic device  22  comprising a counter  27  and an adjustable quantity network. The microcontroller  21  and the counter  27  of the electronic device  22  are coupled by a clock line (CLK)  23  and a data line (DAT)  24 . It is to be noted that the data line  24  may be tri-stated, as an input, an output or set to a high impedance state by the controller device. 
   When the controlled device  22  is connected to an external driver such as the microcontroller  21 , only the microcontroller signals, which are stronger than the internal signals of the electronic device  22 , can be read on the data line. 
   When the data line is set to a high impedance state by the controller device, internal pull-up or pull-down means  29 , being no more in competition with an external driver, may set the data line  24  to a proper requested state. These internal pull-up or pull-down means  29  are preferably formed by two current sources which are monitored by a feedback signal  30  of the counter  27 . 
   The electronic device  22  also comprises first  25  and second  26  output terminals at which the adjusted quantity of the adjustable quantity network  28  can be read. The circuit  1  is supplied by conventional means which are not shown, as described in  FIG. 3 . 
   The microcontroller  21  may send control signals via the two lines  23  and  24 , for example increment and decrement signals in order to increment or decrement the value of the counter  27 . This counter value allows the quantity network  28  to be adjusted to the desired value between the output terminals  25  and  26 . 
   The adjustable quantity network  28  may be a digitally programmable capacitance similar to the one shown in  FIG. 3 , an impedance network similar to the one shown in  FIG. 1 , and also any adjustable quantity such as current level. 
     FIG. 5  is an array of preferred control signals which may be sent by the microcontroller to the electronic device. In this example, the control signals comprise two bits which allow four control signals. However, it is also possible to define control signals comprising more than two bits in order to have a greater number of control signals available. 
   The two most important instructions required to adjust the quantity of said electronic device are the increment and decrement functions. These instructions are preferably chosen with a different first data bit. For example, “0” as first data bit for the decrement function and “1” as first data bit for the increment function. 
   Thus, the decrement function has been defined as “00” and the increment function as “11”. With these four control signals, there are still two available functions. This may be a first test mode (T 1 ) defined as “01” and a second test mode (T 2 ) defined as “10”. 
     FIGS. 6A-6D  show timing diagrams representing examples of communication protocol sequences on the clock and data lines with four control signal as described above. The timing diagram is divided into periods which represent the different steps in the protocol communications between the microcontroller and the electronic device and more specifically the counter. The control signals sent by the microcontroller to the counter comprise two data bits on the data line. 
   Before the microcontroller can send any control signals to the counter, a start condition has to be detected by the counter. This start condition, represented in period T 0  in  FIGS. 6A-6D , may be, for example, a combination of low-to-high or high-to-low transition on the data line (DAT) while the clock line (CLK) is stable at a high or low (as shown in  FIG. 6 ) state. 
   After the start condition has occurred, the first data bit of a control signal is latched on the first edge received on the clock line by the counter during the period T 1 . 
   After receiving the first data bit during period T 1 , the counter and the associated logic can anticipate the control signal by analysing the first bit received and then may provide with a feedback status. In  FIGS. 6A and 6C , the first data bit received is “0”, then the counter can anticipate a decrement request. Conversely in  FIGS. 6B and 6D , the first data bit received is “1”, then the counter can anticipate an increment request. According to the anticipated control signal, a data bit is then generated by the electronic device. Preferably, this data bit acknowledges whether the anticipated increment or decrement request is possible or not. 
   If a maximum count value has already been reached in the counter and another increment request is anticipated, i.e. the first data bit is “1”, or if a minimum count value has already been reached in the counter and another decrement request is anticipated, i.e. the first data bit is “0”, then the acknowledgement data bit will be set for example to “1” after the clock edge of period T 1 . In all other cases, the acknowledgment data will be set to “0”. 
   To read the acknowledgment data bit, the data line is temporarily tri-stated by the microcontroller after the clock edge of period T 1 . The data line is tri-stated means that the corresponding terminal of the counter is set in a high impedance state by the controller device. This allows internal pull-up or pull-down means of the electronic device to set the data line to the proper state corresponding to the acknowledgment data bit during period T 2 . Thus during this period T 2 , the acknowledgment data bit on the data line may be read by the microcontroller. 
   The second data bit of a control signal is latched on the next edge received on the clock line by the counter during period T 3 , consecutive to the first edge received during period T 1 . 
   According to the requested instruction, increment, decrement or test modes, the counter will, respectively, increment or decrement if possible, or will do the appropriate test corresponding to the requested test mode. In  FIG. 6A , the second data bit received is “0”, so the requested instruction is a decrement one. In  FIG. 6B , the second data bit received is “1”, so the requested instruction is an increment one. In  FIG. 6C , the second data bit received is “1”, so the requested instruction is the first test mode. Finally in  FIG. 6D , the second data bit received is “0”, so the requested instruction is the second test mode. 
   After the control signals have been received, after period T 3 , during period T 4  corresponding to an executing period, the requested instruction is executed if possible. The value of the counter is respectively incremented ( 6 A) or decremented ( 6 B) if possible. Or, in the case of a test mode request, the data line is set to an output state and the clock line may receive a pulse that gates the data line which is an output of the counter to produce a desired action. Output test data from the controlled device may set on the data line with an output driver or using the pull-up or pull-down means. 
   It is to be noted that an additional data acknowledgement bit may optionally be sent. This second acknowledgment data bit may for example confirm whether the control signal has correctly been completely latched. 
   In the same way as for the first acknowledgment data bit, in order to read the second acknowledgment data bit, the data line is temporarily set in a high impedance state by the microcontroller after the clock edge of period T 3 . This allows internal pull-up or pull-down means of the electronic device to set the data line to the proper state corresponding to the second acknowledgment data bit during period T 4 . Thus during this period T 4 , the second acknowledgment data bit on the data line may be read by the microcontroller.