6 years, 7 months ago.

ADXL355

Hi, I am trying to use FRDM-k64f to read the new accelerometer ADXL355. I am referring to the example ADXL345. First, I try to test the SPI communication using below code. Why I always get 0 ?

SPI acc(PTD2,PTD3,PTD1); 

DigitalOut cs(PTD0); 

Serial pc(USBTX, USBRX); 

char buffer[9]; 

signed short data[3]; 

float x, y, z; 

int deviceID;

char test;

int main() {

 cs=1;

 acc.format(8,0); 

 acc.frequency(2000000); 

   while (1) {
      
     wait(1);

     cs=0; 

   acc.write(0x80|0x01); 

   deviceID= acc.write(0x00);

  pc.printf("partid= %d\r\n",deviceID);
  cs=1; 
  }

Thank you so much.

/media/uploads/cornetlin/wire.png /media/uploads/cornetlin/adxl354-adxl355_breakout_ug-xxx_july22.pdf /media/uploads/cornetlin/adxl354_355.pdf

2 Answers

6 years, 6 months ago.

Hello Tzu-Hsuan,

acc.format(8,0); acc.frequency(10000000);

write ... acc.write( (address << 1) | 0x00); acc.write(data); ....

read ... acc.write( (address << 1) | 0x01); acc.write(0x00); ....

6 years, 7 months ago.

Hello Tzu-Hsuan,
Referring to the ADXL345 library I think instead of calling

...
acc.format(8,0);
...
    acc.write(0x80 | 0x01);
... 

you should try to call

...
acc.format(8,3);
...
    acc.write(0x80 | (0x00 & 0x3F));
...

or simply

...
acc.format(8,3);
...
    acc.write(0x80);
...

Zoltan