最近用ADI的三轴加速度计ADXL做个小东东,网上搜搜,发现用这个芯片的人很多,已经有很多应用研究。常常接受ADI专家的指导,我今天也分享一回,借花献佛分享点搜到的几条ADXL345使用经验:
ADXL345是一种三轴加速度计。当ADXL345沿检测轴正向加速时,它对正加速度进行检测。在检测重力时需要注意,当检测轴的方向与重力的方向相反时检测到的是正加速度。
ADXL345通过3线式或4线式模式进行通信。
图1所示为4线式SPI模式的电气连接。注意,当使用3线式SPI模式时可断开SDO引脚。
图1、4线式连接
图2所示为推荐的3线式模式电气连接。器件的7位I2C地址是0x53,紧随其后的是R/W位。用户通过将SDO/ALTADDRESS引脚连接到VDDIO引脚来选择I2C的替代地址。此配置下的7位I2C地址是0x1D,紧随其后的是R/W位。
图2、3线式连接
初始化时,ADXL345在启动序列期间工作在100 Hz ODR,在INT1引脚上有DATA_READY中断。设置其它中断或使用FIFO时,建议所使用的寄存器在POWER_CTL和INT_ENABLE寄存器之前进行设置。
读取数据时,DATA_READY中断信号表明数据寄存器中的三轴加速度数据已被更新。当新数据就绪时它会被置为高电平。(通过DATA_FORMAT寄存器,中断信号可设置为由低电平变为高电平)利用低-高跃迁来触发中断服务例程。可从DATAX0、DATAX1、DATAY0、DATAY1、DATAZ0和DATAZ1寄存器中读取数据。为了确保数据的一致性,推荐使用多字节读取从ADXL345获取数据。
ADXL345为16位数据格式。从数据寄存器中获取加速度数据后,用户必须对数据进行重建。
DATAX0是X轴加速度的低字节寄存器,DATAX1是高字节寄存器。在13位模式下高4位是符号位。注意,可通过DATA_FORMAT寄存器设置其它数据格式POWER_CTL和INT_ENABLE寄存器之前进行设置。
同时ADXL345具有偏移寄存器,可进行偏移校准。偏移寄存器的数据格式是8位、二进制补码。偏移寄存器的分辨率为15.6 mg/LSB。如果偏移校准的精度必须高于15.6 mg/LSB,需要在处理器中进行校准。偏移寄存器将写入到寄存器的值相加来测试加速度。例如,如果偏移为+156 mg,那么应该往偏移寄存器写入−156 mg