TLE5012B磁编码器 - 用户手册摘要&解析
TLE5012B磁编码器 - 用户手册摘要&解析
官网:
TLE5012B E1000 - Infineon Technologies
用户手册:
MGE - 角度位置和范围


MGE - 校准



自动校准使在线参数计算,因此减少角度误差由于温度和TLE5012B是一种预校准传感器;
在启动时,存储在激光引信中的参数被加载到触发器中。在工作过程中,TLE5012B需要1.5转才能产生新的自动校准参数。参数根据通过AUTocAL位(模式2寄存器)选择的模式更新新的自动校准参数。参数以平滑的方式更新,以避免输出上的角度跳跃;在选择的范围或时间内,只会改变一个LSB (Least-Significant Bit)。一旦参数更新,新的自动校准参数生成开始,因为自动校准是连续进行的。
AUTOCAL模式:
00:无自动校准
01:自动校准模式参数在每次更新时间(取决于FIR_MD设置)由一个LSB更新,直到达到新的自动校准参数值。
10:自动校准模式参数仅由一个LSB更新。更新后,自动校准将再次计算新参数。
11:自动校准模式在11.25°的每个角度范围内更新一个LSB参数,直到达到新的自动校准参数值。
图4-3 自动校正参数自动校准模式1是校正参数最快的模式。模式2是最慢的方法,但由于参数仅以一位数字更新,因此它提供了对损坏的最大值-最小值对的鲁棒性(例如,在尖峰的情况下)。
Autocalibration可用性条件:
自动校准算法依赖于传感元件的原始X和y信号的最大值和最小值的收集,因此它适用于转子连续转动(完整360°旋转)的应用。为了避免温度漂移引起的误差,只有在温度变化不超过5开尔文的情况下,才从这些最小值和最大值计算偏移和幅度同步误差的补偿参数。为了使传感器在自动校准模式下准确,必须确保在应用中经常更新校准参数。因此,自动校准只应用于在温度恒定在5开尔文内的情况下,磁铁定期旋转至少一个完整匝(内部TLE5012B检查完整匝需要最大1.5转)。
启用/禁用自动校准:
当开启或关闭自校准开关时,TLE5012B可能会在状态寄存器中错误触发S_FUSE错误位,这是一个配置CRC错误,并且在SSC通信的安全字中永久显示。当自动校准是ON并且必须禁用时:在禁用自动校准之前,为自动校准写正确的CRC。这样,当第一次运行时CRC检查再次完成时,传感器将看到一致的状态,并且不会发生CRC错误。正确的CRC必须在微控制器端计算。当自动校准为OFF并且必须启用或刚刚重新启动时:在切换自动校准模式ON后,应该在三个更新周期后通过SSC读取状态寄存器,并且应该忽略发生的S_FUSE错误。
MGE - 修改默认参数
如果启用了自动校准,则更改TLE5012B的默认配置在启用自动校准时更改某些TLE5012B默认配置可能导致自动校准参数损坏。
因此,在改变角度方向(MOD_2寄存器上的ANG_DIR位),预测(MOD_2寄存器上的PREDICT位)或角度基(MOD_3寄存器上的ANG_BASE位)之前禁用自动校准。一旦这些参数被改变,再次启用自动校准。
改变角度方向的初始化顺序如表4-1所示。该序列也适用于预测和角基。在角基的情况下,为了重新配置新的角基值,需要在第一次写入之后进行额外的写入。


MGE - 角度超前预测
TLE5012B带有角度超前预测,使用角度超前预测可以一定程度上弥补控制延时,控制延时可能有采样率,MCU的处理控制时间
在控制系统中角度的采样到处理输出有一段时间,这一段时间电机也会移动,等到输出时,电机已经不是之前的位置,进而影响系统性能
使用超前预测可以进一步提升系统的响应性能
PS:需要注意预测模式在过零情况时的处理

MGE - SPI 通信
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; // SPI1--双线全双工!! SPI_InitStructure.SPI_Mode = SPI_Mode_Master; SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b; // 16位数据 SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; // CPOL=0 SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; // CPHA=1 SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; // NSS 信号由软件管理 SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8; // 8--9MHz SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_InitStructure.SPI_CRCPolynomial = 7; // CRC 值计算的多项式 SPI_Init(SPI1, &SPI_InitStructure); SPI_Cmd(SPI1, ENABLE);
时序 - 物理
时序要求:TLE5012B

数据 - 通信

命令字段
TLE5012B与微控制器之间的通信通常由命令字发起。的命令字的结构如表5-4所示,其中Update (UPD)位允许访问当前值或更新值。如果发出更新命令并设置了UPD位,则立即值将同时存储在更新缓冲区中。这样可以同时对所有必要的系统参数进行快照。具有更新缓冲区的位在寄存器描述的Type列中用“u”标记。第35页描述了这种更新的初始化。


安全字段

BIT类型

MGE - 寄存器表
有22个记录在案的寄存器,但只有少数与读取数据或配置TLE5012B相关。许多额外的特性也被记录下来,可能只在非常特殊的情况下使用。在下面的位图中,可以识别出相关的位。
最重要的部分是用绿色、橙色和灰色标出的部分。
- 绿色位包含计算数据;亮绿色的部分是额外的数据,可能只与某些特定的应用程序相关。
- 橙色位是配置参数,如果默认值不符合要求,可以修改配置参数。
- 如果将几个设备(传感器)连接到同一个主机(微控制器),则暗橙色位是相关的。
- 灰色部分与诊断有关,以满足功能安全的要求。
- 黄色位用于自动校准和校准值。
- 最后,如果需要,紫色位标记可以配置的额外功能。





AVAL 角度数据 寄存器

如何正确计算角度数据
默认情况下,角度范围(ANG_RANGE)被设置位0x080,也就是正负180度
直接将原始角度数据 0 ~ 32767 映射到 0° ~ 360° 上可能会出问题
数据类型是 有符号的15位数据(补码),不能够直接放入计算机进行计算,因此需要将15位数据转化成16位数据进行计算
转换思路:将带有15位角度数据的 uint16_t 数据进行移位使其变成 16位数据,此时由于是 uint16_t 无符号类型,所有编译器会进行逻辑移位(数据不会改变),然后将其强制转换为 int16_t ,再进行右移。由于此时数据已经强制转化为有符号的16位数据,进行右移就是算术右移,也就是除以2。最终得到的就是扩充到16位的角度数据
转换程序:(转换程序描述了 15位角度数据所有可能的情况,并将其转化为角度,输出到txt文件中)
#include <stdio.h>
#include <stdint.h>
FILE *fpout = NULL;
//存入原始角度数据
uint16_t angleVel = 0x0;
int16_t angleVel_16 = 0;
int main(){
fpout = fopen("TLE5012B_AngleTest.txt", "w+");
float angle ;
for(angleVel=0;angleVel<0x7FFF;angleVel++){
//核心部分
angleVel_16 = ((int16_t)(angleVel << 1)) >> 1;
angle = 360.0f/(1<<15) * angleVel_16;
fprintf(fpout, "%f\n", angle);
// printf("%f\n",angle);
}
fclose(fpout);
}




浙公网安备 33010602011771号