STM32控制三軸加速度感測器實現分析(2)

2021-05-23 19:21:29 字數 2113 閱讀 2390

mems控制原理

在程式動作前,需要初始化系統中斷向量表(使用nvic_setvectortable函式),配置系統時鐘、使能各外設時鐘(systeminit,rcc_apb2periphclockcmd,rcc_apb1periphclockcmd)。

1。gpio

pb6,pb7分別作為scl和sda。查詢stm32晶元手冊的afio部分,

將pb6,pb7作為scl和sda使用不需要進行重對映,因此只需初始化其模式、速度。

2。i2c

(1)外設時鐘頻率

外設時鐘頻率fpclk1需寫入cr2暫存器的最低六位,寫入值的單位為mhz。因此,把rcc中pclk1的頻率值除以1000,000後,放入cr2中。

(2)ccr (clock control register)

該值控制master模式下的i2c時鐘。

i2c傳輸分為standard mode (fscl = 100khz) 和fast mode (fscl = 400khz)。fast mode分為 tlow/thigh = 2 和 tlow/thigh = 16/9 兩種。圖示如下。16/9類同。

ccr值的公式為:

standard mode:

thigh = ccr * tpclk1

tlow = ccr * tpclk1

fast mode:

比例為2:

thigh = ccr * tpclk1

tlow = 2 * ccr * tpclk1

比例為16/9:

thigh = 9 * ccr * tpclk1

tlow = 16 * ccr * tpclk1

因此,計算ccr值的方法為:

standard mode:

ccr = thigh / tpclk1 = 0.5 * tscl / tpclk1 = fpclk1 / (2 * fscl)

(**中結構體的變數i2c_clockspeed即為fscl)

fast mode:

比例為2:

ccr = thigh / tpclk1 = (1 / 3) * tscl / tpclk1 = fpclk1 / (3 * fscl)

比例為16/9:

ccr = fpclk1 / (25 * fscl)

在ccr中,standard mode下最小值為0x04,fast mode下為0x01。

(3)trise暫存器

該值設定master模式下的最大上公升時間。計算方法為允許的最大scl上公升時間除以tpclk1,所得商值加1。

在i2c bus specification中,standard mode 下最大時間為1000ns,fast mode下為300ns。

因此,trise計算方法為:

standard mode:

trise = 1000 * (10^(-9)) / tpclk1 + 1 = fpclk1 + 1

fast mode:

trise = 300 * (10^(-9)) / tpclk1 + 1 = 300 * fpclk1 / 1000 + 1

3。讀取mems中加速度資料

實現過程按照lis302dl datasheet中給的時序

傳送和接收命令或位址資料的本質是讀寫dr暫存器。

每步執行之後需要檢查sr1和sr2相應暫存器的狀態,確認該步執行完成後才能進行下一步。

對於外設讀寫位址,lis302dl datasheet中有說明:當sdo接地時,外設位址sad為00111010;master要傳送的位址資料位sad+w/r,w/r位,從mems讀資料時為1,向mems寫資料時為0。

程式中用到的mems暫存器有:0x20 ctrl_reg1,選擇電源模式,選擇加速度檢測方向

0x27 status_reg,各軸資料獲取和溢位狀況

0x29, 2b, 2d out_x,y,z 各軸輸出資料。

剩餘問題:在i2c驅動中,對於外設時鐘頻率的賦值,彙編**中,mcu暫存器中為正確的值,但單步時發現,賦值給時鐘頻率變數的值顯示不正確,無法賦給正確的值;最後計算結果為暫存器中資料的計算,因此是正確的。

若把變數宣告為static,彙編**中該變數的儲存位置發生變化。需要學習code, ro data, rw data和zi data的職能。

感測器 BMA253 數字,三軸加速度感測器

密碼 9new 關鍵特性 關鍵特性 封裝方式lga封裝 12pins 長 寬 2mm 2mm 高度0.95mm 數字介面spi 4線,3線 i2c,兩個中斷pins,vddio範圍 1.2v 3.6v 功能加速器範圍 2g,4g,8g,16g,頻寬 8hz 1khz 片上fifo32幀 片上中斷控制...

無線加速度感測器

mms f a01無線加速度感測器說明書 1 產品介紹 mms f a01無線加速度感測器採用最先進的無線物聯網技術 lora技術,同時具有低功耗和長距離通訊的特性,通訊距離可達5km,感測器 引進歐洲專利技術的三軸加速度感測單元,具有結構固定 功耗低 穩定性好等特點,無線加速度感測器使用簡單,可用...

有線加速度感測器

mms a01型三軸有線加速度感測器使用說明書 1 產品介紹 mms a01是一款引進歐洲專利技術的三軸加速度感測器,產品具有結構固定,功耗低,偏差穩定性優異等特點,保證了傑出的 輸出可靠性。可適用於震動測試,撞擊測試等多個領域,可適應在工業惡劣環境中長期工作。2 產品特點 三軸同時測量 數字輸出 ...