cancel
Showing results for 
Search instead for 
Did you mean: 

Skew between samples of acceleration components in sensor IIS3DHHC

Guille
Associate II

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

15 REPLIES 15
Eleon BORLINI
ST Employee

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

Guille
Associate II

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

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

Eleon BORLINI
ST Employee

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

Eleon BORLINI
ST Employee

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

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

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

Guille
Associate II

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

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