Post Go back to editing

ADC count values are always Zero and unable to clear error bits from Header.

Category: Hardware
Product Number: AD7779

Hi Team,

Unable to get the ADC conversion values from the AD7779 and it is always Zero with errors in header.

If I disable all the channel using register Channel Disable register 0x08. then DRDY signal is not generated.

and if I enable single channel, then DRDY is generated as per Sampling frequency programmed using SRC registers 0x60 to 0x63

After putting ADC in SD conversion mode from internal register mode,

and triggered the SPI read operation on the falling edge of DRDY interrupt.

I am getting below fixed data, this I've tested on two evaluation board AD7779.

rx_buf[31][0] volatile uint8_t 0x5 (Hex)
rx_buf[31][1] volatile uint8_t 0x0 (Hex)
rx_buf[31][2] volatile uint8_t 0x0 (Hex)
rx_buf[31][3] volatile uint8_t 0x0 (Hex)
rx_buf[31][4] volatile uint8_t 0x12 (Hex)
rx_buf[31][5] volatile uint8_t 0x0 (Hex)
rx_buf[31][6] volatile uint8_t 0x0 (Hex)
rx_buf[31][7] volatile uint8_t 0x0 (Hex)
rx_buf[31][8] volatile uint8_t 0x2d (Hex)
rx_buf[31][9] volatile uint8_t 0x0 (Hex)
rx_buf[31][10] volatile uint8_t 0x0 (Hex)
rx_buf[31][11] volatile uint8_t 0x0 (Hex)
rx_buf[31][12] volatile uint8_t 0x3f (Hex)
rx_buf[31][13] volatile uint8_t 0x0 (Hex)
rx_buf[31][14] volatile uint8_t 0x0 (Hex)
rx_buf[31][15] volatile uint8_t 0x0 (Hex)
rx_buf[31][16] volatile uint8_t 0x44 (Hex)
rx_buf[31][17] volatile uint8_t 0x0 (Hex)
rx_buf[31][18] volatile uint8_t 0x0 (Hex)
rx_buf[31][19] volatile uint8_t 0x0 (Hex)
rx_buf[31][20] volatile uint8_t 0x5f (Hex)
rx_buf[31][21] volatile uint8_t 0x0 (Hex)
rx_buf[31][22] volatile uint8_t 0x0 (Hex)
rx_buf[31][23] volatile uint8_t 0x0 (Hex)
rx_buf[31][24] volatile uint8_t 0x6c (Hex)
rx_buf[31][25] volatile uint8_t 0x0 (Hex)
rx_buf[31][26] volatile uint8_t 0x0 (Hex)
rx_buf[31][27] volatile uint8_t 0x0 (Hex)
rx_buf[31][28] volatile uint8_t 0x72 (Hex)
rx_buf[31][29] volatile uint8_t 0x0 (Hex)
rx_buf[31][30] volatile uint8_t 0x0 (Hex)
rx_buf[31][31] volatile uint8_t 0x0 (Hex)

NOTE : For default ad7779_init(), Alert bit was set, this alert bit is resetted after disabling self diagnostic by clearing register bits of 0x58, 0x5A and 0x5C after ad7779_init() function.

I am using external Vref and it is checked it 2.5V proper.

Please help me in reading the ADC values.



Parents Reply Children
  • I am using EVAL-AD777xFMCZ Rev-D Board. It is configured for Dual Mode supply and Reference voltage as Vref- = -1.65 V to Vref+ = +2.5 V.

    On-board regulated positive rail selection.

    SLP6 -Position A - 1.65 V. Use this option for dual-supply operation.

    Regulated negative rail selection.
    SL24 -Position A - AVSSx is taken from U15, the ADP7182 1.65 V LDO. Use this option for dual-supply operation.

    Voltage reference selection.
    SL2 - Position A: the ADR441 is used as a voltage reference.

    The programmed register after reading the ADC counts of AD7779 and AD7771 are same and as follows

    reg_data[0]   = 0x0   (Hex)
    reg_data[1]   = 0x30 (Hex)
    reg_data[2]   = 0x30 (Hex)
    reg_data[3]   = 0x30 (Hex)
    reg_data[4]   = 0x30 (Hex)
    reg_data[5]   = 0x30 (Hex)
    reg_data[6]   = 0x30 (Hex)
    reg_data[7]   = 0x30 (Hex)
    reg_data[8]   = 0x0   (Hex)
    reg_data[9]   = 0x0  (Hex)
    reg_data[10] = 0x0 (Hex)
    reg_data[11] = 0x0 (Hex)
    reg_data[12] = 0x0 (Hex)
    reg_data[13] = 0x0 (Hex)
    reg_data[14] = 0x0 (Hex)
    reg_data[15] = 0x0 (Hex)
    reg_data[16] = 0x0 (Hex)
    reg_data[17] = 0x64 (Hex)
    reg_data[18] = 0x9 (Hex)
    reg_data[19] = 0x80 (Hex)
    reg_data[20] = 0x20 (Hex)
    reg_data[21] = 0x0 (Hex)
    reg_data[22] = 0x0 (Hex)
    reg_data[23] = 0x0 (Hex)
    reg_data[24] = 0x0 (Hex)
    reg_data[25] = 0x38 (Hex)
    reg_data[26] = 0xc0 (Hex)
    reg_data[27] = 0x0 (Hex)
    reg_data[28] = 0x0 (Hex)
    reg_data[29] = 0x0 (Hex)
    reg_data[30] = 0x0 (Hex)
    reg_data[31] = 0x0 (Hex)
    reg_data[32] = 0x0 (Hex)
    reg_data[33] = 0x0 (Hex)
    reg_data[34] = 0x0 (Hex)
    reg_data[35] = 0x0 (Hex)
    reg_data[36] = 0x0 (Hex)
    reg_data[37] = 0x0 (Hex)
    reg_data[38] = 0x0 (Hex)
    reg_data[39] = 0x0 (Hex)
    reg_data[40] = 0x0 (Hex)
    reg_data[41] = 0x0 (Hex)
    reg_data[42] = 0x0 (Hex)
    reg_data[43] = 0x0 (Hex)
    reg_data[44] = 0x0 (Hex)
    reg_data[45] = 0x0 (Hex)
    reg_data[46] = 0x0 (Hex)
    reg_data[47] = 0x0 (Hex)
    reg_data[48] = 0x0 (Hex)
    reg_data[49] = 0x0 (Hex)
    reg_data[50] = 0x0 (Hex)
    reg_data[51] = 0x0 (Hex)
    reg_data[52] = 0x0 (Hex)
    reg_data[53] = 0x0 (Hex)
    reg_data[54] = 0x0 (Hex)
    reg_data[55] = 0x0 (Hex)
    reg_data[56] = 0x0 (Hex)
    reg_data[57] = 0x0 (Hex)
    reg_data[58] = 0x0 (Hex)
    reg_data[59] = 0x0 (Hex)
    reg_data[60] = 0x0 (Hex)
    reg_data[61] = 0x0 (Hex)
    reg_data[62] = 0x0 (Hex)
    reg_data[63] = 0x0 (Hex)
    reg_data[64] = 0x0 (Hex)
    reg_data[65] = 0x0 (Hex)
    reg_data[66] = 0x0 (Hex)
    reg_data[67] = 0x0 (Hex)
    reg_data[68] = 0x0 (Hex)
    reg_data[69] = 0x0 (Hex)
    reg_data[70] = 0x0 (Hex)
    reg_data[71] = 0x0 (Hex)
    reg_data[72] = 0x0 (Hex)
    reg_data[73] = 0x0 (Hex)
    reg_data[74] = 0x0 (Hex)
    reg_data[75] = 0x0 (Hex)
    reg_data[76] = 0x0 (Hex)
    reg_data[77] = 0x0 (Hex)
    reg_data[78] = 0x0 (Hex)
    reg_data[79] = 0x0 (Hex)
    reg_data[80] = 0x0 (Hex)
    reg_data[81] = 0x0 (Hex)
    reg_data[82] = 0x0 (Hex)
    reg_data[83] = 0x0 (Hex)
    reg_data[84] = 0x0 (Hex)
    reg_data[85] = 0x0 (Hex)
    reg_data[86] = 0x0 (Hex)
    reg_data[87] = 0x0 (Hex)
    reg_data[88] = 0x0 (Hex)
    reg_data[89] = 0x0 (Hex)
    reg_data[90] = 0x0 (Hex)
    reg_data[91] = 0x0 (Hex)
    reg_data[92] = 0x0 (Hex)
    reg_data[93] = 0x0 (Hex)
    reg_data[94] = 0x0 (Hex)
    reg_data[95] = 0x10 (Hex)
    reg_data[96] = 0x0 (Hex)
    reg_data[97] = 0xd5 (Hex)
    reg_data[98] = 0x55 (Hex)
    reg_data[99] = 0x3f (Hex)
    reg_data[100] = 0 '\0'

    Note :Three Boards are behaving same way....there is no change. Tested TWO AD7779 eval board and on AD7771 board.



  • Hi DPK,

    The configuration registers seem to be ok, unless I missed something.  

    Could you check that all the voltages are generated properly and they are getting to the ADC?  

    and could you also provide me the position of all jumpers?

    Have been you able to test the EVAL with the SDP-K1 and the EVAL SW?