0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測與數(shù)據(jù)采集(2)----配置濾波器

嵌入式單片機(jī)MCU開發(fā) ? 來源:嵌入式單片機(jī)MCU開發(fā) ? 作者:嵌入式單片機(jī)MCU開 ? 2023-11-14 09:45 ? 次閱讀

工作模式

在LSM6DS3TR-C中,加速度計和陀螺儀可以獨立地開啟/關(guān)閉,并且可以擁有不同的ODR和功耗模式。 LSM6DS3TR-C有三種可用的操作模式:
● 僅加速度計活動,陀螺儀處于斷電狀態(tài)
● 僅陀螺儀活動,加速度計處于斷電狀態(tài)
● 加速度計和陀螺儀傳感器同時活動,ODR獨立
最近在弄ST和瑞薩RA的課程,需要樣片的可以加群申請:615061293 。


視頻教學(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è)置加速度速率代碼如下所示。

#define LSM6DS3TRC_CTRL1_XL        0x10
//Linear acceleration out data rate
#define LSM6DS3TRC_ACC_RATE_0    0x00
#define LSM6DS3TRC_ACC_RATE_1HZ6    0xB0
#define LSM6DS3TRC_ACC_RATE_12HZ5    0x10
#define LSM6DS3TRC_ACC_RATE_26HZ    0x20
#define LSM6DS3TRC_ACC_RATE_52HZ    0x30
#define LSM6DS3TRC_ACC_RATE_104HZ    0x40
#define LSM6DS3TRC_ACC_RATE_208HZ    0x50
#define LSM6DS3TRC_ACC_RATE_416HZ    0x60
#define LSM6DS3TRC_ACC_RATE_833HZ    0x70
#define LSM6DS3TRC_ACC_RATE_1660HZ    0x80
#define LSM6DS3TRC_ACC_RATE_3330HZ    0x90
#define LSM6DS3TRC_ACC_RATE_6660HZ    0xA0
/***************************************************************************************************************
LSM6DS3TRC Set accelerometer data rate
****************************************************************************************************************/
void LSM6DS3TRC_Set_Accelerometer_Rate(uint8_t rate)
{
    uint8_t buf[1] = {0};
    LSM6DS3TRC_ReadCommand(LSM6DS3TRC_CTRL1_XL, buf, 1);
    buf[0] |= rate;
    LSM6DS3TRC_WriteCommand(LSM6DS3TRC_CTRL1_XL, buf, 1);
}

設(shè)置速率為12.5Hz的波形如下所示.

設(shè)置角速度速率

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

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

設(shè)置角速度速率代碼如下所示。

#define LSM6DS3TRC_CTRL2_G        0x11
//Linear gyroscope out data rate
#define LSM6DS3TRC_GYR_RATE_0    0x00
#define LSM6DS3TRC_GYR_RATE_1HZ6    0xB0
#define LSM6DS3TRC_GYR_RATE_12HZ5    0x10
#define LSM6DS3TRC_GYR_RATE_26HZ    0x20
#define LSM6DS3TRC_GYR_RATE_52HZ    0x30
#define LSM6DS3TRC_GYR_RATE_104HZ    0x40
#define LSM6DS3TRC_GYR_RATE_208HZ    0x50
#define LSM6DS3TRC_GYR_RATE_416HZ    0x60
#define LSM6DS3TRC_GYR_RATE_833HZ    0x70
#define LSM6DS3TRC_GYR_RATE_1660HZ    0x80
#define LSM6DS3TRC_GYR_RATE_3330HZ    0x90
#define LSM6DS3TRC_GYR_RATE_6660HZ    0xA0
/***************************************************************************************************************
LSM6DS3TRC Set gyroscope data rate
****************************************************************************************************************/
void LSM6DS3TRC_Set_Gyroscope_Rate(uint8_t rate)
{
    uint8_t buf[1] = {0};
    LSM6DS3TRC_ReadCommand(LSM6DS3TRC_CTRL2_G, buf, 1);
    buf[0] |= rate;
    LSM6DS3TRC_WriteCommand(LSM6DS3TRC_CTRL2_G, buf, 1);
}

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

設(shè)置加速度量程選擇

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

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

#define LSM6DS3TRC_CTRL1_XL        0x10
//Accelerometer full-scale.
#define LSM6DS3TRC_ACC_FSXL_2G    0x00
#define LSM6DS3TRC_ACC_FSXL_16G    0x04
#define LSM6DS3TRC_ACC_FSXL_4G    0x08
#define LSM6DS3TRC_ACC_FSXL_8G    0x0C
/***************************************************************************************************************
LSM6DS3TRC Set accelerometer full-scale selection.
****************************************************************************************************************/
void LSM6DS3TRC_Set_Accelerometer_Fullscale(uint8_t value)
{
    uint8_t buf[1] = {0};
    LSM6DS3TRC_ReadCommand(LSM6DS3TRC_CTRL1_XL, buf, 1);
    buf[0] |= value;
    LSM6DS3TRC_WriteCommand(LSM6DS3TRC_CTRL1_XL, buf, 1);
}

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

設(shè)置角速度量程選擇

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

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

#define LSM6DS3TRC_CTRL2_G        0x11
//Gyroscope full-scale.
#define LSM6DS3TRC_GYR_FSG_245    0x00
#define LSM6DS3TRC_GYR_FSG_500    0x04
#define LSM6DS3TRC_GYR_FSG_1000    0x08
#define LSM6DS3TRC_GYR_FSG_2000    0x0C
/***************************************************************************************************************
LSM6DS3TRC Set gyroscope full-scale selection.
****************************************************************************************************************/
void LSM6DS3TRC_Set_Gyroscope_Fullscale(uint8_t value)
{
    uint8_t buf[1] = {0};
    LSM6DS3TRC_ReadCommand(LSM6DS3TRC_CTRL2_G, buf, 1);
    buf[0] |= value;
    LSM6DS3TRC_WriteCommand(LSM6DS3TRC_CTRL2_G, buf, 1);
}

設(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ù)如下。

#define LSM6DS3TR_C_XL_ANA_BW_400Hz  1
#define LSM6DS3TR_C_XL_LOW_NOISE_LP_ODR_DIV_100   0x11
/* Configure filtering chain(No aux interface) */
  /* Accelerometer - analog filter */
  lsm6ds3tr_c_xl_filter_analog_set(&dev_ctx,
                                   LSM6DS3TR_C_XL_ANA_BW_400Hz);
  /* Accelerometer - LPF1 path ( LPF2 not used )*/
  //lsm6ds3tr_c_xl_lp1_bandwidth_set(&dev_ctx, LSM6DS3TR_C_XL_LP1_ODR_DIV_4);
  /* Accelerometer - LPF1 + LPF2 path */
  lsm6ds3tr_c_xl_lp2_bandwidth_set(&dev_ctx,
                                   LSM6DS3TR_C_XL_LOW_NOISE_LP_ODR_DIV_100);

對于CTRL1_XL (10h)配置,主要有如下1個函數(shù)。 bw0_xl寫入1,通過在CTRL1_XL寄存器中將BW0_XL位設(shè)置為1來將模擬濾波器的帶寬設(shè)置為400 Hz。

ctrl1_xl.bw0_xl = (uint8_t) val;

對于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.input_composite = ((uint8_t) val & 0x10U) > > 4;
    ctrl8_xl.hpcf_xl = (uint8_t) val & 0x03U;
    ctrl8_xl.lpf2_xl_en = 1;
    ctrl8_xl.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),流程圖如下所示。

#define LSM6DS3TRC_CTRL1_XL        0x10
#define LSM6DS3TRC_CTRL8_XL        0x17
//Accelerometer analog chain bandwidth
#define LSM6DS3TRC_ACC_BW0XL_1500HZ    0x00
#define LSM6DS3TRC_ACC_BW0XL_400HZ    0x01
//Accelerometer bandwidth selection
#define LSM6DS3TRC_ACC_LOW_PASS_ODR_50    0x88
#define LSM6DS3TRC_ACC_LOW_PASS_ODR_100    0xA8
#define LSM6DS3TRC_ACC_LOW_PASS_ODR_9    0xC8
#define LSM6DS3TRC_ACC_LOW_PASS_ODR_400    0xE8
/***************************************************************************************************************
LSM6DS3TRC Set accelerometer analog chain bandwidth.
****************************************************************************************************************/
void LSM6DS3TRC_Set_Accelerometer_Bandwidth(uint8_t BW0XL, uint8_t ODR)
{
    uint8_t buf[1] = {0};
    LSM6DS3TRC_ReadCommand(LSM6DS3TRC_CTRL1_XL, buf, 1);
    buf[0] |= BW0XL;
    LSM6DS3TRC_WriteCommand(LSM6DS3TRC_CTRL1_XL, buf, 1);

    LSM6DS3TRC_ReadCommand(LSM6DS3TRC_CTRL8_XL, buf, 1);
    buf[0] |= ODR;
    LSM6DS3TRC_WriteCommand(LSM6DS3TRC_CTRL8_XL, buf, 1);
}

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

陀螺儀帶寬配置

陀螺儀的帶寬 在LSM6DS3TR-C器件中,陀螺儀濾波鏈取決于所使用的連接方式。

陀螺儀濾波鏈配置如下圖所示。陀螺儀數(shù)字鏈)。這是一個三級的級聯(lián)濾波器:一個可選數(shù)字高通濾波器(HPF),一個可選數(shù)字低通濾波器(LPF1)和一個數(shù)字低通 過濾器(LPF2)。

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

使用的函數(shù)如下。

#define LSM6DS3TR_C_HP_260mHz_LP1_STRONG   0xA8
/* Gyroscope - filtering chain */
  lsm6ds3tr_c_gy_band_pass_set(&dev_ctx,
                               LSM6DS3TR_C_HP_260mHz_LP1_STRONG);

對于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;

ctrl7_g.hpm_g  = ((uint8_t)val & 0x30U) > > 4;
    ctrl7_g.hp_en_g = ((uint8_t)val & 0x80U) > > 7;

對于CTRL6_G (15h)配置,主要有如下1個函數(shù)。

(uint8_t)val & 0x03U為(0xA8 & 0x03)即ctrl6_c.ftype寫入00。

ctrl6_c.ftype = (uint8_t)val & 0x03U;

對于CTRL4_G (13h)配置,主要有如下1個函數(shù)。

((uint8_t)val & 0x08U) >> 3為(0xA8 & 0x08)>> 3即ctrl4_c.lpf1_sel_g寫入1。

ctrl4_c.lpf1_sel_g = ((uint8_t)val & 0x08U) > > 3;

設(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。

//CTRL7_G register
#define LSM6DS3TRC_CTRL7_G_HM_MODE_ENABLE        0x00
#define LSM6DS3TRC_CTRL7_G_HM_MODE_DISABLE    0x80
#define LSM6DS3TRC_CTRL7_G_HP_EN_DISABLE        0x00
#define LSM6DS3TRC_CTRL7_G_HP_EN_ENABLE        0x40
#define LSM6DS3TRC_CTRL7_G_HPM_16MHZ    0x00
#define LSM6DS3TRC_CTRL7_G_HPM_65MHZ    0x10
#define LSM6DS3TRC_CTRL7_G_HPM_260MHZ    0x20
#define LSM6DS3TRC_CTRL7_G_HPM_1HZ04    0x30
#define LSM6DS3TRC_CTRL7_G_ROUNDING_STATUS_DISABLE    0x04
#define LSM6DS3TRC_CTRL7_G_ROUNDING_STATUS_ENABLE    0x00
/***************************************************************************************************************
LSM6DS3TRC Set register 7
****************************************************************************************************************/
void LSM6DS3TRC_Set_Register7(uint8_t reg7)
{
    uint8_t buf[1] = {0};

    LSM6DS3TRC_ReadCommand(LSM6DS3TRC_CTRL7_G, buf, 1);
    buf[0] |= reg7;
    LSM6DS3TRC_WriteCommand(LSM6DS3TRC_CTRL7_G, buf, 1);
}

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

#define LSM6DS3TRC_CTRL7_G_HP_EN_ENABLE        0x40
#define LSM6DS3TRC_CTRL7_G_HPM_260MHZ    0x20
LSM6DS3TRC_Set_Register7(LSM6DS3TRC_CTRL7_G_HP_EN_ENABLE | LSM6DS3TRC_CTRL7_G_HPM_260MHZ);

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

FTYPE[1:0] - 陀螺儀的低通濾波器 (LPF1) 帶寬選擇。表68顯示了可選的帶寬值。

#define LSM6DS3TRC_CTRL6_C        0x15
//CTRL6_C register
#define LSM6DS3TRC_CTRL6_C_EDGE_TRIGGER    0x80
#define LSM6DS3TRC_CTRL6_C_LEVEL_TRIGGER    0x40
#define LSM6DS3TRC_CTRL6_C_LEVEL_LATCHED    0x60
#define LSM6DS3TRC_CTRL6_C_LEVEL_FIFO    0xC0
#define LSM6DS3TRC_CTRL6_C_XL_HM_MODE_ENABLE    0x00
#define LSM6DS3TRC_CTRL6_C_XL_HM_MODE_DISABLE    0x10
#define LSM6DS3TRC_CTRL6_C_FTYPE_1    0x00
#define LSM6DS3TRC_CTRL6_C_FTYPE_2    0x01
#define LSM6DS3TRC_CTRL6_C_FTYPE_3    0x02
#define LSM6DS3TRC_CTRL6_C_FTYPE_4    0x03
/***************************************************************************************************************
LSM6DS3TRC Set register 6
****************************************************************************************************************/
void LSM6DS3TRC_Set_Register6(uint8_t reg6)
{
    uint8_t buf[1] = {0};
    LSM6DS3TRC_ReadCommand(LSM6DS3TRC_CTRL6_C, buf, 1);
    buf[0] |= reg6;
    LSM6DS3TRC_WriteCommand(LSM6DS3TRC_CTRL6_C, buf, 1);
}

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

LSM6DS3TRC_Set_Register6(LSM6DS3TRC_CTRL6_C_FTYPE_1);

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

#define LSM6DS3TRC_CTRL4_C        0x13
//CTRL4_C register
#define LSM6DS3TRC_CTRL4_DEN_XL_EN_DISABLE 0x00
#define LSM6DS3TRC_CTRL4_DEN_XL_EN_ENABLE    0x80
#define LSM6DS3TRC_CTRL4_SLEEP_ENABLE    0x40
#define LSM6DS3TRC_CTRL4_SLEEP_DISABLE    0x00
#define LSM6DS3TRC_CTRL4_DEN_DRDY_INT1_DISBALE    0x00
#define LSM6DS3TRC_CTRL4_DEN_DRDY_INT1_ENABLE    0x20
#define LSM6DS3TRC_CTRL4_DRDY_MASK_DISABLE    0x00
#define LSM6DS3TRC_CTRL4_DRDY_MASK_ENABLE    0x08
#define LSM6DS3TRC_CTRL4_I2C_DISABLE 0x04
#define LSM6DS3TRC_CTRL4_I2C_ENABLE 0x00
#define LSM6DS3TRC_CTRL4_LPF1_SELG_ENABLE    0x02
#define LSM6DS3TRC_CTRL4_LPF1_SELG_DISABLE    0x00
/***************************************************************************************************************
LSM6DS3TRC Set register 6
****************************************************************************************************************/
void LSM6DS3TRC_Set_Register4(uint8_t reg4)
{
    uint8_t buf[1] = {0};

    LSM6DS3TRC_ReadCommand(LSM6DS3TRC_CTRL4_C, buf, 1);
    buf[0] |= reg4;
    LSM6DS3TRC_WriteCommand(LSM6DS3TRC_CTRL4_C, buf, 1);
}

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

LSM6DS3TRC_Set_Register4(LSM6DS3TRC_CTRL4_LPF1_SELG_ENABLE);

總的配置流程如下所示。

陀螺儀初始化配置

/***************************************************************************************************************
LSM6DS3TRC Init
****************************************************************************************************************/
bool LSM6DS3TRC_Init(uint8_t mode)
{
    lsm6ds3trc_mode = mode;

    if (LSM6DS3TRC_GetChipID() == false)
        return false;

    //reboot and reset register
    LSM6DS3TRC_Reset();

    //enable Block Data Update
    LSM6DS3TRC_Set_BDU(true);

    //Set Data Rate
    LSM6DS3TRC_Set_Accelerometer_Rate(LSM6DS3TRC_ACC_RATE_12HZ5);
    LSM6DS3TRC_Set_Gyroscope_Rate(LSM6DS3TRC_GYR_RATE_12HZ5);

    //Set full-scale selection.
    LSM6DS3TRC_Set_Accelerometer_Fullscale(LSM6DS3TRC_ACC_FSXL_2G);
    LSM6DS3TRC_Set_Gyroscope_Fullscale(LSM6DS3TRC_GYR_FSG_2000);

    //set accelerometer analog chain bandwidth.
    LSM6DS3TRC_Set_Accelerometer_Bandwidth(LSM6DS3TRC_ACC_BW0XL_400HZ, LSM6DS3TRC_ACC_LOW_PASS_ODR_100);

    LSM6DS3TRC_Set_Register7(LSM6DS3TRC_CTRL7_G_HP_EN_ENABLE | LSM6DS3TRC_CTRL7_G_HPM_260MHZ);
    LSM6DS3TRC_Set_Register6(LSM6DS3TRC_CTRL6_C_FTYPE_1);
    LSM6DS3TRC_Set_Register4(LSM6DS3TRC_CTRL4_LPF1_SELG_ENABLE);

    if (LSM6DS3TRC_GetChipID() == false)
        return false;
    return true;
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 濾波器
    +關(guān)注

    關(guān)注

    159

    文章

    7657

    瀏覽量

    177180
  • mems
    +關(guān)注

    關(guān)注

    129

    文章

    3882

    瀏覽量

    190085
  • 陀螺儀
    +關(guān)注

    關(guān)注

    44

    文章

    774

    瀏覽量

    98387
  • 數(shù)據(jù)采集
    +關(guān)注

    關(guān)注

    38

    文章

    5694

    瀏覽量

    113316
  • 運動檢測
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    12598
收藏 人收藏

    評論

    相關(guān)推薦

    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測數(shù)據(jù)采集(1)----獲取ID

    本文將介紹如何驅(qū)動和利用LSM6DS3TR-C傳感,實現(xiàn)精確的運動感應(yīng)功能。LSM6DS3TR-C
    的頭像 發(fā)表于 11-13 15:45 ?1912次閱讀
    <b class='flag-5'>驅(qū)動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數(shù)據(jù)采集</b>(1)----獲取ID

    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測數(shù)據(jù)采集(6)----FIFO數(shù)據(jù)讀取與配置

    緩沖區(qū),用于批量處理和存儲傳感數(shù)據(jù)。 FIFO(First In First Out)緩沖區(qū)在數(shù)據(jù)采集和處理過程中起著至關(guān)重要的作用。本文將介紹如何在LSM6DS3TR-C傳感
    的頭像 發(fā)表于 07-18 10:58 ?976次閱讀
    <b class='flag-5'>驅(qū)動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數(shù)據(jù)采集</b>(<b class='flag-5'>6</b>)----FIFO<b class='flag-5'>數(shù)據(jù)</b>讀取與<b class='flag-5'>配置</b>

    lsm6ds3tr-c傳感集合模式無法使用的原因?

    _FUNC_CFG_ACCESS, 0x80, 2);//第一外部I2C從接口的地址,寫0x58,讀0x59bsp_spi_write(LSM6DS3TR_SLV0_ADD, 0x58, 2
    發(fā)表于 03-07 06:26

    LSM6DS3TR-C使用時工作電流比datasheet上大很多是什么原因?

    使用場景是LSM6DS3TR-C通過SPI一拖四連接單片機(jī),一共有四路這樣的一拖四。 測試時發(fā)現(xiàn)電流很大,感覺有點不對,編寫程序使LSM6DS3TR-C間隔5s一個一個使能,會發(fā)現(xiàn)穩(wěn)壓源的輸出電流從
    發(fā)表于 03-07 08:08

    請問LSM6DS3TRLSM6DS3TR-C兩個型號能否完全兼容?

    LSM6DS3TR停產(chǎn)買不到了,準(zhǔn)備切換LSM6DS3TR-C型號使用。 請問兩者有什么差別?能否直接替換?有成功替換案例嗎?
    發(fā)表于 03-14 06:40

    LSM6DS3TR-C數(shù)據(jù)讀取異常是安利的問題?怎么處理?

    我在使用lsm6ds3tr-c 6軸傳感時發(fā)現(xiàn),讀取的溫度以及角速度值異常,配置為官方lsm6ds3tr_c_read_data_polling.
    發(fā)表于 03-19 08:15

    LSM6DS3TR-C長時間讀取后角速度輸出為0是什么原因造成的?

    LSM6DS3TR-C 長時間讀取后角速度輸出為0
    發(fā)表于 03-20 06:28

    LSM6DS3TR-C角速度輸出為0是什么原因?qū)е碌模?/a>

    LSM6DS3TR-C在長時間休眠后(6小時以上),角速度輸出為0,短時間休眠輸出正常,這是什么問題?
    發(fā)表于 03-21 06:27

    LSM6DS3TR-C的FIFO讀取數(shù)據(jù)出錯是什么原因造成的?怎么解決?

    使用LSM6DS3TR-C的FIFO,先獲取了FIFO的WaterM標(biāo)志,該標(biāo)志置位之后再去獲取當(dāng)前存在FIFO緩存的數(shù)據(jù)長度,再去讀取FIFO中對應(yīng)長度的數(shù)據(jù),會出現(xiàn)讀取數(shù)據(jù)出錯的現(xiàn)
    發(fā)表于 03-27 06:05

    請問LSM6DS3TR-C有沒有windows下的測試工具?

    LSM6DS3TR-C有沒有windows下的測試工具
    發(fā)表于 05-20 06:22

    LSM6DS3TR-C的低功耗模式和高性能模式有什么區(qū)別

    如果我只在 12.5Hz 下操作加速度計,LSM6DS3TR-C 的低功耗模式和高性能模式有什么區(qū)別?
    發(fā)表于 12-09 06:47

    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測數(shù)據(jù)采集(3)----獲取傳感數(shù)據(jù)

    一旦傳感被正確初始化,可以通過SPI或I2C接口向傳感發(fā)送讀取命令,并接收傳感返回的數(shù)據(jù)。這個讀取過程包括獲取
    的頭像 發(fā)表于 11-14 09:59 ?696次閱讀
    <b class='flag-5'>驅(qū)動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數(shù)據(jù)采集</b>(<b class='flag-5'>3</b>)----獲取傳感<b class='flag-5'>器</b><b class='flag-5'>數(shù)據(jù)</b>

    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測數(shù)據(jù)采集(4)----上報匿名上位機(jī)實現(xiàn)可視化

    LSM6DS3TR-C是單芯片“3軸陀螺儀 + 3軸加速度計”的慣性 測量單元(IMU), 五種種可選滿量程的陀螺儀(125/250/500/1000/2000 dps)和加速度計(2
    的頭像 發(fā)表于 11-14 10:05 ?743次閱讀
    <b class='flag-5'>驅(qū)動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數(shù)據(jù)采集</b>(4)----上報匿名上位機(jī)<b class='flag-5'>實現(xiàn)</b>可視化

    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測數(shù)據(jù)采集(5)----姿態(tài)解算

    lsm6ds3trc包含三軸陀螺儀與三軸加速度計。 姿態(tài)有多種數(shù)學(xué)表示方式,常見的是四元數(shù),歐拉角,矩陣和軸角。他們各自有其自身的優(yōu)點,在不同的領(lǐng)域使用不同的表示方式。在四軸飛行中使用到了四元數(shù)
    的頭像 發(fā)表于 11-14 10:11 ?699次閱讀
    <b class='flag-5'>驅(qū)動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數(shù)據(jù)采集</b>(5)----姿態(tài)解算

    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測數(shù)據(jù)采集(9)----獲取磁力計數(shù)據(jù)

    本文將介紹如何使用 LIS2MDL 傳感來讀取數(shù)據(jù)。主要步驟包括初始化傳感接口、驗證設(shè)備ID、配置傳感
    的頭像 發(fā)表于 08-02 15:47 ?527次閱讀
    <b class='flag-5'>驅(qū)動</b><b class='flag-5'>LSM6DS3TR-C</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高效</b><b class='flag-5'>運動檢測</b>與<b class='flag-5'>數(shù)據(jù)采集</b>(9)----獲取磁力計<b class='flag-5'>數(shù)據(jù)</b>