SPRUHJ1I January 2013 – October 2021 TMS320F2802-Q1 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027-Q1 , TMS320F28027F , TMS320F28027F-Q1 , TMS320F28052-Q1 , TMS320F28052F , TMS320F28052F-Q1 , TMS320F28052M , TMS320F28052M-Q1 , TMS320F28054-Q1 , TMS320F28054F , TMS320F28054F-Q1 , TMS320F28054M , TMS320F28054M-Q1 , TMS320F2806-Q1 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28068F , TMS320F28068M , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M-Q1
Table 7-1 summarizes all the states shown in Figure 7-4, with a brief description. A more detailed description is given in this document when the detailed motor identification process is explained.
Table 7-2 summarizes all the state transition conditions shown in Figure 7-4.
Controller State | Brief Description |
---|---|
Start | The start state is only shown as a starting point of the entire state machine. However it does not actually exist in the controller state machine. |
Idle
|
This state is present when the controller is waiting for user's input to start. This state is also present when the system is waiting for user's input to start doing the locked rotor test when identifying AC Induction Motors. |
Offline
|
The hardware offsets calibration is done during this state of the controller |
Online
|
Motor is running in closed loop, or is being identified. The entire estimator (EST) state machine is run when the controller (CTRL) state machine is Online |
Condition | Brief Explanation |
---|---|
Controller Disabled | This condition is present when the controller has not
been enabled, can be checked with the following instruction:
|
Also, the controller can be disabled at any time with user's code
by calling the following function with the indicated parameter:
|
|
Controller Enabled | This condition is present when the controller has been
enabled, can be checked with the following instruction:
|
The controller can be enabled by using:
|
|
Estimator Not Idle | This condition is present when the estimator state is any state
other than Idle. Can be checked with the following instruction:
|
Estimator Is Idle | This condition is present when the estimator state is in the Idle
state. Can be checked with the following instruction:
|
Don't Perform Locked Rotor Test | This condition is internally checked in the state machine of the estimator, and is not publicly accessible with user's code. This condition is only checked internally when the motor type is set to induction motor. |
Perform Locked Rotor Test | Same explanation as in "Don't Perform Locked Rotor Test." |
Motor Not Identified | This condition is true when the motor has not been identified, or
when user motor's parameters haven't been loaded into the controller
object. The Motor Not Identified condition can be checked by using
the following example:
|
Motor Identified | After motor identification is completed, or after user motor's
parameters are loaded into the controller, the motor identified
condition is true. This condition can also be checked by using the
following example:
|
Offset Recalibration Enabled | This condition is true when the hardware offsets recalibration
has been enabled. Offsets recalibration is enabled by default. This
can be checked with the following instruction example:
|
Offset Recalibration Disabled | When hardware offsets recalibration has been disabled, this
condition is true. It can be checked using the following example:
|
Wait Not Expired | This is an internal condition which is checked while
the offset recalibration is being executed. The time taken by the
offset recalibration is defined by the following instruction in
user.c file:
|
Where the USER_CTRL_FREQ_Hz is defined in user.h. | |
Estimator Not In Locked Rotor | This condition is present when the estimator state machine is not
in locked rotor test. Such condition can be checked by the user
using the following instruction example:
|
Wait Expired | The state transitions that have time dependencies are based on an
internal counter compared to the value stored in the respective wait
time in user.c:
|