Magnetic angle sensors

MT-6816 A magnetic angle sensor is a contactless electronic device used to measure the rotational position of a shaft or object. It works by detecting the orientation of a magnetic field—usually from a small permanent magnet attached to the rotating part—and converting that physical position into a digital or analog signal.

How It Works

  • The Magnet: A simple dipole (North/South) magnet is mounted on the end or side of a rotating shaft.
  • The Sensing Element: An integrated circuit (IC) is placed close to the magnet. It uses physical phenomena such as the Hall Effect and magnetoresistance (AMR/GMR/TMR) to detect the direction of magnetic flux lines.
  • The Processor: The sensor’s internal logic calculates the precise angle (0° to 360°) based on the field strength across multiple internal axes and outputs that data via interfaces like SPI, I²C, or PWM.

Technical Comparison of Several Typical Magnetic Angle Sensors

FeatureAS5047PAS5600MT6701MT6816MT6835TLE5012B
Max Resolution14-bit (SPI)12-bit (I²C)14-bit (I²C/SSI)14-bit (SPI)21-bit (SPI)15-bit (SSC/SPI)
InterfacesSPI, ABI, UVW, PWMI²C, PWM, AnalogI²C, SSI, ABZ, UVW, PWMSPI, ABZ, UVW, PWMSPI, ABZ, UVW, PWMSSC (SPI), IIF, HSM, PWM
Max Speed (RPM)28,000Low speed (potentiometer)55,00025,000120,000~10,000+
Latency< 1 µs (DAEC)High (I2C)< 5 µs< 2 µs Ultra-lowLow
Accuracy (Typ)±0.34° at speed±0.5° (static)±1.0°High precisionMicro-level±1.0°
Best ForHigh-speed BLDCContactless KnobsGeneral PurposeStandard RoboticsHigh-end ServoAutomotive/Industrial

Key Product Highlights

  • ams OSRAM AS5047P: Noted by experts for its Dynamic Angle Error Compensation (DAEC), which maintains accuracy even at 28,000 RPM.
  • ams OSRAM AS5600: A popular, low-cost choice for contactless potentiometers and battery-powered devices due to its simple I2C interface and low power modes.
  • MagnTek MT6701: Often cited as a superior AS5600 replacement; it offers higher 14-bit resolution and much higher speed support (55k RPM) while remaining affordable.
  • MagnTek MT6835: A high-performance 21-bit sensor that delivers over 2 million steps per revolution, making it ideal for micro-level accuracy in professional robotics.
  • Infineon TLE5012B: Praised for its robustness in extreme environments (-40°C to +150°C) and stable readings under high heat.

Common Sensor Types

  • Hall Effect Sensors: The most widely used type. According to Allegro MicroSystems, these are often integrated into single-chip CMOS solutions like the Allegro A33002, making them cost-effective for general motor control and automotive steering.
  • Anisotropic Magnetoresistance (AMR): These sensors, such as the Honeywell HMC1501, are prized for high precision. A key limitation noted by Infineon is that a standard AMR element is unique only over a 180° range, often requiring additional logic or sensors to achieve full 360° detection.
  • Giant Magnetoresistance (GMR): Based on multi-layer thin films, GMR sensors like the Infineon TLE5012B offer a much higher signal-to-noise ratio than Hall sensors. Experts at Alif Sensor highlight that GMR was a Nobel Prize-winning discovery that allowed for extreme miniaturization.
  • Tunnel Magnetoresistance (TMR): The newest and most advanced type. TDK-Micronas states that TMR sensors (e.g., the TDK TAD2141) provide 500 times the output of a Hall element while consuming significantly less power, making them ideal for battery-operated and high-reliability automotive systems.

MT-6816

MT-6816 The MagnTek MT6816 is a high-speed, 14-bit magnetic angle sensor IC based on advanced Anisotropic Magnetoresistive (AMR) technology. It is specifically designed to provide absolute 0°–360° angle sensing for high-performance applications like BLDC motor control and robotics.

Core Technical Specifications

According to official technical documents from MagnTek and Novosense, the sensor features the following primary specifications:

  • Resolution: 14-bit absolute angle resolution (16,384 steps per revolution).
  • Maximum Speed: Supports rotation speeds up to 25,000 RPM.
  • System Latency: Ultra-low propagation delay of less than 2 µs.
  • Operating Voltage: 3.0V to 5.5V DC.
  • Supply Current: Typically 10mA.
  • Operating Temperature: Industrial range from -40°C to +125°C.
  • Magnetic Flux Density: Operates within a range of 30 mT to 1,000 mT.

MT-6816 Pinout

PinPin NameType
1CSNInputChip Select (Active Low) for SPI communication
2SCKInputSerial Clock input for SPI
3SDOOutputSerial Data Output (MISO) for SPI
4SDI / SDAI/OSerial Data Input (MOSI) for 4-wire SPI, or Data I/O for 3-wire SPI
5TEST / PWMOutputPWM absolute angle output; also used as a factory test pin
6OUT / Z / WOutputZ-index for ABZ mode, or W phase for UVW mode
7VSSPowerGround (0V)
8VDDPowerSupply Voltage (3.0V to 5.5V)

Pin Functionality by Mode

The output pins (Pins 5 and 6) and the SPI pins change behavior based on your interface choice:

  • SPI Mode: Uses Pins 1-4 for data transfer. It supports both 3-wire (sharing SDI/SDO) and 4-wire configurations.
  • Incremental Mode (ABZ): Pin 6 provides the Z (Index) pulse, while internal programming determines which pins output the A and B quadrature signals (often multiplexed on the SPI lines when SPI is not active).
  • Motor Commutation (UVW): Pin 6 provides the W phase, replacing traditional Hall effect sensor signals for brushless motors.

Connection Notes

  • Power Supply: Place a 0.1µF decoupling capacitor as close as possible between VDD (Pin 8) and VSS (Pin 7) to ensure stable readings.
  • Magnet Placement: The magnet should be centered over the SOP-8 package's geometric center for maximum accuracy.
  • SPI Settings: For microcontroller communication, use SPI Mode 3 (CPOL=1, CPHA=1) with MSB first.

Arduino example

To read the 14-bit absolute angle from the MagnTek MT6816 using an Arduino, you use the SPI interface. The sensor requires SPI Mode 3 (CPOL=1, CPHA=1) and a clock speed up to 16MHz.

Arduino Wiring

Connect the MT6816 to your Arduino (e.g., Uno/Nano) as follows:

  • VDD (Pin 8) → 3.3V or 5V
  • VSS (Pin 7) → GND
  • CSN (Pin 1) → D10 (Chip Select)
  • SCK (Pin 2) → D13 (Serial Clock)
  • SDO (Pin 3) → D12 (MISO)
  • SDI (Pin 4) → D11 (MOSI)

Example Sketch

This code initializes the SPI bus and reads the absolute angle from registers 0x03 and 0x04

#include <SPI.h>
 
const int CS_PIN = 10;
const byte READ_REG_03 = 0x83; // Read command for Register 0x03
 
void setup() {
  Serial.begin(115200);
  pinMode(CS_PIN, OUTPUT);
  digitalWrite(CS_PIN, HIGH);
 
  SPI.begin();
}
 
void loop() {
  uint16_t angle = readMT6816();
 
  // Convert 14-bit raw value (0-16383) to degrees (0-360)
  float degrees = (angle * 360.0) / 16384.0;
 
  Serial.print("Raw: ");
  Serial.print(angle);
  Serial.print(" | Angle: ");
  Serial.println(degrees);
 
  delay(100);
}
 
uint16_t readMT6816() {
  // MT6816 requires SPI Mode 3, MSB first, max 16MHz
  SPI.beginTransaction(SPISettings(10000000, MSBFIRST, SPI_MODE3));
 
  digitalWrite(CS_PIN, LOW);
 
  // Step 1: Send read command for the first register
  SPI.transfer(READ_REG_03);
 
  // Step 2: Read two bytes
  uint8_t highByte = SPI.transfer(0x00);
  uint8_t lowByte = SPI.transfer(0x00);
 
  digitalWrite(CS_PIN, HIGH);
  SPI.endTransaction();
 
  // Combine bytes: The 14-bit angle is in highByte and bits [7:2] of lowByte
  uint16_t rawData = (highByte << 8) | lowByte;
  uint16_t angle = (rawData & 0x3FFF); // Mask to 14 bits
 
  return angle;
}

Key Coding Details

  • Register Access: The absolute angle data is stored in registers 0x03 and 0x04. Sending 0x83 (Read bit + address 0x03) allows you to burst-read both bytes.
  • Data Masking: The sensor provides 14-bit data. The result must be masked with 0x3FFF to remove any parity or error flags stored in the remaining bits.
  • Parity Check (Optional): For high-reliability applications, you can verify the parity bit (typically bit 15) to ensure the data wasn't corrupted during transmission.

MT-6835

MT-6835 The MagnTek MT6835 is a fourth-generation magnetic angle encoder IC that significantly improves upon the MT6816, offering higher resolution and specialized calibration features. Based on Anisotropic Magnetoresistive (AMR) technology, it is designed for ultra-high-precision applications such as absolute-value servo motor control and high-speed robotics.

Technical Specifications

According to data from MagnTek and Novosense, the MT6835 features the following core parameters:

  • Resolution: 21-bit absolute angle resolution (over 2 million steps per revolution).
  • Maximum Speed: Supports high-speed rotation up to 120,000 RPM.
  • Accuracy (INL):
    • Factory Default: < ±0.5°.
    • After Self-Calibration: Typical accuracy of ±0.07°.
    • With NLC Mode: Typical accuracy of ±0.02°.
  • System Latency: 2 µs to 10 µs propagation delay.
  • Operating Voltage: 3.0V to 5.5V DC (3.3V to 5.0V typical).
  • Operating Temperature: Industrial range from -40°C to +125°C.

Output Interfaces

The MT6835 provides several independent output modes, making it a versatile replacement for optical encoders:

  • SPI: Standard 4-wire interface supporting up to 16 MHz clock frequency for reading 21-bit angle data.
  • Incremental ABZ: Programmable resolution from 1 to 16,384 lines (pulses per revolution).
  • Incremental UVW: Supports any resolution from 1 to 16 pole pairs.
  • PWM: 12-bit absolute angle output.

MT6835 Pinout

PinPin NameTypeFunction Description
1U / CALOutput/InputU phase for UVW mode; also used as an Auto-Calibration trigger
2VOutputV phase for UVW commutation mode
3WOutputW phase for UVW commutation mode
4VSSPowerGround (0V)
5PWMOutput12-bit Pulse Width Modulation absolute angle output
6AOutputA channel for incremental ABZ quadrature mode
7BOutputB channel for incremental ABZ quadrature mode
8ZOutputZ (Index) pulse for incremental ABZ mode
9MISOOutputMaster In Slave Out for SPI communication (4-wire)
10MOSIInputMaster Out Slave In for SPI communication (4-wire)
11SCKInputSerial Clock for SPI (up to 16MHz)
12CSNInputChip Select (Active Low) for SPI
13VDDPowerSupply Voltage (3.0V to 5.5V)
14VOUTPowerInternal LDO output (typically connected to a decoupling capacitor)
15NCNo Internal Connection (Leave floating)
16NCNo Internal Connection (Leave floating)

Key Hardware Considerations

  • Decoupling: It is critical to place a 100 nF (0.1 µF) capacitor between VDD (Pin 13) and VSS (Pin 4), and another capacitor on the VOUT (Pin 14) pin, for internal voltage stability.
  • Calibration Pin: Pin 1 (CAL) can be used to trigger the built-in self-calibration routine, which is unique to the MT6835 and improves its accuracy to ±0.07°.
  • Independent Outputs: Unlike the MT6816, which often shares pins, the MT6835 allows you to use SPI and ABZ/UVW outputs simultaneously without pin multiplexing conflicts.

MT-6835 Arduino example code

To read the 21-bit absolute angle from the MT6835, you must use the SPI interface. Because 21 bits exceed a standard 16-bit integer, you will need to store the data in a uint32_t.

Wiring (MT-6835 to Arduino)

  • VDD (Pin 13) → 3.3V or 5V
  • VSS (Pin 4) → GND
  • CSN (Pin 12) → D10
  • SCK (Pin 11) → D13
  • MISO (Pin 9) → D12
  • MOSI (Pin 10) → D11

Example code

The MT6835 stores its 21-bit angle across three registers starting at 0x03.

#include <SPI.h>
 
const int CS_PIN = 10;
const byte READ_CMD = 0x83; // Read bit (0x80) + Register address (0x03)
 
void setup() {
  Serial.begin(115200);
  pinMode(CS_PIN, OUTPUT);
  digitalWrite(CS_PIN, HIGH);
 
  SPI.begin();
}
 
void loop() {
  uint32_t rawAngle = readMT6835();
 
  // Convert 21-bit (0 to 2,097,151) to degrees
  float degrees = (rawAngle * 360.0) / 2097152.0;
 
  Serial.print("21-bit Raw: ");
  Serial.print(rawAngle);
  Serial.print(" | Angle: ");
  Serial.println(degrees, 4); // 4 decimal places for precision
 
  delay(50);
}
 
uint32_t readMT6835() {
  // MT6835 SPI: Mode 3, MSB first, up to 16MHz
  SPI.beginTransaction(SPISettings(8000000, MSBFIRST, SPI_MODE3));
  digitalWrite(CS_PIN, LOW);
 
  SPI.transfer(READ_CMD);
  uint32_t b1 = SPI.transfer(0x00); // Bits 20-13
  uint32_t b2 = SPI.transfer(0x00); // Bits 12-5
  uint32_t b3 = SPI.transfer(0x00); // Bits 4-0 + Status bits
 
  digitalWrite(CS_PIN, HIGH);
  SPI.endTransaction();
 
  // Combine the bytes:
  // The 21-bit angle is packed into the 24 bits of data returned.
  // Format: [Byte1: 8 bits][Byte2: 8 bits][Byte3: 5 bits + 3 status bits]
  uint32_t combined = (b1 << 16) | (b2 << 8) | b3;
  uint32_t angle = combined >> 3; // Shift right by 3 to remove status bits
 
  return angle;
}

Critical Implementation Details

  • Bit Packing: The sensor returns 3 bytes (24 bits). The top 21 bits are the angle, while the bottom 3 bits are status flags (like No-Magnet or Over-speed errors).
  • SPI Mode: Like its predecessor, the MT6835 uses SPI Mode 3. If you get oscillating or “garbage” data, double-check your CPOL/CPHA settings.
  • High Resolution: Because 21-bit resolution is extremely sensitive (0.00017° per step), even tiny vibrations or magnetic noise will cause the last few digits to flicker.

Sensor topics on lamaPLC

PageDateTags
2026/02/07 20:04, , , , , , , , ,
2026/02/10 19:23, , , , , , , , , ,
2026/02/08 21:15, , , , , , , , ,
2026/02/13 22:13, , , , , , , , , , , ,
2026/02/10 16:04, , , , , , , , , , , , ,
2026/02/09 13:15, , , , , , , , , , , ,
2026/02/11 22:48, , , , , , , ,
2026/02/13 15:19, , , , , , , , , , ,
2026/02/13 21:22, , , , , , , , , ,
2026/02/13 20:41, , , , , , , , , , ,
2026/02/13 23:02, , , , , , , , , , , , ,
2026/02/13 16:09, , , , , , , , , , , , ,
2026/02/12 18:55, , , , ,
2026/02/09 13:25, , , , , , , , , , ,
2026/02/09 13:17, , , , , , , , ,
2026/02/08 22:23, , , , , , , ,
2025/10/09 20:52, , , , , ,
2025/05/31 21:32, , , , , , , ,
2026/02/09 13:34, , , , , , , , , , , , , ,
2023/07/01 15:29, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2026/02/09 13:31, , , , , , , , , , , , , , , , , , , ,
2026/02/09 15:21, , , ,
2026/02/09 13:55, , , , , , , , , , , , , , , ,
2026/02/09 13:39, , , , , , , , , , , , , , , , , , , , , , , , ,
2026/02/15 23:15, , , , , , , , , , ,
2026/02/11 19:34, , , , , , , , , , ,
2026/02/11 19:25, , , , ,
2026/02/10 19:04, , , ,
2026/02/12 19:34, , , , , , ,
2025/12/10 17:07, , , , , , , , , ,
2026/02/15 17:05, , , , , , , , , , ,
2026/02/15 17:49, , , , , , , , , , , , , , , , , ,
2026/02/09 13:42, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2026/02/15 15:52, , , , , , , ,
2026/02/10 18:52, , , , , , , ,
2025/09/23 16:59, , , , ,
2025/12/10 17:08, , , , , , ,
2026/02/11 17:58, , , , , ,
2026/02/11 17:22, , , , , , , , , , ,
2026/02/08 23:27, , , , , , , , , , , , , , , ,
2026/02/09 13:48, , , , , , , , , , , , , ,
2026/02/15 21:28, , , , , , , , , , , , , , , , , , , , , , , ,
2026/02/09 16:09, , , , , , , , , , , , ,
2023/06/24 22:43, , , , , ,
2026/02/09 15:44, , , , , , , , , , ,
2026/02/09 15:56, , , , , , , ,
2026/02/10 19:49, , , , ,
2026/02/11 19:09, , , , , , , , ,
2026/03/05 19:39, , , , , , , , , , , , , , , , ,
2026/02/09 13:04, , , , , ,
2025/12/10 17:50, , , ,
2025/11/09 17:38, , , , , , , ,




This page has been accessed for: Today: 2, Until now: 2