QMC5883L说明文档

  个人博客:http://brainware360.cn/

QMC5883L源于HoneywellHMC5883L,是一款表面贴装的集成了信号处理电路的三轴磁性传感器,应用场景主要包括罗盘、导航、无人机、机器人和手持设备等一些高精度的场合。

外形如下图所示:

QMC5883L说明文档_第1张图片

Figure 1 QMC5883L外观

以下是QMC5883L的内部原理图:

QMC5883L说明文档_第2张图片

Figure 2 QMC5883L内部原理图

模块定义:

AMR Bridge:三轴磁性传感器

MUX:多路复用通道

PGA:可编程控制的传感器信号增益放大器

Signal Conditioning:进行磁场信号校正及补偿的数字模块

ADC16位的模数转换器

I2C:总线形式

NVM:用于校正的非易失性存储器

SET/RST Driver:用于初始化磁性传感器的内部驱动

Reference:用于内部偏移的电压/电流基准

Clock Gen.:内部振荡器,用于内部操作

POR:上电复位

Temperature Sensor:用于内部精度/偏移的温度传感器,也可以用于测量温度并输出

QMC5883L有两种工作模式:连续测量模式和待命模式。

连续测量模式:

此模式下,磁性传感器连续进行测量并把测量数据置于数据输出寄存器中。测量数据的偏移和温度的影响将会自动得到补偿。

Ø  正常情况下的读顺序:

1、检查DRDY引脚或轮询状态寄存器(06H)DRDY 位的状态

2、读取测量数据,数据寄存器被读取的同时,DRDYDOR被置0

3、数据寄存器一旦被读取,数据保护将启动。直到最后一个数据寄存器(05H)被读取,数据保护才会被解除。其流程图如下:

QMC5883L说明文档_第3张图片

Figure 3 正常情况下的读顺序

Ø  测量时读取

测量过程中读取的将是之前测量过并保存过的数据,并且这一次测量完成后DRDY将不会被置“1”,即这一次测量的数据丢失掉了。

QMC5883L说明文档_第4张图片

Figure 4 测量时读取

Ø  数据未读取

如果第N个数据被跳过,当前的数据将会被接下来的数据覆盖掉,此种情形下,DRDY保持高电平直到数据被读取,DOR被置“1”,表示有一串数据丢失,同样,下一次读取操作后DOR将被置“0”

QMC5883L说明文档_第5张图片

Figure 5 数据未读取

Ø  数据锁定直至下次测量结束

只要任意一个数据寄存器被读取,所有测量数据将处于被锁定状态。如果下一次测量结束后,最后一个数据寄存器(05H)仍未被读取,数据寄存器将会拒绝新数据更新当前数据的操作,注意看下图,新数据将会被丢失。此类情形下,DOR将会被置“1”,直至下下次数据被读取。

QMC5883L说明文档_第6张图片

Figure 6 数据锁定直至下次测量结束

待命模式:

QMC5883L上电后默认为待命模式。此状态下,寄存器值将会通过一个超低功耗的LDO保持,对任意寄存器的读写操作都将会唤醒I2C总线接口。内部时钟被停止,同时也不会进行磁场测量。

以下是QMC5883L的寄存器列表:

QMC5883L说明文档_第7张图片

Figure 7 寄存器列表

00H~05H是数据寄存器,分别存放的是三轴传感器的XYZ轴的值,每两个寄存器构成一个轴的高低字节,表示范围:-32768~32768

06H是状态寄存器,当传感器数据已测量完毕并准备好DRDY位被置“1”,数据寄存器一旦被读取,DRDY位将被置“0”OVL是溢出位,当有任意一个轴的测量值超过范围,OVL将被置“1”,当下一次测量不超测量范围时,OVL将会被置“0”。当处于连续模式下测量数据被跳过时DOR被置“1”,而当数据寄存器被读写后置“0”

07H~08H存放的是QMC5883L内置的温度传感器的输出数据。这里需要注意的是温度传感器的增益出厂前校正过,但偏移没有得到补偿,所以,温度传感器测得的相对值是准确的。温度系数100 LSB/

09H~0AHQMC5883L的控制寄存器。09H设置工作模式(MODE)、数据输出更新频率(ODR)、传感器测量范围(RNG)以及过采样率(OSR)0AH设置中断使能(INT_ENB)、点翻转使能(POL_PNT)以及软复位(SOFT_RST)09H寄存器的设置如下图所示:

QMC5883L说明文档_第8张图片

Figure 8 09H寄存器设置

INT_ENB被置“0”时,中断引脚(DRDY)将被使能,置“1”时中断被禁止。

ROL_PNT被置“0”时,I2C总线接口将不会自动在00H~06H间翻转,置“1”时自动翻转。

SOFT_RST被置“1”时对QMC5883L进行软复位,软复位可以发生于任何模式下的任何时段,软复位发生后所有寄存器将会被置默认值。

0BH控制QMC5883L的设置/复位时间,推荐值是设定为0x01

0DH是器件标识寄存器,其值为0xFF


你可能感兴趣的:(QMC5883L说明文档)