ADIS16362 IIO Driver for Raspberry PI?

According to the instructions at https://wiki.analog.com/resources/tools-software/linux-build/generic/raspberrypi we can build build Linux kernel for Raspberry PI and can add driver support for adis16400 which indeed support ADIS16362.

But the question is how a 16-bit SPI works with Raspberry Pi which only supports 8-bit SPI transactions. How the drivers handle this issue? Is it possible to keep CS low for two bytes transfer for the legacy Linux SPI driver provided with Raspberry Pi OS? 

Secondly I am looking for a Raspberry Pi OS c/c++ example which somehow uses the iio adis16400 drivers to read/write the ADIS16362 registers. So far I have tried to use this driver

https://github.com/PX4/PX4-Autopilot/tree/master/src/drivers/imu/analog_devices/adis16470

github.com/.../posix

by modifying it for ADIS16362 and it is not working... nothing received on MISO pin! It would be very helpful if someone guide or provide an example code to use iio adis16400 driver specifically for to reading/writing the ADIS16362 registers.

Parents Reply Children
  • Hi,

    The role of the IIO driver is to create an abstraction layer over direct register writes. The register writes are handled by the driver internally and it provides you an interface to read the data like acceleration.

    Please take a look at this IIO example. It is for a dummy IIO device and you should adapt it for your specific IIO device created by the adis16400 driver. You can identify its number using "iio_info -a". This command is part of libiio and you can study about that too.

    Also there you'll see the channels supported by ADIS IIO device and reading those you'll actually get the data that's of interest for you.

    Please take a look at adis16400 drivers documentation page. There is described in detail how the IIO channel data can be interpreted.