电子罗盘模块使用手册 CMPS04-I2C.
- 格式:pdf
- 大小:551.94 KB
- 文档页数:8
AN4825应用笔记基于LSM303AGR的超紧凑高性能电子罗盘模块引言本文档旨在提供ST eCompass六轴惯性传感器模块相关的使用信息和应用提示。
LSM303AGR是系统级封装的3D数字磁力计和3D数字加速度计,具有数字I2C和3线SPI接口标准输出,在组合高分辨率模式下功耗250 µA,在组合低功耗模式下功耗不超过60 µA。
由于磁力计和加速度计均具有超低噪声性能,始终具有低功耗特性,并结合了高传感精度,因此能够为客户提供最佳运动体验。
器件具有超低功耗工作模式,可实现高级节能、智能睡眠唤醒以及恢复睡眠功能。
该器件的磁场动态范围高达±50高斯,其用户可选择的满量程加速度范围为±2g/±4g/±8g/±16g。
可以对LSM303AGR进行配置,使其产生用于磁场检测的中断信号,并自动补偿由较高应用层产生的硬磁偏移。
它可配置为通过检测独立的惯性唤醒/自由落体事件以及通过器件自身的位置生成中断信号。
中断发生器的阈值和时序可由终端用户动态设定。
也可通过可自动编程的睡眠唤醒和恢复睡眠功能提高节能效率。
LSM303AGR集成了32级的先进先出(FIFO)缓冲器,允许用户存储加速度计数据,可减少主机处理器的干预。
LSM303AGR采用纤薄的小型塑料焊盘栅格阵列封装(LGA),可确保在更大的温度范围(-40 °C至+85 °C)内正常工作。
SMD封装的超小尺寸和重量使其成为手持便携式应用的理想选择,如智能手机、物联网(IoT)连接设备,穿戴,以及需要减小封装尺寸和重量的其他应用。
2020年3月DocID028927 Rev 1 [English Rev 1]1/65目录目录1引脚说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93磁力计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.1工作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.1.1空闲模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.1.2高分辨率模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.1.3低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.1.4单次测量模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2磁力计低通滤波器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3读取输出数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3.1启动序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3.2使用状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.3使用数据准备就绪信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.4使用块数据(BDU)功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.5理解输出数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16输出数据示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163.4磁力计偏移消除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.5磁力计硬磁补偿 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.6中断产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.6.1中断引脚配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.6.2事件状态. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.6.3阈值中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.7磁力计自检 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214加速度计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.1工作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.1.1下电模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.1.2高分辨率模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.1.3正常模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.1.4低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.1.5切换模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2启动序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2/65DocID028927 Rev 1 [English Rev 1]目录4.2.1读取加速度数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26使用状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26使用数据就绪(DRY)信号. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26使用块数据更新(block data update,BDU)功能. . . . . . . . . . . . . . . . . . . . . . . .274.2.2理解加速度数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27数据对齐. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27大小端序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27加速度数据示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 4.3高通滤波器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.3.1滤波器配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29正常模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29参考模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30自动复位. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 4.4中断产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.4.1中断引脚配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.5惯性中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.5.1持续时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.5.2阈值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.5.3自由落体和唤醒中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34惯性唤醒. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35不使用高通滤波器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36使用高通滤波器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .374.5.4自由落体检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.66D/4D方向探测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.6.16D方向探测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.6.24D方向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.7单击和双击识别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.7.1单击 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.7.2双击 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.7.3寄存器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44CLICK_CFG_A (38h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44CLICK_SRC_A (39h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45CLICK_THS_A (3Ah) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45TIME_LIMIT_A (3Bh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46TIME_LATENCY_A (3Ch) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46TIME_WINDOW_A (3Dh). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46CTRL_REG3_A [中断CTRL寄存器] (22h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .474.7.4示例1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48调整TAP_TimeLimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48DocID028927 Rev 1 [English Rev 1]3/65目录调整TAP_Latency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49调整TAP_Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .504.8先进先出(FIFO)缓冲器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.8.1FIFO说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.8.2FIFO寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52控制寄存器5(0x24). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52FIFO控制寄存器(0x2E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53FIFO状态寄存器(0x2F) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .544.8.3FIFO模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Bypass模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55FIFO模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55Stream模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56Stream-FIFO模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .594.8.4水位标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.8.5从FIFO中读取数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.9温度传感器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.10加速度计自检 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644/65DocID028927 Rev 1 [English Rev 1]表格索引表格索引表 1.引脚说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8表 2.寄存器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9表 3.工作模式的电流消耗. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12表 4.工作模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12表 5.单次测量模式(HR和LP模式)下的最大ODR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13表 6.低通滤波器、相对带宽和噪声. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14表 7.CFG_REG_C_M寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19表 8.INT_CTRL_REG_M寄存器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19表 9.工作模式选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23表 10.数据速率配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23表 11.工作模式的电流消耗. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24表 12.操作模式转换的导通时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25表 13.输出数据寄存器内容与加速度对比(FS = 2 g) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28表 14.高通滤波器模式配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29表 15.低功耗模式 - 高通滤波器截止频率[Hz] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29表 16.参考模式LSB值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30表 17.CTRL_REG3_A寄存器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31表 18.CTRL_REG3说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31表 19.CTRL_REG6寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31表 20.CTRL_REG6寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31表 21.中断模式配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32表 22.正常模式下的持续时间LSB值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33表 23.阈值LSB值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33表 24.6D位置中的INT1_SRC_A寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41表 25.CLICK_CFG_A寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44表 26.CLICK_CFG_A说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44表 27.真值表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44表 28.CLICK_SRC_A寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45表 29.CLICK_SRC_A说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45表 30.CLICK_THS_A寄存器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45表 31.CLICK_THS_A说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45表 32.TIME_LIMIT_A寄存器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46表 33.TIME_LIMIT_A寄存器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46表 34.TIME_LATENCY_A寄存器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46表 35.TIME_LATENCY_A说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46表 36.TIME_WINDOW_A寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46表 37.TIME_LATENCY_A说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46表 38.CTRL_REG3_A寄存器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47表 39.CTRL_REG3_A说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47表 40.FIFO缓冲区填满示例(存储第51个采样集) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32表 41.FIFO溢出示例(存储第52个采样集同时丢弃第1个采样) . . . . . . . . . . . . . . . . . . . . . . . . . 52表 42.CTRL_REG5_A中的FIFO使能位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52表 43.FIFO_CTRL_REG_A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53表 44.FIFO_SRC_REG_A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54表 45.FIFO_SRC_REG_A特性(假定FTH[4:0] = 15) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54表 46.CTRL_REG3_A (0x22). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54表 47.文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64表 48.中文文档版本历史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64DocID028927 Rev 1 [English Rev 1]5/65图片目录图片目录图 1.引脚连接. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7图 2.中断功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20图 3.磁力计自检步骤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22图 4.数据准备就绪信号. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26图 5.高通滤波器连接框图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28图 6.REFERENCE/DATACAPTURE_A读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29图 7.参考模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30图 8.自动复位. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30图 9.中断信号和中断引脚. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32图 10.自由落体、唤醒中断发生器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34图 11.自由落体和唤醒配置 - 高和低 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35图 12.惯性唤醒中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35图13.自由落体中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38图14.ZH、ZL、YH、YL、XH和XL特性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39图15.6D运动与6D位置对比. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40图16.6D识别位置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40图17.使用非锁存中断的单击事件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42图18.单击和双击识别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43图19.双击识别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43图20.短TimeLimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48图21.长TimeLimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48图22.短延迟. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49图23.长延迟. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49图24.短窗口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50图25.长窗口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50图26.FIFO_EN连接框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53图27.FIFO模式特性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56图28.Stream模式快速读取特性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57图29.Stream模式慢速读取特性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57图30.Stream模式慢速读取(放大图). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58图31.Stream-FIFO模式:中断未锁存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59图32.Stream-FIFO模式:中断已锁存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60图33.水位标志特性 - FTH[4:0] = 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60图34.FIFO读取 - FTH[4:0] = 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61图35.加速度计自检步骤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6/65DocID028927 Rev 1 [English Rev 1]引脚说明1 引脚说明DocID028927 Rev 1 [English Rev 1]7/65引脚说明8/65DocID028927 Rev 1 [English Rev 1]表1. 引脚说明引脚#名称功能引脚状态1SCLSPC I 2C 串行时钟(serial clock ,SCL )SPI 串口时钟(serial port clock ,SPC )默认值:无上拉的输入2CS_XL 加速度计:SPI 使能I 2C/SPI 模式选择1:SPI 空闲模式/ I 2C 通信使能;0:SPI 通信模式/ I 2C 禁用默认值:无上拉的输入3CS_MAG 磁力计:SPI 使能I 2C/SPI 模式选择1:SPI 空闲模式/ I 2C 通信使能;0:SPI 通信模式/ I 2C 禁用默认值:无上拉的输入4SDA SDI SDO I 2C 串行数据(serial data ,SDA )SPI 串行数据输入(serial data input ,SDI )3线接口串行数据输出(serial data output ,SDO )默认值:无上拉的输入5c1电容连接(C1 = 220 nF )6GND 0 V 电源7INT_MAG/DRDY 磁力计中断/数据准备就绪信号高阻抗8GND 0 V 电源9Vdd 电源10Vdd_IO I/O 引脚的供电11INT_2_XL 加速度计中断2输出强制接地12INT_1_XL 加速度计中断1输出强制接地DocID028927 Rev 1 [English Rev 1] 9/652 寄存器表2. 寄存器寄存器名地址位 7位 6位 5位 4位 3位 2位 1位 0STATUS_REG_AUX_A07h-TOR---TDA--RESERVED08h-0BhOUT_TEMP_L_A0Ch D7 D6D5D4D3D2D1D0OUT_TEMP_H_A0Dh D15 D14D13D12D11INT_COUNTER_REG_A0Eh IC7IC6IC5IC4IC3IC2IC1IC0WHO_AM_I_A0Fh00110011TEMP_CFG_REG_A1Fh TEMP_EN1TEMP_EN0000000CTRL_REG1_A20h ODR3ODR2ODR1ODR0LPen Zen Yen XenCTRL_REG2_A21h HPM1HPM0HPCF2HPCF1FDS HPCLICK HPIS2HPIS1CTRL_REG3_A22h I1_CLICK I1_AOI1I1_AOI2I1_DRDY1I1_DRDY2I1_WTM I1_OVERRUN-CTRL_REG4_A23h BDU BLE FS1FS0HR ST1ST0SPI_ENABLECTRL_REG5_A24h BOOT FIFO_EN--LIR_INT1D4D_INT1LIR_INT2D4D_INT2CTRL_REG6_A25h I2_CLICKen I2_INT1I2_INT2BOOT_I2P2_ACT-H_LACTIVE-REFERENCE/DATACAPTURE_A26h Ref7Ref6Ref5Ref4Ref3Ref2Ref1Ref0STATUS_REG_A27h ZYXOR ZOR YOR XOR ZYXDA ZDA YDA XDAOUT_X_L_A28h XD7XD6XD5XD4XD3XD2XD1XD0OUT_X_H_A29h XD15 XD14XD13XD12XD11XD10XD9XD8OUT_Y_L_A2Ah YD7YD6YD5YD4YD3YD2YD1YD0OUT_Y_H_A2Bh YD15YD14YD13YD12YD11YD10YD9YD8OUT_Z_L_A2Ch ZD7ZD6ZD5ZD4ZD3ZD2ZD1ZD0OUT_Z_H_A2Dh ZD15 ZD14ZD13ZD12ZD11ZD10ZD9ZD8FIFO_CTRL_REG_A2E FM1FM0TR FTH4FTH3FTH2FTH1FTH0寄存器DocID028927 Rev 1 [English Rev 1] 10/65FIFO_SRC_REG_A2F WTM OVRN_FIFO空FSS4FSS3FSS2FSS1FSS0INT1_CFG_A30h AOI6DZHIE/ZUPEZLIE/ZDOWNEYHIE/YUPEYLIE/YDOWNEXHIE/XUPEXLIE/XDOWNEINT1_SRC_A31h0IA ZH ZL YH YL XH XLINT1_THS_A32h0THS6THS5THS4THS3THS2THS1THS0INT1_DURATION_A33h0D6D5D4D3D2D1D0INT2_CFG_A34h AOI6D ZHIE ZLIE YHIE YLIE XHIE XLIEINT2_SRC_A35h0IA ZH ZL YH YL XH XLINT2_THS_A36h0THS6THS5THS4THS3THS2THS1THS0INT2_DURATION_A37h0D6D5D4D3D2D1D0CLICK_CFG_A38h--ZD ZS YD YS XD XSCLICK_SRC_A39h-IA Dclick Sclick符号Z Y XCLICK_THS_A3Ah-Ths6Ths5Ths4Ths3Ths2Ths1Ths0TIME_LIMIT_A3Bh-TLI6TLI5TLI4TLI3TLI2TLI1TLI0TIME_LATENCY_A3Ch TLA7TLA6TLA5TLA4TLA3TLA2TLA1TLA0TIME_WINDOW_A3Dh TW7TW6TW5TW4TW3TW2TW1TW0Act_THS_A3Eh-Acth6Acth5Acth4Acth3Acth2Acth1Acth0Act_DUR_A3Fh ActD7ActD6ActD5ActD4ActD3ActD2ActD1ActD0 RESERVED40h-44hOFFSET_X_REG_L_M45h Offset_X_7 Offset_X_6Offset_X_5Offset_X_4Offset_X_3Offset_X_2Offset_X_1Offset_X_0 OFFSET_X_REG_H_M46h Offset_X_15Offset_X_14Offset_X_13Offset_X_12Offset_X_11Offset_X_10Offset_X_9Offset_X_8 OFFSET_Y_REG_L_M47h Offset_Y_7Offset_Y_6Offset_Y_5Offset_Y_4Offset_Y_3Offset_Y_2Offset_Y_1Offset_Y_0 OFFSET_Y_REG_H_M48h Offset_Y_15Offset_Y_14Offset_Y_13Offset_Y_12Offset_Y_11Offset_Y_10Offset_Y_9Offset_Y_8 OFFSET_Z_REG_L_M49h Offset_Z_7Offset_Z_6Offset_Z_5Offset_Z_4Offset_Z_3Offset_Z_2Offset_Z_1Offset_Z_0 OFFSET_Z_REG_H_M4Ah Offset_Z_15Offset_Z_14Offset_Z_13Offset_Z_12Offset_Z_11Offset_Z_10Offset_Z_9Offset_Z_8表2. 寄存器(续)寄存器名地址位 7位 6位 5位 4位 3位 2位 1位 0寄存器DocID028927 Rev 1 [English Rev 1] 11/65WHO_AM_I_M4Fh01000000CFG_REG_A_M60hCOMP_TEMP_ENREBOOT SOFT_RST LP ODR1ODR0MD1MD0CFG_REG_B_M61h0000INT_on_DataOFFSet_FREQ OFF_CANC LPFCFG_REG_C_M62h0INT_MAG_PINI2C_DIS BDU BLE0Self_test INT_MAGINT_CTRL_REG_M63h XIEN YIEN ZIEN00IEA IEL IENINT_SOURCE_REG_M64h P_TH_S_X P_TH_S_Y P_TH_S_Z N_TH_S_X N_TH_S_Y N_TH_S_Z MROI INTINT_THS_L_REG_M65h TH7TH6TH5TH4TH3TH2TH1TH0INT_THS_H_REG_M66h TH15TH14TH13TH12TH11TH10TH9TH8STATUS_REG_M67h Zyxor zor yor xor Zyxda zda yda xdaOUTX_L_REG_M68h D7D6D5D4D3D2D1D0OUTX_H_REG_M69h D15D14D13D12D11D10D9D8OUTY_L_REG_M6Ah D7D6D5D4D3D2D1D0OUTY_H_REG_M6Bh D15D14D13D12D11D10D9D8OUTZ_L_REG_M6Ch D7D6D5D4D3D2D1D0OUTZ_H_REG_M6Dh D15D14D13D12D11D10D9D8表2. 寄存器(续)寄存器名地址位 7位 6位 5位 4位 3位 2位 1位 0寄存器磁力计12/65DocID028927 Rev 1 [English Rev 1]3磁力计3.1工作模式磁力模块提供两种功耗模式:高分辨率(HR )模式和低功耗(LP )模式。
前言 (4)第1章 I2C模块规格说明 (5)1.1 综述 (5)1.2 特性 (5)1.3 模块架构 (7)1.4 配套资料说明 (7)1.5 模块原理图 (8)第2章 Arduino 基础 (9)2.1 Arduino硬件 (9)2.2 Arduino软件 (10)2.3 示例程序:LED控制 (12)第3章实时时钟 (17)3.1 DS1307介绍 (17)3.2 接线图 (17)3.3 DS1307的使用 (18)第4章外部存储 (23)4.1 AT24C32介绍 (23)4.2 接线图 (23)4.3 AT24C32的使用 (23)第5章温度侦测 (28)5.1 LM75介绍 (28)5.2 接线图 (28)5.3 LM75的使用 (29)结语 (33)为什么叫I2C模块?和一元硬币差不多大小的一块PCB上放了三个芯片,分管三个功能:时间计算、温度侦测、数据存储。
这三个芯片都是通过I2C总线通信的。
我们知道,I2C理论上可以级联2的7次方即128个设备,该模块级联了三个典型且通用I2C设备(这里为三个独立芯片),并且预留了级联更多I2C设备的接口,所以叫I2C模块。
为什么做这个I2C模块?在淘宝上搜索“I2C模块”,搜索结果中的I2C模块,一般是用一两个芯片实现对应的一两个功能,有的板上还集成非I2C相关的功能,不是纯粹的I2C模块,配套教程则比较杂乱。
于是我们决定做一个纯粹的、功能多一点的I2C模块,和Arduino配套,配上精心书写的“一份”教程。
我们强调教程的“一份”,是因为这份教程针对I2C的使用做了集中且系统的教学,不用再去搜索其他资料。
教程中使用到的Arduino库经过我们的开发,把相关功能都做好了封装,在代码中直接调用即可,无论是用来学习还是做产品开发,都简单和高效。
为了大家更好的学习,模块实行软硬件开源。
By MAKERTIPS2013年7月于广州大学城第1章 I2C模块规格说明1.1 综述I2C模块集成了三个芯片,分别实现三个功能:1、时间计算:DS13072、温度侦测:LM753、数据存储:AT24C32图1.1 I2C模块功能说明3D图1.2 特性1、使用实时时钟芯片DS1307计算时间2、使用温度传感器芯片LM75侦测温度3、使用EEPROM存储芯片AT24C32 存储数据4、通过精简的I2C总线实现以上功能5、使用CR2032锂电池为时钟芯片供电,可使用2年LM75DS1307AT24C326、设计小巧,PCB尺寸28mm*25mm7、引出LM75的OS脚,可作为温度中断输出8、通过排针J1或J2,可以级联其他I2C设备图1.2 小巧的I2C模块1.3 模块架构I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
一。
产品主要特点
产品采用双轴磁场传感器,测量水平面上磁场指向。
输出数字信号。
主要特点如下:
1。
低功耗,小尺寸
2。
内置修正算法,自动校准指向,和设置零度点。
3。
具有宽温度工作范围,和极低的温度漂移。
二。
技术指标
三。
通讯接口和命令格式
1。
数据接口方式:
TTL电电平。
数据格式:9600,氮,8,1。
2。
罗盘接受的命令格式
3。
罗盘发送的命令格式
4。
命令表
命令解释:
字母a.命令字位于数据帧的第5个字节。
湾写地址命令帧的第4字节地址位置,就是要写入的地址。
角罗盘收到命令并且执行后,在第5字节,返回相同的命令字。
d.发送[开始转动标定]命令后,将罗盘旋转超过360度,停止后
发送[停止转动标定]命令,最后发送[保存转动标定]命令,保存并且结束标定。
标定数据掉电保存在罗盘内。
大肠杆菌清除罗盘内的相对指向设置(恢复工厂设置)时,先发送[允许设置指向]命令,然后发送[清除原有指向相对零点]命令,使罗盘指向恢复工厂设置。
此时,再发送[允许设置指向]命令,然后发送[设置指向为零度]命令,使罗盘指向设置为零度。
楼单次和连续模式掉电后状态保留。
备注:本产品还有精度为1度的电子罗盘,详情欢迎大家咨询。
在线QQ:317244831
所有产品质保一年!。
平面电子罗盘说明书(LP3200/3201)上海朗尚科贸有限公司产品特点◆两轴磁阻传感器测量平面地磁场。
◆高速高精度A/D转换,磁场测量精度100μGuass。
◆内置微处理器计算传感器与磁北夹角,输出RS232格式数据帧。
◆工作温度范围-40℃到+80℃。
保存温度-50℃到+100℃。
产品描述内置两个正交磁场传感器,具有高精度和低精度两个系列产品。
高精度产品采用16位A/D转换器,标校后磁场精度一度左右。
低精度产品具有成本低廉,稳定性好的特点,适合批量生产的产品。
标定和指向修正命令简单有效。
罗盘在平面或者测量面转动一周以后,可以消除周围磁场的固定干扰磁场对指向非正旋的影响,但是干扰磁场过大或者变化情况下,无法消除影响。
对于要求精度的场合,为罗盘提供磁场干扰小的环境是保证精度的必要条件。
产品应用范围◆测量船载磁罗经的磁北指向。
◆气象行业中风标指向测量。
◆汽车后视镜方向指示。
◆无磁转盘转动角度测量。
◆井下仪器方位测量。
◆车载卫星天线指向测量。
◆手持GPS接收机定点位置的指北针。
产品型号表(见表1):型号接口输入电压精度规格LP3200-232-EAB-D50RS2325V±1无封装,圆形,直径50mm LP3200-232-EAB-D35RS2325V±1无封装,圆形,直径35mm LP3201-232-CAB-D35RS2325V±3无封装,圆形,直径35mm LP3201-232-CAB-L34W31RS2325V±3无封装,长:34;宽:31以上型号的两轴电子罗盘都是HEX(16进制)数据格式的数字输出表1技术指标:1.常规下方位指向的主要指标(环境温度=20℃),见表2最小典型最大单位工作电压 4.755 5.25VLP3200-232-EAB-D5*******mALP3200-232-EAB-D3*******mA 工作电流LP3201-232-CAB-D3*******mALP3201-232-CAB-L34W31222528mALP3200-232-EAB-D50-4085℃LP3200-232-EAB-D35-4085℃工作温度LP3201-232-CAB-D35070℃LP3201-232-CAB-L34W31070℃LP3200-232-EAB-D50±0.5±1°LP3200-232-EAB-D35±0.5±1°指向精度LP3201-232-CAB-D35±3±5°LP3201-232-CAB-L34W31±3±5°分辨率±0.1°非线性0.2<0.50.8%重复性±0.2°温度漂移0.004°最大干扰磁场20Gauss磁场的测量范围3Gauss串口数据格式9600,n,8,1BPS*表22.极限工作指标,见表3最小最大单位电源电压+4.5+5.5V工作温度-50+100℃表3注:长期工作在极限条件下,会造成数据失准,或者造成产品永久性损坏。
SPA2电子罗盘 用户手册目 录1 概述 (1)2 坐标系定义 (1)3 性能指标 (2)4 引脚定义 (3)5 通信协议 (3)6 测试软件 (4)7 数据格式 (5)8 自动校准 (5)9 出厂默认值 (6)1 概述SPA2电子罗盘是一种高精度数字式电子罗盘。
它主要由全固态三轴磁强计、MEMS 二轴加速度计、温度传感器、低通滤波器和16位MSP430系列微功耗单片机等硬件构成,结合独有的软件算法,可以为用户提供三维姿态信息、三轴磁场强度和环境温度,并可不依赖PC 而由罗盘自主对软硬磁干扰进行补偿。
它具有精度高、频响快、重复性好、功耗低、体积小等优点,可以广泛应用于航空、航天、航海、水中兵器、石油钻井、汽车等需要定向和导航的领域。
2 坐标系定义坐标系定义如下图所示:磁场测量和加速度测量均以向下为正。
X 图1 电子罗盘坐标系Z (朝下)OY (朝前)(朝右)3性能指标磁场测量范围为±360 uT,分辨力20nT重力场测量范围为±1.5g,噪声密度小于120μg/√Hz航向角测量范围:0°~360°精度:倾斜角≤1°,±0.3°;倾斜角≤30°,±0.5°;自动校准精度:±0.8°分辨力:0.1°重复性:±0.1°俯仰角测量范围:±60°精度:倾斜角≤30°,±0.2°;倾斜角≥30°,±0.5°分辨力:0.1°重复性:±0.1°横滚角测量范围:±60°精度:倾斜角≤30°,±0.2°;倾斜角≥30°,±0.5°分辨力:0.1°重复性:±0.1°电气接口:TTL、RS232(default)、RS422数据方式:广播模式(分为二进制补码、ASCⅡ码两种)和应答模式 波特率:9600bps(default)~115200bps采样率:5Hz~100Hz数据更新率:1Hz~80Hz工作电压:DC3.3V~DC15V消耗电流:10mA(休眠模式下5mA)工作储存温度:-40℃~85℃4 引脚定义SPA2电子罗盘采用标准9芯串口,其引脚定义如下:表1 电子罗盘引脚定义引脚名称功能1 Y RS422驱动器同相输出端2 TXD/ZRS232电平发送/ RS422驱动器反相输出端 3 RXD/BRS232电平接收/RS422接收器反相输入端 4 A RS422接收器同相输入端 5 GND 电源地 6 txd TTL 电平发送 7 rxd TTL 电平接收 8 NC 工厂保留,悬空 9 Vcc 电源电压5 通信协议0x88:广播模式下握手信号/正确标识符; 0x44:错误标识符;0xda:应答模式下握手信号。
电⼦罗盘的⼯作原理及校准电⼦罗盘,电⼦指南针,android AndroidST集成传感器⽅案实现电⼦罗盘功能电⼦罗盘是⼀种重要的导航⼯具,能实时提供移动物体的航向和姿态。
随着半导体⼯艺的进步和⼿机操作系统的发展,集成了越来越多传感器的智能⼿机变得功能强⼤,很多⼿机上都实现了电⼦罗盘的功能。
⽽基于电⼦罗盘的应⽤(如Android的Skymap)在各个软件平台上也流⾏起来。
要实现电⼦罗盘功能,需要⼀个检测磁场的三轴磁⼒传感器和⼀个三轴加速度传感器。
随着微机械⼯艺的成熟,意法半导体推出将三轴磁⼒计和三轴加速计集成在⼀个封装⾥的⼆合⼀传感器模块LSM303DLH,⽅便⽤户在短时间内设计出成本低、性能⾼的电⼦罗盘。
本⽂以LSM303DLH为例讨论该器件的⼯作原理、技术参数和电⼦罗盘的实现⽅法。
1. 地磁场和航向⾓的背景知识如图1所⽰,地球的磁场象⼀个条形磁体⼀样由磁南极指向磁北极。
在磁极点处磁场和当地的⽔平⾯垂直,在⾚道磁场和当地的⽔平⾯平⾏,所以在北半球磁场⽅向倾斜指向地⾯。
⽤来衡量磁感应强度⼤⼩的单位是Tesla或者Gauss(1Tesla=10000Gauss)。
随着地理位置的不同,通常地磁场的强度是0.4-0.6 Gauss。
需要注意的是,磁北极和地理上的北极并不重合,通常他们之间有11度左右的夹⾓。
图1 地磁场分布图地磁场是⼀个⽮量,对于⼀个固定的地点来说,这个⽮量可以被分解为两个与当地⽔平⾯平⾏的分量和⼀个与当地⽔平⾯垂直的分量。
如果保持电⼦罗盘和当地的⽔平⾯平⾏,那么罗盘中磁⼒计的三个轴就和这三个分量对应起来,如图2所⽰。
图2 地磁场⽮量分解⽰意图实际上对⽔平⽅向的两个分量来说,他们的⽮量和总是指向磁北的。
罗盘中的航向⾓(Azimuth)就是当前⽅向和磁北的夹⾓。
由于罗盘保持⽔平,只需要⽤磁⼒计⽔平⽅向两轴(通常为X轴和Y轴)的检测数据就可以⽤式1计算出航向⾓。
当罗盘⽔平旋转的时候,航向⾓在0?- 360?之间变化。