03-30-2021 11:57 AM
Hello Bosch-Sensortec-forum members,
We used the BMA280 for several years because its extremely good parameters:
1.) - 2 kHz ODR
2.) - max. 1.8ms startup from deep sleep to first valid measurement data
3.) - integrated offset compensation
4.) - threshold interrupts
Sadly the BMA280 is not recommended now for new designs and there is also a huge shortage on the market.
However, the only replacement for us is the BMA490L as it has 10 years longevity.
Comparing these important parameters, I have two questions for the BMA490L::
1.)- 1.6 kHz ODR
-> In the datasheet 5.2.29 Register (0x40) ACC_CONF table is also listed:
0x0d ... odr_3k2 ... reserved
0x0e ... odr_6k4 ... reserved
Is it possible to unlock these higher data output rates in any way?
I really liked the 2kHz 🙂
2.) - XX ms startup from deep sleep to measurement data
-> I can't find any similiar wake up time like in the BMA280 datasheet.
In the BMA490L datasheet I can only find "Power-up Time 1ms"
How long does the BMA490L take from power up or wake up to first valid measurement?
Is it dependent from the data rate, power mode or other settings? My application needs a reaction time as fast as possible.
3.) - integrated offset compensation
Offset compensation seems to work like in the BMA280.
4.) - threshold interrupts
Thresholds and interrupts seem to work a bit differently now with no high/low-g thresholds but a summarizing "any-motion-interrupt and threshold", but I think I will figure this one out.
Solved! Go to Solution.
03-31-2021 10:25 AM
Hello ELJAY,
1. 1.6kHz is the maximum ODR value;
2. For your question, you could refer chapter "4.3 Device Initiaalization", "Power modes" in BMA490L data sheet;
3. BMA490L also had offset compensation;
4. I think you mean "Any motion/No motion" in BMA490L, It has configurable parameters to meet your application.
04-20-2021 06:19 AM - edited 04-20-2021 06:19 AM
Dear Bosch-Sensortec members,
I received my first BMA490L samples and tested them.
The measurement itself and all "8bit-Adress" register work really good and as described in the datasheet.
However, I have several problems/questions:
1.) I want to change some settings in the register 0x5E "FEATURES_IN":
According to the datasheet, the BMA490L sets its Register 0x2A "INTERNAL_STATUS" to the value 0x01 when the ASIC-init was successful.
I found out that the only way to get a successful init is to send the 1300 Byte array "uint8_t bma490l_config_file[]" from your example code API.
I identified the following byte order in this huge array to be the default setting of Register 0x5E "FEATURES_IN":
Unfortunately any change in the default array leads to an unsuccessfull asic-init for me.
I also found that there is read and written from some "asic base adress" registers, which are also not mentioned in the datasheet and I don't really understand how to use them or why they are not described.
Question 1: Can you explain me, what exact steps are necessary to change the register 0x5E sucessfully?
Question 2: Is there a checksum in the config-file array which needs also to be changed?
Question 3: What are the other bytes in the config file for?
2.) Why is the offset-register only from -0.5g to + 0.5g?
On planet earth we usually have up to +-1g ... Therefore I'm sorry to say that the offset register in it's current state is pretty useless.
Is it possible to halve the resolution to say 8mg to achieve a useful range from -1.0g to +1.0g?
Kind regards,
EL Jay
04-22-2021 10:01 AM
05-04-2021 07:03 AM - edited 05-04-2021 07:05 AM
Dear Bosch-Sensortec forum members,
With "try-and-error-method" I finally found out how to initialize the sensor BMA490L and write into the Register 0x5E "FEATURES_IN".
May my solution help some poor souls, trying to get this thing working without importing the whole example code from Bosch..
1.) start a Soft-Reset
register: 0x7E
write value: 0xB6
2.) read Chip-ID (Reg 0x00) until it answers "0x1A
register: 0x00
read value: 0x1A
3.) set it into "active" mode (deactivate low power)
register: 0x7C
write value: 0x00
4.) prepare sensor for ASIC-Initialization
register: 0x59
write value: 0x00
5.) burst write the whole ~1300 Byte "config-array" from the Bosch example code API (yes, one ~1300 byte long SPI write message...)
register: 0x5E
value: whole ~1300 Byte "config-array" from the Bosch example code
6.) start the ASIC-Initialization and wait ~200ms
register: 0x59
write value: 0x01
7.) optionally, read Register INTERNAL_STATUS
register: 0x2A
read value: 0x01 ( ASIC-Init success) 0x02 (ASIC-Init error)
8.) now its time to burst write your own features_in settings to adress 0x5E (in little endian)
register: 0x5E
here are for example my settings (anymotion enabled in all axes, 250mg threshold)
uint8_t BMA490L_features_in_config_anymotion_250mg_lsb_first[] =
{
0x00, 0x02, 0x00, 0xE0, 0xAA, 0x00, 0x05, 0x00, 0x40, 0x48, 0x88, 0x00
//5E:00 5E:02 5E:04 5E:06 5E:08 5E:0A
};
for the threshold: 1 LSB equals to 0.48mg -> 250mg = ~ 512*0,48 -> 0x200 (in 5E:00)
9.)now do your other settings: configure interrupt-pin-mappings, setting output data rate, measurement range, activate the acceleration sensor unit and so on...
10.) you can check if your " FEATURES_IN"settings work correctly, by reading out register "INT_STATUS_0"
register: 0x1C
read value: depends on your settings, for example if only anymotion-interrupt happened, value will be 0x20
kind regards
EL JAY