今天上午花了個把小時看了一下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