I am trying to interface a sensor ADIS16362 with a Raspberry Pi 3 board and need to know if I can directly connect the sensor to Pi SPI pins?

In the datasheet of ADIS16362 on page 4, there is a following footnote for logic inputs and digital outputs. https://www.analog.com/media/en/technical-documentation/obsolete-data-sheets/ADIS16354.pdf

"The digital I/O signals are driven by an internal 3.3 V supply and the inputs are 5 V tolerant."

Does this imply that I can safely connect the sensor with 5V supply to Raspberry Pi 3.3V SPI directly?

I don't want to damage my Pi board at this point! By the way a bi-directional level shifter is not working, and is verified twice.

  • (1) I am 90% sure that Rpi 3V3 GPIO pins can direct interface your ADIS16362. (2) There is no need, though no harm to use any 3V3 to 5V0 logical level shifter, (3) You might like to experiment with cheapy gyro/accelero in case you don't have any replacement for your perhaps expensive, but very old, ADIS16363.
    – tlfong01
    May 31 at 5:25
  • 1
    the datasheet says the data pins output 0-3.3v - so, yes, safe for the Pi (the 5V tolerant means the device is tolerant of receiving 5v on the data lines - which the pi wont do anyway) May 31 at 5:25
  • Not Pi specific.
    – joan
    May 31 at 7:15
  • joan, Not Pi specific???
    – Skoog
    Jun 2 at 2:59

According to the following document (Fig. 5) the 5V sensor can be directly connected to 3.3V Raspberry Pi SPI. https://www.analog.com/media/en/technical-documentation/application-notes/an-1041.pdf

However, still struggling to get it work, with no success. I have captured the SPI waveforms and are attached. Any further help will be appreciated.




  • You might want to share some code.
    – MaxDZ8
    Jun 6 at 15:59
  • I have modified several drivers to run in 8-bit SPI mode because Raspberry Pi does not support 16-bit SPI under Linux. I have shared the driver files in the following link. Pay attention to the "RegisterRead()" and "RegisterWrite()" routines in ADIS16354.cpp which are used to read and write the sensor registers via SPI transfer. drive.google.com/drive/folders/… The base class for devices connected via SPI is located here github.com/PX4/PX4-Autopilot/blob/…
    – Skoog
    Jun 9 at 8:02
  • Interestingly the IMU sensor works fine with Arduino Uno SPI with a similar code. The working Arduino .ino file is also shared in the same folder of the driver files. However, the same 5V sensors (ADIS16362 and ADIS16354) are not working with Raspberry Pi SPI. I have used a similar driver with 8-bit SPI mode for ADIS16477 which is a 3.3V sensor and it worked fine with Raspberry Pi SPI. I am unable to understand where the issue is as the waveforms look a bit weird.
    – Skoog
    Jun 9 at 8:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.