|
ADXL345是一種三軸加速度計(jì)。當(dāng)ADXL345沿檢測軸正向加速時,它對正加速度進(jìn)行檢測。在檢測重力時需要注意,當(dāng)檢測軸的方向與重力的方向相反時檢測到的是正加速度。
ADXL345通過3線式或4線式模式進(jìn)行通信。
圖1所示為4線式SPI模式的電氣連接。注意,當(dāng)使用3線式SPI模式時可斷開SDO引腳。
圖1、4線式連接
圖2所示為推薦的3線式模式電氣連接。器件的7位I2C地址是0x53,緊隨其后的是R/W位。用戶通過將SDO/ALTADDRESS引腳連接到VDDIO引腳來選擇I2C的替代地址。此配置下的7位I2C地址是0x1D,緊隨其后的是R/W位。
圖2、3線式連接
初始化時,ADXL345在啟動序列期間工作在100 Hz ODR,在INT1引腳上有DATA_READY中斷。設(shè)置其它中斷或使用FIFO時,建議所使用的寄存器在POWER_CTL和INT_ENABLE寄存器之前進(jìn)行設(shè)置。
讀取數(shù)據(jù)時,DATA_READY中斷信號表明數(shù)據(jù)寄存器中的三軸加速度數(shù)據(jù)已被更新。當(dāng)新數(shù)據(jù)就緒時它會被置為高電平。(通過DATA_FORMAT寄存器,中斷信號可設(shè)置為由低電平變?yōu)楦唠娖?利用低-高躍遷來觸發(fā)中斷服務(wù)例程?蓮腄ATAX0、DATAX1、DATAY0、DATAY1、DATAZ0和DATAZ1寄存器中讀取數(shù)據(jù)。為了確保數(shù)據(jù)的一致性,推薦使用多字節(jié)讀取從ADXL345獲取數(shù)據(jù)。
ADXL345為16位數(shù)據(jù)格式。從數(shù)據(jù)寄存器中獲取加速度數(shù)據(jù)后,用戶必須對數(shù)據(jù)進(jìn)行重建。
DATAX0是X軸加速度的低字節(jié)寄存器,DATAX1是高字節(jié)寄存器。在13位模式下高4位是符號位。注意,可通過DATA_FORMAT寄存器設(shè)置其它數(shù)據(jù)格式POWER_CTL和INT_ENABLE寄存器之前進(jìn)行設(shè)置。
同時ADXL345具有偏移寄存器,可進(jìn)行偏移校準(zhǔn)。偏移寄存器的數(shù)據(jù)格式是8位、二進(jìn)制補(bǔ)碼。偏移寄存器的分辨率為15.6 mg/LSB。如果偏移校準(zhǔn)的精度必須高于15.6 mg/LSB,需要在處理器中進(jìn)行校準(zhǔn)。偏移寄存器將寫入到寄存器的值相加來測試加速度。例如,如果偏移為+156 mg,那么應(yīng)該往偏移寄存器寫入−156 mg |
繼續(xù):
ADXL345使用心得一
ADXL345具有+/-2g,+/-4g,+/-8g,+/-16g可變的測量范圍;最高13bit分辨率;固定的4mg/LSB靈敏度;3mm*5mm*1mm超小封裝;40-145uA超低功耗;標(biāo)準(zhǔn)的I2C或SPI數(shù)字接口;32級FIFO存儲;以及內(nèi)部多種運(yùn)動狀態(tài)檢測和靈活的中斷方式等特性。
ADXL345應(yīng)用領(lǐng)域很廣,擁有靈活的和主控制器通行的SPI(3線和4線)和I2C數(shù)字接口,可選的測量范圍和帶寬,有方便的單振/雙振檢測 ,活動/非活動監(jiān)控 和自由落體檢測功能。
這款加速度計(jì)有八個能夠獨(dú)立使用的中斷,中斷這里要說一下的就是int1和int2兩個中斷管腳,中斷功能能夠通過寄存器相應(yīng)的映射到這兩個管腳。還有就是x、y、z三個軸的中斷只能單獨(dú)使用。另外,對于Activity和Inactivity中斷,分成兩個工作方式,一個是AC、一個是DC,這兩個工作方式對應(yīng)的工作方式是不同的,AC對應(yīng)的是新的采樣點(diǎn)將以之前的某個采樣點(diǎn)為參考,用兩個采樣點(diǎn)的差值與門限進(jìn)行比較,來判斷是否發(fā)生中斷。DC 工作方式下,每個采樣點(diǎn)的加速度值將直接與門限進(jìn)行比較,來判斷是否發(fā)生中斷。還有就是Watermark 當(dāng)FIFO里所存的采樣點(diǎn)超過一定點(diǎn)數(shù)(SAMPLES)時,Watermark中斷置位。當(dāng)FIFO里的采樣點(diǎn)被讀取,使得其中保存的采樣點(diǎn)數(shù)小于該數(shù)值(SAMPLES)時,Watermark中斷自動清除。 Watermark 當(dāng)FIFO里所存的采樣點(diǎn)超過一定點(diǎn)數(shù)(SAMPLES)時,Watermark中斷置位。當(dāng)FIFO里的采樣點(diǎn)被讀取,使得其中保存的采樣點(diǎn)數(shù)小于該數(shù)值(SAMPLES)時,Watermark中斷自動清除。 還要說的一點(diǎn)是:ADXL345的FIFO最多可以存儲32個采樣點(diǎn)(X、Y、Z三軸數(shù)值),且具有Bypass模式、普通FIFO模式、Stream模式和Trigger模式,一共4種工作模式。FIFO功能也是ADXL345的一個重要且十分有用的功能。
還有,當(dāng)開始調(diào)試ADXL345時,先不要急著對其數(shù)據(jù)進(jìn)行處理,可以直接先觀察數(shù)據(jù),然后根據(jù)數(shù)據(jù)再分析,之后再進(jìn)行處理,比如做補(bǔ)償電路。
ADXL345使用心得二
ADXL345和微控制器之間的電路連接非常簡單。由ADXL345和微控制器ADuC7026組成。給出了ADXL345和ADuC70262之間的典型電路連接。ADXL345的\CS管腳接高電平,表示ADXL345工作在I2C模式。SDA和SCL是I2C總線的數(shù)據(jù)線和時鐘線,分別連接到ADuC7026相應(yīng)的I2C總線管腳。ADuC7026的一個GPIO管腳連接到ADXL345的ALT管腳,用來選擇ADXL345的I2C地址。ADXL345的INT1管腳連接到ADuC7026的IRQ輸入用來產(chǎn)生中斷信號。說到了I2C,就說下有關(guān)I2C的東西吧!對于I2C總線協(xié)議,無論讀寫,I2C的SDA信號線上送出的第一個字節(jié)一定是SLAVE ADDRESS+WRITE。如果這里配置錯了,那么數(shù)據(jù)就是一直讀不出來的。讀取ADXL345內(nèi)部寄存器的讀寫操作時以字節(jié)為單位的,而兩個字節(jié)之間的CS-n,SCLK一直保持有效。在讀取寄存器的時候,先要讀取內(nèi)部地址0x00的DEVID,正確之后再進(jìn)行其他寄存器的操作。因?yàn)橐粋器具具有唯一的ID號,而對這個ID號的讀取時首要的任務(wù)。
在通信模式和硬件連接的電路中,要注意幾點(diǎn):
1 、cs-n必須要上拉到VDD才能啟動I2C總線模式
2 、SDA和SCL需要上拉電阻
3 、SDA在FPGA的IO配置時,要將其配置為inout類型
4 、注意ALT-ADDRESS的連接方式與對應(yīng)的設(shè)備從地址是不同的底層驅(qū)動的調(diào)試是件很頭疼的事情,最關(guān)鍵的是對時序的理解。下面是一些經(jīng)驗(yàn)總結(jié):
1)應(yīng)當(dāng)確保硬件連線的正確性。比如,在調(diào)試I2C模式時,先確定DSP板的I2C接口正常;如果開始也能確保ADXL345模塊正常,那就能將錯誤定位在軟件上,問題就容易解決多了。
2)要確保拿到通信雙方器件的正確時序圖。合理的配置主控器件,使雙方的時序一致。
3)搜索一些參考例子,在其基礎(chǔ)上修改,這樣也可加快調(diào)試的進(jìn)度。
4)調(diào)試中,盡量尋找發(fā)現(xiàn)異,F(xiàn)象,分析可能的原因。據(jù)此,修改電路或者程序,嘗試凸顯問題,印證推斷。同時,不斷記錄總結(jié)現(xiàn)象和實(shí)際原因,日積月累,經(jīng)驗(yàn)會不斷增加。
下面是網(wǎng)友分享的ADXL345校準(zhǔn)原理
首先,這個校準(zhǔn)的過程是手動的(類似手機(jī)上的傳感器校準(zhǔn)),把模塊水平放置(這個水平也只是個大概,如果要求高的話,還需要其他儀器輔助),那么x軸和y軸的度數(shù)應(yīng)該為0g,獲取此時的實(shí)際x軸和y軸的度數(shù),假設(shè)是20和-17。要注意此時傳感器的量程和分辨率,假設(shè)此時adxl345是常規(guī)量程+-16g,分辨率13位,那么此時度數(shù)的系數(shù)應(yīng)該是1g/256 *1000 = 3.9 mg/LSB,從數(shù)據(jù)手冊上可以查到 偏移寄存器的比例因子是 15.6mg/LSB(固定的,與量程無關(guān)),那么需要設(shè)定的實(shí)際偏移值就是 20/4 = 5和-17/4 = 4(15.6/3.9約為4)
然后取兩個值的補(bǔ)碼,分別為0x05和0xFB,寫入對應(yīng)的偏移寄存器。
這樣,每次從傳感器讀取的數(shù)值就自動加上了這個設(shè)置的偏移。z軸的偏移值檢測方式一樣,把z軸水平放置(處于0g場)。
需要注意的是:
1、傳感器掉電后,設(shè)置的偏移值就丟失了,需要在下次上電后重新設(shè)置(不過這個偏移值主要跟芯片所處的環(huán)境有關(guān),理論上不會經(jīng)常性的大變化)
2、對于偏移值的測量,可以采用多次測量求平均值的方法 |
|
|
|