AnsweredAssumed Answered

Different batches of ADXL355 hold different noise level

Question asked by stoneedit on Jan 8, 2018
Latest reply on Jan 10, 2018 by NevadaMark

The same layout, the same power, and the same program. Only the ADXL355s are from different batches. One batch (1714/797743), its noise of all x/y/z axials is only splits of mg. It's reseanable. However, when I bought a large mount of another batch (1709/761413), their noise of x/y axials are good (splits of mg), and their noise of z axial turns bad (several mg or even move than ten mg). That is unreasonable. My program is attached below, and could you please help me to solve the problem. Thanks a lot!

 

//

void Init_ADXL345()
{

      Single_Write_ADXL345(0x28,0x37); //ODR/filter settings
      Single_Write_ADXL345(0x2D,0x00); //start sensing

}

 

//

void Multiple_read_ADXL355(void)
{
u8 i;

ADXL355_Start(); //IIC start
ADXL355_SendByte(SlaveAddress); //Send slave address for writing
ADXL355_SendByte(0x08); //Send reg address 
ADXL355_Start(); //IIC start
ADXL355_SendByte(SlaveAddress+1); //Send slave address for reading
for (i=0; i<9; i++) //Read 9 data to buffer
{
BUF[i] = ADXL345_RecvByte(); 

 

if (i == 8)
{
ADXL345_SendACK(1); //NOACK
}
else
{
ADXL345_SendACK(0); //ACK
}

 

}

 

ADXL345_Stop(); //IIC stop


}

Outcomes