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 產品特點 三軸同時測量 數字輸出 ...