Skip to main content
ssena.1514
Associate III
Jul 28, 2021 8:15 AM UTC
Solved

Gyroscope sensitivity scale factor

Hi,

Let me know ,how to calculate the sensitivity scale factor of gyroscope sensor l3gd20 ?

From the example code I found that

#define L3G_Sensitivity_250dps  (float)114.285f    /*!< gyroscope sensitivity with 250 dps full scale [LSB/dps] */

#define L3G_Sensitivity_500dps  (float)57.1429f    /*!< gyroscope sensitivity with 500 dps full scale [LSB/dps] */

#define L3G_Sensitivity_2000dps  (float)14.285f     /*!< gyroscope sensitivity with 2000 dps full scale [LSB/dps] */

So how these sensitiivity values are obtained(i.e 114.285,57.1429 & 14.285) .

Kindly inform me.

Board - stm32f401 discovery.

Keil Ide.

Regards

Satyabrata Senapati

This topic has been closed for replies.
TBomb.1
TBomb.1Best answer
Visitor II
Jul 30, 2021 7:49 AM UTC

Hi, they are just the inverse of the datasheet sensitivities:

sensitivity 8.75 milli dps/ LSB --> 1/sensitivity = 114.285 LSB/dps

sensitivity 17.50 milli dps/ LSB --> 1/sensitivity = 57.1429 LSB/dps

sensitivity 70 milli dps/ LSB --> 1/sensitivity = 14.285 LSB/dps

so you'll probably have in your code something like ROT=(1/SENSITIVITY)* (out_h*256+out_l)

Tom

4 replies

TBomb.1
Visitor II
Jul 28, 2021 12:23 PM UTC

Hi, sensitivities should be reported in the device datasheet, in the Mechanical characteristics table.

https://www.st.com/resource/en/datasheet/l3gd20.pdf

You can also check on Github In ST standard C MEMS drivers for l3gd20 --> l3gd20h_reg.c

The conversion formulas from LSB to dps are here reported:

float_t l3gd20h_from_fs245_to_mdps(int16_t lsb)
{
 return ((float_t)lsb * 8.75f);
}
 
float_t l3gd20h_from_fs500_to_mdps(int16_t lsb)
{
 return ((float_t)lsb * 17.50f);
}
 
float_t l3gd20h_from_fs2000_to_mdps(int16_t lsb)
{
 return ((float_t)lsb * 70.0f);
}

Tom

ssena.1514
Associate III
Jul 29, 2021 9:21 AM UTC

Thanks .

As per your information I got ​the sensitivity from datasheet as 250dps = 8.75,500dps = 17.50 and 2000dps = 70 and unit is mdps/digit.

​

B​ut you can see these values are different than those define values which are mentioned in the example code.

​

So could you clarify please?

​

​

TBomb.1
TBomb.1Best answer
Visitor II
Jul 30, 2021 7:49 AM UTC

Hi, they are just the inverse of the datasheet sensitivities:

sensitivity 8.75 milli dps/ LSB --> 1/sensitivity = 114.285 LSB/dps

sensitivity 17.50 milli dps/ LSB --> 1/sensitivity = 57.1429 LSB/dps

sensitivity 70 milli dps/ LSB --> 1/sensitivity = 14.285 LSB/dps

so you'll probably have in your code something like ROT=(1/SENSITIVITY)* (out_h*256+out_l)

Tom

ssena.1514
Associate III
Aug 2, 2021 7:20 AM UTC

Ohh ok thanks for the information.