AnsweredAssumed Answered

Data mismatching while Hard and soft reset

Question asked by Arpan Patel on Jan 18, 2018
Latest reply on Jan 24, 2018 by Arpan Patel

Hello Miroslav, I have done following configuration for IIS2DH acceleromenter.

/////////////////////////// Sample Code ////////////////////////////////////////////////////

response=LIS3DH_GetWHO_AM_I(&who_am_i);
if(who_am_i==IC_READ_SUCCESS){
print("Who AM I %x\r\n",who_am_i);

unsigned char response,status;
AxesRaw_t data;
response = LIS3DH_SetODR(LIS3DH_ODR_10Hz);
if(response==1){
print("SET_ODR_OK\r\n");
}
response = LIS3DH_SetMode(LIS3DH_LOW_POWER);
if(response==1){
print("SET_MODE_OK\r\n");
}
response = LIS3DH_SetFullScale(LIS3DH_FULLSCALE_2);
if(response==1){
print("SET_FULLSCALE_OK\r\n");
}
response = LIS3DH_SetAxis(LIS3DH_X_ENABLE | LIS3DH_Y_ENABLE | LIS3DH_Z_ENABLE);
if(response==1){
print("SET_AXIS_OK\r\n");
}
response = LIS3DH_SetFilterDataSel(MEMS_ENABLE);
if(response==1){
print("Filter Data Selection enable\r\n");
}

while(1)
{
response = LIS3DH_GetAccAxesRaw(&data);
if(response==1){
data.AXIS_X = data.AXIS_X >> 8;
data.AXIS_Y = data.AXIS_Y >> 8;
data.AXIS_Z = data.AXIS_Z >> 8;
print("x %d y %d z %d\r\n",data.AXIS_X,data.AXIS_Y,data.AXIS_Z);
}
}

}
else{
print("Device Read Failed\r\n");
}

/////////////////////////////////////*****///////////////////////////////////////////////////

When I reboot thr board by soft reset it has given following X,Y and Z raw data:

 

x -1 y -1 z 0

x 0 y -2 z 1

x -1 y 0 z -2

x 0 y -1 z 1

x -1 y 0 z 0

x 1 y -1 z 0

x 0 y 0 z 0

x 0 y -1 z 0

x -1 y -1 z -1

x -1 y -1 z 0

x 0 y 0 z -1

x 0 y -1 z -1

x 1 y 0 z 0

x 0 y 0 z -2

x 0 y 1 z -2

x 0 y 0 z 0

x -1 y -1 z -2

x -1 y -1 z -1

x 0 y -1 z 0

And following raw data when Hard reboot the board:

x -2 y 62 z -12

x -1 y 55 z -11

x -1 y 47 z -9

x -1 y 42 z -10

x -1 y 37 z -7

x -2 y 31 z -6

x -1 y 27 z -7

x -1 y 24 z -7

x 0 y 20 z -5

x -1 y 18 z -4

x -1 y 15 z -4

x -1 y 12 z -1

x -1 y 10 z -2

x 0 y 10 z -3

x -2 y 8 z -2

x -1 y 7 z -2

x -1 y 6 z -1

x -2 y 5 z -2

x -1 y 4 z -1

x 0 y 4 z -1

x 0 y 3 z -1

x 0 y 2 z -2

x -1 y 3 z -3

x 0 y 1 z -1

x -1 y 2 z -1

x 0 y 1 z -2

x -1 y 1 z -2

x 0 y 1 z 0

x 0 y 1 z -1

x -2 y 0 z 0

x 0 y 0 z 0

So, in that hard reboot readings you have seen that first 15-20 readings are some unusaul and after that it has stable readings nearly to zero. Why this is happened? Can you please give some solution on that.

Outcomes