AN137 - 使用 MagAlpha 串行接口的高级功能
简介
JUNE 19, 2018 —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 帧。
图 1:没有奇偶校验位的 SPI 帧
图 2:带奇偶校验位的 SPI 帧
图 3:没有奇偶校验位的 SSI 帧
图 4:带奇偶校验位的 SSI 帧
串联读/写寄存器(仅限 SPI)
将多个读或写寄存器命令串联在一起可以节省时间。要将读/写帧串联在一起,只需在读取前一个寄存器值的同时发送下一个读/写命令即可。
序列中的最后一个 SPI 帧必须向 MagAlpha 发送 0x0000,以将传感器设置为角度回读模式(参见图 5)。这样,下一个角度读取操作才能返回角度值,而不是寄存器值。
图 5:SPI 序列的最后一个串联帧必须向传感器发送 0x0000 值
图 6 至图 9展示了SPI 和 SSI 协议的标准读/写命令与串联命令之间的区别。
图 6:SPI 标准读取命令
图 7:SPI 串联读取命令
图 8:SPI 标准写命令
图 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 仿真
图 10:SSI 仿真可能出现的时钟计数问题
直接登录
创建新帐号