Skip to main content
Visitor II
May 23, 2020
Question

Skew between samples of acceleration components in sensor IIS3DHHC

  • May 23, 2020
  • 8 replies
  • 3084 views

Hi guys,

I would like know is there is any skew between the acceleration samples of each axe, i.e. ax, ay, az. In other words, if the acceleration components (ax, ay, az) are sampled at the same instant or in sequence. In this last case, I would like to know which is the skew time between consecutive samples of acceleration. By the way, I did not found any indication of this issue nor in the data sheet nor in the application notes & resources.

Thank you to every one that will read this and possible will give me an answer!

Guillermo

    This topic has been closed for replies.

    8 replies

    ST Employee
    May 25, 2020

    Hi @Guille​ , the mechanical sensor is connected to the ASIC (electrical processing of the MEMS signal) with two wires each axis, and the three axes value are sampled together by the sensor internal ADC. They are serialized only after the digitization stage, so the 3-axis data refer to the same time-frame and the ODR frequency is the quantum in time of the entire sensor. Here below the sensor scheme. Regards

    0693W000001pPKCQA2.png

    GuilleAuthor
    Visitor II
    May 25, 2020

    Hello Eleon, thank you for your answer.

    So I have to understand that there are actually 3 DACs on the ASIC, one for each axis?

    Rgds,

    G

    GuilleAuthor
    Visitor II
    May 25, 2020

    Hello Eleon, thank you for your answer.

    So I have to understand that there are actually 3 DACs on the ASIC, one for each axis?

    Rgds,

    G

    ST Employee
    May 26, 2020

    Hi G, it is basically a 3-channel ADC (SAR). Regards

    ST Employee
    May 26, 2020

    Well... I checked in more depth... the ADC channel are muxed, in a way like one below depicted... but the running speed of the SAR ADC is much higher than the ODR (in the order of magnitude that the SPI clock frequency), and this is especially valid for the IIS3DHHC device which is designed for precision inclinometer applications (so it is focused on quasi-static acceleration detection). Regards

    0693W000001pT14QAE.png

    GuilleAuthor
    Visitor II
    May 26, 2020

    Ok, thanks again Eleon. But so how can I estimete the skew between 2 consecutive channels? How many SPI clock cycles I have to consider?

    Rgds,

    G

    ST Employee
    May 29, 2020

    The internal clock is 1MHz, so for each channel we have 333kHz available (and being the axis data composed by 16 samples, we get 20.8kHz). The ODR is 1.1kHz, meaning that the maximum detectable theoretical frequency is max_ODR/2 = 550Hz. For this reason, there are 20.8kHz/550Hz = 40 samples contributing to one dataout sample at max ODR. You will have roughly a phase error of 360/40 degrees = 9 deg on the maximum detectable frequency (which is however lower than max_ODR/2, since the IIR BW is 440Hz). Regards

    GuilleAuthor
    Visitor II
    May 29, 2020

    Hello Eleon,

    thanks, your answer contains a lot of information. So let me check if I am right:

    • when you say "the axis data composed by 16 samples" I suppose you actually mean 16 bit, correct?
    • if sampling rate is 20,8 kHz, it means a period of T=48us. If the three axes are sampled sequentially at regular time intervals, it means that two consecutive samples are spaced in time 48/3=16us (there is a skew of 16us), is it right?
    • taking this into account, and considering a maximum frequency of 550Hz it means an "error" in phase of near 3° (roughly your "40" times 3, i.e. 360/120)

    Can you confirm all of this?

    I am asking all this information because for our application is important to estimate the skew in sampling times of each axis.

    Rgds and thank you for your support.

    Guillermo

    ST Employee
    May 29, 2020

    Hi Guillermo, yes I was referring to the "samples" as bits, having in mind the "sample&hold" operation for some reason... your calculation is almost right, I missed a 3 divisor (3 axis are outputted together every 1/550Hz time). But which is your application to need this particular request? Regards

    GuilleAuthor
    Visitor II
    May 29, 2020

    Hi,

    my application is for vibration analysis, so my measurements will be more dynamic than static.

    This is why for me is very important to know if the samples of the 3 axes are taken at the SAME time instant or not. And if is not, which the time between 2 consecutive samples is.

    You told me before that samples are MUXed, so they are not taken at the same time, right?

    So, if sampling rate for EACH axis is 20,8 kHz (as you stated above), it is logical to say that in a period of 20,8 kHz, i.e. 48us, EACH axis is sampled once. So I supposed that the SAMPLING TIME (instant) between two consecutive samples of DIFFERENT axes is just 48us/3=16us. This should be the skew (for example, if acc_x is taken at time 0, the following sample would be acc_y at time 16us, and then acc_z at time 32 us, and so on.

    I have to clearly understand if this is correct or not, please let me know if you do not understand my arguments.

    Have a nice week end.

    Guillermo

    ST Employee
    May 29, 2020

    I understand your argument, and it is ok, but, I think there is no need to take into account this kind of temporal misalignment on physical vibrations, since there could be an additional latency along the DSP chain internal to the ASIC, or introduced by any filtering stages. Have a nice weekend you too! Regards

    GuilleAuthor
    Visitor II
    May 29, 2020

    Eleon that is nice but still does not answers my question,. To put it simple, is the skew 16us or not?

    Thanks,

    G

    ST Employee
    June 1, 2020

    Basically yes, but please note that there is additional internal conversion due to digital filtering/decimator (average on N samples with respect to the chosen ODR and to the ratio between the internal sample frequency and the ODR itself). For example, as a theoretical consideration, taking into account that 4800/3 =1600 it means that, to obtain ODR=1600Hz starting from ADC samplig frequency of 4800Hz, the decimator executes an average of 3 samples of the same axis and then output the result or to obtain ODR=400Hz digital filter executes an average of 12 samples of the same axis before showing the result. Regards

    GuilleAuthor
    Visitor II
    June 1, 2020

    Ok thanks. That means that the lower the ODR the better will be the SNR (as more samples are averaged). But if the samples are made by the ADC in sequence ax, ay, az, ax, ay, az and so on, the averaging should not have an impact on the skew, that will continue to be 16 us between samples of 2 consecutive axes, do you agree?

    ST Employee
    June 1, 2020

    yes Guillermo, I agree that the skew at the beginning of the A to D conversion chain is of that order of magnitude... Regards