I would like to know what is the correct or best way to use the temperature reading, which I can obtain by reading Register TEMPERATURE (0x22), to improve the accuracy of the bma456 accelerometer readings ? Apart from this example what other temperature-related techniques are available, having read Register TEMPERATURE, that allow compensation or improvement in accuracy with regards to accelerometer readings ? Reply: This temperature value is internal temperature of the sensor. The accelerometer value has been compensated inside the chip. Usually, it does not need to be compensated outside the chip.
The datasheet states that Zero-g Offset is +/-20mg at nominal VDD, 25oC and at gFS4g (the +/-4g range setting I assume ?). What is nominal VDD and how is this +/-20mg figure affected at other values of VDD and at other range settings ? Zero-g Offset Temperature Drift is then given as +/-0.2mg/K, for the x and y axes, so I think I can use this parameter to calculate predicted offset as the temperature changes. But, when the figure is given as +/-, in this case +/-0.2mg/K, how do I know whether to add or subtract this value as the temperature changes ? Reply: nominal VDD mean sensor works under the normal power supply range specified in the data sheet. +/-0.2mg/K had explained that it may be a little more or less different.
Out of interest why does your software routine bma4_get_temperature() employ a scaling factor of 1000 ? What is lost by not simply using the raw value returned by Register TEMPERATURE ? Reply: from BMA456 data sheet: The temperature value in two's complement representatin in units of 1 Kelvin:0x00 corresonds to 23 degree Celsius.
In addition, you could get knowledge from web site the international unit of temperature is Kelvin, represented by the symbol "K". The Kelvin temperature scale is established by an ideal gas, and its zero point is called absolute zero. According to the kinetic theory, when the temperature is at absolute zero, the kinetic energy of gas molecules is zero. For convenience. The scale unit of the Kelvin thermometer is consistent with that of the centigrade thermometer, that is, one degree on the Kelvin thermometer is equal to one degree on the centigrade thermometer, the freezing point of water is 0 ℃ and the Kelvin thermometer is 273.15 K.
So you could see the implementation of function bma4_get_temperature() like this:
/*! for handling float temperature values */ #define BMA4_SCALE_TEMP INT32_C(1000)
/**\name TEMPERATURE CONSTANT */ #define BMA4_OFFSET_TEMP UINT8_C(23)
/* BMA4_KELVIN_SCALED = 273.15 * 1000 */ #define BMA4_KELVIN_SCALED INT32_C(273150)
/* Read temperature value from the register */ rslt = bma4_read_regs(BMA4_TEMPERATURE_ADDR, data, BMA4_TEMP_DATA_SIZE, dev); /* '0' value read from the register corresponds to 23 degree C */ (*temp) = temp_raw_scaled + (BMA4_OFFSET_TEMP * BMA4_SCALE_TEMP); /* Temperature in degree Kelvin */ (*temp) = (*temp) + BMA4_KELVIN_SCALED;
... View more
Thanks, But We have only INT1 pin connected to MCU, INT2 is not connected to mcu. Any other method to detect free fall? I want, when device fall on surface that time sensor only generate Free fall interrupt, do not generate tilt interupt that time. Is it possible on INT1 pin? Any method to diffrentiate free fall and tilt on INT1 pin?
... View more
BHI260AP firmware haven't officially released, if you load firmware like "Bosch_SHUTTLE_BHI260_xxx" in DD2.0, you the firmware willn't work. We gladly publish all publicly available info, but sadly are unable to share the requested info within the community. Thanks for your understanding. If you have any further requests, please visit https://www.bosch-sensortec.com/about-us/contact/contact-form, use the contact form to submit your request and please make sure you refer to the question posed in the community.
... View more
BHI260AP PDR software was not official released. We gladly publish all publicly available info, but sadly are unable to share the requested info within the community. Thanks for your understanding. If you design a project with BHI260AP and have any further requests, please visit https://www.bosch-sensortec.com/about-us/contact/contact-form, use the contact form to submit your request and please make sure you refer to the question posed in the community.
... View more