MPU6050配置低功耗和中斷

2021-10-25 10:28:03 字數 1486 閱讀 3082

關於移植時注意的事項

各位鐵子們啊,當你們看到這篇部落格的時候說明你很有可能和我碰到了一樣的問題,然後犯了一樣的錯誤。

我在使用mpu6050的時候參考著暫存器手冊(最新的暫存器手冊會發現很多暫存器,文件上都沒有提)和部落格一點點的去做休眠和中斷,花了好幾天終於弄好了,結果發現在官方提供的相關的驅動庫中有這部分的**。

int

mpu_lp_motion_interrupt

(unsigned

short thresh,

unsigned

char time,

unsigned

char lpa_freq)

//進入低功耗模式,並且可以設定motion 觸發中斷的閥值

intmpu_lp_accel_mode

(unsigned

char rate)

//進入低功耗僅加速器工作模式

我在使用mpu6050的過程中,對其低功耗狀態下的電流進行了測量,這裡大致和大家分享一下。

電壓:3.3v	

正常工作時電流:5.06ma

mpu6050模組上的led燈工作時電流:0.85ma

mpu6050 sleep狀態下電流:6.04ma

mpu6050 cycle模式時不同頻率下的電流消耗(三軸陀螺儀均處於待機狀態下,同時這裡減去了led燈的電流消耗):

* 1.25hz時 電流為:5.19ma

* 5hz時 電流為:5.21ma

* 20hz時 電流為:5.29ma

* 40hz時 電流為:5.38ma

另外三軸陀螺儀,每開一軸電流的就會增大3個ma,所以當你三軸陀螺儀全開的時候電流的消耗增加了12個ma左右。

整體來看mpu6050的低功耗狀態下電流消耗還是有點高的。

u8 mpu_read_len(u8 addr, u8 reg, u8 len, u8 *buf)

mpu_iic_send_byte(reg);

mpu_iic_wait_ack();

mpu_iic_start();

mpu_iic_send_byte((addr << 1) | 1); //這裡會將位址向左移動後根據「讀/寫」補上「0/1「

mpu_iic_wait_ack();

while (len)

mpu_iic_stop();

return 0;

}

MPU6050資料讀取

iicreadbytes devaddr,mpu6050 ra accel xout h,14,buffer 對於加計x軸的資料,buffer 0 存放高位 0xff,buffer 1 0x40存放低位 計算方法 if buffer 0 0x7f mpu6050 lastax buffer 0 25...

mpu6050 z軸校準 MPU6050校準

前用匿名四軸的 稱植過來發現求出的 pitch 與roll 一直不斷的增加,不知道什麼原因,靜止放著也不行。看了不少四元數的資料,能看懂,但是結合資料融合又糊了。加上卡爾漫資料也就那樣,可 能是我處理得有問題。偶然翻帖看到了 dmp,於是打算移植過來看看。花了兩三的時間總算成功了。現在把一些移植過程...

MPU6050 加速計濾波

加速度計濾波實驗引數 取樣頻率fs 250hz 截止頻率cutoff frequency 未開電機靜止 開電機懸停 未開電機轉動飛控 原始輸出 raw 260 hz 260hz 260hz mpu6050內部 lpf 94 hz 94 hz 94 hz 2階 butterworth 30 hz 30...