IIS3DWB: Issues with RMS Accuracy Using IIS3DWB on Z-Axis at Higher Frequencies
Hi, I’m working with the IIS3DWB accelerometer to acquire single-axis data (Z-axis) using the following setup:
- Full Scale: ±16g
- SPI Mode 3 at 10 MHz
- Target ODR: 26,667 Hz
I have attempted different methods to read the Z-axis data. First, I tried reading the Z-axis high (0x2D) and low (0x2C) registers using a timer with auto-increment. I also tried using 1AX_TO_3REGOUT mode and reading all 6 registers (0x28 to 0x2D) using a timer with auto-increment.
I then configured the sensor with the following register settings:
write_register(IIS3DWB_CTRL1_XL, 0x00); // Power Down
write_register(IIS3DWB_CTRL6_C, 0x03); // Single Axis Mode (Z-Axis)
write_register(IIS3DWB_CTRL1_XL, 0xA4); // Power On, Full Scale 16g, 26.667 kHz ODR write_register(IIS3DWB_CTRL3_C, 0x44); // BDU and Auto Increment Enabled write_register(IIS3DWB_CTRL8_XL, 0xF4); // High-pass and Low-pass Filters
write_register(IIS3DWB_CTRL4_C, 0x01); // 6 Consecutive Single Axis Values
write_register(IIS3DWB_CTRL5_C, 0x20); // Wraparound Rounding
After setting up the above configuration, I attempted burst reading of the registers to acquire data.
The Problem
I noticed that the RMS values are accurate at lower frequencies but start to become inaccurate at higher frequencies above 800 Hz. Additionally, even when the input amplitude remains constant, the output RMS values differ across different frequencies.
Questions and Concerns
- Is it possible that I am reading data faster than it updates hence missing values?
- Can I read 26,667 single-axis (Z-axis) values per second without missing any using the FIFO buffer?
- If yes, how can I configure the FIFO buffer for single-axis (Z-axis) data acquisition with consecutive 26,667 values?
Any Suggestions?
I suspect that using FIFO might help in achieving more accurate RMS calculations at higher frequencies, but I am unsure how to configure it correctly in single-axis mode.
Has anyone faced similar issues or successfully implemented high-frequency RMS calculations using IIS3DWB? Any insights on optimal FIFO settings or alternative approaches would be greatly appreciated!
Thanks in advance!
