驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測與數(shù)據(jù)采集(2)----配置濾波器
工作模式
在LSM6DS3TR-C中,加速度計和陀螺儀可以獨立地開啟/關(guān)閉,并且可以擁有不同的ODR和功耗模式。 LSM6DS3TR-C有三種可用的操作模式:?
● 僅加速度計活動,陀螺儀處于斷電狀態(tài)?
● 僅陀螺儀活動,加速度計處于斷電狀態(tài)?
● 加速度計和陀螺儀傳感器同時活動,ODR獨立?
最近在弄ST和瑞薩RA的課程,需要樣片的可以加群申請:6_15061293 。

?

視頻教學(xué)
https://www.bilibili.com/video/BV19P411Q7fP/

樣品申請
https://www.wjx.top/vm/OhcKxJk.aspx#
完整代碼下載
https://download.csdn.net/download/qq_24312945/87921267
設(shè)置加速度速率
設(shè)置加速度速率可以配置CTRL1_XL (10h)寄存器,ODR_XL [3:0]可以設(shè)置速率。?

參考例程序中對應(yīng)的設(shè)置加速度速率程序函數(shù),如下所示。

?設(shè)置加速度速率代碼如下所示。
設(shè)置速率為12.5Hz的波形如下所示.?

設(shè)置角速度速率
設(shè)置角速度速率可以配置CTRL2_G (11h))寄存器,ODR_G [3:0]可以設(shè)置速率。?

參考例程序中對應(yīng)的設(shè)置角速度速率程序函數(shù),如下所示。?

?設(shè)置角速度速率代碼如下所示。
設(shè)置速率為12.5Hz的波形如下所示。?

設(shè)置加速度量程選擇
設(shè)置加速度量程可以配置CTRL1_XL (10h)寄存器的FS_XL,F(xiàn)S_XL [1:0]可以設(shè)置量程。?

?參考例程序中對應(yīng)的設(shè)置加速度量程程序函數(shù),如下所示。?

設(shè)置速率為2g的波形如下所示。

設(shè)置角速度量程選擇
設(shè)置角速度量程可以配置CTRL2_G (11h)寄存器的FS_G,F(xiàn)S_G [1:0]可以設(shè)置量程。?

?參考例程序中對應(yīng)的設(shè)置角速度量程程序函數(shù),如下所示。?

設(shè)置陀螺儀量程為2000的波形如下所示。

設(shè)置加速度參數(shù)
加速度帶寬這個設(shè)置是用來確定加速度計數(shù)據(jù)的更新速度的。更高的帶寬允許更高的頻率信號通過,這意味著加速度計可以更快地響應(yīng)運動的變化。 這個設(shè)置特別適用于加速度計的輸出數(shù)據(jù)速率(ODR)大于或等于1.67kHz的情況。這是因為在這種高數(shù)據(jù)速率下,可能需要更寬的帶寬來確保加速度計能夠準(zhǔn)確地測量快速變化的運動。例如,在高速運動的跟蹤或者高精度的導(dǎo)航應(yīng)用中,這個設(shè)置可能會很有用。

參考例程序中對應(yīng)的設(shè)置加速度帶寬選擇程序函數(shù),如下所示。?


使用的函數(shù)如下。
對于CTRL1_XL (10h)配置,主要有如下1個函數(shù)。?
bw0_xl寫入1,通過在CTRL1_XL寄存器中將BW0_XL位設(shè)置為1來將模擬濾波器的帶寬設(shè)置為400 Hz。
對于CTRL8_XL(17h)配置,主要有如下4個函數(shù)。
((uint8_t) val & 0x10U) >> 4為(0x11 & 0x10)>> 4即ctrl8_xl.input_composite寫入1;?
ctrl8_xl.hpcf_xl = (uint8_t) val & 0x03U為(0x11 & 0x03)即ctrl8_xl.hpcf_xl寫入1;?
ctrl8_xl.lpf2_xl_en = 1即lpf2_xl_en寫入1;?
ctrl8_xl.hp_slope_xl_en = 0即hp_slope_xl_en寫入0;
線性加速度濾波器寄存器在CTRL8_XL (17h)中,這些參數(shù)在CTRL8_XL寄存器中定義了加速度計的一些濾波器設(shè)置。以下是這些參數(shù)的區(qū)別:?
LPF2_XL_EN - 加速度計低通濾波器LPF2的選擇。
HPCF_XL[1:0] - 加速度計LPF2和高通濾波器的配置和截止設(shè)置。?
HP_REF_MODE - 啟用高通濾波器參考模式。默認(rèn)值:0(0:禁用;1:啟用(1))。啟用后,必須丟棄第一個輸出數(shù)據(jù)。?
INPUT_COMPOSITE - 復(fù)合濾波器輸入選擇。默認(rèn)值:0(0:將ODR/2低通濾波器輸出發(fā)送到復(fù)合濾波器(默認(rèn));1:將ODR/4低通濾波器輸出發(fā)送到復(fù)合濾波器)。?
HP_SLOPE_XL_EN - 加速度計斜率濾波器/高通濾波器選擇。?
LOW_PASS_ON_6D - 6D功能上的LPF2選擇。?
降低采樣率可以減少傳感器生成的數(shù)據(jù)量,從而降低功耗和數(shù)據(jù)處理要求。這在某些應(yīng)用場景中可能是有用的,特別是對于要求較低的數(shù)據(jù)更新率或?qū)Υ鎯蛡鬏斮Y源有限的情況下。

?模擬濾波器帶寬的設(shè)置:?
當(dāng)加速度計的采樣率(ODR)大于等于1666 Hz時,可以通過在CTRL1_XL寄存器中將BW0_XL位設(shè)置為1來將模擬濾波器的帶寬設(shè)置為400 Hz。?
數(shù)字低通濾波器LPF1的選擇:?
LPF1數(shù)字低通濾波器提供兩個輸出,它們具有不同的截止頻率??梢酝ㄟ^在CTRL1_XL寄存器的LPF1_BW_SEL位和CTRL8_XL寄存器的INPUT_COMPOSITE位來選擇所需的LPF1輸出。這些位的設(shè)置將確定LPF1輸出的截止頻率。

?配置CTRL8_XL (17h)為LSM6DS3TRC_ACC_LOW_PASS_ODR_100 0xA8(1010 1000),流程圖如下所示。

設(shè)置加速度的刷新速度為400Hz和高通濾波器的截止頻率被設(shè)置為加速度計的輸出數(shù)據(jù)速率的百分之一的波形如下所示。

陀螺儀帶寬配置
陀螺儀的帶寬 在LSM6DS3TR-C器件中,陀螺儀濾波鏈取決于所使用的連接方式。 陀螺儀濾波鏈配置如下圖所示。陀螺儀數(shù)字鏈)。這是一個三級的級聯(lián)濾波器:一個可選數(shù)字高通濾波器(HPF),一個可選數(shù)字低通濾波器(LPF1)和一個數(shù)字低通 過濾器(LPF2)。?

?參考程序配置陀螺儀帶寬代碼如下所示。?

?使用的函數(shù)如下。
對于CTRL7_G (16h)配置,主要有如下2個函數(shù)。?
((uint8_t)val & 0x30U) >> 4為(0xA8 & 0x30)>> 4即ctrl7_g.hpm_g寫入10;?
((uint8_t)val & 0x80U) >> 7為(0xA8 & 0x80)>> 7即ctrl7_g.hp_en_g寫入1;
對于CTRL6_G (15h)配置,主要有如下1個函數(shù)。 (uint8_t)val & 0x03U為(0xA8 & 0x03)即ctrl6_c.ftype寫入00。
對于CTRL4_G (13h)配置,主要有如下1個函數(shù)。 ((uint8_t)val & 0x08U) >> 3為(0xA8 & 0x08)>> 3即ctrl4_c.lpf1_sel_g寫入1。
設(shè)置角速度控制寄存器可以配置CTRL7_G (16h),通過將CTRL7_G寄存器的HP_EN_G位設(shè)置為1,可以使能數(shù)字HP濾波器。同時G_HM_MODE默認(rèn)情況下為0,即開啟高性能模式。 數(shù)字高壓濾波器截止頻率可以通過CTRL7_G寄存器的HPM_G[1:0]字段來選擇,如下表所示,這里選擇配置為10,即260mHz。

這里關(guān)閉高性能操作模式以及打開陀螺儀數(shù)字HP濾波器,截止頻率選擇260 mHz的波形如下所示。

?CTRL6_C寄存器主要用于配置陀螺儀的低通濾波器(LPF1)的帶寬選擇。通過修改FTYPE[1:0]的值,您可以選擇不同的陀螺儀低通濾波器帶寬。?
FTYPE[1:0] - 陀螺儀的低通濾波器 (LPF1) 帶寬選擇。表68顯示了可選的帶寬值。

設(shè)置FTYPE[1:0]為00波形如下所示。

"LPF1_SEL_G"參數(shù)用于啟用或禁用陀螺儀的數(shù)字低通濾波器1(LPF1)。如果設(shè)為1,則該濾波器啟用;如果設(shè)為0,則該濾波器禁用,這里需要對LPF1_SEL_G 配置為1打開。

使能低通濾波器波形如下所示。

?總的配置流程如下所示。

陀螺儀初始化配置