I a trying to read data from an ADIS16209 and am having some issues reading data. The datasheet doesn't seem very comprehensive when it comes the description of the SPI protocol.
From various support posts I have managed to piece together how I believe you are intended to read data from the ADIS, but there are a few things which I can't make sense of:
1) the ADIS16209 data sheet states that the first byte of transmission is a R/W bit & 6 address bits, however some registers (e.g. PROD_ID) have addresses which are 7 bits long? PROD_ID Address=0x4A=0b01001010. Am I missing something here?
2) Is burst reading possible? Or can only 16 bits be read at a time?
3) When reading a 16 bit register - it seems like you need two 16 bit transmissions:
Byte 1 = R/W and Address
Byte 2 = 0
Byte 3 = First Register Byte
Byte 4 = Second Register Byte
my question is - do you need to de-select CS between the first two bytes and the last two? Or do you just keep reading? Can't find a definitive answer in the datasheet.
4) If CS has to be deactivated between the address word and register word (in above) - how can you safe guard against the MCU and ADIS falling out of sync?
e.g if the ADIS is reset between the first two bytes and the second two the MCU will be expecting data whilst the ADIS is expecting the address word.
Hope this makes sense.