地磁计HMC5883L
信方式:IIC
工作电压:2.16~3.6V
工作电流:100uA
罗盘航向精度:1°~2°
当达到预定的最大输出频率,才需要监控DRDY中断引脚
I2C接口
装置包含一个7-bits串行地址,并且支持标注和快速模式(100kHZ和400kHz)。主机的活动(读写操作)优先于内部活动。
操作模式
连续测量模式
在选择的速率下进行连续的测量,并将所测量的更新数据输出寄存器。如果有必要数据可已多次读取(同一次测量值)。如果主机没有在下次测量完成之前读取上一次的测量值,旧数据将被新数据覆盖。连续测量模式下I2C总线可被网络内的其他装置启用。
单词测量模式
这个是预设的供电模式。在单测量模式数据都会被存入相应的寄存器,在完成测量和输出寄存器的更新以后,通过设置MD[n] bits ,该装置至于闲置模式,模式寄存器变更为闲置模式,单一测量模式影响测量配置(bits MS[n])。
闲置模式
在闲置模式下,装置可被I2C总线访问,但是主要能耗被禁止,且这个模式下所有寄存器保留数值。
寄存器
寄存器列表:
该装置使用地址指针来显示该寄存器是被读或者写。这些指针位置从主机发出到从机并获得7位地址+1位读写表示符
无主机干预下地址指针自动更新:
①首先访问12或更高的访问指针更新至地址00
②当访问达到08时,指针回滚到地址03
eg:
if(地址指针 = 08)
{
地址指针 = 03
}
Else if(地址指针 >= 12 )
{
地址指针 = 00
}
地址指针本身无法通过I2C读取
任何企图读取无效的地址位置将返回0,而任何无效的地址位置的写入或在一个有效的地址位置中一个未定义的位均被该装置忽略。
要让地址指针移动到一个随机寄存器地址,首先对该寄存器地址发出"写"的指令,之后再跟一个无数据位。
配置寄存器A
配置寄存器B
模式寄存器
数据输出X寄存器A和B
数据输出Y寄存器A和B
数据输出Z寄存器A和B
状态寄存器
I2C通信协议
HMC5883L使用的时一个IIC协议收定义的简化后的通信接口协议,传输速率是标准的100kpbs或者400kpbs。
总线格式是一个 8位数据/地址传送和1位应答位。有效的数据字节格式应是区分大小写的ASCII字符或二进制字符;返回值为二进制数据,负的二进制将以补码形式传回。
HMC5883L的默认7位从机地址为0x3C的写入,0x3D的读写操作。
SCL与SDA线需要10K的上拉电阻。
①主机发送启动序列②发送从机地址③第九个时钟脉冲接收的从设备会发送ACK或NACK④主机发送数据字节以便写入操作或从机在读操作时进行时钟输出。⑤总机发送停止序列的时候终止总线传输。
地址直接包含从机地址 先7位(bits7-1)和最低有效位(LSB;读操作LSB = 1;写操作LSB = 0)
实例操作
-需要配置寄存器:配置寄存器A、配置寄存器B、模式寄存器
-读取数据寄存器(03~08)循环读寄存器的值(6次);开始寄存器为0x30
-等待67ms
-结束循环
地磁计HMC5883L相关推荐
- 461在全志r16平台tinav3.0系统下使用地磁计QMC5883L
461在全志r16平台tinav3.0系统下使用地磁计QMC5883L 2018/9/7 14:08 版本:V1.0 开发板:SC3817R SDK:tina v3.0 (基本确认全志tina v3. ...
- IMU中地磁计的椭球面拟合标定法与C++实现
What's New? Open sourced in: https://github.com/HongshiTan/RTIMULib2 概述 imu中的地磁计(准确的说是电子罗盘)用来在数据融合中提 ...
- 姿态解算进阶:互补滤波(陀螺仪、加速度计、地磁计数据融合)
互补滤波原理: 在四轴入门理论知识那节我们说,加速度计和磁传感器都是极易受外部干扰的传感器,都只能得到2维的角度关系,但是测量值随时间的变化相对较小,结合加速度计和磁传感器可以得到3维的角度关系.陀 ...
- MWC(2) Multiwii初学者详细准备
1.1 软件准备 Arduino IDE 官方下载链接:https://www.arduino.cc/download_handler.php 或者Arduino社区资源:http://www.a ...
- hmc5983驱动解析
HMC5983驱动详解 简述 一.寄存器 二.命令 1.代码 2.命令详解 三.读取详解 四.校准 简述 17届智能车智能视觉组需要获取航向角,为此我尝试了hmc5983这款磁力计,它可以看成hmc5 ...
- MPU6050 6轴陀螺仪的使用与校准
1 MPU6050初始化 ①初始化IIC接口. ②初始化MPU6050.由电源管理寄存器1(0X6B)控制. ③设置角速度传感器和加速度传感器的满量程范围.由陀螺仪配置寄存器(0X1B)和加速度传感器 ...
- 物联网激荡MEMS传感器浪潮
来源:第三代半导体联合创新孵化中心 物联网悄然而至. 如今,物联网已进入跨界融合.集成创新和规模化发展新阶段,将为经济社会发展注入新活力,培育新动能.物联网在交通.物流.环保.医疗.安防.电力等领域的 ...
- 前途无量的MEMS传感器
来源:转载自「民生证券」,谢谢 微机电系统(Microelectromechanical Systems,简称 MEMS)是将微电子技术与精密机械技术结合发展出来的工程技术,尺寸在 1 微米到 100 ...
- 智能车竞赛提问回复-2021-3-25
▌交流磁场信号会改变地磁极吗? 卓大,我想问个问题,智能车比赛的交流信号磁场会对地磁计产生影响吗? ▓ 回复: 在今年的智能车竞赛中存在两个交流信号源:(1)第一种是电磁赛道上的到此导引线,它内部通有 ...
- Pixhawk代码分析-姿态解算篇B
姿态解算篇B 前言 本篇博文主要是以mahony的算法为基础理解姿态解算的过程,主要参考的论文就是William Premerlani and Paul Bizard的关于DCM的一篇经典论文< ...
最新文章
- 全面远程办公还有多远?用智办事很方便!
- 张高兴的 Windows 10 IoT 开发笔记:FM 电台模块 KT0803L
- 研究:低智商男人易出轨
- 《数据库SQL实战》查找当前薪水详情以及部门编号dept_no
- 博人眼球的 电子苍蝇
- 用批处理实现文本文件中指定字符串的替换 zz
- 税务大厅计算机网络安全与管理,峡江县税务局多措并举加强网络安全和保密管理...
- mysql 清空或删除表数据后,控制表自增列值的方法
- 数据库连接字符串的写法(参考)
- 使用EDITPLUS编写C#控制台应用程序
- 一次性口令php,Multi-OTP 4.2.2 发布,PHP 一次性密码管理
- Oracle等待事件之Enqueue(锁)
- in packet sniffer
- 广州橙优设计:学习UI需要那些?UI设计必须会的软件
- 概率统计笔记:二维随机变量及其联合概率分布
- PHPstudy使用教程
- Bazel入门:编译C++项目
- python的hello world
- Java编程笔记16:深入容器
- Google服务和软件大全