【经验】角速度传感器MLX90609的数字输出指南,简化数字输出使用

2018-12-04 MELEXIS
角速度传感器,MLX90609,MLX90609EEA-N2,Melexis 角速度传感器,MLX90609,MLX90609EEA-N2,Melexis 角速度传感器,MLX90609,MLX90609EEA-N2,Melexis 角速度传感器,MLX90609,MLX90609EEA-N2,Melexis

MLX90609MELEXIS公司推出的一款角速度传感器。MLX90609角速度传感器是一个完整的陀螺仪系统,使用5V电源供电,工作温度范围为-40~85℃,可输出两个与垂直于装配表面的角速率成比例的输出信号,其中一路输出信号采用模拟电压格式(输出为2.5V,角速率为零,满量程角速率根据旋转方向产生4.5V或0.5V的输出),另一路输出为数字SPI 格式。可满足不同实际应用的使用需求。


本文简述由SPI逻辑控制的MLX90609内部ADC的工作原理。它包括一些用C语言编写的提示和SW示例,简化了MLX90609数字输出的使用,所有例子均与Keil Cx51编译器相兼容。


工作原理

MLX90609数字输出基于2通道11位逐次逼近模拟的数字转换器(ADC)。主通道0用于数字化角速率上电压(OUTAR-引脚)的输出。通道1可用于数字化内部温度传感器(OUTTEMP引脚)的输出。

图1:MLX90609 ADC的工作原理图

ADC包括一个双通道多路复用器,采样保持电路(S/H),一个11位连续近似寄存器(SAR),数模转换器(DAC)和一个模拟比较器(COMP)。


SAR产生一系列11位代码,为DAC提供存储在S/H电容中的输入信号,SAR还包括控制S/H电路并生成转换结束信号(EOC)的逻辑。多路复用器由SPI的ADCC指令定义的CHAN位控制,它将OUTAR电压的3/4(CHAN = 0)或整个OUTTEMP电压(CHAN=1)连接到S/H电路。COMP提供了一个反馈,让SAR在转换过程中定义一个近似方向,在最后一个近似阶段生成的11位代码是一个转换结果,可以作为SPI的串行数据流读取。


ADCC 的SPI指令来启动转换。该指令打开ADC(即位ADEN = 1),设置必要的通道(位CHAN)并开始转换。要读取转换状态,可以使用ADCR或STATR指令。转换完成后,可以在ADCR指令的响应中读取结果。下面的转换公式反映了典型的ADC行为,可用于评估OUTAR和OUTTEMP引脚上的电压:

ADCcode表示AD转换的11位结果。上电后,ADC处于睡眠模式。在使用ADC进行数据采集之前,建议首先使用初始虚拟转换。 转换后,ADC可以再次进入睡眠模式。由于ADC消耗约0.25 mA,因此可以在睡眠模式下保存该值。为了通过输入电阻的最小电流,可以将输入SCLK和SS保持在高电平,将MOSI保持在低电平,而不使用SPI。通过这种方式,可以节省大约0.25mA的总电流消耗。而且不要重载输出OUTAR,根据MLX90609数据表,OUTAR负载不得超过200k,OUTAR过载会导致额外的输出非线性。


ADC控制的SPI指令

MLX90609通信接口与基于四条线的标准SPI兼容:MOSI,MISO,SS(或NSS)和SCLK(或SCK)。它始终从待机模式开始运行,SPI时钟极性和相位的模式是固定的:CPHA=1,CPOL=1。有关SPI时序特性和其他详细信息,请参见MLX90609数据手册。

有三个SPI指令用于控制MLX90609 ADC:STATR,ADCC和ADCR。这些指令中的每一个都包括8位指令和16位响应,该指令通过MOSI线串行传输到MLX90609。之后,可以通过MISO-line连续接收响应,最高有效位(MSB)是发送和接收的第一个位,信号SCLK是主设备生成的串行时钟,它初始化任何传输和接收,并提供数据同步。当SPI处于活动状态时,SS-line必须处于零状态,通过对SS-line电平置高位可以截断或完全取消响应,下表给出了ADC所用标志位的说明:

ADEN

ADEN位选择ADC的电源管理模式:

ADEN =   0:ADC切换到休眠模式,不允许AD转换。

ADEN =   1:允许AD转换。

该位由ADCC命令设置。上电后,ADEN位清零。

BUSY

在MLX90609的初始化过程中,该位在复位后置1。它落后了顺利完成程序。当BUSY = 1时,仅发送拒绝答案。

CHAN

CHAN位用于选择ADC的输入源。

CHAN =   0:角速率通道。

CHAN =   1:温度传感器通道。

该位由ADCC命令设置。上电后,CHAN清零。

EOC

AD转换位结束。 EOC位表示ADC状态。

EOC =   0:ADC正在进行且无法重新启动,结果仍然无效。

EOC =   1:AD转换已完成,可以重新启动。

如果EOC = 0,任何启动ADC的尝试都将被拒绝答案拒绝。

OPC

未知的操作代码。当未识别接收的操作代码时,该位置位。

X

这些位保留或具有未定义状态。

状态读取命令(STATR):

STAR指令:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

1

0

0

0

1

0

0

0

START响应

Bit15

Bit14

Bit13

Bit12

Bit11

Bit10

Bit9

Bit8

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

X

EOC

X

X

X

X

X

X

X

X

X

CHAN

ADEN

X

X

ADC控制命令(ADCC):

ADCC指令:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

1

0

0

1

CHAN

ADEN

0

0

ADCC响应

Bit15

Bit14

Bit13

Bit12

Bit11

Bit10

Bit9

Bit8

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

X

EOC

X

X

X

X

X

X

X

X

X

CHAN

ADEN

X

X

ADC读取命令(ADCR):

ADCR指令:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

1

0

0

0

0

0

0

0

ADCR响应

Bit15

Bit14

Bit13

Bit12

Bit11

Bit10

Bit9

Bit8

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

X

EOC

X

AD10

AD9

AD8

AD7

AD6

AD5

AD4

AD3

AD2

AD1

AD0

0

AD10…AD0

AD转换的结果。 这些位仅在EOC位置1时有效。

拒绝响应:

拒绝指令:

Bit15

Bit14

Bit13

Bit12

Bit11

Bit10

Bit9

Bit8

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

1

OPC

EOC

X

X

BUSY

X

X

X

X

X

X

X

X

X

X


ADC工作原理

ADC处理的一般顺序如下:

步骤A:ADC如果不是工作模式,则将ADC置于工作模式;

步骤B:开始新的转化;

步骤C:等待转换结束;

步骤D:读取结果数据;

步骤E:如果需要,转到步骤B或将ADC置于睡眠模式。

本节介绍实现上述序列的两种方法。第一种方法基于轮询,而第二种方式使用延迟。需要轮询或延迟以确保在新转换(ADCC指令)之前和读取结果(ADCR指令)之前完成先前的转换。


基于轮询的数字数据采集

这种方法不需要使用外部计时器和晶体振荡器,因为转换的结束是由MLX90609轮询定义的。另一方面,轮询需要大量使用MLX90609的SPI,因此可以通过引脚上的数字信号产生额外的输出噪声。轮询也不提供数据获取的周期性,而这些周期性是下一次数据处理所需要的。


数字数据采集算法包括三个轮询过程。在图2的流程图中,两个基于ADCC或ADCR指令的轮询过程的方法都包含一个循环,该循环构建在对响应的第15和第13位(EOC)进行检查的基础上,在ADCC轮询期间不需要其他位。因此,ADCC响应可以在接收到的第3位之后到处被截断,对于ADCR指令,必须接收完整的16位响应,因为它包含转换的11位结果。


整个流程的第2阶段中的ADCC指令设置ADC的活动模式。下一个ADCC指令开始转换,以测量位CHAN指定的通道上的信号。这里使用轮询来确保前一个adc周期结束。使用ADCR指令的轮询过程在转换结束后提供有效的数据输出。最终ADC可以在没有轮询的情况下关闭,因为此时转换已经完成。

使用ADCC指令轮询过程

 完整投票程序的图表流程

使用ADCR命令轮询过程

图2:基于轮询的数字数据采集

下面您可以看到用C语言编写的两个轮询过程的示例:ADCC_polling和ADCR_polling。如果MLX90609接受ADCC指令,则函数ADCC_polling返回“0”。否则,它返回错误代码“1”。函数ADCC_polling返回上次数字转换的11位结果。否则,它返回一个错误代码“0xFFFF”。


两个函数都使用函数SPI_EXCH,这是一个最简单的8位SPI交换过程:unsigned char (unsigned char out)。输入参数out是主机发送到MLX90609的字节。该函数返回一个字节,该字节在传输的同时从miso行逐位接收,在返回之前,该函数将恢复默认的MOSI-stale (零级别)。


根据使用的主设备的结构,SPI_EXCH函数可以以不同的方式实现。使用嵌入式硬件SPI可以节省主机的处理时间,如果主服务器没有硬件SPI,可以使用软件实现代替。


下面的代码给出了一个为8051核心微控制器编写的SPI软件实现示例:

/* The example code assumes that the part specific header file is included */

sbit SCLK = P1^0; /* Any available 8051-ports */

sbit MISO = P1^1; /* can be used to emulate */

sbit MOSI = P1^2; /* SPI signals: */

sbit NSS = P1^3; /* SCLK, MISO, MOSI and NSS */

/* Macros NSS_Low and NSS_High are needed for ADCC_polling and ADCC_polling */

#define NSS_Low NSS = 0

#define NSS_High NSS = 1

unsigned char SPI_EXCH(unsigned char out)

{

unsigned char support, inp;

for (inp = 0, support = 0x80; support != 0; support >>= 1)

{

MOSI = out & support;

SCLK = 0;

SCLK = 1;

if(MISO) inp |= support;

}

MOSI = 0;

return inp;

}

8051的可寻址输入-输出端口被指定用来模拟spil信号。该示例还包括在ADCC_polling和ADCR_polling函数中使用的两个宏(NSS_Low和NSS_High)的定义。

/* The example code assumes that the part specific header file is included */

/* Function SPI_EXCH() and macros NSS_Low and NSS_High must be defined above */

#define EOC_COUNT 100

/* Polling procedure with ADCC command */

bit ADCC_polling(bit chan, bit aden)

{

unsigned char counter = 0; /* counter to avoid endless polling */

unsigned char tmp, adcc;

adcc = (aden) ? 0x94:0x90; /* NSS = 0; */

if(chan) adcc |= 0x08;

Start:

NSS_Low; /* NSS = 0; */

SPI_EXCH(adcc); /* Send ADCC-instruction */

tmp = SPI_EXCH(0x00); /* Read the first byte of the answer */

NSS_High; /* NSS = 1; */

if((tmp & 0x80) == 0) return 0; /* ADCC has been successfully sent */

else if(tmp & 0x20) return 1; /* HW Error! */

else if((++counter) < EOC_COUNT) goto Start; /* Continue polling */

else return 1; /* HW Error: long polling */

}

/* Polling procedure with ADCR command */

unsigned int ADCR_polling(void)

{

union intData

{unsigned int dd;

unsigned char d[2];

}inp;

#define Dat_H inp.d[0]

#define Dat_L inp.d[1]

#define Dat_HL inp.dd

unsigned char counter = 0; /* counter to avoid endless polling */

Start:

NSS_Low; /* NSS = 0; */

SPI_EXCH(0x80); /* Send ADCR-instruction */

Dat_H = SPI_EXCH(0); /* Read the first byte of the answer */

Dat_L = SPI_EXCH(0); /* Read the last byte of the answer */

NSS_High; /* NSS = 1; */

if(Dat_H & 0x80) return 0xFFFF; /* HW Error! */

else if(Dat_H & 0x20) return (Dat_HL & 0xFFF)>>1; /* Result is valid */

else if((++counter) < EOC_COUNT) goto Start; /* Continue polling */

else return 0xFFFF; /* HW Error: too long polling */

}


2)基于延迟的数字数据采集

根据MLX90609数据表的转换时间内部ADCμs总是小于115。因此115μs之后总会转换完成。转换的结果将是有效的,即使不检查EOC位,也可以发送下一个ADCC指令来启动新的转换。


图3显示了使用延迟而不是极化的adc循环的时间图,我们假设在ADCC指令的第一个上升的SCLK边缘之前,已经设置了EOC位(ADC没有在进行中),这个条件可以保证不会超过115μs发送ADCC指令。在这种情况下,该MLX90609 AD-conversion将从第八个SCLK 上升沿开始执行ADCC指令。ADCC响应是预定义的,可以跳过。在接下来的延迟如果超过115μs, ADCR指令开始转换完成后,可以用来读取AD10…AD0数转换结果,EOC位总是设置在ADCR响应中。

图3:基于延迟的ADC处理时间图

AD转换正在进行时没有SPI活动。这种基于延迟的方法将SPI活动最小化,从而减少额外的输出噪声。采集过程可以建立在定时器中断的基础上,周期大于115μs。在这种情况下,服务程序可以从形成正SS脉冲开始,然后ADCR命令可以读取先前AD转换的结果。在程序结束时,应发送8位ADCC指令以开始新的转换。

正SS脉冲截去SPI命令,但它不影响ADC。因此,可以在AD转换正在进行时,在发送ADCC指令之后精确地生成信号SS的上升沿。图4显示了一个没有轮询的通用数据采集算法。

图4:基于延迟的数字数据采集

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由GHjames翻译自MELEXIS,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【成功案例】基于MLX90609EEA-N2角速率传感器的加油站安防护栏防撞击报警器的设计

Melexis推出的可以同时具有模拟量和SPI通讯的角速率传感器MLX90609,可以通过检测加油站按防护栏撞击的角速率判断防撞柱是否被撞击,并且其具有低加速度和角速率交叉敏感度,可以有效保证数据输出的准确性。该方案能有效降低了霍尔开关和磁铁方案的安装施工难度和成本。

2019-04-05 -  设计经验 代理服务 技术支持 批量订货

【经验】Melexis开发环境MLXIDE编译例程出错原因分析

部分新手工程师在使用Melexis(迈来芯)的开发环境MLXIDE会出现编译例程错误的问题,本文将对MLXIDE编译例程出错原因进行分析,供各位工程师参考及使用。

2022-06-19 -  设计经验 代理服务 技术支持 批量订货

【经验】melexis磁仿真工具使用介绍

Magnetic design simulator是MELEXIS公司提供的一个免费的在线磁仿真工具。该工具可以帮助用户快速探索设计空间的磁性和机械参数,模拟和评估磁位置传感器的性能。本文介绍Magnetic design simulator的使用方法。

2022-03-22 -  设计经验 代理服务 技术支持 批量订货

三轴霍尔传感器MLX90363和MLX90365,MLX90316的区别是什么?

MLX90363是SPI输出方式,并且可以实现线性位移,角度,3D测量。MLX90365是模拟量或PWM输出,可以实现线性位移和角度测量。MLX90316输出方式是模拟/PWM/spI,可以实现360°角度测量。

2017-05-05 -  技术问答 代理服务 技术支持 批量订货

世强代理TE、芯科、EPSON、Melexis、SMI、TT等主流传感器选型

世强作为TE、芯科、EPSON、Melexis、SMI、TT等的官方授权一级分销商,可供应角速度、动态心率、温湿度、磁传感器、压力传感器、扭矩与位置、磁簧开关、飞行时间测距等传感器产品,可为汽车电子、智能机器人、物联网、医疗设备、智能家居、新能源等领域提供解决方案及技术支持。

2018-06-03 -  器件选型
January/08  - MELEXIS  - 技术文档  - Rev 007 代理服务 技术支持 批量订货 查看更多版本
2007年05月01日  - MELEXIS  - 商品及供应商介绍 代理服务 技术支持 批量订货

【应用】角速度传感器MLX90609实现机械臂的角度检测

MLX90609是Melexis公司推出的一款角速度传感器。该传感器是一个完整的陀螺仪系统,MLX90609使用5V电源供电,工作温度范围为-40-85℃,可输出两个与垂直于装配表面的角速率成比例的输出信号,其中一路输出信号采用模拟电压格式(输出为2.5V,角速率为零,满量程角速率根据旋转方向产生4.5V或0.5V的输出),另一路输出为数字SPI 格式。笔者同时介绍了如何设计机械臂位置传感系统。

2018-06-10 -  应用方案 代理服务 技术支持 批量订货

SPI数字信号输出角度传感器MLX90363是否需要编程校准工具PTC04来编程调试?

SPI数字信号输出角度传感器MLX90363不需要编程校准工具PTC04来编程调试,可通过带SPI端口的MCU来实现通讯调试。

2017-05-05 -  技术问答 代理服务 技术支持 批量订货

想提升EPS系统精度?试试扭矩极佳的Hall器件

电动助力转向系统是汽车转向系统的发展方向,并将挑战液压转向系统。而本方案将采用迈来芯基于IMC技术的角速度传感器和17个点矫正功能的线性HALL位置传感器。

2016-05-22 -  新产品 代理服务 技术支持 批量订货

VGA小车的磁钉传感器世强是否有推荐方案

VGA小车的磁钉是用来作为导航使用的,磁钉一般都是NS极的磁铁材料,而VGA小车下方有霍尔传感器来识别到磁钉,通常相邻的磁钉之间相距1米左右,才能保证磁强度分布不重叠。所以VGA小车还需要角速度传感器来识别盲区导航。霍尔传感器推荐是Melexis品牌的三轴霍尔传感器MLX90365:Melexis(迈来芯) MLX90365位置传感器 详细数据手册,角速度传感器建议采用EPSON的XV-8000CB:XV-8000CB微型陀螺仪传感器数据手册

2019-08-01 -  技术问答
2008年01月01日  - MELEXIS  - 应用笔记或设计指南  - Rev 007 代理服务 技术支持 批量订货
2008年01月01日  - MELEXIS  - 应用笔记或设计指南  - Rev 002 代理服务 技术支持 批量订货

【产品】5V电源供电的角速度传感器,具有低加速度和角速率交叉敏感度

MLX90609是Melexis公司推出的一款角速度传感器。MLX90609角速度传感器是一个完整的陀螺仪系统,使用5V电源供电,工作温度范围为-40-85℃,可输出两个与垂直于装配表面的角速率成比例的输出信号,其中一路输出信号采用模拟电压格式(输出为2.5V,角速率为零,满量程角速率根据旋转方向产生4.5V或0.5V的输出),另一路输出为数字SPI 格式。可满足不同实际应用的使用需求。

2018-06-12 -  新产品 代理服务 技术支持 批量订货
展开更多

电子商城

查看更多

品牌:TE connectivity

品类:SENSORS

价格:

现货: 0

品牌:MELEXIS

品类:smart LIN Driver for small motors

价格:¥78.3170

现货: 135,657

品牌:MELEXIS

品类:smart LIN Motor Driver

价格:¥28.7710

现货: 91,000

品牌:MELEXIS

品类:Current Sensor IC

价格:¥15.3139

现货: 77,792

品牌:MELEXIS

品类:LIN RGB LED DRIVER

价格:¥14.3682

现货: 60,000

品牌:MELEXIS

品类:3-wire hall effect Latch

价格:¥1.7951

现货: 58,883

品牌:MELEXIS

品类:Integrated Current Sensor IC

价格:¥15.3811

现货: 50,899

品牌:MELEXIS

品类:Micro/Mini LIN Slave Controller

价格:¥12.3240

现货: 43,225

品牌:MELEXIS

品类:Hall Latch

价格:¥1.7133

现货: 41,416

品牌:MELEXIS

品类:Triaxis Position Sensor IC

价格:¥22.8370

现货: 39,302

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:MELEXIS

品类:Position Sensors

价格:¥3.8658

现货:54,556

品牌:MELEXIS

品类:Triaxis Position Processor

价格:¥20.0000

现货:2,950

品牌:MELEXIS

品类:Triaxis Position Sensor IC

价格:¥20.0000

现货:2,500

品牌:MELEXIS

品类:IR array

价格:¥289.5078

现货:907

品牌:MELEXIS

品类:Automotive VGA TOF sensor

价格:¥397.2085

现货:20

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

底部填充胶UF定制

可定制1027S、1097、1093A、1099、991系列,粘度:900~2万;硬度:70~90D;固化速度:5~15min;粘接强度:15~20Mpa;不同规格包装形式。

最小起订量: 1支 提交需求>

单组份/双组份硅胶定制

可定制2512KL、2512KT、2512KB、2512KH、2482L系列;粘度:3000~20万;硬度:30~40A;表干时间:5~15min;固化速度:2.4mm/24H;粘接强度:1.2~1.7Mpa;

最小起订量: 1支 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面