2020-11-17 01:08 PM
The accelerometer is horizontal, in the Z axis 1g and I have about 500 mg in the X axis. I have 3 pieces of accelerometers and in similar positions I have different readings from the X axis.
Temperature reads correctly.
I found a certain inaccuracy:
in the documentation:
in the evaluation board:
could this be the cause of the error? I also have an evaluation board and it works ok.
Solved! Go to Solution.
2020-11-25 06:16 AM
I have swapped the chip from evaluation board to my board and works good.
The chips were damaged.
Mark on chip:
IW
QR CODE
027
Mark on evalboard chip:
IW
QR CODE
921
2020-11-18 01:31 AM
Hi @PSzym.3 ,
your finding (the fact that the datasheet and the adapter schematic are showing different configurations for those pins) is correct, but there is no difference/effect of this on the data-out of the IIS3DWB devices.
I have some questions to try a better understanding of the issue: how many samples do you have tested? And are all these samples doing the same thing? Did you test all the samples soldered on the adapter? And is this "just" an offset of 500mg or is a high noise (for example a data that is jumping from 0mg to 500mg in a steady state condition, i.e. with the z axis pointing upwards and, possibly, with no tilts along x and y axis)?
-Eleon
2020-11-18 06:04 AM
Read registers from 1 to 50:
[1] unsigned char 0x00 '\x00' (Hex) 0x002B55
[2] unsigned char 0x7F '\x7f' (Hex) 0x002B56
[3] unsigned char 0x00 '\x00' (Hex) 0x002B57
[4] unsigned char 0x00 '\x00' (Hex) 0x002B58
[5] unsigned char 0x00 '\x00' (Hex) 0x002B59
[6] unsigned char 0x00 '\x00' (Hex) 0x002B5A
[7] unsigned char 0x00 '\x00' (Hex) 0x002B5B
[8] unsigned char 0x00 '\x00' (Hex) 0x002B5C
[9] unsigned char 0x0A '\x0a' (Hex) 0x002B5D
[10] unsigned char 0x00 '\x00' (Hex) 0x002B5E
[11] unsigned char 0x00 '\x00' (Hex) 0x002B5F
[12] unsigned char 0x00 '\x00' (Hex) 0x002B60
[13] unsigned char 0x00 '\x00' (Hex) 0x002B61
[14] unsigned char 0x00 '\x00' (Hex) 0x002B62
[15] unsigned char 0x7B '{' (Hex) 0x002B63
[16] unsigned char 0xA0 '\xa0' (Hex) 0x002B64
[17] unsigned char 0x00 '\x00' (Hex) 0x002B65
[18] unsigned char 0x04 '\x04' (Hex) 0x002B66
[19] unsigned char 0x00 '\x00' (Hex) 0x002B67
[20] unsigned char 0x00 '\x00' (Hex) 0x002B68
[21] unsigned char 0x00 '\x00' (Hex) 0x002B69
[22] unsigned char 0x00 '\x00' (Hex) 0x002B6A
[23] unsigned char 0x00 '\x00' (Hex) 0x002B6B
[24] unsigned char 0xE0 '\xe0' (Hex) 0x002B6C
[25] unsigned char 0x00 '\x00' (Hex) 0x002B6D
[26] unsigned char 0x00 '\x00' (Hex) 0x002B6E
[27] unsigned char 0x00 '\x00' (Hex) 0x002B6F
[28] unsigned char 0x00 '\x00' (Hex) 0x002B70
[29] unsigned char 0x00 '\x00' (Hex) 0x002B71
[30] unsigned char 0x01 '\x01' (Hex) 0x002B72
[31] unsigned char 0x74 't' (Hex) 0x002B73
[32] unsigned char 0x5C '\' (Hex) 0x002B74
[33] unsigned char 0xFE '\xfe' (Hex) 0x002B75
[34] unsigned char 0x00 '\x00' (Hex) 0x002B76
[35] unsigned char 0x00 '\x00' (Hex) 0x002B77
[36] unsigned char 0x00 '\x00' (Hex) 0x002B78
[37] unsigned char 0x00 '\x00' (Hex) 0x002B79
[38] unsigned char 0x00 '\x00' (Hex) 0x002B7A
[39] unsigned char 0x00 '\x00' (Hex) 0x002B7B
[40] unsigned char 0x93 '\x93' (Hex) 0x002B7C
[41] unsigned char 0xE4 '\xe4' (Hex) 0x002B7D
[42] unsigned char 0x7A 'z' (Hex) 0x002B7E
[43] unsigned char 0x03 '\x03' (Hex) 0x002B7F
[44] unsigned char 0x66 'f' (Hex) 0x002B80
[45] unsigned char 0xA6 '\xa6' (Hex) 0x002B81
[46] unsigned char 0x00 '\x00' (Hex) 0x002B82
[47] unsigned char 0x00 '\x00' (Hex) 0x002B83
[48] unsigned char 0x00 '\x00' (Hex) 0x002B84
[49] unsigned char 0x00 '\x00' (Hex) 0x002B85
[50] unsigned char 0x00 '\x00' (Hex) 0x002B86
x int 0xE493 (Hex) 0x002BE8
y int 0x037A (Hex) 0x002BEA
z int 0xA666 (Hex) 0x002BEC
AxisX float -428.281006 0x002BD8
AxisY float 54.2900009 0x002BDC
AxisZ float -1399.21802 0x002BE0
AxisX = iis3dwb_from_fs2g_to_mg(x);
AxisY = iis3dwb_from_fs2g_to_mg(y);
AxisZ = iis3dwb_from_fs2g_to_mg(z);
float_t iis3dwb_from_fs2g_to_mg(int16_t lsb)
{
return ((float_t)lsb * 0.061f);
}
Is the calculation okay?
It is not noise, it is a fixed value. In the above case on the X axis it varies between 410-450mg.
if I turned on the high-pass filter, the measurements for all axes are within 30mg max.
Chip1
AxisX float -428.281006 0x002BD8
AxisY float 54.2900009 0x002BDC
AxisZ float -1399.21802 0x002BE0
Chip2
AxisX float 556.137024 0x002BD8
AxisY float -58.3160019 0x002BDC
AxisZ float -1002.71802 0x002BE0
chip3
AxisX float 934.39801 0x002BD8
AxisY float -182.817001 0x002BDC
AxisZ float -950.684998 0x002BE0
chip1
AxisX float -1379.82007 0x002BD8
AxisY float 26.0470009 0x002BDC
AxisZ float -1998.604 0x002BE0
chip2
AxisX float -419.252991 0x002BD8
AxisY float 77.4700012 0x002BDC
AxisZ float -1998.604 0x002BE0
chip3
AxisX float -34.038002 0x002BD8
AxisY float -191.600998 0x002BDC
AxisZ float -1959.13696 0x002BE0
chip1
AxisX float -258.640015 0x002BD8
AxisY float 1004.73102 0x002BDC
AxisZ float -1998.604 0x002BE0
chip2
AxisX float 635.68103 0x002BD8
AxisY float 928.725037 0x002BDC
AxisZ float -1998.604 0x002BE0
chip3
AxisX float 985.028015 0x002BD8
AxisY float 814.044983 0x002BDC
AxisZ float -1939.86096 0x002BE0
Maybe the chips were overheated during soldering.
The chips were buy from DigiKey.
Power supply 2,5V.
2020-11-25 06:16 AM
I have swapped the chip from evaluation board to my board and works good.
The chips were damaged.
Mark on chip:
IW
QR CODE
027
Mark on evalboard chip:
IW
QR CODE
921
2020-11-25 07:08 AM
Hi @PSzym.3 ,
thank you for coming back for this confirmation (and for the detailed explanation of the problem, in the comment before).
Data seemed a little weird indeed...
>> Maybe the chips were overheated during soldering.
This might be the case... you can check it comparing your soldering process with the datasheet p.49 info or with the technical note TN1198.
-Eleon