今天上午花了个把小时看了一下MMA7455的数据手册,写了一个MMA7455 加速度传感器的底层程序,采用SPI通信方式 ,网上关于此芯片SPI方式的资料好像比较少,但我个人觉得SPI比IIC好用很多,简单实用,而且速度比IIC要快 。
现简单说明一下!!!此程序原创,写的程序应该是比较容易看懂的,采用软件模拟SPI实现,(数据时8位模式的,好像10位模式很简单,只需要换个地址就OK了,只测试了8位数据模式)模块化的程序,几乎不用修改可以直接移植到51、AVR等其他单片机上(只需要改个对应的IO口即可!!),实验室人在51上测试没有问题。还算比较稳定。测试了一下X、Z轴数据偏差不大,但是Y轴偏差比较大,应该需要矫正补偿!!!
对于矫正的问题,我也看了一下,好像内部有个矫正寄存器,X、Y、Z轴对应的OFF7-OFF0,不知道具体如何矫正,还有其对应的64LSB-0.5LSB是什么意思,LSB不是低位的意思吗????
还有一个任务就是把X、Y、Z轴的加速度转化为对应的角度值,这个怎么执行呢??个人想了一下,应该是通过X、Y、Z轴的加速度算出传感器平面和重力加速度方向的夹角,计算出这个值之后,采用arcsin来算出传感器平面与重力方向的夹角。不知道正不正确,具体实现呢???直接采用math.h头文件中的数学函数实现吗????那如果要计算与对应基准平面的夹角呢???不是与重力方向夹角。这个还是有点问题。请大虾指点。
特别,把我今天上午研究的程序和所用到得资料全部上传,供大家参考!!!!!
数据手数据手册 MMA7455L.pdf
中文手册 MMA7455中文.doc
应用手册1 AN3468.pdf
应用手册2 AN3745.pdf
测试程序 MMA7455 430 测试程序.zip