ZHCSOQ3 September   2021 TMAG5170

PRODUCTION DATA  

  1. 特性
  2. 应用
  3. 说明
  4. 修订历史记录
  5. 引脚配置和功能
  6. 规格
    1. 6.1 绝对最大额定值
    2. 6.2 ESD 等级
    3. 6.3 建议运行条件
    4. 6.4 热性能信息
    5. 6.5 电气特性
    6. 6.6 磁特性
    7. 6.7 上电时序
    8. 6.8 SPI 接口时序
    9. 6.9 典型特性
  7. 详细说明
    1. 7.1 概述
    2. 7.2 功能方框图
    3. 7.3 特性说明
      1. 7.3.1 磁通量方向
      2. 7.3.2 传感器位置
      3. 7.3.3 磁场范围选择
      4. 7.3.4 更新速率设置
      5. 7.3.5 ALERT 功能
        1. 7.3.5.1 中断和触发模式
        2. 7.3.5.2 磁性开关模式
      6. 7.3.6 阈值计数
      7. 7.3.7 诊断
        1. 7.3.7.1  存储器 CRC 校验
        2. 7.3.7.2  ALERT 完整性检查
        3. 7.3.7.3  VCC 检查
        4. 7.3.7.4  内部 LDO 欠压检查
        5. 7.3.7.5  数字内核上电复位检查
        6. 7.3.7.6  SDO 输出检查
        7. 7.3.7.7  通信 CRC 校验
        8. 7.3.7.8  振荡器完整性检查
        9. 7.3.7.9  磁场阈值检查
        10. 7.3.7.10 温度警报检查
        11. 7.3.7.11 模拟前端 (AFE) 检查
        12. 7.3.7.12 霍尔电阻和开关矩阵检查
        13. 7.3.7.13 霍尔偏移检查
        14. 7.3.7.14 ADC 检查
    4. 7.4 器件功能模式
      1. 7.4.1 工作模式
        1. 7.4.1.1 活动模式
        2. 7.4.1.2 待机模式
        3. 7.4.1.3 配置模式(默认)
        4. 7.4.1.4 睡眠模式
        5. 7.4.1.5 唤醒和睡眠模式
        6. 7.4.1.6 深度睡眠模式
    5. 7.5 编程
      1. 7.5.1 数据定义
        1. 7.5.1.1 磁传感器数据
        2. 7.5.1.2 温度传感器数据
        3. 7.5.1.3 磁传感器偏移校正
        4. 7.5.1.4 角度和幅度定义
      2. 7.5.2 SPI 接口
        1. 7.5.2.1 SCK
        2. 7.5.2.2 CS
        3. 7.5.2.3 SDI
        4. 7.5.2.4 SDO
          1. 7.5.2.4.1 常规 32 位 SDO 读取
          2. 7.5.2.4.2 特殊 32 位 SDO 读取
        5. 7.5.2.5 SPI CRC
        6. 7.5.2.6 SPI 帧
          1. 7.5.2.6.1 32 位读取帧
          2. 7.5.2.6.2 32 位写入帧
    6. 7.6 寄存器映射
      1. 7.6.1 TMAG5170 寄存器
  8. 应用和实施
    1. 8.1 应用信息
      1. 8.1.1 选择灵敏度选项
      2. 8.1.2 磁体的温度补偿
      3. 8.1.3 传感器转换
        1. 8.1.3.1 连续转换
        2. 8.1.3.2 触发器转换
        3. 8.1.3.3 伪同步采样
      4. 8.1.4 线性测量过程中的误差计算
      5. 8.1.5 角度测量过程中的误差计算
    2. 8.2 典型应用
      1. 8.2.1 设计要求
        1. 8.2.1.1 角度测量的增益调整
      2. 8.2.2 详细设计过程
      3. 8.2.3 应用曲线
    3. 8.3 注意事项
  9. 电源相关建议
  10. 10布局
    1. 10.1 布局指南
    2. 10.2 布局示例
  11. 11器件和文档支持
    1. 11.1 接收文档更新通知
    2. 11.2 支持资源
    3. 11.3 商标
    4. 11.4 Electrostatic Discharge Caution
    5. 11.5 术语表
  12. 12机械、封装和可订购信息

封装选项

机械数据 (封装 | 引脚)
散热焊盘机械数据 (封装 | 引脚)
订购信息

SPI CRC

TMAG5170 对 SPI 通信执行强制 CRC。数据完整性在两个方向上都由一个涵盖传入和传出 32 位消息内容的 4 位 CRC 保持。每个 32 位 SPI 帧的四个 LSB 位专用于 CRC。CRC 代码由多项式 x4 + x + 1 生成。使用 b1111 初始化 CRC 位。

在 SDI 写入帧期间,TMAG5170 会在执行写入指令之前读取 CRC 数据。如果帧中存在任何 CRC 错误,则会忽略来自控制器的写入指令。在 SDI 常规读取帧期间,TMAG5170 开始在同一帧中通过 SDO 线路发送请求的数据,并通过 ERROR_STAT 位向控制器通知发生的任何错误。如果器件在 SDI 线路中检测到 CRC 错误,则器件将反转同一帧中 SDO CRC 的最后一位,以立即向控制器发出信号,表明 SPI 通信受到影响。控制器还可以通过检查下一个常规读取帧中的 STATUS11 位来确定 SDI 帧中是否存在 CRC 错误。

注: TMAG5170 上电时的默认模式是启用 CRC。启用 CRC 后,如果未接收到正确的 CRC 代码,器件将忽略所有 SDI 命令。要在 SDI 线路上禁用 CRC,请发送 SPI SDI 命令 x0F000407。
GUID-20200907-CA0I-RDK2-ZQFH-KSPBLPW4PZHM-low.gif图 7-13 4 位 CRC 计算

使用以下 XOR 函数公式来计算 4 位 CRC。图 7-13 介绍了这些公式中的符号。

Equation10. c r c [ 0 ]   =   d [ 30 ]   ^   d [ 26 ]   ^   d [ 25 ]   ^   d [ 24 ]   ^   d [ 23 ]   ^   d [ 21 ]   ^   d [ 19 ]   ^   d [ 18 ]   ^   d [ 15 ]   ^   d [ 11 ]   ^   d [ 10 ]   ^   d [ 9 ]   ^   d [ 8 ]   ^   d [ 6 ]   ^   d [ 4 ]   ^   d [ 3 ]   ^   d [ 0 ]   ^   c r c i [ 2 ]
Equation11. c r c [ 1 ]   =   d [ 31 ]   ^   d [ 30 ]   ^   d [ 27 ]   ^   d [ 23 ]   ^   d [ 22 ]   ^   d [ 21 ]   ^   d [ 20 ]   ^   d [ 18 ]   ^   d [ 16 ]   ^   d [ 15 ]   ^   d [ 12 ]   ^   d [ 8 ]   ^   d [ 7 ]   ^   d [ 6 ]   ^   d [ 5 ]   ^   d [ 3 ]   ^   d [ 1 ]   ^   d [ 0 ]   ^   c r c i [ 2 ]   ^   c r c i [ 3 ]
Equation12. c r c [ 2 ]   =   d [ 31 ]   ^   d [ 28 ]   ^   d [ 24 ]   ^   d [ 23 ]   ^   d [ 22 ]   ^   d [ 21 ]   ^   d [ 19 ]   ^   d [ 17 ]   ^   d [ 16 ]   ^   d [ 13 ]   ^   d [ 9 ]   ^   d [ 8 ]   ^   d [ 7 ]   ^   d [ 6 ]   ^   d [ 4 ]   ^   d [ 2 ]   ^   d [ 1 ]   ^   c r c i [ 0 ]   ^   c r c i [ 3 ]
Equation13. c r c [ 3 ]   =   d [ 29 ]   ^   d [ 25 ]   ^   d [ 24 ]   ^   d [ 23 ]   ^   d [ 22 ]   ^   d [ 20 ]   ^   d [ 18 ]   ^   d [ 17 ]   ^   d [ 14 ]   ^   d [ 10 ]   ^   d [ 9 ]   ^   d [ 8 ]   ^   d [ 7 ]   ^   d [ 5 ]   ^   d [ 3 ]   ^   d [ 2 ]   ^   c r c i [ 1 ]

下面显示了用于计算 4 位 CRC 的示例代码。

function logic [3:0] calculate_crc4;
   input logic [27:0] frame;

   logic [31:0]       padded_frame;
   logic [3:0] 	      frame_crc;
   logic 	      inv;
   integer 	      i;

   padded_frame = {frame, 4'b0000};
   
   begin
      frame_crc = 4'hf; // initial value
      for (i=31; i >= 0; i=i-1) begin
	 inv = padded_frame[i] ^ frame_crc[3];
	 frame_crc[3] = frame_crc[2];
	 frame_crc[2] = frame_crc[1];
	 frame_crc[1] = frame_crc[0] ^ inv;
	 frame_crc[0] = inv;
      end
      return frame_crc;
   end
endfunction