English
Language : 

AN863 Datasheet, PDF (10/22 Pages) STMicroelectronics – Improved sensorless control with the ST62 MCU for universal motor
IMPROVED SENSORLESS CONTROL WITH THE ST62 MCU FOR UNIVERSAL MOTOR
4 SOFTWARE DESCRIPTION
Figure 6 illustrates the micro-controller program operation. The program consists of a
loop synchronized on the mains zero-crossing (z.c.). Each zero-crossing causes an
interrupt on pin PB0 of the micro. In case of a positive half-cycle, the motor current
i(t0) is measured and saved into variable it0 for latter use. Then, in both cases (posi-
tive and negative half-cycle), the micro uses the timer to wait an amount of time td x
48 μS, after which it fires the triac with pins PA0,PA1,PA2 (48 μS is the chosen timer
step). Three pins are used in order to supply up to 3 x 20mA to the triac gate. The
timer is used again to keep the gate activated during 400 μS (TGATE x 48 μS). After
the end of the triac gate activation, two tasks remain to accomplish: in the positive
half-cycle, the micro reads the push-buttons (or potentiometer) to check the user
speed demand; in the negative half-cycle, the regulation algorithm is executed, re-
sulting in the calculation of a new value for td, to be applied on next mains cycle.
When this is done, the micro returns to wait mode until the next zero-crossing inter-
rupt happens.
•Regulation algorithm: proportional-integral regulation
This algorithm is contained within the subroutines “regul” and “pi”. Its input is the var-
iable it0 (current measured at zero-crossing), and its output the triac firing delay td
(each unit corresponds to 48 μS delay). The variable it0 is first increased by a com-
pensation value extracted from a memory table before it is used to calculate the cur-
rent error. This value is a function of the triac firing delay td. The current error, i_err,
is then obtained by subtracting the current demand icalc0, which depends only upon
the user speed demand. The micro then calculates the proportional and integral
terms of the proportional-integral algorithm: they are simply the current error i_err
multiplied by constants (KP and KI). In the attached example, KP = 1/4 and KI = 1/32,
but these coefficients must be adjusted for a given motor type. They dictate the tran-
sient behavior of the regulation. As there is no multiplication instruction in ST6 micro
controllers, it is chosen to multiply or divide only by powers of two (1/4, 1/32, 1/8...) as
this is fast and easy to perform by software. Subroutines for multiplication by 1/4,
1/8, 1/16, 1/32, 1/64 are given in the program. In practice, this restriction is not a
problem, as the transient performance is not very sensitive to these coefficients.
10/22