AN137 - 使用 MagAlpha 串行接口的高级功能



下载PDF版本

每月为您发送最具参考价值的行业文章

订阅

我们会保障您的隐私



简介

MagAlpha 串行接口具有一些未在数据手册中列出的高级功能。本应用说明将介绍这些功能并说明使用方法。

奇偶校验位(SPI 和 SSI)

奇偶校验位,也称校验位,是在一串二进制代码中添加一个bit位以确保该字符串中 “1” 的总数为偶数(见表 1)。奇偶校验位被用作检错码。MagAlpha 在第 17 个时钟沿传输奇偶校验位。

16位角度值 设置为”1”的bit位数 16 位角度值 + 1 位奇偶校验值
0000000000000000 0 00000000000000000
1000110001100010 6 10001100011000100
1000110001100011 7 10001100011000111
0101110100000000 5 01011101000000001

表 1:奇偶校验位的行为概述 16 位角度值



图 1图 4显示了带与不带奇偶校验位的 SPI 和 SSI 帧。



Figure 1: SPI Frame without Parity Bit

图 1:没有奇偶校验位的 SPI 帧

Figure 2: SPI Frame with Parity Bit

图 2:带奇偶校验位的 SPI 帧



Figure 3: SSI Frame without Parity Bit

图 3:没有奇偶校验位的 SSI 帧

Figure 4: SSI Frame with Parity Bit

图 4:带奇偶校验位的 SSI 帧

串联读/写寄存器(仅限 SPI)

将多个读或写寄存器命令串联在一起可以节省时间。要将读/写帧串联在一起,只需在读取前一个寄存器值的同时发送下一个读/写命令即可。

序列中的最后一个 SPI 帧必须向 MagAlpha 发送 0x0000,以将传感器设置为角度回读模式(参见图 5)。这样,下一个角度读取操作才能返回角度值,而不是寄存器值。

Figure 5: SPI Last Concatenated Frame of the Sequence Must Send 0x0000 Value to the Sensor

图 5:SPI 序列的最后一个串联帧必须向传感器发送 0x0000 值

图 6 至图 9展示了SPI 和 SSI 协议的标准读/写命令与串联命令之间的区别。

Figure 6: SPI Standard Read Command

图 6:SPI 标准读取命令

Figure 7: SPI Concatenated Read Commands

图 7:SPI 串联读取命令

Figure 8: SPI Standard Write Command

图 8:SPI 标准写命令

Figure 9: SPI Concatenated Write Commands

图 9:SPI 串联写命令

使用 SPI 主机仿真 SSI 读取角度

使用 SPI 接口模式 2(CPOL 1、CPHA 0)可以仿真 SSI 主机(参见表 2 和表 3)。

但请注意并非所有 SPI 模式 2 都可即时仿真SSI 主机。部分 MCU 使用 CS 下降沿而不是第一个时钟的上升沿传播 MSB 位,因此不会向 SPI 帧添加额外的时钟位。在这种情况下,需要手动添加一个额外的时钟计数以读取正确的位数(17 个时钟计数以读取 16 位角度值)(参见图 10)。

如果在帧的开头添加一个额外位,则需要屏蔽 MSB 位(请参见下面的伪代码)。


angle = spi17bitsOutputValue & 0x0FF;

SPI SSI
时钟 SCLK SSCK
从传感器传至主机的数据 MISO SSD

表 2:SSI SPI 信号映射

SPI 模式2 SSI
时钟空闲状态 高电平 高电平
数据传播 上升沿 上升沿
数据捕获沿 下降沿 下降沿

表 3:SPI 模式 2 的 SSI 仿真

Figure 10: Possible Clock Count Issue with SSI Emulation

图 10:SSI 仿真可能出现的时钟计数问题

下载PDF版本