03-02-2023 12:30 PM
Hi,
I'm using a BMI323 Shuttle Board 3.0 Flyer connected in I²C on an Arduino Uno R3 thanks to a level shifter.
My problem is when I read X, Y or Z axis, the return value sould be between -32768 and 32768 (2^16). But my usable range is -16384-> 16384, the other part (-32768 to -1616384 and 16385 to 32768) is never returned, why ?
It seems it's working on 15 bits instead of 16 bits, do you know why is it working like that ?
I'll link my Arduino code.
My accelerometer is setup as follow:
* ODR: 0x000C -> 1600Hz
* range: 0x0000 -> 2G
* filtering: 0x0000 -> ODR/2
* average: 0x0600 -> 64 sample
* mode: 0x7000 -> High
So I send 0x760C to the ACC_CONF register.
Thanks !
Solved! Go to Solution.
03-09-2023 04:52 AM
Hi dev_gnrb,
If you set BMI323 acc range to 2G, raw data output range should be -16384~+16384.
03-09-2023 08:43 AM
But 16384*2 = 32768 so it's not 16 bits right ? 🤔
03-09-2023 09:12 AM
Hi dev_gnrb,
The sign bit uses 1 bit, and the output data contains positive and negative.