BMA253是3轴12 bit加速度传感器,支持I2C/SPI两种通讯方式,其i2c设备地址0x18。
关键寄存器
R0:CHIPID register ,值为 0xfa
X轴加速度数据12bit
r0x02:ACCD_X_LSB acc_x_lsb[3:0] bit4--bit7
r0x03:ACCD_X_MSB acc_x_msb[11:4] bit0--bit7
Y轴加速度数据12bit
r0x04:ACCD_Y_LSB acc_y_lsb[3:0] bit4--bit7
r0x05:ACCD_Y_MSB acc_y_msb[11:4] bit0--bit7
Z轴加速度数据12bit
r0x06:ACCD_Z_LSB acc_z_lsb[3:0] bit4--bit7
r0x07:ACCD_Z_MSB acc_z_msb[11:4] bit0--bit7
测量范围:
Register 0x0F (PMU_RANGE)
The register allows the selection of the accelerometer g-range.
range<3:0>:Selection of accelerometer g-range:
?0011b ? ? ?2g range; ?0101b ? ? ?4g range; ?1000b ? ? ?8g range;
?1100b ? ? ?16g range; all other settings ? reserved (do not use)
带宽(数据输出频率)
Register 0x10 (PMU_BW)
The register allows the selection of the acceleration data filter bandwidth.
bw<4:0>:Selection of data filter bandwidth:
?00xxxb ? ? 7.81 Hz,
?01000b ? ? 7.81 Hz, ?01001b ? ? 15.63 Hz,
?01010b ? ? 31.25 Hz, ?01011b ? ? 62.5 Hz, ?01100b ? ? 125 Hz,
?01101b ? ? 250 Hz,
?01110b ? ? 500 Hz, ?01111b ? ? 1000 Hz,
?1xxxxb ? ? 1000 Hz
寄存器参考配置:
0x0F------0x03 (PMU_RANGE检测范围?2g)
0x10------0x0A (PMU_BW滤波带宽 31.25HZ)
3轴加速度数据读取参考代码:
x =( i2c_read_byte(0x02) &0xf0) >>4 ;
x = x|(( i2c_read_byte(0x03) &0xff)<<4);
if(x>0x7ff)
{
x = -(0xfff-x);
}
x = (x*9.8)/(0x800/2); //当量程为?2g时,转换为g/s的加速度换算公式
y =( i2c_read_byte(0x04) &0xf0) >>4 ;
y = y|(( i2c_read_byte(0x05) &0xff)<<4);
if(y>0x7ff)
{
y = -(0xfff-y);
}
y = (y*9.8)/(0x800/2); //当量程为?2g时,转换为g/s的加速度换算公式
z =( i2c_read_byte(0x06) &0xf0) >>4 ;
z = z|(( i2c_read_byte(0x07) &0xff)<<4);
if(z>0x7ff)
{
z = -(0xfff-z);
}
z = (z*9.8)/(0x800/2); //当量程为?2g时,转换为g/s的加速度换算公式