AnsweredAssumed Answered

AD7770 Always runs in low resolution mode

Question asked by Keivan on Jun 15, 2018
Latest reply on Jun 21, 2018 by jean-marc.nwesaty@cemios.fr

I am trying to connect AD7770 (on Eval-AD777xCMZ board) to ARM M4 microcontroler on STM32F407 board and use it in HIGH RES mode. So far I managed to read and write to registers on AD7770 but the problem is AD7770 gives me 8kHz signal on DRDY pin regardless of any configuration I put in the code. 

 

 

Here is parts of init code:

 

AD7770_init.ctrl_mode = AD7779_SPI_CTRL;
AD7770_init.spi_crc_en = AD7779_DISABLE;
AD7770_init.state[0] = AD7779_ENABLE;
...
AD7770_init.state[7] = AD7779_ENABLE;

AD7770_init.gain[0] = AD7779_GAIN_1;
...
AD7770_init.gain[7] = AD7779_GAIN_1;


AD7770_init.dec_rate_int = 64; // 2048 kHz (MOD_CLK) / 32 kSPS (ODR) = 64
AD7770_init.dec_rate_dec = 0;
AD7770_init.ref_type = AD7779_INT_REF;
AD7770_init.pwr_mode = AD7779_HIGH_RES;
AD7770_init.dclk_div = AD7779_DCLK_DIV_2;

memset(AD7770_init.sync_offset,0,sizeof(uint8_t)*8);
memset(AD7770_init.offset_corr,0,sizeof(uint32_t)*8);
memset(AD7770_init.gain_corr,0,sizeof(uint32_t)*8);

AD7770_init.ref_buf_op_mode[0] = AD7779_REF_BUF_DISABLED; //ad7779_ref_buf_op_mode
AD7770_init.ref_buf_op_mode[1] = AD7779_REF_BUF_DISABLED; //ad7779_ref_buf_op_mode

AD7770_init.sinc5_state = AD7779_DISABLE;

ret = ad7779_init(&pAD7770, AD7770_init);

 

 

 

ad7779_init function returns SUCESS, after this I change the reading mode to delta-sigma mode:

 

ad7779_set_spi_op_mode(pAD7770, AD7779_SD_CONV);

 

from here I only get 8kHz signal on DRDY pin which I assume it is low resolution mode. Can someone point where I am doing something wrong?

 

*The board is in the default configuration (SPI control mode).

*I have tested the writing and reading both in the code and by oscilloscope.

 

 

Outcomes