How to get full range on BMI323

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 !  

 

inclino_bosch_help.zip
1.66KB
Best reply by BSTRobin

Hi dev_gnrb,

The sign bit uses 1 bit, and the output data contains positive and negative.

View original
3 replies
Resolved