Main Site Documentation

SPI driver for ADIS16227


I am writing the SPI driver for ADIS16227.

I refer to the code of GHI�s Accelerometer Extension driver.
I have some questions.
In that code, the value is 1 byte. But In the data sheet of ADIS16227, the address is one byte and the value is two bytes.
How do I solve it?
Thank you very much.



Hi Gus, could you help me?
The address and value are both one byte in GHI’s code.

static private byte[] write = new byte[2];

But in ADIS16227, the adress is 0x02 and the value is 0x0000, for example.

static private void WriteRegister(byte address, byte value)
                write[0] = address;
                write[1] = value;
                _spi.WriteRead(write, read);


Not sure what is your question but the word “address” can be confusing here. Why? Because “address” on I2C is what you use to access the device. It is 7 bit number. Now, in the code we have also used the word address but that is the register address inside the chip not the I2C address of the chip


SPI.WriteRead has two overloads. One takes a byte and one takes a short (if I have not mistaken).
So declare your address and value to short and it shall be good.