磁编码器MT6835_SPI读取位置信息
简介
MT6835是麦歌恩微电子推出的新一代基于先进的各向异性磁阻 (AMR) 技术的高速高精度角度编码器芯片。该芯片内部集成了互成45°摆放的两对 AMR 惠斯通电桥组成的敏感元件以及高性能的专用信号处理电路。由于AMR器件在用作角度测量应用的时候工作于饱和区(饱和磁场为300高斯),实际工作时,芯片只对平行于芯片表面的磁场的方向变化做出响应,而与磁场强度无关。因此MT6835在使用过程中,对于磁铁本身的加工误差以及磁铁和芯片的安装距离误差要求相对较低。
-
MT6835提供替代传统光电编码器的增量ABZ输出接口,增量输出最大分辨率为16384脉冲/圈或者是65536步/圈;同时MT6835也提供了增量UVW输出,分辨率支持1~16对极/圈。
-
MT6835提供了4线SPI接口,供上位机或者MCU来读取芯片内部的21位绝对角度数值。同时单线输出的PWM也可提供分辨率为12位的绝对角度数据。
-
MT6835的核心性能提升在于提供了客户端方便的自校准模式,通过自校准模式可以补偿由于磁铁的不理想、结构安装的偏差所带来的各种非线性,从而大大提升INL特性。
应用
- 绝对角度位置传感器
- 直流无刷电机控制
- 伺服电机控制
- 闭环步进电机控制
- 替换部分光电编码器的应用
特性和优势
- 基于先进的AMR各向异性磁阻技术,0~360°绝对角度位置检测
- 21位核心角度分辨率,支持最高120,000转/分钟的转速
- 角度输出延时2微秒~10微秒
- 提供客户端的自动非线性校准模式,无数据交互、自动计算补偿,实现<±0.07°的INL
- -40~125℃温度范围内均可工作
- 可同时支持增量ABZ、增量UVw、PWM绝对值和4线SPI总线输出
- 增量ABZ输出支持1~16,384脉冲/圈,任意整数分辨率客户可编程
- 增量UVW输出支持1对极~16对极任意整数对极客户可编程
- 内置3.3V~5.0V均可编程的EEPROM
参考资料
Cubemx 创建 STM32 工程读取编码器位置信息
SPI2 参数配置
生成工程代码
添加 SPI 读取位置信息代码
MT3865.h 文件
#ifndef _MT6835_H_
#define _MT6835_H_
#include "spi.h"
#include "gpio.h"
#include "Printf.h"
//CMD
#define Read 0x3000
#define Write 0x6000
#define WriteEEPROM 0xC000
#define SetZeroPoint 0x5000
#define ContinuousRead 0xA000
void Read_AngleReg(void);
#endif
MT3865.c 文件
#include "MT6835.h"
void Enable_MT6835(void)
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_RESET);
}
void Disable_MT6835(void)
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_SET);
}
uint32_t Angle;
uint16_t TxData;
uint16_t RxData[3];
void Read_AngleReg(void)
{
Enable_MT6835();
TxData = ContinuousRead|0x0003;
HAL_SPI_TransmitReceive(&hspi2,(unsigned char *)&TxData,(unsigned char *)&RxData,3, 100);
Disable_MT6835();
Angle = (RxData[1]<<5)|(RxData[2]>>11);
printf("%d\n",Angle);
}
编码器位置信息输出
版权声明:本文为qq_39567970原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。