TIDUF97 September   2024

 

  1.   1
  2.   Description
  3.   Resources
  4.   Features
  5.   Applications
  6.   6
  7. 1System Description
    1. 1.1 Key System Specifications
  8. 2System Overview
    1. 2.1 Block Diagram
    2. 2.2 Design Considerations
    3. 2.3 Highlighted Products
      1. 2.3.1 TMAG6180-Q1
      2. 2.3.2 MSPM0G3507
      3. 2.3.3 THVD1454
  9. 3System Design Theory
    1. 3.1 Hardware Design
      1. 3.1.1 Angle Sensor Schematic Design
      2. 3.1.2 MSPM0G3507 Schematic Design
      3. 3.1.3 RS485 Transceiver Schematic Design
      4. 3.1.4 Power Supply and Reference Voltage
    2. 3.2 Software Design
      1. 3.2.1 Angle Calculation Timing
      2. 3.2.2 Rotary Angle Calculation
      3. 3.2.3 Rotary Angle Error Sources and Compensation
      4. 3.2.4 Encoder Communication Interface
  10. 4Hardware, Software, Testing Requirements, and Test Results
    1. 4.1 Hardware Requirements
      1. 4.1.1 PCB Overview
      2. 4.1.2 Encoder and JTAG Interface
      3. 4.1.3 Software Requirements
    2. 4.2 Test Setup
    3. 4.3 Test Results
      1. 4.3.1 AMR Sensor Sin and Cos Outputs Measurement
      2. 4.3.2 Static Angle Noise Measurement
      3. 4.3.3 Rotary Angle Accuracy Measurement
        1. 4.3.3.1 Impact of Airgap on Noise, Harmonics, and Total Angle Accuracy
      4. 4.3.4 RS485 Interface and Signal Integrity
  11. 5Design and Documentation Support
    1. 5.1 Design Files
      1. 5.1.1 Schematics
      2. 5.1.2 BOM
      3. 5.1.3 PCB Layout
      4. 5.1.4 Altium Project Files
      5. 5.1.5 Gerber Files
      6. 5.1.6 Assembly Drawings
    2. 5.2 Tools and Software
    3. 5.3 Documentation Support
    4. 5.4 Support Resources
    5. 5.5 Trademarks
  12. 6About the Authors

Rotary Angle Calculation

TIDA-010947 Angle Calculation Flow ChartFigure 3-6 Angle Calculation Flow Chart

Since AMR sensors generate two sine and cosine periods over one mechanical revolution, additional sensing is required to distinguish between 0° to 180° and 180° to 360°. Therefore the TMAG6180 integrates two X,Y Hall switches, which help to extend the angle range from 180° to 360° using Q0 and Q1 outputs. The angle calculation flow chart is shown in Figure 3-6 and the example code in the following:

//----------------------------------------------------------------------
//Angle calculation
//----------------------------------------------------------------------
//comp0[0] = _IQ(0)
//comp0[1] = _IQ(1)
//comp1[0] = _IQ(1)
//comp1[1] = _IQ(0)
//----------------------------------------------------------------------
    SinCosInput.SinCos.Sin = SinCosInput.SinCos.Sin - Adc16bitOffset;
    SinCosInput.SinCos.Cos = SinCosInput.SinCos.Cos - Adc16bitOffset;
//ATAN2 calculation
    DL_MathACL_startArcTan2Operation(MATHACL, &gAtanOpConfig, SinCosInput.SinCos.Sin, SinCosInput.SinCos.Cos);
    DL_MathACL_waitForOperation(MATHACL);
    SinCosOutput.PhasePU = DL_MathACL_getResultOne(MATHACL);
    angle = _IQ(0.25) - (SinCosOutput.PhasePU>>1);
// Extend to 360 deg. 90 degree ~ 0.25, 45 degree ~ 0.125, 135 ~ 0.375
    if((angle <= _IQ(0.375)) && (angle>_IQ(0.125)))
        absangle=comp0[TMAG_Q0]+angle;
    else
    {
          if (angle>_IQ(0.375))
              absangle=comp1[TMAG_Q1]+angle;
          else
              absangle=_IQ(0.5)-comp1[TMAG_Q1]+angle;
    }