MMA7660使用教程
MMA7660是一个3轴g-sensor,它主要用于测量倾斜角,惯性力,冲击力及震动.
工作原理:
mma7660是一种电容式g-sensor.电容式g-sensor大多为欧美厂商,其技术是在wafer的表面做出梳状结构,当产生动作时,由侦测电容差来判断变形量,反推出加速度的值.
与压阻式不同的是,电容式很难在同一个结构中同时感测到三个轴(X,Y,Z)的变化,通常都是X,Y和Z分开来的, (这也就是为什么当板子水平放置时,无论如何改变X,Y的位置,都不会有中断产生,因为这时它只能检测Z轴的变化,X,Y的变化它检测不到,只有当我们将板子倾斜一个角度后才能检测X,Y的变化) .而压阻式在同一个结构就能感测到三个轴的变化.
工作模式:
mma7660主要有三种工作模式.(通过设置MODE寄存器)
1). Standby(待机)模式
此时只有I2C工作,接收主机来的指令.该模式用来设置寄存器.也就是说,要想改变mma7660的任何一个寄存器的值,必须先进入Standby模式.设置完成后再进入Active或Auto-Sleep模式.
2).Active and Auto-Sleep (活动并且Auto-Sleep)模式
mma7660的工作状态分两种,一种是高频度采样,一种是低频度采样.为什么这样分呢,为了节省功耗,但是在活动时又保持足够的灵敏度.
所以说mma7660的Active模式其实又分两种模式,一种是纯粹的Active模式,即进了Active模式后一直保持高的采样频率,不变.还有一种是Active& Auto-Sleep模式,就是说系统激活后先进入高频率采样,经过一定时间后,如果没检测到有活动,它就进入低频率采样 ,所以就叫做Auto-Sleep, Sleep并不是真的Sleep ,只是说降低采样频率.
低频率采样模式又叫Auto-Wake摸式,即自动唤醒模式.它不是睡眠模式, 它只是降低采样频率.
3). Auto-Wake (自动唤醒)模式
Auto-Sleep后就进入低频率采样模式,这种模式就叫做Auto-Wake摸式,即自动唤醒模式.它不是睡眠模式,它只是降低采样频率.
寄存器:
中断设置:
摇晃感应的配置:
//ConfigureMMA7660FC as Shake Detection
Write to the MODEregister = 0x00 //Standby Mode
Write to the SPCNTregister = 0x00 //Nosleep count
Write to the INTSUregister = 0xE0 //ConfigureShake Interrupt on 3 axes
Write to the PDETregister = 0xE0 //No tapdetection enabled
Write to the SRregister = 0x02 //32 samples/s
Write to the PDregister = 0x00 //Notap detection debounce count enabled
Write to the MODEregister = 0x41 //Active Mode,INT = push-pull and active low
//Interrupt serviceroutine
If (Shake INT occurs)
REGTILT=Read TILT Register ; //Read TILT Register value
If (Shake =1) //Verify “Shake” bit inTILT register
Shake occurs
更多代码:http://download.csdn.net/detail/markmin214/5192348