AnsweredAssumed Answered

How to use the temperature sensor on ad9361 device correctly ?

Question asked by Timo on Jan 29, 2014
Latest reply on Jan 30, 2014 by mhennerich



I am using the ad9361 device. The spi function for reading/writing registers is allready implemented. So i am able to read and write register content correctly. In a first step, I like to use the internal temperature sensor. So I was reading the User Guide "AD9361 AuxADC AuxDAC GPO Tempsensor_v2.4.pdf". On Page 8 of 10 there is an example how to get a temperature value.


So I was implement the following source code on a microblaze:


int main()


     uint8_t temp = 0x00;


     SPIWrite(0x0B,0x00);// Set the Temp sense offset to 0

     SPIWrite(0x0C,0x0F);// Temp sensor set in manual mode

     SPIWrite(0x0D,0x00);// Calculation time set to 0sec

     SPIWrite(0x0F,0x00);// Set the temp sensor decimation to 256

     SPIWrite(0x1D0x01);// Disable AuxADC pin voltage measurement

     SPIWrite(0x35,0x1E);// Select Temp sense valid on control out [1]

     SPIWrite(0x36,0xFF);// Enable all control out pins


     temp = SPIRead(0x0E);




The result of temp is alway zero. (temp = zero). Okay I will test the register content of the "Temperature" Register again. In the user Guide there is written "...Register 0x0E shows the current temperature of the device added to the offset in register 0x0B." So in a secound step I was setting the offset value greater then zero:


SPIWrite(0x0B,0x20);// Set the Temp sense offset to 0x20.


I started the main-function again. The result of temp was alway zero. I think now the value should be greater than the offset value (temp > 0x20). Do you see the problem in my programm? This are my first steps to use the ad9361. Thanks a lot.