A1340, A1341, and A1343 Sensor Temperature Compensation

Download PDF version

By Nevenka Kozomora and Jesse Lapomardo,
Allegro MicroSystems, LLC

Introduction

Sensor output can change over temperature due to sensor imperfections or temperature-dependent properties of the magnetic system. The purpose of applying temperature compensation inside the sensor is to keep the sensor output value independent of the temperature and only dependent on the input magnetic field strength.

Implementation

Allegro sensors allow the customer to change how the sensor responds to temperature deviations through the use of sensor temperature compensation coefficients. These coefficients are part of the sensor temperature algorithm implemented in the Temperature Compensation Block shown in Figure 1.

Figure 1: Temperature Compensation Block (Offset and Sensitivity Adjustment)
Figure 1: Temperature Compensation Block (Offset and Sensitivity Adjustment)

 

The transfer function of the temperature compensation block is given as the following equation:

VOUT (V) = SENS(ΔTA) × VIN (V) + OFFSET(ΔTA) (1)
where TA is ambient temperature, and ΔTA= TA – 25°C.

The Sensitivity Temperature Compensation, labeled as SENS(ΔTA), is used to manipulate the effect of temperature on the gain that the sensor applies on the input magnetic signal.The Sensitivity Temperature Compensation is described as a polynomial function of second order:

SENS(ΔTA) =
[TC1_SENS (m%/°C) × ΔTA (°C) +
TC2_SENS (m%/°C2) × (ΔTA)2 (°C) + 1 ] (2)

where SENS(ΔTA) at some temperature T is actually calculated as:

(SENS at 25°C) / (Recorded SENS @ T°C) (3)

The user-programmable parameters are described in the following table:

Table 1: Input Variables of Sensitivity Compensation
Parameter   Definition    Unit
 TC1_SENS First-order gain temperature coefficient. Coefficient applied to
the first order term of the sensitivity change over temperature.
 m%/°C
 TC2_SENS Second-order gain temperature coefficient. Coefficient applied
to the second order term of the sensitivity change over temperature.
 m%/°C2
 

 

Applying Compensation Coefficients, TC1_SENS and TC2_SENS, as calculated will result in a temperature-independent gain applied to the sensor’s input signal. It is important to keep in mind that there two sets of these parameters—one to compensate for temperatures below 25°C and one for temperatures above 25°C.

The Offset Temperature Compensation, labeled as OFFSET(ΔTA), is used to change the temperature behavior of the offset that the sensor applies on the input magnetic signal. The equation for OFFSET(ΔTA) is described as a linear first-order function:

OFFSET(ΔTA) =
TC1_OFFSET (mG/°C)× ΔTA (°C) ×
DIV_SENS_COARSE (mV/G) (4)

where OFFSET(ΔTA) at some temperature T is actually calculated as:

OFFSET(ΔTA) = (OFFSET @ 25°C) –
(Recorded OFFSET @ T°C) (5)

Applying the coefficient TC1_OFFSET as calculated would result in temperature-independent offset behavior.

In the case of the A1343 device, parameter DIV_SENS_COARSE is not applicable since the temperature compensation algorithm is not accounting for this parameter.

Table 2: Input Variables of Offset Compensation

Parameter   Definition   Unit
 TC1_OFFSET  First-order offset temperature coefficient. Coefficient applied to the first-order term of the offset change over temperature. mG/°C 
 DIV_SENS_COARSE  Offset Compensation coefficient for different magnetic ranges. It changes respectively to the change of magnetic field. It is equal to 1 for value of ±500 G. For example if field range changed to ±300 G, coefficient value will be 3/5.  mV/G

 

Calculating Sensitivity Compensation

Allegro sensors are often used with permanent magnets of unknown field strength at the specific operating positions. Therefore exact calculation of the system Sensitivity per gauss is impossible. However, Sensitivity can be calculated with respect to device position.

In the example below, the user collects device output at two different points in the movement range. Position 1 is at –10 degrees and Position 2 is at +10 degrees.

Table 3: Example of Device Output

 Temperature
(°C)
 Sensor with Analog Output  Sensor with PWM Output Sensor with SENT Output 
 Sensor Output
@ Position 1
(V)
 Sensor Output
@ Position 2
(V)
 Sensor Output
@ Position 1
(%D)
 Sensor Output
@ Position 2
(%D)
 Sensor Output
@ Position 1
(LSB)
 Sensor Output
@ Position 2
(LSB)
–40  0.354   4.548   8.0   91.9   139   3955
 –20   0.394   4.532   8.6   91.3   165   3929
 0   0.435    4.514  9.2   90.8   191   3902
 25   0.500   4.501   10   90   227   3867
 50   0.546   4.481   10.7   89.4   257   3837
 75   0.614   4.459   11.6   88.5   298   3796
 100   0.693   4.427   12.7   87.4   349   3746
 125   0.790   4.393   14.1   86.1   408   3686
 150     0.883   4.342   15.5  84.7  474   3621

  
  

Figure 2: Output Voltages Changing with Temperature
Figure 2: Output Voltages Changing with Temperature

 

 

The Sensitivity throughout the temperature range can be calculated as:

SENS = (VOUT @ Position 2 – VOUT @ Position 1)
/ (Position 2 – Position 1)   (6)


Table 4

Temperature
(°C) 
Sensitivity
(V/°C) 
Sensitivity
(%D/°C) 
 Sensitivity
(LSB/°C)
 –40
 0.210   4.19   190.78
 – 20   0.207  4.14   188.23
 0  0.204  4.08   185.55
 25   0.200    4  182.00
 50   0.197    3.93  179.00
 75   0.192   3.84   174.90
 100  0.187  3.73   169.85
 125   0.180   3.60   163.90
 150   0.173   3.46   157.35 

 

In order to calculate the compensation function SENS(ΔTA) versus ΔTA values, apply equation 3 on the recorded data in Table 4. The equation effectively performs an inverted normalization with respect to 25°C. The resulting data is presented in the table below (note that the temperature values now appear as ΔTA values, representing deviation from 25°C):

Table 5: Normalized Inverse Sensitivity vs. Temperature

  ΔTA
(°C) 
 Normalized Inverse
Sensitivity
 (cold)  –65   0.954
 –45   0.967
 –25   0.981
 0  1.000
 (hot)  25  1.017
 50  
 1.041
 75  1.072
 100  1.110
 125  1.157

 
The graphical representation of Table 5 is given in Figure 3:

AN296122 Figure 3
Figure 3: Normalized Inverse Sensitivity over Temperature

 

Since Allegro sensors have different temperature coefficient codes for compensation at hot and cold temperatures, the above curve is divided into two regions. The hot region, from ΔTA of 0°C and above, is described with the following equation: SENS(ΔTA) = 1.408E-06x2 + 7.994E-04x + 1.000. The cold region, below ΔTA of 0°C on the x-axis, is governed by the equation: SENS(ΔTA) = 5.941E-06x2 + 5.094E-04x + 1.000.

The programmable coefficients can now be calculated from the above equations. Note that to convert to m%, a factor of 105 should be introduced.

Table 6: Calculated Temperature Compensation Coefficients

Coefficients
Hot 
 Value  Coefficients
Cold 
Value 
 TC1_SENS_HOT
(m%/°C)
 79.94  TC1_SENS_CLD
(m%/°C)
 50.94
 TC2_SENS_HOT
(m%/°C2)
 0.1408  TC2_SENS_CLD
(m%/°C2)
 0.5941

 

Programming Sensitivity Coefficients

Calculated values for the temperature adjustment can be entered in the software directly under the “Value” column, or the user can calculate the code manually and enter it under the “Code” column.
If the user enters the desired coefficient under the “Value” column, then the software will round the actual number to the closest discrete value offered in the device. For example, TC2_SENS_CLD is calculated as 0.5941 m%/°C2, but the program rounded to the 0.593 m%/°C2. The software automatically calculates the code based on the TC2_SENS_CLD value, the step size of that register, and also the transfer function between the value and the code.

AN296122 Figure 4
Figure 4: Second-Order Temperature Parameter Entries in Programmer

 

AN296122 Figure 5
Figure 5: First-Order Temperature Parameter Entries in Programmer

 

In the case that the user would like to calculate the necessary codes, the table below, extracted from the datasheet, can be used as a guideline. The needed value of 0.5941 m%/°C2 would be divided by 0.00596 m%/°C2, the typical step size, to get to the needed code of 99.

AN296122 Figure 6
Figure 6: Second-Order TC Parameter Description from Datasheet


 

Calculating Offset Compensation

In the application, linear sensors often see a magnetic field in all positions or often the customer cannot determine in which position the field will be equal to 0. However, reading the device output in two application positions can help to determine the needed sensitivity of the sensor which then helps to calculate the offset as: (VOUT @ Position 2 – Position 2 × Sensitivity). This is shown in Table 7 below:

Table 7: Voltage Offset Over Temperature

Temperature
(°C) 
Offset
(V) 
 Offset
(%)
 Offset
(LSB)
–40
 2.45   49.95   2047
–20   2.46   49.96   2047
 0  2.47   49.97   2047
 25   2.5   50.00   2047
 50   2.51   50.01   2047
 75  2.53   50.04   2047
 100    2.56   50.06   2047
 125  2.6   50.09   2047
 150   2.61   50.11   2047

 

Once the offset at each temperature is obtained, the correction curve is calculated using equation 5.

 

AN296122 Figure 7
Figure 7: Negative Offset Correction Curve

 

From Figure 7, it can be seen that offset over temperature can be calculated as

OFFSET(ΔTA) = –0.0009 × ΔTA + 0.0004.
The recorded behavior is in mV/°C and represents the formula:
OFFSET(ΔTA) = TC1_OFFSET (mG/°C) × ΔTA (°C)
× DIV_SENS_COARSE (mV/G).

The constant term of 0.0004 is close to zero, so it can be ignored. The function gain of 0.0009 is the product of TC1_OFFSET (mG/°C) × DIV_SENS_COARSE (mV/G), so it is necessary to divide the gain number with DIV_SENS_COARSE (mV/G), which depends on the chosen magnetic coarse range. If the chosen range were 250 G, then the parameter DIV_SENS_COARSE (mV/G) has value of 0.5.

Table 8: Offset Coefficient Value

Offset Coefficient   Value
 TC1_OFFSET (mG/°C) for +/-250 G range  0.0009 / 0.5 = –0.002

 

Programming Sensitivity Coefficients

Calculated values for the temperature adjustment can be entered in the software directly under the “Value” column, or the user can calculate the code manually and enter it under the “Code” column.

AN296122 Figure 8
Figure 8: Negative Offset Correction Curve

 

In the case that the user would like to calculate the necessary codes, the table below, extracted from the datasheet, can be used as a guideline

 

AN296122 Figure 9
Figure 9: TC1_OFFSET Parameter Description from Datasheet

 

 

.

Copyright © 2017 Allegro MicroSystems, LLC

Sitemap  |  Privacy Policy  |  Contact Webmaster

Follow us on: LinkedIn YouTube Google+ Follow Allegro on Twitter

Careers   |   Contact Sales   |   Home   |   Legal   |   Quality & Environment   |   Request Samples