版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MMA8451三轴加速度传感器,16引脚,QFN封装,数字I2C输出,8位/14位精度可选,量程+2g/+4g/8g可选,电源供电1.95v-3.6v可选。输出数据速率从156到SOOHZo有两个可编程的中断引脚,7个中断源。可检测自由落体、运动、脉冲、振动等、倾角等。32个采样FIFO.每次采样都通过高通滤波后传入FIFOo典型应用有:电子罗盘,静态姿态、运动检测,笔记本电子书等便携设备的翻滚、自由落体检测,实时的方向检测可用于虚拟现实设备或3d游戏中的位置检测,便携设备的节能应用中的运动检测等等。VDDIO1111阻惘MBYPNCMMA8451QSCLGND|-1l1ll1671i&iii
2、iii|9_.TopViewGNDINT1GNDINT2Z三轴对应的重力输出VDDIO4.7ICQ16V-S.6VInterfaceVoltage(:IItJVDDI0gBYPVDDIO4.7ICQ0.1pF0.1pF3NC5CLGND1.95V-3.6VQVDDMMAS451Qi6i8iNC;13.I卜E;JGNJD:卫INT2;A:4.7pK-OIMTMSDAOSCLO-OIMT2OSAO典型连接引脚定义如下:引脚编号引脚名称引脚描述引脚状态1VDDIO内部电源供电(1.623.6v)输入2BYP旁路电容输入3NC悬空引脚开路4SCLI2C串行时钟漏极开路5GND接地输入6SDAI2C串行
3、数据漏极开路7SA0I2C最低有效位地址输入8NC悬空引脚开路9INT2中断请求引脚2输出10GND接地输入11INTI中断请求引脚1输出12GND接地输入13NC悬空引脚开路14VDD电源Cl.95-3.6v)输入15NC悬空引脚开路16NC悬空引脚开路灵敏度由count/g表示,2g量程下,可达409g,4g量程下,可达204&g,8g量程下,可达1024/gMMA8451状态转换图MMA8451内部框图,分为数字部分和模拟部分在OFF模式下,数字部分和模拟部分都不工作在STANDBY模式下,IIC通信照常进行,但模拟模块被禁止,内部时钟停止在ACTIVE模式下(WAKE或SLEEP),I
4、IC通信照常进行,数字和模拟模块都正常工作I2C串行通信MMA8451使用I2C串行通信和外部交换数据,MMA8451可通过中断信号指示新的采样序列可用,也可通过设置使用中断信号指示设备的移动、自由落体、瞬变、方向、单/双击。I2C总线使用三根信号线进行通信,分别是SCL、SDA和SA0,外部上拉电阻需要将SDA和SCL接到VDDIO上,当总线空闲时,这两根线表现为高电平状态。MMA8451的I2C接口可工作在快速模式400KHZ或普通模式100KHz总线传输开始由START信号触发,START信号定义为,当数据线从高电平跳变到低电平,而时钟线SCL仍然保持高电平。由主机发送START信号过后
5、,I2C总线被认为从空闲(free)状态进入忙(busy)状态。紧接着START信号后主机发送的字节,前7位用于指示从机地址,第8位用于指示数据方向是读出(1数据从从机到主机)还是写入(0数据从主机到从机)。地址发送完毕后,总线上的所有从机将自己的地址和总线上接收到的地址进行比较,地址匹配的设备即为主机选中设备。第9个脉冲为应答响应,发送设备必须在这个ACK周期内释放数据线,而接收设备则需要在ACK周期的时钟高电平期间将数据线拉低。SCL线是高电平时,SDA线由低电平向高电平切换,这个情况表示停止条件。停止条件将终止发送器的发送。主机也可重复发出起始(START)条件,对于MMA8451,重复
6、的起始条件可用于读取一些特殊的寄存器。MMA8451的地址被设置为Oxlc或Oxld,可用引脚7(SAO)的高低电平来选择。当SAO为高电平时,Oxld地址被选中有效,当SAO为低电平时,Oxlc地址被选中有效。重点概念:START条件:时钟线SCL为高电平期间,数据线从高电平跳变到低电平START代码,使用10口模拟IIC/*m*mpm*m*m*m*I2CSTART信号时钟脉冲高电平期间,数据线负跳变*/voidIIC_start(void)IIC_SCL=O;时钟线低IIC_SDA=1;/数据线高_asm(nop);IIC_SCL=1;/时钟线高_asm(nop);IIC_SDA=O;/数
7、据线从高跳变到低_asm(nop);IIC_SCL=O;时钟线低STOP条件:时钟线SCL为高电平期间,数据线从低电平跳变到高电平I2CSTOP信号时钟脉冲高电平期间,数据线正跳变*/voidIIC_stop(void)IIC_SCL=O;时钟线低_asm(nop);IIC_SDA=O;/数据线低_asm(nop);IIC_SCL=1;/时钟线高_asm(nop);IIC_SDA=1;/数据线正跳变_asm(nop);IIC_SCL=O;时钟线低ACK:确认,由地址匹配成功的从机在第9个脉冲周期内发出,这时主机释放数据线,从机在时钟高电平期间将数据线置为低电平。MMA8451的I2C操作:1.
8、单个字节读主机发送START,紧接着主机给出7位地址(Oxld或Oxlc),并置第8位为0,表示数据从主机到从机。从机匹配地址后,返回确认ACK信号,接着主机传输8位寄存器地址,从机返回确认ACKo主机再次发岀START,并给出7位从机地址,并置第8位为1,表示数据从从机到主机,从机确认后返回8位寄存器数据。主机不确认,并发出STOP。注意:除了START,STOP,ACK以外,其它数据在时钟高电平期间必须维持不变。SlaveData7:0MasterSlaveSTLteviceAddress6:0RegisterAddress7:0AKSRDeviceAddress|6:0NAKSPAKDa
9、ta7:0SlaveData7:0SlaveData7:0单个字节读时序主机发送八位数据或地址代码如下(使用10口模拟)宣穴*穴*穴*穴*穴*穴*宣*宣*穴*穴*穴*穴*穴*宣*字节发送程序发送c(可以是数据也可是地址),送完后接收从应答不考虑从应答位voidsend_byte(unsignedcharc)unsignedchari;for(i=0;i8;i+)IIC_SCL=O;if(ci)&0 x80川C_SDA=1;/发送1elseIIC_SDA=0;发送0_asm(nop);IIC_SCL=1;时钟高电平_asm(nop);IIC_SCL=O;时钟低电平_asm(nop);/第9个脉冲
10、IIC_SDA=1;/发送完8bit,释放总线准备接收应答位_asm(nop);IIC_SCL=1;_asm(nop);/sda上数据即是从应答位IIC_SCL=O;/不考虑从应答位,但要控制好时序杠注意:发送设备地址时,MMA8451地址为0011100(Oxlc,SAO=O)或0011101(Oxld,SAO=1),可将SAO引脚直接接地或接高电平,以接高电平为例,地址为7位,高位在前,地位在后,第8位为数据方向选择,若后续数据为主机到从机,则为0,若后续数据为从机到主机,则为1。以单个字节读为例,地址设为Oxld,见时序图,START信号过后,则应发送00111010,即0 x3A可先如
11、下定义,#defineMMA8451_ADD0X3A2.第二次发送地址,则后续数据为从机到主机,第8位为1,可发送MMA8451_ADD+1即可多字节读AKAKNAKSPMasterData7:0D牝7:0STDeviceAddress6:0WRegisterAddress7:0SRDeviceAddress6:0RAKMasterAKAKAKData7.0Slave多字节读和单字节读基本相同,如果读完单字节后,主机不发送NAK和STOP,并对从机响应AK,则从机设备会自动将主机发送的寄存器地址加1,并发送对应的寄存器内容,直到主机响应NAK和STOPo主机响应AK或NAK程序代码如下*主应答
12、(包含ack:SDA=0和no_ack:SDA=l)入口参数:ack_mainl应答ack,0,无需应答nak注:ack:scl高电平期间,数据线低/nak:scl高电平期间,数据线高voidIIC_ack_main(unsignedcharack_main)IIC_SCL=0;if(ack_main)IIC_SDA=0;/ack主应答elseIIC_SDA=1;no_ack无需应答_asm(nop);IIC_SCL=1;_asm(nop);IIC_SCL=0;3.单个字节写MasterSTDeviceAddress6:0WRegisterAddress7:0Data7:0SPSlave单个字
13、节写入和单个字节读略有不同,区别在于发送为寄存器地址后,主机不再重复发送START信号和设备地址,而是直接给出写入的数据。代码如下:4多个字节写多个字节写和单个字节写类似,只要主机发送STOP信号,则可以连续写入,写入的寄存器地址自动增加。STDeviceAddress6:0WRegisterAddress7:0Data7:0Data7:0SPMasterMMA8451寄存器:状态寄存器STATUS/F_STATUS地址0 x00控制寄存器CTRL.REG1,地址0 x2a76543210ASLPRATE1ASLPRATEODR2DR1DR0LNOISEFREADACTIVEASLP_RATE
14、1:O:设置睡眠模式采样频率,默认00DR2:0):数据速率选择。默认为000,800HzDR2DR1DR0数据速率Hz周期ms0008001.250014002.5010200501110010100502010112.5801106.251601111.56640注意:当设备在睡眠模式下,数据输岀速率以ASLP_RATE1:O为准,DR设置速率无效。LNOISE:3.XYZ数据设置寄存器XY乙DATACFG,地址OxOe76543210000HPFOUT00FS1FSOHPF.OUT:高通滤波器数据输出使能。HPF_OUT=1:使能;HPF_OUT=0:禁止。FS1:FSO:XYZ量程设置
15、。如下表所示:FS1FSO量程002g014g108g11保留=MMA8452Q寄存器说明=1vINT_SOURCE:SystemInterruptStatusRegister地址:OxOC,只读,功能说明:用于获取当前中断源Bit7Bit6Bit5Bit4Bit3Bit2BitlBitOSRC_ASLP0SRC_TRANSSRC_LNDPRTSRC_PULSESRC_FF_MT0SRC_DRDYSRC_ASLP:1:产生自动睡眠/唤醒中断0:未产生自动睡眠/唤醒中断SRC_TRANS:1:产生瞬态中断0:未产生瞬态中断SRC_LNDPRT:1:产生侧翻中断0:未产生侧翻中断SRC_PULSE
16、:1:产生脉冲中断0:未产生脉冲中断SRC_FF_MT:1:产生自由落体/震动中断0:未产自由落体/震动中断SRC.DRDY:1:丘生数据完备中断0:未产生数据完备中断2、XYZ_DATA_CFGRegister地址:OxOE,读/写功能说明:用于配置高通输出数据以及量程设定Bit7Bit6Bit5Bit4Bit3Bit2BitlBitO000HPF_OUT00FS1FSO00000010HPF_OUT:1:使能高通输出数据0:关闭高通输出数据FS1:0):00:2g01:4g10:8g11:待定3、PULSE_CFGPulseConfigurationRegister地址:0 x21,读/写
17、功能说明:用于设定X/Y/Z三轴脉冲模式(单脉冲/双脉冲)Bit7Bit6Bit5Bit4Bit3Bit2BitlBitODPAELEZDPEFEZSPEFEYDPEFEYSPEFEXDPEFEXSPEFE01010101ELE:0:禁止事件检测1:使能事件检测ZDPEFE(XDPEFE/YDPEFE):0:关闭Z(X/Y)轴双脉冲检测1:使能Z(X/Y)轴双脉冲检测ZSPEFE(XSPEFE/YSPEFE):0:关闭Z(X/Y)轴单脉冲检测1:使能z(X/Y)轴单脉冲检测4、PULSE_SRCPulseSourceRegister地址:0 x22,只读功能说明:用于判断当前脉冲事件以及方向B
18、it7Bit6Bit5Bit4Bit3Bit2BitlBitOEAAxZAxYAxXDPEPolZPolYPoIXEA:0:无脉冲中断事件产生1:有脉冲中断事件产生AxZ(AxX/AxY):0:无Z(X/Y)轴脉冲中断事件产生1:有Z(X/Y)轴脉冲中断事件产生DPE:0:单脉冲中断事件产生1:双脉冲中断事件产生PolZ(PolX/PolY):0:Z(X/Y)轴脉冲中断事件产生方向为正方向1:z(X/Y)轴脉冲中断事件产生方向为负方向5VPULSE_THSXPulseThresholdforXRegisters地址:0 x23,读/写功能说明:X轴脉冲阀值设定Bit7Bit6Bit5Bit4B
19、it3Bit2BitlBitO0THSX6THSX5THSX4THSX3THSX2THSX1THSX001110101THSX0阀值设定6、PULSE_THSYPulseThresholdforYRegisters地址:0 x24,读/写功能说明:Y轴脉冲阀值设定Bit7Bit6Bit5Bit4Bit3Bit2BitlBitO0THSY6THSY5THSY4THSY3THSY2THSY1THSY001110101THSY6:0阀值设定7、PULSE_THSZPulseThresholdforZRegisters地址:0 x25,读/写功能说明:Z轴脉冲阀值设定Bit7Bit6Bit5Bit4B
20、it3Bit2BitlBitO0THSZ6THSZ5THSZ4THSZ3THSZ2THSZ1THSZO01110101THSZ6:0阀值设定8、PULSE_TMLTPulseTimeWindow1Register地址:0 x26,读/写功能说明:脉冲时间限制设定(脉冲开始到消去,指定轴从阀值到低于阀值的一个时间段,用于判断一个有效的脉冲)Bit7Bit6Bit5Bit4Bit3Bit2BitlBitOTMLT7TMLT6TMLT5TMLT4TMLT3TMLT2TMLT1TMLTOTMLT7:0脉冲时间限制设定9、PULSE_LTCYPulseLatencyTimerRegister地址:0 x
21、27,读/写功能说明:检测到第一个有效脉冲后延缓的时间,在该延缓时间内,不检测新的脉冲Bit7Bit6Bit5Bit4Bit3Bit2BitlBitOLTCY7LTCY6LTCY5LTCY4LTCY3LTCY2LTCY1LTCYOLTCY7:0脉冲时间限制设定10%PL_STATUSPortrait/LandscapeStatusRegister地址:0 x10,只读功能说明:侧翻状态Bit7Bit6Bit5Bit4Bit3Bit2BitlBitONEWLPLO000LAPO1LAPO0BAFRONEWLP:0:状态没发生改变1:状态发生改变(前后翻转、侧翻、Z轴锁定超出)L0:0:没超出锁定
22、条件1:超出Z轴锁定角度LAPO1:0:00:翻转角度为纵向朝上01:翻转角度为纵向朝下10:翻转角度为横向朝右11:翻转角度为横向朝左BAFRO:0:往前翻1:往后翻11vPL_CFGRegister地址Oxll,读/写功能说明:侧翻配置寄存器Bit7Bit6Bit5Bit4Bit3Bit2BitlBitODBCNTMPlEN00000011000000DBCNTM:0:当条件不满足时,去抖计数器减一1:当条件不满足时,去抖计数器直接淸空PL.EN:0:关闭侧翻检测1:使能侧翻检测12.PL_COUNTRegister地址:0 x12,读/写功能说明:侧翻去抖计数器阀值Bit7Bit6Bit
23、5Bit4Bit3Bit2BitlBitODBNCE7DBNCE6DBNCE5DBNCE4DBNCE3DBNCE2DBNCE1DBNCEO01000000DBNCE7:0:侧翻去抖计数器阀值43、PL_BF_ZCOMPRegister地址:0 x13,读/写功能说明:z轴锁定角固定阀值以及前后翻转固定阀值Bit7Bit6Bit5Bit4Bit3Bit2BitlBitOBKFR1BKFRO000ZL0CK2ZL0CK1ZLOCKO01000100BKFR7:6:前后翻转75ZLOCK2:0:Z轴锁定角固定阀值2944、P丄THS_REGRegister地址:0 x14,读/写功能说明:横向翻转角
24、度阀值Bit7Bit6Bit5Bit4Bit3Bit2BitlBitOPLTHS4PLTHS3PLTHS2PLTHS1PLTHS0HYS2HYS1HYS010000100P_L_THS7:3:侧翻阀值为45。HYS2:0:侧翻阀值浮动范围为1445、FF_MT_CFGRegister地址:0 x15,读/写功能说明:Bit7Bit6Bit5Bit4Bit3Bit2BitlBitOELEOAEZEFEYEFEXEFE00011111000ELE:0:自由落体/震动事件禁止1:自由落体/震动事件使能OAE:0:自由落体标志1:震动标志ZEFE(XEFE/YEFE):0:Z(X/Y)轴检测关闭1:Z
25、(X/Y)轴检测使能46、FF_MT_SRCFreefallandMotionSourceRegister地址:0 x16,只读功能说明:自由落体/震动中断源寄存器Bit7Bit6Bit5Bit4Bit3Bit2BitlBitOEA0ZHEZHPYHEYHPXHEXHPEA:0:没有事件发生1:至少有一个事件(X/Y/Z轴)发生ZHE(XHE/YHE)0:Z(X/Y)轴未发生震动1:Z(X/Y)轴发生了震动ZHP(XHP/YHP)0:Z(X/Y)轴发生震动时的方向为+1:z(X/Y)轴发生震动时的方向为-17.FF.MT.THSRegister地址:0 x17,读/写功能说明:自由落体/震动阀
26、值设定寄存器Bit7Bit6Bit5Bit4Bit3Bit2BitlBitODBCNTMTHS6THS5THS4THS3THS2THS1THSO1DBCNTM:0:当条件不满足时,去抖计数器减一1:当条件不满足时,去抖计数器直接淸空THS6:0:自由落体/震动阀值48、FF_MT_COUNT_Register地址:0 x18,读/写功能说明:Bit7Bit6Bit5Bit4Bit3Bit2BitlBitOD7D6D5D4D3D2DIDO00000001D7:0:去抖计数器阀值49、CTRL_REG4Register地址:0 x2D,读/写功能说明:控制寄存器4,用于设定中断源使能Bit7Bit
27、6Bit5Bit4Bit3Bit2BitlBitOINT_EN_ASLP0INTENTRANSINTENLNDPRTINTENPULSEINTENFF_MT0INT_EN_DRDY00011100INT_EN_ASLP:0:禁止自动睡眠/唤醒中断1:使能自动睡眠/唤醒中断INT_EN_TRANS:0:禁止瞬态中断1:使能瞬态中断INT_EN_LNDPRT:0:禁止侧翻中断1:使能侧翻中断INT_EN_PULSE:0:禁止脉冲中断1:使能脉冲中断INT_EN_DRDY:0:禁止数据完备中断1:使能数据完备中断20、CTRL_REG5InterruptConfigurationRegister地址:0 x2E,读/写只读功能说明:控制寄存器5,用于设定中断输出PinBit7Bit6Bit5Bit4Bit3Bit2BitlBitOint_cfg_ASLP0INTCFGTRANSINTCFGLNDPRTINTCFGPULSEINTCFGFF.MT0INT_CFG_DRDY00011100INTCFGASLP:0:自动睡眠/唤醒中断设定为INT2Pin输出1:自动睡眠/唤醒中断设定为INTIPin输岀INT_CFG_TRANS:0:瞬态中断设定为INT2Pin输岀1:瞬态中断设定为INTIPin输岀INT_CFG_LNDPRT:0:侧翻中断设定为INT2Pin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宁波市2025浙江宁波市北仑区(开发区)公开招聘事业单位人员高层次紧缺人才岗位笔试历年参考题库典型考点附带答案详解
- 天津市2025天津市生态环境监测中心事业单位招聘1人笔试历年参考题库典型考点附带答案详解
- 四川省2025年上半年四川资中县人力资源和社会保障局事业单位招聘工作人员公笔试历年参考题库典型考点附带答案详解
- 哈尔滨市2025黑龙江哈尔滨“丁香人才周”(春季)引才招聘五常市所属事业单位招聘5笔试历年参考题库典型考点附带答案详解
- 初中生课间操锻炼对学生情绪调节能力的培养教学研究课题报告
- 2026年家长学校建设与家校社协同育人问答
- 2026年国家赔偿法申请条件及赔偿范围基层普及试题
- 2026年乡村振兴气象服务专项建设问答
- 2026年长期护理的实践策略与挑战
- 2026年法务英文翻译技巧与实务测试题
- 职业技能标准&挖掘铲运和桩工机械司机
- 《序数效用理论课程》课件
- 童年二声部合唱简谱说唱版-
- 广东省普通高中学生档案
- 【拓展阅读】整本书阅读系列《闪闪的红星》
- 社工考试综合能力笔记(中级)
- JJF 1628-2017塑料管材耐压试验机校准规范
- GB/T 22892-2008足球
- 养老保险欠费补缴注销申报表
- 电动剪刀式升降车安全培训
- 2022年中石油职称英语考试真题及答案
评论
0/150
提交评论