Post Go back to editing

I get conversion result of only IN0 of AD4696

Category: Hardware
Product Number: AD4696

Hi
I am using AD4696. I use SPI to interface it with STM32F107. VIO of the ADC is 1.8 V and power suply of STM32 is 2.5 V. I program the registers of the ADC to apply conversion to all of its 16 inputs. However, I only get conversion result of IN0. According to datasheets of the ADC and STM32, interfacing with different power supplies is possible. Would you please help me to know the reason that whay I can not get conversion sesult of all 16 channels?
Regards
Mehdi

  • Hello,  .

    We can go first by checking each of your supplies. Can you confirm if each of these voltage levels corresponds to your setup?

    Warm regards,
    Jo

  • Hello Nathan
    Thank you very much for your response. I have applied 5V to AVDD and LDO_IN and 5V to REF via a voltage reference IC from ADR series of Analog Devices, too. Moreover, I put a 100nF capacitor between VDD and AGND. I have applied 1.8V to VIO.
    Regards
    Mehdi
  • Hi,  .

    May I know how did you configure the device? Like the flow on how you configured the device. And whether you are using the standard or advance sequencer, or any changes from the configuration registers, please also state that. 

    Regards,
    Jo

  • Hi Nathan

    Sure. I have applied buffered REF/2 to COM for pseudobipolar configuration. I have tied CS to CNV and keep it low for 500ns sampling of the analog inputs and my sampling freq. is 400KSample/s. I have a 4-wire SPI interface, CS, SCK, SDI, and SDO. My SPI clock is 9MHz. I have created SPI clock from a timer of STM32 and I have set length of SPI data to be 8-bit for register configuration and I have set length of SPI data to be 16-bit during reading the conversion data as I don't use status bits and OSR is 1. When I set the address of a register which is 16 bit or when I set content of a 16-bit register, like STD_SEQ_CONFIG, there is a small time-gap between 8-bit MSB and 8-bit LSB. Moreover, I have set SPI_CONFIG_A to 0x30 for ascending address.

    Thank you

    Mehdi  

  • Hi,  .

    I think your configurations are correct. To further investigate this, may I know if you've already set the SPI_MODE to 1? What is your tscknv and enable time (ten)?

    I would appreciate if you can share a scopes shot of your timing diagram.

    Warm regards,

    Jo

  • Hi Nathan

    After writing the register values in register configuration mode, I write 0x14 to 0x0020 to start conversion. In this manner, I set SPI_MODE to 1. However, t_EN is very high (about 800ns in register configuration mode and 650ns in conversion mode) as shown in the following figures. I think source of my problem is this matter. I will try to reduce t_EN in the following days.

    Oscope in register configuration mode:

    The upper figure shows CNV and SCK and lower figure shows SCK and SDI. The following figure shows zoome version of SCK and SDI:

    Oscope in conversion mode:

    Thank you

    Mehdi

  • Hi Nathan

    Maybe I could access an oscope on Thursday to evaluate the results of reducing t_EN. Do you agree with me that the problem is due to very high t_EN?

    Regards

    Mehdi

  • Hi,  .

    Initially, t_EN is my suspicion why the error happened. And as per your reply, both 800ns and 650ns are both high compared with 15ns recommended time. Please let me know what happens after changing it to 15ns or below.

    Warm regards,
    Jo

  • Hi,  .

    Adding to this, make sure you are sending the data at the rising edge of the SCK. While send out the data at the falling edge of the SCK.

    Warm regards,
    Jo