Post Go back to editing

I do not receive data from AD7707

Category: Hardware
Product Number: AD7707

I used to work with AD7705. Now I need to configure 10 boards with AD770test AD7707.RAR7. I am getting wrong data from the chip. What am I doing wrong?

  • Hi,

    Sorry for the late response. I would like to clarify if your voltage reference is 2.5V? And whether you used a probe to measure your 100mV and 141mV AIN?

    Also, can you provide a digital interface (scope shot) of your setup and a read back register values? Thank you.



  • This archive contains the necessary information.

    Oscilloscope: 1V/div, 1mS/div

    I don't understand why there is only the low byte (high byte=0) in the data register. When reading, it should be approximate:

    AIN1 - 139 mv (gain=16) = E1 XX

    AIN3 - 2 V = (gain=1) = CC XX

  • Hi,

    Can you provide your read back register values in table? 

    Also, I am hoping for a scope shot that shows your DIN, DOUT, DRDY, and SCLK simultaneously so that we can analyze their timing. Thank you.

    Best regards,


  • Here is the table.

    I have a 1-channel oscilloscope. I will try to use a logic analyzer. But there should be no problems with the timings. I used to work with AD7705 and everything works there. There is the same interface. I used those routines here. In addition, the SETUP and CLOCKXLS registers are written and read normally. And this means that the timings are correct.

  • Hi, 

    Can you share what's the difference between your AD7705 design and this new AD7707 design? 

    The two devices have different input channels. The AD7707 has a high level analog input voltage referenced to HICOM with a VBIAS voltage. 

    Looking at your AD7707 schematic, the VBIAS was also generated from the VREF but I am not sure what's the purpose of this bias if the HICOM is unused? 

    Have you tried to probe your REFIN pins? Is it exactly 5V? 



  •  I connected a logic analyzer and saw how AD7707 works. Everything was fine there, the AD7707 transmitted 2 bytes of data. And I received only one byte (low), and the high one was lost. Then I took a closer look at the program and saw an error. In the previous program with AD7705 it was as follows:

    unsigned int RD_AD7705( unsigned char channel)

    { unsigned int data;

    while(RDY_AD7705);         // wait DRDY=0

    WR_AD7705(0x38 | (channel-1));       // read DATA r-r


    data = SPDR;    // read value in SPI data reg. (high)

    data <<= 8;

    And I did the following when copying to AD7707:

    uint16_t Rd_7707(uint8_t channel)

    { uint8_t data;                                    - ?????

    while(RDY_AD7707);     // wait DRDY=0

    Wr_7707(0x38 | (channel-1));


    data = SPDR;    // read value in SPI data reg. (high)

    data <<= 8;

    Therefore, the high byte was lost during processing. Everything is working fine now. I will check further.

    I plan to work with channels AIN1 (PT100) and AIN3 (0 - 10V). Here is the schematic, and also screenshots of the data transfer from the logic analyzer.

  • Hi,

    It's good to know that you have resolved your issue. If you need any help, feel free to contact us again. Thank you.



Reply Children
No Data