Skip to main content
Skip table of contents

Digital halls

Summit servo drives are able to use digital halls as feedback. 

It can be configured using the following parameters:

  • Dig. hall polarity. The polarity of the digital halls. Setting a 0 value sets standard polarity, and setting a value different from 0 sets reversed polarity.

  • Dig. hall filter: Glitch filter levels of the digital halls module. There are 10 different glitch filter levels. Each level corresponds to a specific cut-off frequency. Setting this register parameter to 0 will disable the glitch filter. The different glitch filter levels can be seen in the following table:

    Glitch filter levels (Register value)

    Max Readable Encoder Freq (MHz)

    0100
    133.33333333
    216.66666667
    38.333333333
    44.166666667
    52.083333333
    61.041666667
    70.5208333333
    80.2604166667
    90.1302083333
    100.06535947712
  • Dig. hall pole pairs. Pole pairs of the hall sensors.

Note

Generally, the pole pairs of the halls sensor are equal to the motor pole pairs

  • Dig. hall value. The combined value of the halls signals, being A the less significant bit.

Summit servo drives include additional integrity checkings attached to digital halls that allow the detection of dangerous errors during the operation of the digital halls themselves and other feedbacks

Halls combination error

This error occurs whenever all the signals are at a high or low level. These combinations are not allowed and trigger a fault, since the feedback might be broken or disconnected and operation is not possible. This error has no option code, since it is a serious one. Instead, if needed, the Halls sensor can be removed from the feedbacks selected.

Halls sequence error

This error occurs when from one halls sector, a transition is made to a non-contiguous sector. This could happen when two halls signals change value at the same time. An error option code is available for this error.

Feedback runaway checking against Halls

It is possible to check for feedback runaway conditions against halls if both are selected as feedback sensors in the drive. To do this:

1 - Select both feedbacks to be used by the drive

2 - Select the desired feedback to be checked in the Feedback runaway source register. The selected feedback readings will be checked against Halls on each mechanical revolution. If the detected feedback counts per revolution differ by more than 20% of the specified feedback resolution, an error occurs. An error option code is available for this error.

To detect counts per revolution of the selected feedback, an event is triggered on a specific transition of Hall A and is only triggered after as many repetitions as pair poles are specified. This event samples the readings of the feedback, and compares it to the previous event, except in the first event of all, where only the sample is taken. This first event can happen either at the start-up of the drive, or when changes of direction are detected in the halls feedback.

No more than two revolutions should occur before detecting a runaway error.

Hall sensor placement and angle asymmetries

In a brushless servo drive, three Hall sensors are ideally placed 120 electrical degrees apart around the stator. In that perfect case, each Hall state (the 6-step commutation sectors) spans exactly 60 electrical degrees, so the reported rotor angle advances in equal steps.

In practice, mechanical and magnetic imperfections in the Hall placement create asymmetries in the angles associated with each Hall pattern:

  • Unequal mechanical spacing
    If the three sensors are not mounted exactly 120° apart (for example: 118°, 122°, 121°), the points at which each Hall switches will no longer be separated by exactly 60 electrical degrees. As a result, the six sectors become different widths (e.g. 55°, 62°, 58°, etc.), so the “reported angle” associated with each Hall pattern does not represent a uniform angular step.

  • Circumferential offset of the sensor cluster
    Even if the sensors are correctly spaced relative to each other, the whole group can be shifted relative to the magnet pattern on the rotor. This shifts the effective electrical zero and can skew the mapping between Hall transitions and actual rotor angle, so the drive commutates slightly early or late in some sectors.

  • Magnet and flux non-uniformity
    Variations in the rotor magnetization (non‑uniform flux, pole‑to‑pole differences, or magnet skew) mean each Hall sensor reaches its switching threshold at slightly different physical angles, again distorting the effective sector boundaries.

  • Sensor threshold and alignment tolerances
    Each Hall IC has its own switching threshold and hysteresis. Small differences between devices, combined with tiny tilts or height differences in mounting, move each sensor’s switching point a few electrical degrees, adding to the asymmetry.

All of these effects mean that the electrical angle reported by the Hall pattern is not perfectly linear with the true rotor angle: some sectors are effectively “longer” and some “shorter”. This causes commutation angle errors.

How Hall asymmetries can affect the phasing when working with Halls + Incremental encoder

Due to the low resolution of hall sensors, they are usually paired with an incremental encoder that provides higher resolution, allowing the drive to better control commutation and field-oriented control. In a setup where the halls are used as the reference encoder and an incremental encoder as the commutation encoder, hall sensors serve as an absolute reference to determine the real commutation angle during the initial alignment. This process is called Alignment.

For more information about the Alignment procedure, please check https://drives.novantamotion.com/summit/commutation

In a non‑forced phasing with incremental encoder + halls, the drive uses the halls as an absolute reference only at start‑up. The drive moves until it detects the first hall angle transition, then calculates the difference between the electrical angle measured by the drive's reference system and the actual electrical angle.

Due to the earlier-mentioned hall asymmetries, the angle read during non-forced phasing introduces a small error in the drive's angle measurement at the first hall transition. The image below shows the error between the hall sensors' reported angle and the incremental encoder's counts.

The image only shows the asymmetries observed when moving in the positive direction (0º → 60º → 120º …). This error may not be the same for each transition when moving in the negative direction (0º → 300º → 240º → …).

The error introduced in the commutation angle offset due to improper alignment may have the following consequences

  • Reduced torque per ampere.

  • Increased torque ripple and noise.

  • Higher current for the same load.

  • Lower max speed or poorer efficiency at high speed.

Hall offset compensation feature

Novanta’s servo drives include a compensation table to minimize the effect of the halls asymmetries by adding a correction value for each transition.

The feature can be configured using the following registers:

0x239C - Digital halls offset compensation enable

When enabled, the stored compensation values apply to the hall's last transition angle. When disabled, the values are not applied but remain stored in memory for future use.

0x239D - Digital halls offset compensation index

0x239E - Digital halls offset compensation value

These registers allows modifying or consulting a specific compensation value for a given electrical angle and direction (positive or negative). Compensation index selects the table index to modify and compensation value inputs the value into that index

0x239F - Digital halls - Last transition angle

Reports the last transition angle detected by the hall sensor. It can be used to validate the correctness of the compensation values.

What values should be used for offset compensation?

The hall displacement error can be defined as:

We don't have a way to export this inline extension.

Which is also equivalent to:

We don't have a way to export this inline extension.

Where:

  • Angleideal -> Ideal transition angle (30º, 90º, 150º, 210º, 270º, 330º)

  • eAngleideal -> Error for a given ideal transition angle

  • Anglereal -> Real angle (includes the displacement against the ideal angle)

Insert compensation values as error values at each transition.

Each angle has a compensation value depending on the rotor's direction.

Measure all errors against a reference transition with a compensation value of '0'. In the image in https://novantamotion.atlassian.net/wiki/spaces/SS/pages/2209776711, the reference angle is 30º positive.

  • Other angles can serve as references

  • Calculate the compensation at the angle opposite to the reference. For example, if the reference angle is 30º positive, set the compensation value for 30º negative.

Example:

Let’s assume that we have the following errors:

  • Error = 1.5º at 90º when moving in the positive direction.

  • Error = 0.8º at 90º when moving in the negative direction

Note that the feature works with unitary values, so these errors must be scaled into the range [0.0, 1.0], then:

  • 1.5º should be written as 1.5º/ 360º = 0.0041667

  • 0.8º should be written as 0.8º/360º = 0.00222

To compensate for these values, we should do the following operations:

  1. Write '1' to 0x39D - Digital halls offset compensation index → Selects 90º in the positive direction

  2. Write ‘0.0041667’ to 0x39E - Digital halls offset compensation value → Sets the compensation value for the given angle

  3. Write '7' to 0x39D - Digital halls offset compensation index → Selects 90º in the negative direction

  4. Write ‘0.00222’ to 0x39E - Digital halls offset compensation value → Sets the compensation value for the given angle

  5. Write '1' to 0x39C - Digital halls offset compensation enable → Enables the compensation feature.

  6. Read 0x39F - Digital halls - Last transition angle when transitioning on 90º → Allows to check if the angle applied compensation is the expected one

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.