电子罗盘模块使用手册 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)

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

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

罗盘的使用和实战技巧详解

罗盘的使用和实战技巧详解

罗盘的使用和实战技巧详解罗盘的使用和实战技巧罗盘,不同于一般的指南针,其周围配上八卦、阴阳、五行后,对气场的感应比指南针更加灵敏,古圣贤按照罗盘天池内的异常动作,来推断其处气场可能发生的变化,即奇针八法。

※一、搪针:※指针摆动不定,不归中线。

断为此地有怪石深潭,居之有祸,若针在巽巳丙位泛动,则九尺之下有古板古器等,居之出酒色女子,巫师、孤寡贫困之人。

※二、兑针:※针头上突,又称浮针,说明有阴气介入,但此为善阴,不是自家已故先人,就是福神护法。

※三、沉针:※针头下沉。

说明有阴气介入,此阴非恶阴,但为冤死或非正常死亡者,会使常人感到不适※。

四、转针:※指针转而不止。

恶阴介入,怨恨之气徘徊不停,居住必有伤害。

※五、投针:※指针半浮半沉,或上浮不达顶,下沉不达底。

地下有坟墓,居之必多哭,且需防官司口舌。

※六、逆针:※针归中线不顺,或针头斜飞。

此地出忤逆之人,并人财两败,无风水可言。

※七、侧针:※针已静止,但不归中线。

此地为神坛古刹,住家不可。

※八、正针:※无异样且不偏不斜,此地为正常之地,可以考虑其他方面而斟酌用之。

※罗盘的构造。

罗盘的底盘正方形,代表地,中间圆形,代表天,称为天圆地方。

放置指南针的地方称为天池,指南针的其中一端好象一对小牛角,那个方向是北方。

另一端所指的是南方。

天池的底盘有两个小红点,将小牛角移至两点中央,那便是正北方。

罗盘上红色代表吉祥,黑色代表凶险。

这是术数师为方便后学者而设计的。

罗盘的间置的时候必须平放,才可以令磁针保持在间适锝状态。

如果侧放,令磁针打侧跌在固定位置,很快便灰失去功效,这一点大家必须留意。

放置罗盘的时候,亦要留意附近是否有电流或磁石,有的话同样令磁针很快便失效。

一个专业的风水师要带备两个罗盘。

当发现磁针不稳定的时候,便要拿出第二个罗盘,去确定是磁针失效,抑或受磁场干扰。

相传蚩尤被黄帝打败之后,灵魂附于指南车之内,所以罗盘有被视为有辟邪之说。

有人将罗盘视为辟邪之物,用原理去解释,罗盘上包含所有五行八卦,的确可以产生平衡五行的作用。

电子罗盘

电子罗盘

电子罗盘目录概述产品功能与简介原理特点应用场合编辑本段概述电子罗盘电子罗盘,也叫数字指南针,是利用地磁场来定北极的一种方法。

古代称为罗经,现代利用先进加工工艺生产的磁阻传感器为罗盘的数字化提供了有力的帮助。

现在一般有用磁阻传感器和磁通门加工而成的电子罗盘。

虽然GPS在导航、定位、测速、定向方面有着广泛的应用,但由于其信号常被地形、地物遮挡,导致精度大大降低,甚至不能使用。

尤其在高楼林立城区和植被茂密的林区,GPS信号的有效性仅为60%。

并且在静止的情况下,GPS也无法给出航向信息。

为弥补这一不足,可以采用组合导航定向的方法。

电子罗盘产品正是为满足用户的此类需求而设计的。

它可以对GPS 信号进行有效补偿,保证导航定向信息100%有效,即使是在GPS信号失锁后也能正常工作,做到“丢星不丢向”。

编辑本段产品功能与简介电子罗盘电子罗盘可以分为平面电子罗盘和三维电子罗盘。

平面电子罗盘要求用户在使用时必须保持罗盘的水平,否则当罗盘发生倾斜时,也会给出航向的变化而实际上航向并没有变化。

虽然平面电子罗盘对使用时要求很高,但如果能保证罗盘所附载体始终水平的话,平面罗盘是一种性价比很好的选择。

三维电子罗克服了平面电子罗盘在使用中的严格限制,因为三维电子罗盘在其内部加入了倾角传感器,如果罗盘发生倾斜时可以对罗盘进行倾斜补偿,这样即使罗盘发生倾斜,航向数据依然准确无误。

有时为了克服温度漂移,罗盘也可内置温度补偿,最大限度减少倾斜角和指向角的温度漂移。

编辑本段原理三维电子罗盘由三维磁阻传感器、双轴倾角传感器和MCU构成。

三维磁阻传感器用来测量地球磁场,倾角传感器是在磁力仪非水平状态时进行补偿;MCU处理磁力仪和倾角传感器的信号以及数据输出和软铁、硬铁补偿。

该磁力仪是采用三个互相垂直的磁阻传感器,每个轴向上的传感器检测在该方向上的地磁场强度。

向前的方向称为x方向的传感器检测地磁场在x方向的矢量值;向左或Y方向的传感器检测地磁场在Y方向的矢量值;向下或Z方向的传感器检测地磁场在Z方向的矢量值。

电子罗盘-218418915.doc

电子罗盘-218418915.doc

范例三电子罗盘一.系统概述本系统的目标是设计一个两轴数字罗盘系统。

对其所指的方向进行测量。

当系统工作时,系统中的磁阻传感器(HMC1022)对所在地的地磁进行A/D采集,然后对采集量进行处理,将所在的方向相对正北的角度通过串口发送给高端。

本系统可工作在正常状态和标定状态。

1 正常状态在该状态下,系统对地磁进行正常采集后进行校准,然后通过串口将计算的方向角发送出来。

2 标定状态在该状态下,系统对周围的磁场进行采集,以此为参考,推导出校准参数。

退出该状态时,将校准参数保存起来,以便用于对正常状态下采集的数据进行偏置校准。

二.系统输入/输出分析两轴数字罗盘系统的系统框图如图6-27所示。

图6-27 数字罗盘系统框图从系统框图中可以看出,两轴数字罗盘系统大体可以分为模拟量输入、开关量输出以及通信量3 类。

模拟量输入分析如表6-5所示。

表6-5 数字罗盘系统模拟量输入开关量输出分析如表6-6所示表6-6 数字罗盘系统开关量输出表6-7 数字罗盘系统通信量三.硬件设计1 芯片选型选取芯片时应该注意:不要将所有的I/O口用满,应当预留一定的输入输出端口,以便扩展需要。

通过分析数字罗盘系统的输入量和输出量,发现所需的I/O口较少,为5个。

但考虑到该系统对A/D采集精度要求较高并且要求有SCI模块以便于通信,故考虑该系统采用具有10BitA/D采集和SCI模块的MR8。

2 设计框图数字罗盘系统的硬件框图如图6-28所示,下面将分析A/D采集中的电压放大模块、HMC1022(磁阻传感器)的置位/复位电路和SCI(RS-232)通信模块。

图6-28 基于MR8的数字罗盘系统框图3 MCU引脚汇总列表数字罗盘系统中MR8的I/O口具体分配情况如表6-8所示。

表6-8 MR8的I/O分配4 模块硬件分析及设计(1) A/D采集模块在该模块中,使用MR8内部的A/D模块对HMC1022产生的两路电压采集。

考虑到在地球磁场下HMC1022输出的电压范围在-5mv~5mv之间,对于如此小的电压,模数转换器无法准确转换,因此需要对其输出电压进行放大。

电子罗盘模块

电子罗盘模块

电子罗盘模块1、概述电子罗盘模块可以检测周围的磁场强度,可应用于使运动的装置或设备转动到指定的方向等,比如安装在小车上,可以控制小车转动到指定方向或沿着指定方向行走。

模块上具有用于校准的按键和指示灯,当模块周围的机械结构或模块的安装位置(方向)发生改变时,用户可以通过下载Makeblock提供的程序并操作按键来进行校准,以使得模块在新的环境下能准确测量出角度值。

这也是本模块相比于其他商家同类型产品的优势之一。

该本模块接口是白色色标,说明是I2C通信模式,需要连接到主板上带有白色标识接口。

2、技术规格●工作电压:5V DC●分辨率:5 mil gauss●磁场动态范围:±1到±8 gauss●电子罗盘精度:可精确到1°到2°●信号模式:I2C通信●工作温度:-30到85℃●模块尺寸:52 x 24 x 18 mm (长x宽x高)3、功能特性●模块的白色区域是与金属梁接触的参考区域;●模块有两种工作模式:测量模式→蓝灯常亮,校准模式→蓝灯闪烁;●在通电后第一次使用模块时需要校准模块;●具有反接保护,电源反接不会损坏IC。

●支持Arduino IDE编程, 并且提供运行库来简化编程;●支持mBlock图形化编程,适合全年龄用户;●使用RJ25接口连线方便;●模块化安装,兼容乐高系列;●配有接头支持绝大多数Arduino系列主控板。

4、引脚定义电子罗盘模块有六个针脚的接头,每个针脚的功能如下表序号引脚功能1 GND 地线2 VCC 电源线3 SDA I2C数据接口4 SCL I2C时钟接口5 RDY 检测数据是否已采集6 KEY 检测校准按钮是否按下表 1 6-Pin 接口功能5、接线方式●RJ25连接由于电子罗盘模块接口是白色色标,当使用RJ25接口时,需要连接到主控板上带有白色色标的接口。

以Makeblock Orion为例,可以连接到3,4,6,7,8 号接口,如图图 1 电子罗盘模块与 Makeblock Orion连接●杜邦线连接当使用杜邦线连接到Arduino Uno主板时,模块SCL、SDA引脚需要连接到 I2C接口,即连接到A5、A4接口如下图所示:图 2 电子罗盘模块与 Arduino UNO 连接图注:接杜邦线时,模块上需要焊接排针。

电子罗盘

电子罗盘

CMPS03 - Robot Compass ModuleThis compass module has been specifically designed for use in robots as an aid to navigation. The aim was to produce a unique number to represent the direction the robot is facing. The compass uses the PhilipsKMZ51 magnetic field sensor, which is sensitive enough to detect the Earths magnetic field. The output from two of them mounted at right angles to each other is used to compute the direction of the horizontal component of the Earths magnetic field. We have examples of using the Compass module with a wide range of popular controllers.Connections to the compass moduleThe compass module requires a 5v power supply at a nominal 15mA.There are two ways of getting the bearing from the module. A PWM signal is available on pin 4, or an I2C interface is provided on pins 2,3.The PWM signal is a pulse width modulated signal with the positive width of the pulse representing the angle. The pulse width varies from 1mS (0° ) to 36.99mS (359.9° ) – in other words 100uS/° with a +1mS offset. The signal goes low for 65mS between pulses, so the cycle time is 65mS + the pulse width - ie. 66ms-102ms. The pulse is generated by a 16 bit timer in the processor giving a 1uS resolution, however I would not recommend measuring this to anything better than 0.1° (10uS). Make sure you connect the I2C pins, SCL and SDA, to the 5v supply if you are using the PWM, as there are no pull-up resistors on these pins.Pin 2,3 are an I2C interface and can be used to get a direct readout of the bearing. If the I2C interface is notused then these pins should be pulled high (to +5v) via a couple of resistors. Around 47k is ok, the values are not at all critical.I2C communication protocol with the compass module is the same as popular eeprom's such as the 24C04.. First send a start bit, the module address (0XC0) with the read/write bit low, then the register number you wish to read. This is followed by a repeated start and the module address again with the read/write bit high (0XC1). You now read one or two bytes for 8bit or 16bit registers respectively. 16bit registers are read high byte first. The compass has a 16 byte array of registers, some of which double up as 16 bit registers as follows;Register Function0 Software Revision Number1 Compass Bearing as a byte, i.e. 0-255 for a full circle2,3 Compass Bearing as a word, i.e. 0-3599 for a full circle, representing 0-359.9 degrees.4,5 Internal Test - Sensor1 difference signal - 16 bit signed word6,7 Internal Test - Sensor2 difference signal - 16 bit signed word8,9 Internal Test - Calibration value 1 - 16 bit signed word10,11 Internal Test - Calibration value 2 - 16 bit signed word12 Unused - Read as Zero13 Unused - Read as Zero14 Unused - Read as Undefined15 Calibrate Command - Write 255 to perform calibration step. See text.Register 0 is the Software revision number (8 at the time of writing). Register 1 is the bearing converted to a 0-255 value. This may be easier for some applications than 0-360 which requires two bytes. For those who require better resolution registers 2 and 3 (high byte first) are a 16 bit unsigned integer in the range 0-3599. This represents 0-359.9°. Registers 4 to 11 are internal test registers and 12,13 are unused. Register 14 is undefined. Don't read them if you don't want them - you'll just waste your I2C bandwidth. Register 15 is used to calibrate the compass. Full calibration information is here.The I2C interface does not have any pull-up resistors on the board, these should be provided elsewhere, most probably with the bus master. They are required on both the SCL and SDA lines, but only once for the whole bus, not on each module. I suggest a value of 1k8 if you are going to be working up to 400KHz and 1k2 or even 1k if you are going up to 1MHz. The compass is designed to work at up to the standard clock speed (SCL) of 100KHz, however the clock speed can be raised to 1MHZ providing the following precaution is taken;At speeds above around 160KHz the CPU cannot respond fast enough to read the I2C data. Therefore a small delay of 50uS should be inserted either side of writing the register address. No delays are required anywhere else in the sequence. By doing this, I have tested the compass module up to 1.3MHz SCL clock speed. There is an example driver here using the HITECH PICC compiler for the PIC16F877. Note that the above is of no concern if you are using popular embedded language processors such as the OOPic. The compass module always operates as a slave, its never a bus master.Pin 7 is an input pin selecting either 50Hz (low) or 60Hz (high) operation. I added this option after noticing a jitter of around 1.5° in the output. The cause was the 50Hz mains field in my workshop. By converting in synchronism with the mains frequency this was reduced to around 0.2° . An internal conversion is done every 40mS (50Hz) or every 33.3mS (60Hz). The pin has an on-board pull-up can be left unconnected for 60Hz operation. There is no synchronism between the PWM or I2C outputs and the conversion. They both retrieve the most recent internal reading, which is continuously converted, whether it is used or not.Pin 6 is used to calibrate the compass. The calibrate input (pin 6) has an on-board pull-up resistor and can be left unconnected after calibration. Calibration is identical to the CMPS01 Rev7 procedure. Full calibration information is here.Pins 5 and 8 are No Connect. Actually pin 8 is the processor reset line and has an on-board pull-up resistor. It is there so that we can program the processor chip after placement on the PCB.PCB Drilling PlanThe following diagram shows the CMPS03 PCB mounting hole positions.We have examples of using the Compass module with a wide range of popular controllers. (Photos show the CMPS01) .I have prepared a short Q&A. If you have any questions of your own, please email me.Gerald Coe.。

APM固定翼设置完整手册(方少版)

APM固定翼设置完整手册(方少版)
这套软件只能跑在已经装有 .net Framework 3.5 以上的 Windows 计算机,如果 你是使用 Windows Vista 或 Windows 7 则已经预载,但如果是使用 Windows XP 请到这里下载安装。
如果你已经将你的 APM 接上串行端口的号码会显示在 Mission Planner 的右上 角,请确认波特率为 115200。
连接你的遥控设备
把你的遥控飞机转变成无人机,实际上只是将自动驾驶仪放入遥控接收器及飞行 伺服机之间,这么一来自动驾驶仪就可以完全控制你的飞行器。 你需要下列几种设备:
• 至少 5 通道的遥控器,建议 7 通道以上。 • 每个频道需使用母对母接头的连接线,这个会是不错的选择。 • 电源:飞行器的 ESC、仪表、电池状态、BEC,APM。
• 已添加额外的 LED,以备将来使用。 • 它仅支授一组外接式 GPS 模块(建议使用 3DR uBlox 6)。这确保用户可
以将 GPS 模块放置在最佳位置,能够完全曝露在天空底下,并且远离 ESC 及无线设备等电磁干扰源。 • 内建记忆卡芯片,而不是在定制的 SD 卡上。这是为了避免与 APM 2.0 的用户一样发生记忆卡插入和接触的问题。
现在到 Windows 的控制面板/硬件和音效/设备管理器,你就可以在「其他装置」 中看到"Arduino Mega 2560",点击鼠标右键选择更新驱动程序软件
APM 软件安装
进去后选择「浏览计算机上的驱动程序软件」。找到你刚才下载驱动程序即可。
PDF 文件使用 "pdfFactory Pro" 试用版本创建
调用(启动时在终端输入”回车“三次)。
• 无继电器。极少数人利用这一点,所以如果你想要一个(例如触发一个摄 像头),我们支持增加一个外部继电器。

电子罗盘设计方案

电子罗盘设计方案

电子罗盘设计方案整体设计一款平面数字罗盘模块。

输入电压低,体积小。

其工作原理是通过磁传感器中两个相互垂直轴同时感应地球磁场的磁分量,从而得出方位角度,此罗盘支持RS232协议及IIC协议。

该产品精度高,稳定性高,并切具有重新标定的功能,能够在任意位置得到准确的方位角,其输出的波特率默认是9600bps,波特率可选,19200、38400、57600以及115200。

可以配置成定时输出,也可以主动查询获取,具有磁偏角补偿功能,可适应不同的工作环境。

●使用芯片HMC1022芯片传感器的机构为四臂的惠斯通电桥,将磁场转换为差动输出的电压。

灵敏度为1mV/V/高斯。

更宽的磁场范围:±6微高斯(地磁场为0.5高斯),最小可检测85高斯的磁场。

低成本,小体积:和磁通门传感器相比,这些小体积的传感器减小了线路板的组装成本,增加了可靠性和坚固程度。

低功耗,供电电源为3~10DC 。

大量OEM设计。

置位/复位电路简单。

无须偏置补偿电路(除非精度要求特别高)。

输出非常完美典型应用:电子指南针,电子罗盘,遥控飞机,航空模型HMC1052 是一个突破性的设计,它将高性能的两轴磁阻传感器,集中在单个芯片上。

完美的正交双轴检测(误差〈0.01°),且灵敏度互相匹配,消除了指向误差。

供电电压低于1.8V,超小尺寸,低功耗。

灵敏度达1mv/v/Oe,检测磁场范围达±60e 。

带10 针的小型表贴外形(SMOP),尺寸3mm x 3mm x 1mm 。

芯片上的带有专利的,位于芯片上的置位/ 复位带,减少了温度漂移影响,非线性误差,也减少了大磁场存在引起的信号输出损失。

置位/复位电路简单。

无须偏置补偿电路。

输出非常完美典型应用:电子指南针,电子罗盘,遥控飞机,航空模型●产品特点1.体积小2.高性价比3.串口及IIC输出格式4.波特率可调5.5V TTL输入输出6.512 bytes EERPOM●产品应用(1)、手持式仪器仪表(2)、机器人导航、定位(3)、航行系统(4)、船用自动舵(5)、八木天线定位(6)、车载GPS导线(7)、航模定向●性能参数●模块需要用到的参数定义1)方位角度:数值范围(0~355.9),默认0角度为方向北(即磁北加上偏移角度),方位为顺时针方向增大,即东-90,南-180,西-270;在协议中,角度为两字节,范围为0~3559,默认高字节在前,低字节在后;2)磁北:地磁的北;3)偏移角度:正北与地磁北之间的夹角,为2个字节,数值范围(0~3559等效角度0~355.9),默认磁偏角为23.5度,即整型数为235, 默认高字节在前,低字节在后;4)定时周期:电子罗盘内部定时输出的周期时间,比如定时周期1S,电子罗盘每1S输出一组方位角度数据;定时周期是2字节,单位是S/10,默认设置是10,即1S,1000等于100S, 默认高字节在前,低字节在后,即0x(03 E8);●EEPROM存储信息;0x00-0x01:磁偏角;高字节在前,低字节在后;0x02:开机是否开启定时器主动输出数据;0x03-0x04:定时周期,高字节在前,低字节在后;通讯协议共10条指令,如表格所示:串口支持使用的通讯格式如下;通讯格式:命令C( 1 字节)+数据长度n( 1字节)+数据data(n 字节)+检验和Sum(1字节)Sum=命令+数据长度+数据1+数据2+。

范例三 电子罗盘

范例三 电子罗盘

范例三 电子罗盘一.系统概述本系统的目标是设计一个两轴数字罗盘系统。

对其所指的方向进行测量。

当系统工作时,系统中的磁阻传感器(HMC022)对所在地的地磁进行A/D 采集,然后对采集量进行处理,将所在的方向相对正北的角度通过串口发送给高端。

本系统可工作在正常状态和标定状态。

正常状态在该状态下,系统对地磁进行正常采集后进行校准,然后通过串口将计算的方向角发送出来。

2 标定状态在该状态下,系统对周围的磁场进行采集,以此为参考,推导出校准参数。

退出该状态时,将校准参数保存起来,以便用于对正常状态下采集的数据进行偏置校准。

二.系统输入/输出分析两轴数字罗盘系统的系统框图如图627所示。

M C U2磁阻传感器2PC 机磁阻传感器复位置位电路图627 数字罗盘系统框图从系统框图中可以看出,两轴数字罗盘系统大体可以分为模拟量输入、开关量输出以及通信量 3 类。

模拟量输入分析如表65所示。

表65 数字罗盘系统模拟量输入类型 编号 名称 命名 备注模拟量输入A 轴采集量 A_data 磁阻传感器 范围为0mV ~+0mV 2B 轴采集量B_data磁阻传感器范围为0mV ~+0mV开关量输出分析如表66所示表66 数字罗盘系统开关量输出类型 编号 名称 命名 控制对象 备注开关量 输入复位置位信号R/S磁阻传感器对HMC022进行复位置位,0.5A ~4A表67 数字罗盘系统通信量编号名称命名备注串口发送数据 TxD 向PC 端发送数据 2串口接受数据RxD接收PC 端发来的数据三.硬件设计芯片选型选取芯片时应该注意:不要将所有的I/O 口用满,应当预留一定的输入输出端口,以便扩展需要。

通过分析数字罗盘系统的输入量和输出量,发现所需的I/O 口较少,为5个。

但考虑到该系统对A/D 采集精度要求较高并且要求有SCI 模块以便于通信,故考虑该系统采用具有0BitA/D 采集和SCI 模块的MR8。

2 设计框图数字罗盘系统的硬件框图如图628所示,下面将分析A/D 采集中的电压放大模块、HMC022(磁阻传感器)的置位/复位电路和SCI(RS232)通信模块。

  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
相关文档
最新文档