Power Brick Controller User Manual
Special Functions & Troubleshooting
187
Encoder Count Error
The Power Brick Controller is fitted with an encoder count error detection circuitry which supports
Quadrature
,
Sinusoidal
,
Resolver
, and
HiperFace
encoders.
The encoder count circuitry reports bad transitions of the quadrature signals. If both the A and B channels
of the quadrature data change state at the decode circuitry (post-filter) in the same hardware sampling clock
cycle,
an
unrecoverable
error
to
the
counter
value
will
result
(lost
counts).
PowerBrick[].Chan[].CountError
is then set and latched to 1 (until reset or cleared). 0 indicates that there
is no encoder count error.
Note
No automatic action is taken by the Power Brick Controller if the
encoder count error bit is set, it is the user’s responsibility to trap it
and create safety logic to stop the machine and / or alert the operator.
The encoder count error may not have immediate consequences on the motion, but it indicates ultimately
that the motor is losing counts which could result in a fatal following error, erroneous commutation, or
position drift over time.
Common root causes of the encoder count error:
Encoder problem
Trying to move the encoder (motor) faster than it’s specification
Using a higher resolution/speed encoder. This may require increasing the sampling clock.
The default sampling clock of ~3.125 MHz is
acceptable for the majority of applications.
Increasing the encoder sampling clock is done using
the
structure
element
PowerBrick[].EncClockDiv
(default = 5).
Setting
Frequency
0
100
MHz
1
50
MHz
2
25
MHz
3
12.5
MHz
4
6.25
MHz
5
3.125
MHz
6
1.562
MHz
7
781.2
kHz
Setting
Frequency
8
390.6
kHz
9
195.3
kHz
10
97.65
kHz
11
48.82
kHz
12
24.41
kHz
13
12.21
kHz
14
3.104
kHz
15
3.052
kHz
PTR
Enc1CountError->PowerBrick[
0
].Chan[
0
].CountError;
PTR
Enc2CountError->PowerBrick[
0
].Chan[
1
].CountError;
PTR
Enc3CountError->PowerBrick[
0
].Chan[
2
].CountError;
PTR
Enc4CountError->PowerBrick[
0
].Chan[
3
].CountError;
PTR
Enc5CountError->PowerBrick[
1
].Chan[
0
].CountError;
PTR
Enc6CountError->PowerBrick[
1
].Chan[
1
].CountError;
PTR
Enc7CountError->PowerBrick[
1
].Chan[
2
].CountError;
PTR
Enc8CountError->PowerBrick[
1
].Chan[
3
].CountError;