MCU

ADXL345的工作原理及SPI通信方式

0
阅读(27123)

ADXL345是一款完整的3轴加速度测量系统,可选择的测量范围有±2 g,±4 g,±8 g或±16 g。既能测量运动或冲击导致的动态加速度,也能测量静止加速度,例如重力加速度,使得器件可作为倾斜传感器使用。该传感器为多晶硅表面微加工结构,置于晶圆顶部。由于应用加速度,多晶硅弹簧悬挂于晶圆表面的结构之上,提供力量阻力。差分电容由独立固定板和活动质量连接板组成,能对结构偏转进行测量。加速度使惯性质量偏转、差分电容失衡,从而传感器输出的幅度与加速度成正比。相敏解调用于确定加速度的幅度和极性。

ADXL345可采用SPI和IIC方式进行数字通信,此时ADXL345均作为从机运行。在IIC模式下,CS引脚应始终上拉至VDD,而在SPI模式下,CS管脚应由外部控制器驱动,因为CS引脚无连接时,默认模式不存在。因此,如果没有采取这些措施,可能会导致该器件无法通信。

对于SPI,可3线或4线配置,如图1和图2的连接图所示。在DATA_FORMAT寄存器(地址0x31)中,选择4线模式清除SPI位(位D6),选择3线模式则设置SPI位。ADXL345的最大SPI时钟速度为5 MHz,使用3线SPI时,推荐将SDO引脚上拉至VDD I/O抑或通过10 k_电阻下拉至接地。

                            

                                    图1  3线式SPI连接图

                   

                                    图2   4线式SPI连接图

CS为串行端口使能线,由SPI主机控制。如图3所示,此线必须在传输起点变为低电平,传输终点变为高电平。SCLK为串行端口时钟,由SPI主机提供。无传输期间,SCLK为空闲高电平状态。SDI和SDO分别为串行数据输入和输出。SCLK下降沿时数据更新,SCLK上升沿时进行采样。要在单次传输内读取或写入多个字节,必须设置位于第一个字节传输(MB)R/W位后的多字节位。寄存器寻址和数据的第一个字节后,时钟脉冲的随后每次设置(8个时钟脉冲)导致ADXL345指向下一个寄存器的读取/写入。时钟脉冲停止后,移位才随之中止,CS失效。要执行不同不连续寄存器的读取或写入,传输之间CS必须失效,新寄存器另行处理。

                           图3  4线式SPI数据写入时序图

SPI通信速率大于或等于2 MHz时,推荐采用3200 Hz和1600Hz的输出数据速率。只有通信速度大于或等于400kHz时,推荐使用800 Hz的输出数据速率,剩余的数据传输速率按比例增减。例如,200 Hz输出数据速率时,推荐的最低通信速度为100kHz。以高于推荐的最大值输出数据速率运行,可能会对加速度数据产生不良影响,包括采样丢失或额外噪声。

最后再给出ADXL345的两种SPI模式的应用程序,主控制器为ADuC7026,仅供参考,程序代码如下:

15709334064700.zip     15709466828713.zip