This section describes how to select
INV_R and INV_R_SCALE. The first step is to find the motor resistance. This can be
done in three ways:
- Use the motor resistance
value mentioned in the data sheet of the motor. If this is not available,
use one of the other methods listed below.
- Perform a voltage sweep at
the motor terminals, stall the motor at each voltage level, and measure the
motor current. Please note that at least 10 measurements are required at
every voltage level whilst rotating the motor by approximately 30° for each
measurement. This is because it is unknown if the commutator segments are in
contact with the brushes in a particular motor position which renders a
lower, incorrect motor resistance value. If motor resistance from the
motor's data sheet is unavailable, then this method is recommended to
obtain the value of motor resistance. Take the average of all values
to calculate motor resistance.
- Measure the motor resistance
using a digital multimeter. Please note that this process also needs to be
done at every voltage level for 10 measurements each and then averaged out
at the end for the same reason as mentioned above.
Note:
To perform a voltage sweep,
- Connect the motor directly to the power supply at a voltage just below
where the motor starts to spin. As an example, set the power supply
voltage to 1.5V for a 12V motor if the motor starts to spin at 1.7V.
- Read the current using a current probe, inline multimeter, or power
supply readout.
- Calculate the motor resistance using the following equation: Motor
Resistance = Voltage/Stall Current.
- Repeat this test across a range of voltages (ex. 1.3V, 1.4V, 1.5V, 1.6V)
and find a consistent motor resistance value.
Once the motor resistance value is
found, select an appropriate value of INV_R_SCALE and calculate INV_R. The formula
to calculate INV_R is:
Equation 10.
For example, if the motor resistance is
25Ω, we have the following possible results based on the choice of
INV_R_SCALE:
Table 9-2 Selection Example for
INV_R_SCALE and INV_R
Bit |
INV_R_SCALE value |
INV_R_SCALE/Motor Resistance (Actual
Value) |
Rounded Value INV_R |
Comment |
00b |
2 |
2/25=0.08 |
0 |
Do not select, since output is 0. |
01b |
64 |
64/25=2.56 |
3 |
Avoid selecting, since low bit
precision. |
10b |
1024 |
1024/25=40.96 |
41 |
Can select this value. |
11b |
8192 |
8192/25=327.68 |
328 |
Cannot select this value because 328 exceeds the
maximum limit for INV_R (255). |