yanniwang

ADIS16488的寄存器结构与SPI通信方式

0
阅读(9532)

 ADIS16488是一个独立的IMU(惯性测量单元)传感器系统,当它有一个有效的电源时,它就启动了。在运行初始化过程之后,它开始采样,处理和校准,将传感器的数据通过访问SPI端口,加载到输出寄存器。SPI端口通常连接到嵌入式处理器兼容的端口,使用连接图如图1所示。四个SPI信号,方便同步和串行数据通信。RST(见我的博文-- ADIS16488 i sensor IMU概述)连接到VDD或断开它正常运行。出厂默认配置提供,DIO2引脚上的数据就绪信号,当新的数据是在输出数据寄存器时,产生一个高脉冲。


 图1 电气连接图


表1 通用主处理器引脚及功能

引脚名称

功能

SS

IRO

MOSI

MISO

SCLK

选择从机

中断请求输入

主机输出,从机输入

主机输入,从机输出

串行时钟


通常使用嵌入式处理器控制寄存器配置例如,ADIS16488 SPI从器件通信的串行端口。表2提供了一个设置列表,它描述的ADIS16488 SPI协议。主处理器的初始化例程通常建立这些设置使用固件命令写入串行控制寄存器。


表2.通用主处理器SPI设置

处理器设置

描述

主机

SCLK速率≤15MHz

SPI模式3(1,1)

MSB优先

16位

ADIS16488作从机

最大比特率

时钟极性/相位(CPOL=1,CPHA=1)

位序

移位寄存器/数据长度

 

 寄存器结构

寄存器结构和SPI端口提供传感器处理系统和外部主处理器之间的桥梁。它包含两个输出数据和控制寄存器。输出数据寄存器,包括最新的传感器数据,实时时钟,错误标志,报警标志,标识数据。控制寄存器包括采样率,滤波,输入/输出,报警,校准,诊断配置选项。ADIS16488和涉及外部处理器读取或写入用户注册之间的所有通信。


图2 寄存器基本操作

寄存器结构采用了分页的解决方案,由13页组成,每页包含64个寄存器位置。每个寄存器为16位宽,每个字节有自己独特的地址,在该页面的内存映射。SPI端口有一次访问一个页面,在图17中使用的比特序列。选择激活写代码的PAGE_ID寄存器的SPI访问的页面。阅读的PAGE_ID的寄存器以确定哪个页面是目前活跃。表3显示每一页的PAGE_ID内容,连同他们的基本职能。位于PAGE_ID寄存器在每一页上的地址为0x00。


表3.用户注册页分配

页码

地址

功能

0

1

2

3

4

5

6

7

8

9

10

11

12

0X00

0X01

0X02

0X03

0X04

0X05

0X06

0X07

0X08

0X09

0X0A

0X0B

0X0C

输出数据,时钟,识别

版权

校准

控制:采样率,滤波,I / O,报警

编号

FIR滤波器等级A,系数为0到59

FIR滤波器等级A,系数为60到119

FIR滤波器等级B,系数为0到59

FIR滤波器等级B,系数为60到119

FIR滤波器等级C,系数为0到59

FIR滤波器等级C,系数为60到119

FIR滤波器等级D,系数为0到59

FIR滤波器等级A,系数为60到119

 

SPI通信

SPI端口支持全双工通讯,如果前面的命令是一个读请求,它会使外部处理器编写符合DIN阅读DOUT引脚时。图3提供了DIN和DOUT上的编码位的准则。

                  图3  通信位序列

设备配置

SPI提供写访问控制寄存器,一次一个字节。每个寄存器有16位,位[7:0]代表低地址(表9中列出)和位[15:8]代表高地址。先写寄存器的低字节,然后再写高字节。唯一写低字节会变的寄存器是PAGE_ID寄存器。对于写命令,在DIN序列的第一个位设置为1。地址位[A6:A0]的代表目标地址,数据命令位[DC7:DC0]表示被写入位置的数据。图4提供了一个例子写0x03的地址0x00(PAGE_ID[7:0]),使用DIN=0x8003。这写命令激活SPI访问控制页面。



图4  SPI时序激活控制页(DIN=0x8003)


双存储器结构

配置数据写入控制寄存器更新其SRAM的内容,这是不稳定的。每个相关的控制寄存器设置在系统优化后,使用手动闪光更新命令,这是在GLOB_CMD[3]位于寄存器映射第3页。激活第3页(DIN=0x8003)和设置手动闪光更新命令GLOB_CMD[3]= 1(DIN=0x8208,DIN=0x8300)。请确保电源在规格为375毫秒整个快闪记忆体更新的处理时间。表9提供了一个为所有用户寄存器,其中包括一列闪存备份信息的存储器映射。一个是在此列表示一个寄存器有一个闪光镜的位置,当正确备份,自动恢复在启动或复位后。图5提供了一个用于管理操作和存储关键用户设置双内存结构图。


图5 SRAM和闪存图


读取传感器数据

ADIS16488自动启动和激活页码0上的数据寄存器访问。写0x00到寄存器PAGE_ID(DIN=0x8000)激活后访问的任何其他页面的数据访问页0。读一个寄存器需要两个16位SPI周期。第一个周期请求寄存器的内容在图3中使用的位分配,然后寄存器的内容跟随在第二个序列的DOUT引脚。在DIN命令的第一个位是零,上部或低地址寄存器。最后8位是不关心的,但SPI需要的全套16个SCLK收到请求。图15包括两个寄存器读取相继开始与DIN=0x1A00要求的Z_GYRO_OUT寄存器的内容与0x1800如下要求的Z_GYRO_LOW寄存器的内容。



图6 SPI读取数据示例


图7提供了一个重复模式在阅读时PROD_ID四个SPI信号的例子。这是一个很好的模式,使用,因为PROD_ID的内容是预定义的和稳定的SPI接口设置和通讯解决。


图7 第二个16位SPI读序列示意图