2021-07-22 06:08 AM
I have some basic questiones about the gyroscopes ic I3G4250D
Thanks very much For Answers
2021-07-22 06:33 AM
>> how to calculate the SO(sensitivity) and DVoff with current temperature T
Ideally, the DVoff should be 0 dps at T ambient, so
The values you find in the datasheet define only the range across which the Sensitivity and offset can vary versus temperature, also in a nonlinear way.
However in general, you have an approximately linear variation versus temperature, and typically the parameter are increasing with the temperature. You can use the below formula:
Sensitivity_T = Sensitivity_Tamb + Sensitivity_Tamb * SoDr * T_meas
DVoff_T = DVoff + DVoff * OffDr * T_Meas
>> how to calculate the rotate speed with current temperature T
same as above.
>> how to calculate the temperature value by register OUT_TEMP raw data
from datasheet should be --> Temp_°C = (Temp LSB * -1 LSB/°C) + 25°C
Tom
2021-07-22 07:30 PM
Thank you very much! however, if so , Sensitivity_80 = Sensivity_25 + Sensivity_25 * 2% * (80-25) = 8.75 + 8.75*2%*55 = 8.75 + 9.625 = 18.375?
2021-07-26 01:07 AM
No, it is only valid for small temperature, the sensitivity in all range will stay in +-2%, meaning [8.75*0.98 LSB/mg , 8.75*1.02 LSB/mg] = [8.575 , 8.925] LSB/mg.
and the slope of the variation is typically positive correlated with the temperature.
Tom
2021-07-27 11:11 PM
but when the minimum 7.4 or maximun 10.1
2021-07-30 01:21 AM
well it could be, unfortunately on the datasheet there are only typ values, not min or max
2022-05-25 01:56 AM
I have run into an issue with the convertion from lsb to celsius using the STMems standard driver.
The OUT_TEMP register of the I3G4250D is read by this instruction
int32_t i3g4250d_temperature_raw_get(stmdev_ctx_t *ctx, uint8_t *buff)
{
int32_t ret;
ret = i3g4250d_read_reg(ctx, I3G4250D_OUT_TEMP, buff, 1);
return ret;
}
and converted to celsius by using this function
float_t i3g4250d_from_lsb_to_celsius(int16_t lsb)
{
return ((float_t)lsb + 25.0f);
}
the sensor with an environmental temperature of around 22 degree celsius shows a 20 decimal as lsb and the function converts it to 45 degree celsius. Where's my issue with this? I am a bit confused since the datasheet shows a inverted lsb curve for a positive temperature change. From my perpective this function won't ever show the correct values.