AN-1078 应用笔记 One Technology Way • P.O. Box 9106 • Norwood, MA 02062-9106, U.S.A. • Tel: 781.329.4700 • Fax: 781.461.3113 • www.analog.com ADXL346快速入门指南 作者:Tomoaki Tusuzki和Harvey Weinberg 物理安装 AZ ADXL346是一款3轴加速度计,检测轴如图1所示。 当ADXL346沿检测轴正向加速时,它对正加速度进行检 测。检测重力时要注意,若检测轴的方向与重力的方向相 AY 反,则检测到的是正加速度。图2所示为输出对重力的响 应。 ADXL346采用3 mm × 3 mm × 1 mm、16引脚小型超薄塑料 册。 AX 图1. ADXL346的检测轴 XOUT = +1g YOUT = 0g ZOUT = 0g TOP TOP XOUT = 0g YOUT = +1g ZOUT = 0g XOUT = –1g YOUT = 0g ZOUT = 0g XOUT = 0g YOUT = 0g ZOUT = +1g 图2 输出响应与相对于重力的方向的关系 Rev. 0 | Page 1 of 8 XOUT = 0g YOUT = 0g ZOUT = –1g 09120-002 TOP XOUT = 0g YOUT = –1g ZOUT = 0g TOP GRAVITY 09120-001 封装。建议的印制电路板焊盘图形请参考ADXL346数据手 AN-1078 目录 物理安装 ...........................................................................................1 读取输出数据 ..................................................................................4 电气连接 .......................................................................................3 数据格式 ...........................................................................................4 通信接口 .......................................................................................3 使用自测功能 ..................................................................................5 初始化............................................................................................3 使用失调寄存器..............................................................................6 Rev. 0 | Page 2 of 8 AN-1078 应用笔记 电气连接 通信接口 ADXL346通过I2C或SPI(3线式或4线式)进行通信。图3所示 表1列出了主机处理器通过SPI与ADXL346通信所需的典型 为推荐的4线式SPI模式电气连接。注意,当使用3线式SPI 配置。这些设置通常位于控制寄存器中。有关时序规范和 模式时可断开SDO引脚。 命令序列,请参考ADXL346数据手册。 VS 表1. SPI设置 VDD I/O CS 处理器设置 主机 SPI模式 CIO VDD I/O VS ADXL346 描述 ADXL346作为从机工作 时钟极性(CPOL) = 1 时钟相位(CPHA) = 1 MSB优先模式 PROCESSOR 位序 CS D OUT SDA/SDI/SDIO D OUT SCL/SCLK D OUT 对于I2C通信,处理器设置和时序规范以及命令序列请参考 SDO/ALT ADDRESS D IN INT1 D IN ADXL346数据手册和《UM10204 I2C总线规范和用户手册》 INT2 D IN 09120-003 03版(2007年6月19日)。 有时在开始下一个设计阶段前确认通信序列的有效性是很 图3. 推荐的4线式SPI模式的连接 图4所示为推荐的I C模式电气连接。该器件的7位I C地址 2 2 重要的。这可以通过读取DEVID寄存器(地址0x00)实现。 是0x53,紧跟其后的是R/W位。用户可以通过将SDO/ALT 它是一个只读寄存器,其内容为0xE6。如果从DEVID寄存 ADDRESS引脚连接到VDDI/O引脚来选择I C的替代地址。该 器中读取的数据不是0xE6,这说明物理连接或命令序列不 配置的7位I2C地址是0x1D,紧跟其后的是R/W位。 正确。 2 VDD I/O 初始化 图5所示为最小初始化序列。ADXL346在此启动序列期间 ADXL346 RP RP 工作在100 Hz ODR,在INT1引脚上有DATA_READY中 PROCESSOR CS 断。设置其它中断或使用FIFO时,建议所使用的寄存器在 D IN/OUT SDA POWER_CTL和INT_ENABLE寄存器之前进行设置。有关 ALT ADDRESS ADXL346的其它操作模式和FIFO的详情,请参考ADXL346 09120-004 D OUT SCL 数据手册和AN-1025应用笔记。 图4. 推荐的I 2C模式连接 有关电源去耦的详情,请参考ADXL346数据手册。 START VS = ON VDD I/O = ON WAIT 1.1ms END STEP REGISTER ADDRESS REGISTER NAME 1 0x31 DATA_FORMAT 0x0B 2 0x2D POWER_CTL 0x08 START MEASUREMENT 3 0x2E INT_ENABLE 0x80 ENABLE DATA_READY INTERRUPT 图5. 最小初始化序列 Rev. 0 | Page 3 of 8 DATA DESCRIPTION ±16g, 13-BIT MODE 09120-005 INITIALIZE COMMAND SEQUENCE AN-1078 读取输出数据 FORMAT寄存器设置其它数据格式。详情请参见ADXL346 DATA_READY中断信号表明数据寄存器中的3轴加速度数 数据手册。 据已被更新。当新数据就绪时它会被置为高电平。(通过 ADXL346使用二进制补码数据格式。在13位模式下,1 LSB DATA_FORMAT寄存器,中断信号可设置为由低电平变为 代表3.9 mg。 高电平。详情请参见 ADXL346数据手册。)利用低-高跃迁 表2. ADXL346输出数据格式 16位代码 (十六进制) 0FFF … 0002 0001 0000 FFFF FFFE … F000 DATAX1、DATAY0、DATAY1、DATAZ0和DATAZ1寄存 器中读取。为了确保数据的一致性,推荐使用多字节读取 从ADXL346获取数据。图7所示为4线式SPI读序列实例。 数据格式 ADXL346采用16位数据格式。从数据寄存器中获取加速度 数据后,用户必须对数据进行重建。DATAX0是X轴加速 度的低字节寄存器,而DATAX1是高字节寄存器。在13位 模式下,高4位是符号位(见图6)。注意,可通过DATA_ D15 D14 D13 D12 二进制补码表示 (十进制) 4095 … +2 +1 0 −1 −2 … −4095 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 SIGN SIGN SIGN SIGN D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 DATAX0 DATAY0 DATAZ0 DATAX1 DATAY1 DATAZ1 加速度(mg) +1599 … +7.8 +3.9 0 −3.9 −7.8 … −1600 09120-007 来 触 发 对 中 断 服 务 程 序 的 操 作 。 数 据 从 DATAX0、 图6. 数据结构 INT1 PIN CS SCLK SDI DATAX1 DATAZ1 09120-006 DATAX0 SDO 0xF2 图7. 4线式SPI连接的数据读取时序 Rev. 0 | Page 4 of 8 AN-1078 使用自测功能 ADXL346提供自测功能来支持对器件的机电测试,无需外 部机械激励。图8为推荐的自测序列。注意,当进行自测 序列时,ADXL346应放置在稳定的环境中。 START VS = ON VDD I/O = ON WAIT 1.1ms INITIAL COMMAND SEQUENCE WAIT 1.1ms TAKE 100 DATA POINTS AND AVERAGE ACTIVATE SELF-TEST STEP REGISTER ADDRESS REGISTER NAME DATA DESCRIPTION 1 0x31 DATA_FORMAT 0x0B ±16g, 13-BIT MODE 2 0x2D POWER_CTL 0x08 START MEASUREMENT 3 0x2E INT_ENABLE 0x80 ENABLE DATA_READY INTERRUPT WHEN AT ODR = 100Hz (WAIT TIME DEPENDS ON ODR SETTLING AND 1.1ms + 1/ODR) IT IS TO MINIMIZE THE EFFECT OF NOISE STEP REGISTER ADDRESS REGISTER NAME DATA DESCRIPTION 1 0x31 DATA_FORMAT 0x8B SELF-TEST ON, ±16g, 13-BIT MODE WAIT 1.1ms INACTIVATE SELF-TEST CALCULATE SELF-TEST DELTA AND COMPARE IT TO DATASHEET LIMITS IT IS TO MINIMIZE THE EFFECT OF NOISE STEP REGISTER ADDRESS REGISTER NAME DATA DESCRIPTION 1 0x31 DATA_FORMAT 0x0B SELF-TEST OFF, ±16g, 13-BIT MODE 09120-008 TAKE 100 DATA POINTS AND AVERAGE END 图8. 自测序列 Rev. 0 | Page 5 of 8 AN-1078 使用失调寄存器 例如,如果失调为+156 mg,那么应该往失调寄存器写入− ADXL346具有失调寄存器,可进行失调校准。失调寄存器 156 mg。图9所示为典型失调校准时序。 的数据格式是8位二进制补码,分辨率为15.6 mg/LSB。如 对于这个校准程序,当施加0 g 输入时X/Y轴误差为零,而 果失调校准的精度必须高于15.6 mg/LSB,则需要在处理器 中进行校准。失调寄存器会给测得的加速度增加写入的 值。 当施加1 g输入时Z 轴误差为零。如果能在校准 时 旋 转 ADXL346,则可以达到更高精度。 START PLACE SENSOR IN X = 0g, Y = 0g, Z = +1g ORIENTATION VS = ON VDD I/O = ON INITIALIZE COMMAND SEQUENCE WAIT 11.1ms TAKE 100 DATA POINTS AND AVERAGE CALCULATE CALIBRATION VALUE WRITE TO OFSTx REGISTERS END STEP 1 2 3 REGISTER ADDRESS 0x31 0x2D 0x2E REGISTER NAME DATA_FORMAT POWER_CTL INT_ENABLE DATA 0x0B 0x08 0x80 DESCRIPTION ±16g, 13-BIT MODE START MEASUREMENT ENABLE DATA_READY INTERRUPT WHEN AT ODR = 100Hz (WAIT TIME DEPENDS ON ODR SETTLING AND 1.1ms + 1/ODR) IT IS TO MINIMIZE THE EFFECT OF NOISE X_CALIB = –(OUTPUT (X) ÷ 4) Y_CALIB = –(OUTPUT (Y) ÷ 4) Z_CALIB = –((OUTPUT (Z) – 256) ÷ 4) STEP 1 2 3 REGISTER ADDRESS 0x1E 0x1F 0x20 REGISTER NAME OFSTX OFSTY OFSTZ 图9. 失调校准时序 Rev. 0 | Page 6 of 8 DATA X_CALIB Y_CALIB Z_CALIB DESCRIPTION X_CALIB TO BE 8 BIT Y_CALIB TO BE 8 BIT Z_CALIB TO BE 8 BIT 09120-009 WAIT 1.1ms AN-1078 注释 Rev. 0 | Page 7 of 8 AN-1078 注释 ©2011 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. AN09120sc-0-7/11(0) Rev. 0 | Page 8 of 8