Post Go back to editing

AD7912 function test

I'm using AD7912 to convert analog signals to digital. However, I checked the DOUT by oscilloscope and found out that the DOUT signal is keep in low potential.  I have check the SCLK, CS, DIN, analog in, VDD and GND are all correct. Clock is at the frequency of 100kHz. The other input are also checked as described as data-sheet. I'm wondering is there any way to test the function of AD7912. I'm using STM32 F446RE as SPI master. 

 blue: SCLK, yellow: CS                

 Picture 1: BLUE - SCLK, YELLOW - CS.    

  

Picture 2: BLUE - DIN, YELLOW - SCLK



Adding code.
[edited by: Howhoward at 7:34 AM (GMT -4) on 25 Aug 2020]
  • Hi Howhoward,

    Thanks for your question. I have a couple of follow-up questions:

    1. Is there a pull-down or pull-up resistor on the DOUT line? If not, would you be able to add a pull-up resistor from DOUT to VDD? This would be to double check the interface is active while CSb is LOW. i.e. while DOUT is tristate it will be pulled HIGH instead of LOW.

    2. What are the analog input pins (VIN0 and VIN1) tied to? Did you ensure they are not driven to 0 V?

    3. Do you perform multiple SPI frames following device power-up, and are these all returning 0x000 on the DOUT line? The AD7912 requires the SCLK input to perform its first conversion following power-up so if this is the first SPI frame following power-up then the DOUT result is considered invalid anyway. So I wanted to double check you are performing multiple consecutive conversions and see if you're still getting the same error.

    Thanks,

    Tyler

  • Thanks for your help.

    1. I added a pull-up resistor to VDD. DOUT was HIGH while CS pulling HIGH, and DOUT was returning 0x0000 while CS was LOW.

    2. I've checked that the VIN pins are not driven to 0 V.

    3. Yes, I performed multiple consecutive conversions and still get 0x0000 in DOUT.

    Besides, I tried to control the AD7912 to entering daisy-chain mode and power-down mode, and DOUT returns to tri-state after CS pulled high, which just like data-sheet described. Is there any other possible problem for this error?

    Thank you !