Frequency multiplier circuit and method using above circuit for a period time division in subperiods, for a brushless motor

Abstract: The present invention relates a frequency multiplier circuit and a controlling method thereof, characterised in that it measures a period (T c ) of a waveform by a fixed frequency timing signal (f sys ), and that it reproduces said period (T c ) by approaching a number of prefixed length (T sys ) subperiods as equal as possible to each other so to minimise the reproduction error (ε) thanks to the interpretation of said subperiod number (m) in the following manner m = j * 2 i .

Description: The present invention relates to a frequency multiplier circuit and a method using above circuit for a period time division in subperiods of length as constant as possible, for a brushless motor. A brushless motor is a synchronous motor, the rotation of which is obtained by a current commutation in the windings in a synchronous way with the rotor position. It is necessary, therefore, to know exactly the rotor position to obtain the best accuracy in the motor working, and this position usually is deduced according two approaches: 1) by Hall effect position sensors; 2) by a counter-electromotive force signal (BEMF). In this last driving choice the position information is completely stored in the BEMF's signal, i.e., in the case we have the maximum BEMF we want to impose a maximum torque, in the case we have the zero BEMF we want to impose a zero torque, and when we have a positive and/or negative BEMF we want to impose a positive and/or negative torque and therefore, in order to drive multiphase brushless motors, we have to excite the motor's phases with voltage waveforms that are shifted 360/n degrees out of phase each other, where n is the number of phase. For example, in a three phase brushless motor, therefore, we have that the voltage waveforms are shifted 360/3 = 120 degrees out of phase each other and said waveforms are subdivided in a number of samples giving a step waveform able to approximate the driving waveform. In Figure 1 a period time division in subperiods is shown. As shown in such figure we note a first axis of abscissa describing a time dependent period signal T c and a second axis of abscissa describing a time division of said period T c in subperiods. The T c signal points out a digital signal having period T c , suitably deduced from BEMF. The difference between period T c and the subperiods m * T sys generates what is commonly known as period reproduction error and in the particular case we have an error ε defined by the formula: ε = T c - m * T sys *INT[INT(T c / T sys )/m] with ε in a value range 0<ε<m T sys , where INT(num) is a function that rounds a number down to the nearest integer. In a steady state, the signal period T c of the signal is time independent and the error ε committed in the reproduction of period T c and the reproduced period m * T sys , therefore formed by m subperiods, is a circuit evaluation parameter, that makes the measurement of the period T c . Therefore the goodness of the approximation of the motor driving waveform, waveform that changes in function of the connected loads, i.e., the possible range of values among which the error ε can change, is a qualitative and quantitative parameter of the circuit and of the control method thereof. Boutin et al. : "A novel digital frequency multiplier " IEEE Transaction on Instrumentation and Measurement, US, IEEE INC. New York, vol. IM-35, no. 4, PART 02, 1 December 1986 (1986-12-01), pages 566-570, XP000649634 ISSN: 0018-9456 discloses a frequency multiplier as defined in the preamble of claim 1. In view of the state of the art described, it is an object of the present invention to estimate the period of a particular waveform by a fixed frequency timing signal and to reproduce said period by approaching subperiods as equals as possible each other. According to the present invention, such object is achieved by a frequency multiplier circuit as defined in claim 1. Another aspect of the invention is a method as defined in independent claim 9. Further embodiments of the invention are specified in the appended dependent claims. Thanks to the present invention is possible to make a frequency multiplier circuit and a method using above circuit for a period time division, for a brushless motor, able to reproduce the motor driving voltage waveform with an accuracy such to produce a reproduction error as little as possible, making possible to improve the phase relationship between the applied profile and the motor position. The features and the advantages of the present invention will be made evident by the following detailed description of an embodiment thereof which is illustrated as not limiting example in the annexed drawings, wherein: Figure 1 shows a period division in submultiple subperiods; Figure 2 shows a frequency multiplier circuit for a brushless motor Figure 3 shows a frequency multiplier circuit for a brushless motor according to the present invention; Figure 4 shows a flow chart of an embodiment of a block of the circuit illustrated in Figure 3; Figure 5 shows a sketched embodiment of the flow chart illustrated in Figure 4. In the embodiments shown in Figures 2, 3, 4 e 5 hereinafter described we refer to circuits particularly for three-phase brushless DC motors for examplary reasons , but the invention is for general purpose circuits adapted for the division of a time variable period into a plurality of subperiods with a reproduction error of the same period as little as possible. In Figure 2 a possible embodiment is shown in the case we want to sample the waveform to be applied to the phases of a three-phase brushless motor (n=3) and to subdivide it into a number m of samples, with m being a multiple of the phase numbers, obtaining a step waveform able to approximate the driving waveform. This kind of embodiment consists in the use of a timing signal at a fixed frequency f sys = 1 / T sys that is much bigger than the motor electrical frequency f c = 1 / T c , changing as a function of the working conditions, and to count the period length by using a N bit counter called CP1, timed by a signal obtained by dividing the fixed frequency signal f sys by the number m of parts in which the motor electrical period T c is to be subdivided, as shown in Figure 1. A pin Reset resets the counter CP1, every period T c . Once the appropriate counting is obtained, referring to the previous period, the result is stored in a period register RP1 that is refreshed with the value T c , by a pin Latch. The content of said period register RP1 is examined by a comparator CMP1 with a counter timed at frequency f sys . The signals, formed by said CMP1, make a scanning frequency f scan that is a frequency m - times higher than the indicative signal of the period T c . The actual counting in the counter CP1, at every end of the period T c , is defined by the formula p = INT[INT(T c / T sys )/m], and the following period is subdivided by a counter that counts p - times the period T sys obtaining that every subperiod is, therefore, p * T sys . Particularly, if m = 36 with n = 3, the motor driving consists to apply at the 3 phases three samples shifted by 12 samples out of phase each other, i. e., it is necessary to subdivide the motor electrical period into 36 subperiods as equal as possible to each other. In such a case the committed error in the period reproduction changes in function of the period length T c and of the used frequency to measure f sys and it is defined by the previous expressed formula: ε = T c - m * T sys *INT[INT(T c / T sys )/m] with ε in a value range 0<ε<m T sys. In Figure 3 a frequency multiplier circuit for a brushless motor with greater accuracy is shown. If we interpret the number m of parts in which we want to subdivide the period T c in the following way: m = j * 2 i where "i" is the maximum exponent that we can give the factor 2 inside the number m, while j is an odd number also called odd factor. As shown in such figure we note that at an input terminal In the circuit receives a period signal T c , measured by a positive-step period counter CP, formed by "N + i" bit, which counting frequency is f cont , counting carried out through the pin Clk; f cont is j times less than a fixed timing frequency f sys . The frequency f cont is produced by a block CONT according to prior art. The content of the counter CP according to the present invention can be explained as the number of time periods m / T sys that passed from the start of the current period. In fact if we consider for example m = 48 = 3 * 2 4 , that is j = 3 and i = 4, and considering also T sys = 80nsec and T c = 1msec we deduce that by making the binary division in function of the circuit signal clock, that is in function of T sys , we have that INT[INT(T c /T sys )/m] = 100000100 and the binary division INT[INT(T c /T sys )/j] = 1000001000110, and by analyzing this last result unless 4 least significant bits we have the same binary code. In fact the least significant "i" bits, also called ADJ, represent an index of the error that we make in the motor driving voltage waveform reproduction. The "i" bits stored in the vector ADJ are expressible mathematically by a formula such as: with where RESTO(num) is a function that returns the division remainder between two numbers, that is the remainder of the division INT[INT(T c /T sys )/m]. Considering the exemplarily previously given values we obtain the vector ADJ has a decimal form value equal to 6 and transformed into a binary digit formed by 4 bits, we have ADJ = 0110; this number corresponds to the least significant 4 bits of the binary division INT[INT(T c /T sys )/j], previously written. Therefore what the circuit makes is a division by a number j of a fixed beforehand known frequency f sys , that is f sys /j. This frequency is counted by a counter formed by "N+i" bits. In the most significant N bits of the counter CP there is an outcome equal to the outcome of the frequency counting f sys /m according to the prior art. In the least significant "i" bits of said counter CP there is an error index that we make in the driving voltage waveform reproduction. The value stored in CP is evaluated again continuously with the signal T c by means of a pin Reset, so to form the period T c that will be output, by means of a pin Out, and stored in a period register RP, having the same dimension as the counter CP, when the new signal T c arrives, by means of a pin Latch. The register RP is a D type flip - flop storing device. A subperiod positive-step counter CSP has a counting frequency equal to the fixed frequency f sys , by the pin Clk, and it is suitable to the subperiod counting, making the time digitalization of the motor driving voltage approximation and it is reset, by the pin Reset, as a function of the outgoing value of the logic gate OR, as result of the combination between the signal T c and a calculated frequency of a comparator circuit CMP, called f scan , where f scan is a frequency m - times bigger than the signal T c . The counter outgoing CSP is the input of the comparator block CMP, by the pin In2, that creates as outgoing signal said frequency f scan if the value stored in said counter CSP is bigger or equal than the value on the pin In1. In order to determine the input value of the comparator CMP a further positive step counter called AC, formed by "i" bits, having a counting frequency equal to f scan , by the pin Clk, is necessary. The counter AC is reset, by the pin Reset, by the signal T c and it outputs, by the pin Out, the subperiod number present in a period T c . Moreover said counter AC starts again to count from 0 after having reached the maximum possible value. Moreover a logic gate block AAA has in input, by the pin In1, the "i" bits of the register RP, and it has an outgoing pin Out2 for the only "i" bits representing the vector ADJ, that is the bits representing the error dimension, and it has in input the value stored in the register AC, that is the number associated to the generic subperiod forming the period T c . The block AAA gives as an output, by the pin Out, a true/false value (1/0) depending on a function able to realize any signal clock distribution, i.e., able to add or not a signal clock at every subperiod. For example the block AAA can realize a distribution function so that if the stored value of the block AC is less than the value of the vector ADJ the block AAA gives a signal clock to the first ADJ every 2 i subperiods, with In this way the first ADJ every 2 i subperiods forming the period to be measured are more spaced so to reduce the error ε. The outgoing value from said block AAA is added, by an adder node SUM, to the value stored in the most significant bits of the register RP and the value of said sum is the input signal for the comparator CMP. The comparator CMP compares the instantaneous values of the counter CSP with the values given by the sum of what is stored in the most significant bit of the register RP plus the values of the block AAA, therefore the comparator CMP generates the signal f scan that represents therefore a new reference for the motor rotor position. In this way, by adding every 2 i subperiods a number ADJ of signal clocks, each one having a length of T sys , we obtain a sampling error given by the formula: ε = T c - m * T sys *INT[INT(T c / T sys )/m] - j * ADJ * T sys with ε in a value range 0<ε<j* T sys , with j* T sys < m * T sys. With the aforementioned values the error in the present invention is in a value range between 0<ε<240 nsec, while with the embodiment of figure 2 the error is in a value range between 0<ε<3480 nsec, that is a range value considerably more reduced. We obtain better results, that is a smaller error ε, if the factor 2 has an exponent enough high. According to the present invention, therefore, the circuit makes, for example, a distribution of additional signal clocks to the first ADJ subperiods every 2 i making ε smaller, thereby improving considerably the reproduction precision. In a particular embodiment the Applicant has found that we can get a higher distribution uniformity of the additional signal clocks by using the information stored in the vector ADJ, formed by "i" bits, and by the counter value AC, also formed by "i" bits, so to realize a distribution function fit to add signal clocks to the subperiods according a scheme hereinafter described in the flow chart of Figure 4 and in a schematic simplified circuit representation of Figure 5. In Figure 4 a flow chart is shown, describing the block implementation AAA of the circuit of Figure 3. As shown in such Figure we note a starting block 1 called START and two allocation blocks 2 and 3. The block 2 gives the variable ADJBIT a value equal to "i -1" with "i" being the bit number deduced from the formula m = j * 2 i , while the block 3 gives a variable ExClk the boolean value FALSE. The variable ExClk, at the end of the analyzing process of every bits, is explainable as the outgoing signal, by the pin Out, from the logic gate block AAA shown in Figure 3 or also as the circuit outgoing shown in Figure 5. Afterwards a test 4 is performed to verify if the vector value ADJ in position ADJBIT is equal to 1, that is if the bit in given position ADJBIT is one or is a zero. In the affirmative case, path 5, the assignment "i - 1-ADJBIT", block 6, to a variable ADJCntLim is performed. Moreover two assignment blocks 7, wherein an index j is set to zero, and 8, wherein a temp variable Serv is set to a boolean value TRUE, are performed in succession. Moreover a further test 9 is performed to verify if the index value j is less than the variable value ADJCntLim. In the affirmative case, path 10, an AND operation between the variable Serv and the counter value AC in position j is performed, that is the variable Serv is equal to 1 if the bit in position "j" of the counter AC is 0. A unit increment operation of the index j, block 12, is then performed and moreover, path 26, a further test cycle 9 is performed. In the case the test 9 is negative, path 21, that is in the occurrence that the index j is greater than the variable value ADJCntLim, a block 13 is performed wherein an operation AND is performed between a boolean value (true/false) and the result of condition AC(j) = 0, that is we have that the variable Serv is equal to 1 if the bit in the position "j" of the counter is 1. Afterwards an assignment block 14 is performed, wherein an operation OR is performed between the variables ExClk and Serv, that is we decide if we give an additional signal clock or not, outputting from the block AAA of Figure 3 a high value, that is 1. Moreover an assignment block 15 is performed, wherein we decrease by a unit the variable value ADJBIT and subsequently a test 16 is performed on said variable ADJBIT. If the result is positive, path 17, the test 4 is processed again, while if the result is negative, path 18, the flow chart ends. The block 15 is performed immediately after the test 4 in the case of the test result is negative, path 20, that is the case of the vector ADJ in position ADJBIT is different from 1. It is possible to obtain a signal clock complementary distribution having analogous properties by changing in the assignment blocks 11 e 13 the condition to which AC(j) must to be submitted, that is AC(j) = 1 in the block 11 and AC(j) = 0 in the block 13. The block AAA has, therefore, as input the counter AC and the vector bit ADJ and it gives as output a value true/false (1/0), that is the variable ExClk, according to a circuit, described in a schematic way in figure 5, according to the most significant bit of the "i" bits. In fact the flow chart of Figure 4 according to the most significant bit of the "i" bits of the vector ADJ, vector symbolizing the reference and therefore is constant during the whole period T c , and according to the counter value AC, that changes at every subperiod, uses the most significant bit of ADJ, that is the necessity to add a signal clock to the half of subperiods, choosing indifferently the even subperiods of AC (least significant bit equal to 0) or the odd subperiods of AC (least significant bit equal to 1). The second most significant bit of the "i" bits is the necessity to add a signal clock to a quarter of subperiods of AC, choosing indifferently among previously not observed even (least significant bit 0 and second least significant bit 1) or odd subperiods (least significant bit 1 and second least significant bit 0). We can iterate this method for all the bits of the counter AC. For example, in the first cycle of the flow chart, being AC an "i" bits counter that counts the subperiods from zero from the period start and that starts again from zero every time the saturation is reached, if the most significant bit of ADJ is equal "1", it means that at least a half of the subperiods must be the additional signal clock and therefore we can add at every odd subperiod a signal clock, that it can be distinguished by the fact that the least significant bit of the counter AC is equal to 1. At the second cycle of the flow chart if the second least significant bit of ADJ is equal "1" it means that al least a quarter of the subperiods must have the additional signal clock and therefore we can add the signal clock to the even subperiods (that aren't called in the previous cycle) that aren't multiple of 2 2 ; these subperiods are distinguished by the following features: in the counter AC the least significant bit is equal "0", while the second least significant bit is equal "1". At the third cycle of the flow chart if the third least significant bit of ADJ is equal "1" it means that al least one eighth of the subperiods must be the additional signal clock and therefore we can add the signal clock to the even subperiods that are multiple of 2 2 (that aren't called in the previous cycle) but aren't multiple of 2 3 ; these subperiods are distinguished by the following features: in the counter AC the least significant bit is "0", the second least significant bit is "0", while the third least significant bit is "1". This process can be iterated for all the "i" bits of the counter AC and in the vector ADJ, to the end of the bits. In Figure 5 a schematic embodiment of the flow chart of Figure 4 is shown. As shown in such figure we note a plurality "i" of gate logic AND 22, 23 e 24, wherein "i" is an index deduced by the formula m = j * 2 i , and their outgoing signal is the input of a OR logic gate 25. The logic gate 22, for example, outputs a value that is high only if the inputs are high, that is in the case that the vector value ADJ, in position "i - 1", that is the most significant bit, and the counter value AC, in position zero, that is the least significant bit, are equal to 1. That is the most significant bit of the vector ADJ is equal to 1 and the least significant bit of the counter AC is equal to 1 and therefore, for example, at least the half of the subperiods must be a signal clock and we can add this signal clock at every odd subperiod by outputting an high value from the logic gate 25. Analogous argument worthies for the logic gates 23 and 24.

Claims: A frequency multiplier circuit comprising an input terminal (In) arranged to receive a periodic signal having a period (T c ), a second input terminal receiving a timing frequency (f sys ) greater than the reverse of said period (T c ), a first counter circuit (CP), implemented to execute counting at a fixed first frequency (f cont ) and adapted to determine a first count value that includes a count vector of N most significant bits and a vector ADJ of i least significant bits, said first counting circuit (CP) coupled to a register (RP), a second counter circuit (CSP) implemented to execute counting at said timing frequency (f sys ), said frequency multiplier outputting an output frequency (f scan ) greater than the reverse of said period (T c ), characterized in that said fixed first frequency (f cont ) is proportional to said timing frequency (f sys ), and by comprising a third positive step counter (AC) implemented to execute counting at said output frequency (f scan) ) and adapted to determine a count value of i bits, a logic gate block (AAA) coupled to said third counter circuit (AC) and to the register (RP) and adapted to output (Out) a number of signal clocks corresponding to the vector ADJ every 2 i subperiods of said period (T c ), an adder node (SUM) suitable to sum the output signals of the most significant N bits of said register (RP) and of said logic gate block (AAA), a comparator (CMP) arranged to receive the outputs (In2) of said second counter circuit (CSP) and an output signal (In1) from said adder node (SUM), said comparator (CMP) arranged to output (Out) said output frequency (f scan ) after the comparison of its input signals, until the output signal value of said second counter circuit (CSP) is greater than or equal to the output signal value of said adder node (SUM), so that the reproduction error (ε) of said period signal (T c ) is as little as possible. Frequency multiplier circuit according to the claim 1, characterized in that it foresees that the said timing frequency (f sys ), outputting from a dividing block (CONT), is j - times slower than the timing frequency at the input of the dividing block (CONT), where j is deduced from the formula m = j * 2 i , m being a numbers of subperiods into which a period (T c ) is to be subdivided and j an odd number. Frequency multiplier circuit according to the claim 2, characterized in that said first counter circuit (CP) is arranged to store a binary representation of the number of periods (f cont ) processed by said dividing block (CONT), so that in the most significant N bits there is a numerical representation of the division INT[INT(T c / T sys )/m] where T c is the period of said periodic signal and T sys is the inverse of the timing frequency, the vector ADJ is a value showing the integer part of with where RESTO is a function that returns the remainder of the division INT[INT(T c / T sys )/m]. Frequency multiplier circuit according to the claim 1, characterised in that said register (RP) comprises in the most significant N bits the numerical representation of the division INT[INT(T c /T sys )/m] where T c is the period of said periodic signal and T sys is the inverse of the timing frequency, and as vector ADJ a value showing the integer part of with where RESTO is a function that returns the remainder of the division INT[INT(T c / T sys )/m]. Frequency multiplier circuit according to anyone of previous claims, characterised in that it comprises a dividing circuit (COUNT) that converts the timing frequency to the first frequency, another input terminal of said timing frequency (f sys ) to provide a signal at an input terminal (Clk) of said dividing circuit (CONT) and at an input terminal (Clk) of said second counter circuit (CSP); a system terminal to provide a period signal (T c ) at a reset terminal (Reset) of said first counter circuit (CP), at an storing terminal (Latch) of. said register (RP), and at a reset terminal (Reset) of said third counter circuit (AC). Frequency multiplier circuit according to the claim 1, characterised in that it foresees that said logic gate block (AAA) comprises an AND logic gate plurality (22, 23, 24) and an OR logic gate plurality (25), said AND logic gate plurality (22, 23, 24) have in input the ADJ vector of said register (RP) and output bits of said third counter circuit (AC), when in said register (RP) and in said third counter circuit (AC) there is respectively said storing signal (Latch) and said reset signals (Reset) which receives said periodic signal, said OR logic gates (25) have in input the output form each of said AND logic gates (22, 23, 24), so that to distribute a fixed number (T sys ) of signal clocks as a function of the vector ADJ. Frequency multiplier circuit according to the claim 1, characterised in that said third counter circuit (AC) is formed by a bit number equal to the maximum index assignable to the factor 2 of the formula m = j * 2 i . Frequency multiplier circuit according to the claim 1, characterised in that said second counter circuit (CSP) is formed by bit number equal to the most significant bits of said first counter circuit (CP) and of said register (RP). Method to generate a period time division signal in subperiods, comprising the following steps: a) receiving a periodic signal (T c ) having a period; b) accepting a timing frequency (f sys ) greater than the inverse of said period (T c ); c) executing a counting by a first counter (CP) at first fixed frequency (f cont ) to determine a first count value that includes a count vector of N most significant bits and a vector ADJ of i least significant bits; d) storing a value of said counting in a register (RP); e) executing a counting by a second counter circuit (CSP) at said timing frequency (f sys ); f) generating an output signal (f scan ) whose frequency is greater than the reverse of the period of said periodic signal (T c ) characterized in that first fixed frequency (f cont ) is proportional to said timing frequency (f sys ) and in that said method further comprises the steps of g) adding, to the counting in said register (RP), ADJ subdivisions every 2 i subdivisions of said period (T c ) being a function of the value of said ADJ vector and a function of the stored value in a third counter (AC), clocked by said output frequency(f scan ); h) comparing the result of said adding step and an output value of said second counter (CSP); wherein said output frequency (f scan ) is generated until the output value of said second counter (CSP) is greater than or equal to the input value (In1) of said comparator (CMP), such as to minimise the reproduction error (ε). Method according the claim 9, characterised in that said first frequency (f cont ) is j - times slower than said timing frequency (f sys ), where j is deduced from the formula m = j * 2 i , m being a number of samples into which a period (T c ) and j an odd number.

Inventors: BARDELLI ROBERTO, BARDELLI, ROBERTO
Applicants: ST MICROELECTRONICS SRL, STMICROELECTRONICS S.R.L.
Application year: 2000
Main classification: G06F7
IPC codes: G06F7