cancel
Showing results for 
Search instead for 
Did you mean: 

IIS3DWB: Issues with RMS Accuracy Using IIS3DWB on Z-Axis at Higher Frequencies

Rishabh_Rathod
Associate

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

  1. Is it possible that I am reading data faster than it updates hence missing values?
  2. Can I read 26,667 single-axis (Z-axis) values per second without missing any using the FIFO buffer?
  3. 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!



1 REPLY 1
Andrea VITALI
ST Employee

Can you share more details?

What is the RMS that you expect and what is the RMS that you are getting?

If I understand correctly, you are polling the sensor, therefore downsampling? Example polling at 800Hz?

Is the device in steady conditions? (if not please try to measure the RMS in steady conditions)