We are using the BMX055 in a new product and I am seeing an offset on the gyro Z axis that I can't get nulled out. I am only looking for rotation on the Z axis, so I don't know if the problem is the same on the other axes. The SPI communications is working correctly as I can set registers and read back the setting. I have set the following parameters on the device: - FIFO is in BYPASS mode reading X,Y,Z. I don't read the interrupt bytes. - RANGE is +-1000 deg/sec (001) - BANDWIDTH is 47Hz (0011) - SPI reads are in burst mode when reading the rate. I am polling the device every 10ms. I presume by the BANDWIDTH setting, the device outputs about every 21ms. Since my polling rate is faster than the update rate, I read presumably correct frames followed by one or more 0x8000 frames, which I assume are "no data" values. I discard these. For my test, I set an initial counter to zero, and then accumulate the Z axis data for a few seconds. The accumulated data creeps up over time. I would expect a compensated value to average out to zero over time. I tried to enable slow compensation by setting register 0x31 to 0x07 (min threashold and duration) to 0xEF (max), but this has no effect. In all cases, when I read the offset registers 0x36 to 0x39, their values are always zero. I have verified that the raw Z axis values are mostly positive, with a few negative values. Am I doing this correctly or am I missing a step or two?
... View more