Post Go back to editing

ADXL355 initial read

Can you let me know the SPI communications that should be used to get the Device ID and the SPI communication to get Temperature.

Knowing the communication, bytes sent, and bytes received, will help alot. I am sure I have an issue to do with my code so before I try to read the XYZ values I need to prove that my SPI communication to the ADXL355 dev board works. I am trying to read DeviceID and temperature but my values are not as expected.

I send Commands 0,1,2... and print the return values

ADXL355 Command=0,(Hex 0) ReturnValue=0,(Hex 0)

ADXL355 Command=1,(Hex 1) ReturnValue=173,(Hex ad)

ADXL355 Command=2,(Hex 2) ReturnValue=0,(Hex 0)

ADXL355 Command=3,(Hex 3) ReturnValue=29,(Hex 1d)

ADXL355 Command=4,(Hex 4) ReturnValue=0,(Hex 0)

ADXL355 Command=5,(Hex 5) ReturnValue=237,(Hex ed)

ADXL355 Command=6,(Hex 6) ReturnValue=0,(Hex 0)

ADXL355 Command=7,(Hex 7) ReturnValue=1,(Hex 1)

The results I get are consistent and are the same if I swap in another ADXL355 dev board. Again they are the same if I change SPI clock speeds

I am familiar with SPI for the ADIS16223 where you send a command via SPI and get a value back.

For ADXL355 I changed SPI mode to ( CPOL = 0, CPHA = 0 )

I am just starting the development for the ADXL355 so sorry if this question seems a bit basic.

I will re-read the data sheet but finding it a bit hard going.

Wiring of the dev board to the Master microcontrollers (MCU) is as follows:

VDD & VDDIO connected to 3.3V from the Master MCU

Ground is common for the ADXL355 dev board and the Master MCU

MISO – MISO on master MCU

MOSI – MOSI on master MCU

SCLK – SPI Clock on master MCU

CS – SPI Chip select from master

INT1, INT2,DRDY, V1p ana, V1P dig are not connected

  • I have now resolved this issue

    I had extra zeros in-between data items. This threw me.

    When I saw this post

    https://stackoverflow.com/questions/49433454/communication-with-adxl355-using-spi

    I realised the issue.

    Posted the link here in case anyone else has this issue

  • Hi to all, I try to post here avoiding new discussions.....

    I bought a board using with EVAL-ADXL455Z embedded, I can't directly access to ADXL355.
    Software checks if ADXL355 is mounted or missing: at first step it says it reads register at 0x02 offset, but result is 0x00 so "ADXL355 not found".

    Using oscilloscope I can see it reads 0x02 address (first 8 bits are 00000101), but following bits on MISO line are all 0s.
    SPI waveform (clock polarity) is agree to datasheet waveforms.

    So my doubt is: should I enable someway ADXL355 (writing on POWER_CTL register) before read registers?
    Thanks.

  • I trust you have raised this question in its own thread. I just noticed it. My issue was the way I was sending the request. I was sending byte by byte rather than all the bytes in one go. Byte by byte you receive:

    Rx:  00

    Rx:  AD

    Rx:  00

    Rx:  1D

     

    But the same request sent all in one go you get the correct reply, which is:

    Rx:  AD

    Rx:  1D

    Rx:  ED

    Rx:  01

     

    Make sense now, but it fooled me for a while.

    I think your issue could be different if you meant to put “EVAL-ADXL455Z”

    The EVAL-ADXL355 is the board I used and it works well.