电子罗盘模块使用手册 CMPS04-I2C.

合集下载

基于LSM303AGR的超紧凑高性能电子罗盘模块说明书

基于LSM303AGR的超紧凑高性能电子罗盘模块说明书

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 )模式。

I2C模块使用教程

I2C模块使用教程

前言 (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公司开发的两线式串行总线,用于连接微控制器及其外围设备。

电子罗盘

电子罗盘

(1byte)
(1byte)
(1byte)
(1byte) (0byte)
68h
08
此命令用于校准开始操作,成功接收后,进入校准程序,用户需转动模块一圈.
应答命令:
标 示 符 数据长度 地 址 码 命 令 字 数 据 域
(1byte)
(1byte)
(1byte)
(1byte)
(1byte)
68h
58
00 设置成功
●运动表指南针
DCM220 二维电子罗盘
罗盘引脚定义
名称
VCC TXD RXD GND
输入/输出
POWER O I
引脚号码
Pin1 Pin2 Pin3 Pin4
描述
电源+5V 串口输出 串口接收 电源信号地
产品性能
DCM220
工作电压 低功耗<40mA 工作温度 测量参数
5V
–20℃-- +70℃
数据域为2字节返回角度值,为压缩BCD码。XXX为三位整数值(0到360),如00 26表示26度
2设置磁偏角
发送命令:68 06 00 06 00 28 34
标 示 符 数据长度 地 址 码
(1byte)
(1byte)
(1byte)
命 令 字 数据域 (1byte) (2byte)
68h
06
SXXX
数据长度 地 址 码
(1byte)
(1byte)
3读磁偏角
发送命令:68 04 00 07 0B
标 示 符 数据长度 地 址 码
(1byte)
(1byte)
(1byte)
68h
此命令用来读取设定后的磁偏角值.

电子罗盘

电子罗盘

一。

产品主要特点
产品采用双轴磁场传感器,测量水平面上磁场指向。

输出数字信号。

主要特点如下:
1。

低功耗,小尺寸
2。

内置修正算法,自动校准指向,和设置零度点。

3。

具有宽温度工作范围,和极低的温度漂移。

二。

技术指标
三。

通讯接口和命令格式
1。

数据接口方式:
TTL电电平。

数据格式:9600,氮,8,1。

2。

罗盘接受的命令格式
3。

罗盘发送的命令格式
4。

命令表
命令解释:
字母a.命令字位于数据帧的第5个字节。

湾写地址命令帧的第4字节地址位置,就是要写入的地址。

角罗盘收到命令并且执行后,在第5字节,返回相同的命令字。

d.发送[开始转动标定]命令后,将罗盘旋转超过360度,停止后
发送[停止转动标定]命令,最后发送[保存转动标定]命令,保存并且结束标定。

标定数据掉电保存在罗盘内。

大肠杆菌清除罗盘内的相对指向设置(恢复工厂设置)时,先发送[允许设置指向]命令,然后发送[清除原有指向相对零点]命令,使罗盘指向恢复工厂设置。

此时,再发送[允许设置指向]命令,然后发送[设置指向为零度]命令,使罗盘指向设置为零度。

楼单次和连续模式掉电后状态保留。

备注:本产品还有精度为1度的电子罗盘,详情欢迎大家咨询。

在线QQ:317244831
所有产品质保一年!。

电子罗盘

电子罗盘

温度影响
传感器的温度系数也将影响航向角的精度, 两种需要考虑:一种是偏移随温度的漂移,另一 种是灵敏度温度系数。由于HMC5883l三个相互垂 直轴x、y 、z在同一个封装中,他们的温度系数 匹配的很好,这样三轴经历相同的温度变化也相 同。X和y的比率没有太大的影响。磁阻传感器的 偏移随温度漂移并不匹配,两个传感器可能反向 漂移,对航向角产生较大误差,在磁阻传感器中 采取复位和置位开关电路进行补偿。
系统误差补偿,得到载 体的姿态参数,将它们通过
串口在上位机实时输出。
复位电路
Hx 信 号
三维磁阻传感器 Hy 调 Hz 理 电 路
Gx
双轴加速计 Gy
A/D 转换器
MCU
RS22
上位机
电子磁罗盘结构示意图
电子磁罗盘基本原理
地球的磁场强度为0.5—0.6gauss,无论何 地,磁场的水平分量永远指向磁北,这是所有电 子罗盘的制作基础。传统的导航定位,通过以下 三个姿态参数:航向角(α),俯仰角(β),横滚 角(γ)。将磁阻传感器的三个敏感轴沿载体的三 个坐标轴安装,分别测量地磁场磁感强度H在载体 坐标系三个坐标上的投影分量(Hx,HY,Hz)。在 地 平 坐 标 系 中 , 磁 阻 传 感 器 的 三 轴 输 出 为 (HR-X, HR-Y, HR-Z),如下图示所示。
电子罗盘主要分为磁通门、磁阻式和霍尔元件 三种。磁通门传感器是由一套环绕磁芯的线圈组成, 该磁芯配有励磁电路,能够提供低成本的磁场探测 方法,但它们体积偏大、易碎、响应时间慢。霍尔 效应磁传感器的优点是体积小,重量轻,功耗小, 价格便宜,接口电路简单,特别适用于强磁场的测 量。但是,它又有灵敏度低、噪声大、温 度性能 差等缺点。虽然有些高灵敏度或采取了聚磁措施霍 尔器件也能用于测 量地磁场,但一般都是用于要 求不高的场合。

上海朗尚科贸 平面电子罗盘说明书

上海朗尚科贸 平面电子罗盘说明书

平面电子罗盘说明书(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注:长期工作在极限条件下,会造成数据失准,或者造成产品永久性损坏。

电子罗盘应用电路设计与调试

12-bit ADC与低干扰AMR传感器,能在±8高斯的磁 场中实现5毫高斯分辨率
内置自检功能 低电压工作(2.16-3.6V)和超低功耗(100uA) 内置驱动电路 I2C数字接口 无引线封装结构 磁场范围广(+/-8Oe) 有相应软件及算法支持 最大输出频率可达160Hz
SCL VDD NC S1
3 设计过程
HMC5883L简介
霍尼韦尔 HMC5883L 是一种表面贴装的高集成模块,并带有数字接口的弱磁传感器芯 片,应用于低成本罗盘和磁场检测领域。HMC5883L 包括最先进的高分辨率HMC118X系 列磁阻传感器,并附带霍尼韦尔专利的集成电路包括放大器、自动消磁驱动器、偏差校 准、能使罗盘精度控制在1°~2°的12位模数转换器。
(2)电路调试 1. 使用+5V电源接入HMC5883L电子罗盘模块的J4接口,使用20P排线将 HMC5883L电子罗盘模块J2接口和智能显示终端的J2接口相连接起来,确认 无误之后,给模块上电,模块电路如图13.2所示。 2. 通过按键K1或K2选中电子罗盘实验,点击按键K5进入电子罗盘实验,可 以观察到智能显示终端上显示当前方向角。 3. 缓慢转动模块,观察智能显示终端上方向角的变化。
1. 任务描述 2. 器材准备 3. 设计过程 4. 电路调试
课程内容 Course Contents
1. 任务描述 2. 器材准备 3. 设计过程 4. 电路调试
1 任务描述任务描述 Nhomakorabea• 具体任务 1)掌握HMC5883L磁传感器结构及工作原理。 2)掌握电子罗盘应用电路的制作与调试方法。
• 任务要求 用HMC5883L测量当前方位角,并在智能显示终端上显示出来。
HMC5883L 采用霍尼韦尔各向异性磁阻(AMR)技术,这些各向异性传感器具有在轴向 高灵敏度和线性高精度的特点。传感器带有的对于正交轴低敏感度的固相结构能用于测 量地球磁场的方向和大小,其测量范围从毫高斯到 8 高斯(gauss)。

电子罗盘


分工
1、综述共同完成 2、原理图、PCB制作、元器件焊接将由边志耀完成。 3、电子罗盘的软件设计及编程将由方云完成。 4、电子罗盘设计完成后的参数确定、误差分析及计 算由高振负责。
数据采集模块
在传感器测量范围内,磁阻传感器输出的是 与磁场成正比的差分电压信号,在 5v 供电的情况 下产 生±30mv的偏置电压,因此可通过信号调理 电路把双极性的电压信号转换成单极性信号,同 时通过模 拟低通滤波,消除高频噪声,最终得到 0 一 5V 的电压范围。 AD7714 是一款高分辨率、低 噪声的24位∑一△A/D转换器,支持6路单端信号 输入满足5路信号的采集要求。
西北工业大学刘诗斌教授的博士学位论文应用磁 通门技术于无人机中并研制了原理样机,对实际 应用中的误差进行了智能补偿;其余国内的大部 分研究仍停留在利用Honeywell公司的磁阻传感器 来制作电子罗盘上,并对产生的误 差进行智能补 偿的阶段。因此可以说电子磁罗盘在国内还是有 很大的发展空间。
电子磁罗盘分类
γ
HX HY HZ Z
磁北 Y β
HR-X=HXcosβ+HY sinβsinγ-HZ sinβcosγ; HR-Y=HX cosγ+HZ sinβ; 其中α 为航向角;β 为俯仰角;γ 为横滚角
两轴加速计测得的重力加速度为GX、GY已知当地 的重力加速度值为g,可得: β =arcsin(Gx/g) γ =arcsin(GY/g) α =arctan(HR-Y /HR-X)
主要元件的性能指标
HMC5883三轴磁阻传感器的性能指标: 1、数字量输出:I2C数字量输出接口,设计使用方便。 2、尺寸小:3x3x0.9mmLCC封装,适合大规模量产使用。 3、精度高:1-2度,内置12位A/D,OFFSET,SET/RESET 电路,不会出现磁饱和现象,不会有累加误差。 4、支持自动校准程序,简化使用步骤,终端产品使用 非常方便。 5、内置自测试电路,方便量产测试,无需增加额外昂 贵的测试设备。 6、功耗低:供电电压1.8V, 功耗睡眠模式--2.5微测量 模式--0.6mA。

SPA电子罗盘用户手册(PDF)

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

电⼦罗盘的⼯作原理及校准电⼦罗盘,电⼦指南针,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?之间变化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
新动力电子
CMPS04-I2C 电子罗盘模块
电子罗盘模块使用手册 CMPS04-I2C
/
概述:CMPS04-I2C 是一款高性能平面数字罗盘模块,其工作原理是通过磁阻传感器感应地球磁场的磁分 量,从而得出方位角度。该罗盘以 I2C 方式与上位进行通信。CMPS04 模块相当于一个 AT24C02 的存储器
校准的方法:
当罗盘周围磁场改变后,罗盘计算输出的角度信息将不准确,这时要对罗盘进行校准,以此对罗盘周 围磁场改变所产生的影响进行校正。方法:将罗盘水平放置发送 0x51 到命令寄存器之后均匀缓慢的旋转两 周,不可以太快,旋转一周时间应该不小于 1 分钟,一般 1 分钟旋转一周,(可以绕自身的中轴旋转,也可 以绕平面内一点作圆周运动),然后发送 0x52 到命令寄存器结束校准。
(2)电子罗盘的干扰信号 电子罗盘在稳定的磁环境下补偿适中的偏差,但是它不能补偿改变的磁干扰。比如,带直流电的电线产 生磁场,如果直流电改变,磁场大小也将改变。电源也一个变化的干扰源。 电子罗盘是消除不了变化的磁 环境干扰。
(3)电子罗盘的测量精度 国外号称是世界上精度最高的电子罗盘(C100),价格是大概 795 美元,它的航向精度能达到 0.5 度
改变目前 0xE0 设备地址( 默认出厂地址)到 0xE8,请按正确的顺序写入命令字符( 0xA0,0xAA,0xA5,0xE8 )。
这些命令必须发送正确的顺序才改变 I2C 地址,写入这个命令之间不能有其它的操作命令字符。 该命令字
符序列必须发送到命令寄存器的位置。操作完成后,你应该标签 IIC 地址,如果你忘了修改后的 IIC 地址,
你可以看发光二极管的闪烁状态。IIC 地址会在 LED 输出显示。 LED 长闪烁后就是一个 IIC 地址指示,较
短闪烁就是 IIC 地址。 请参照下表:
IIC 设备地址
LED 指示灯的状态
序号
整数
HEX 码 长闪烁
短闪烁
1
224
E0
1
0
2
226
E2
1
1
3
228
E4
1
2
4
230
E6
1
3
5
232
E8
1
sbit Key0 = P1^3; //按键 0 恢复工厂校准参数 sbit Key1 = P1^4; //按键 1 磁偏角+1 sbit Key2 = P1^5; //按键 2 磁偏角-1 sbit Key3 = P1^6; //按键 3 校准开始 sbit Key4 = P1^7; //按键 4 校准结束
(EEPROM),这样做可以解决了 RS232 接口只能接一个外部设备问题,减少了使用者的开发时间。该产品可 以改变 I2C 的通讯地址,默认 I2C 地址是 0xE0,用户可以设置 16 个不同的 IIC 地址中的一个,有校准功
能,可设置磁偏角功能,可适应不同的工作环境。
二、产品应用:
● 手持式仪器仪表; ● 机器人导航、定位; ● 船用自动舵; ● 天线定位; ● 车载 GPS 导航; ● 船模定向; ● 航行系统
磁偏角计算公式: 180℃>磁偏角>0℃ = 磁偏角; -180℃<磁偏角<0℃ = (360℃- 磁偏角);
3、检查校准质量等级。 输出一个 HEX 数据,它是一个 0 到 9 范围内的数字,0 是校准最差结果,
9 代表校准已经达到最佳状态。如果这个值小于等于 7,为了达到理想的精度建议重新校准罗盘。
4、数据格式定义如下:
(1) 方向角
方向角为 0℃~360℃的二进制数,数据的高 7 位为 0,低 9 位为数据,共占用 2 个字节
(2)磁偏角
磁偏角为 0℃~360℃的二进制数,数据的高 7 位为 0,低 9 位为数据,共占用 2 个字节。
4.4、相关命令字符:
序号 1
2 3 4 5
命令分类 校准功能
2010-04-25
2/8
新动力电子
CMPS04-I2C 电子罗盘模块
/
4.5、更改 I2C 总线地址
命令字符 1
命令字符 2
命令字符 3
ห้องสมุดไป่ตู้
IIC 的新地址
0xA0
0xAA
0xA5
0xE8
更改 I2C 地址时,总线中只能连接一个 I2C 设备。按正确的顺序写入三个命令字符到命令寄存器,比如,
6
Byte5
检查校准质量等级
未用
7
Byte6
产品编号 A(0x41)
未用
8
Byte7
内部测试参数
未用
9
Byte8
内部测试参数
未用
注解: 1、请不要经常设置序号带*号的数据寄存器,因为这些数据寄存器的数据写入到 EEPROM。
2、磁偏角设置。顺时针加上去,设定范围 0℃~360℃(出厂默认 000 度)
4
6
234
EA
1
5
7
236
EC
1
6
8
238
EE
1
7
9
240
F0
1
8
10
242
F2
1
9
11
244
F4
1
10
12
246
F6
1
11
13
248
F8
1
12
14
250
FA
1
13
15
252
FC
1
14
16
254
FE
1
15
模块只接收以上 IIC 地址列表数据,其它 IIC 地址数据是无效的。
注意:在同一个 IIC 总线中,不能有相同的 IIC 地址。如果 IIC 地址相同可能会出现非常难以预料的结果。
备注 罗盘水平放置 罗盘的显示分辨率 罗盘的输出精度 罗盘的更新数据的频率
出厂参数在 5V 电压测量的 连续输出模式
DIP 封装的插针
四、IIC 总线通讯协议
2010-04-25
1/8
新动力电子
CMPS04-I2C 电子罗盘模块
/
4.1、产品说明:
#define CompassI2C_Addr 0xE0 //定义电子罗盘 I2C 地址
2010-04-25
6/8
新动力电子
CMPS04-I2C 电子罗盘模块
/
uchar nIIC_RD[10];//IIC 的数据缓冲区
unsigned int nAngleNow = 0;//方向角(单位度) unsigned int nMagnAngle = 0;//磁偏角(单位度)
P2 接线定义:
P2 接口为工厂调试用,用户在实际使用时应该悬空,否则会对产品产生破坏性后果。
5.2、电子罗盘与单片机(MCU)I2C 总线控制方框图:
六、术语说明:
磁偏角:
地磁场强度矢量所在的垂直平面与地理子午面之间的夹角就角就叫磁偏角。简单的说,地理南北极之间 的连线和地磁南北极之间的连线之间有一个夹角,该夹角就叫磁偏角。不同地点的磁偏角一般是不同的, 同一地点的磁偏角也因时而变。我们用罗盘进行定向导航时,一般测量的方向是相对于地磁北极的。因此 可以通过磁偏角的补偿得到相对于地理北极的航向。比如,通过罗盘测得当前航向是北偏东 60℃,而当地
命令字符 (HEX) 0x51
校准功能 0x52
设置地址 设置地址 设置地址
0xA0 0xA5 0xAA
含义
校准开始。罗盘模块开始搜索周围的磁场强度。 具体说明请看后面术语说明(校准的方法) (罗盘上的 LED 会点亮,直到校准结束) 校准结束。(罗盘模块存放周围的磁场强度数据,这样就可以输出更准确 的角度数据)。 1st 按顺序改变 I2C 地址;恢复出厂前校准设置。 3rd 按顺序改变 I2C 地址;恢复出厂前校准设置。 2nd 按顺序改变 I2C 地址;恢复出厂前校准设置。
三、技术参数表:
序号 1 2 3 4 5 6 7 8 9 10
项目 测量范围 显示分辨率 精度 响应频率 重复性 工作电压 工作电流 工作温度 储存温度 尺寸
参数 0℃~360℃ 1℃ <3℃ 30Hz <2℃ 5(+0.2 -0.2) <10 -40℃~80℃ -40℃~80℃ 24*24
单位 度 度 度 Hz 度 VDC mA 度 度 mm
2010-04-25
4/8
新动力电子
CMPS04-I2C 电子罗盘模块
/
的磁偏角是 5℃,此时相对于地理北极的航向就是 60℃+5℃=65℃。
校准:
也叫硬铁补偿,所有的电子罗盘在使用前都要进行校准。一旦罗盘周围硬铁环境发生变化,也会使罗盘 周围固有的磁场环境发生变化。此时罗盘计算输出的角度信息将不准确,为消除周围固有磁场变化带来的 影响,就要对罗盘进行校准。
1、电子罗盘模块的通讯方式与 IIC 存储器 AT24C02 一样,最高的同步时钟为 400KHz。 2、主机与从机(本模块)进行 IIC 通讯需要三根线,即 SDA(数据总线),SCL(时钟总线),GND(主、从共用
的地线)。如果要多个设备用在同一个总线上,请安装电阻值为 4K7 的上拉电阻,可防止设备间不 能通讯。 3、电子罗盘模块的 I2C 总线地址为 0xE0,可更改 I2C 地址。 4、输出的角度关系:方向角 = 罗盘角 + 磁偏角;
LCD1602 显示的数据 第一行: CMPS04 I2C 第一行: 方向角 磁偏角 校准质量等级
该模块的通讯方式与 AT24C02 是一样的. 在 C51_I2C.h 文件里更改 I2C 的通讯引脚. 注意的事项: 1.通电前要检查模块的接线要正确。 2.要确定模块的工作电压是 5V,因为出厂参数是 5V 下测得的。 3. 若 用 开 发 板 调 试 时 , 要 看 开 发 板 的 单 片 机 的 引 脚 有 没 有 被 外 部 电 路 复 用 , 否 则 调 试 不 了 。 ====================================================================================*/ #include <reg52.h> #include "C51_I2C.h" #include "LCM1602.h" #define uchar unsigned char #define uint unsigned int
相关文档
最新文档