This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS8638: Issue for output register value

Guru 19605 points
Part Number: ADS8638

On the testing ADS8638 by 0V~5V input and 12bit resolution.

Expected value is 0V: 0x000 and 5V: 0xFFF, but result was 0V: 0x800 and 5V: 0xBE2. (I think that these value was received on ±10V range condition)

Please let me know need to modify point.

Test condition is below;

・DVDD and AVDD:5V, HVDD: -5V, Vref: 2.5V(REF5025A)

・Analog input: 0V~5V

・Control signal from FPGA, attached below

・SCLK: 12.5MHz

・ADC setting (by datasheet table 11~12)

 ①Power supply: ON

 ②AL_PD: Low to High

 ③Dummy write ×2cycle (12.5MHz: T=80ns, 80ns×20CLK×2=3.2us)

       DIN set to 0x08

 ④Aux-Config(06h): Write to 0x08・・・DIN: set to 0x08

 ⑤Auto-Md Ch-Sel(0Ch): write to 0xFC・・・DIN: set to 0xFC(use CH0~5)

 ⑥Auto register(05h): write to 0x8C・・・DIN: set to 0x8C

  Conversion range set 0V~5V, and normal AD conversion

 ⑦Write to 0x00 ×6, ADC read 6CH

Best regards,

Satoshi

  • Hi Satoshi,

    Welcome to E2E forum.

    Firstly, looks like your are reading the data at the rising edge, our datasheet suggests to read or launch the data at the falling edge of SCLK, secondly, +/-10V for HVDD and HVSS are suggested to achieve the specified performance in ADS8638's datasheet, please refer to test condition for Electrical Characteristics table. Lastly, your commands are incorrect, for example, you mentioned that "Auto register(05h): write to 0x8C・・・DIN: set to 0x8C", if you want to program Auto register(0x05 address), the right command is 0x0A0C, please check the table 9 for Write command.

    After you correct them, I would suggest you to only use Manual mode and convert the analog signal on one channel continuously(for example, Channel 0), then you can switch to the different channel after check and get correct data code. This will be a simple way to identify any potential issue.

    Thanks&regards

    Dale

  • Dale-san

    Thank you for reply,

    I confirmed three points you advised, it was no problem.

    Latest timing diagram is attached;

    About your idea for checking on Manual mode, it was no problem, too.

    Please let me know about additional question below;

    ①About Auto mode for CH0~CH5, the first cycle is output only CH0~CH4 and after cycle is CH0~CH5, is this normal operation?

    ②Captured waveform is attached below; CH1: DVDD, CH2: REF, CH3: AVDD, CH4: AL_PD

      DVDD and AL_PD are start up before than REF and AVDD, is there possibility of issue?

    ③About "Auto register(05h): write to 0x8C", I think that this register is one-shot reset, is it correct?

    ④If there the other reason for issue, please let me know.

    Best regards,

    Satoshi

  • Hello Satoshi-san,

    Since many things were incorrect from your test, I still suggest you to use Manual mode and convert the analog signal on one channel continuously(for example, Channel 0), then you can switch to the different channel and auto mode after check and get correct data code. This will be a simple way to identify any potential issue.

    You are reading the data at the rising edge, please see black line in below timing.

    When you write to internal registers, please make sure your command is correct, for example, send the command is 0x0A8C program Auto register(0x05 address).

    Back to your questions:

    1. this should be incorrect, please note that the example for Auto-Md Ch-Sel in datasheet is wrong, 01000110 command to this register will select channels 2,5,6, not command 01100100.

    2. There is low level on AL_PD before it is pulled to high, this will lead to power down mode. After power on the device, AL_PD is a default input function to control if power down before you program the register to change the pin function. I would suggest to pull up this pin to DVDD with a resistor.

        I'm not sure why you AVDD(pink) was changed from high to low during the sequencing.

    3. Auto register only needs to be programmed once, I did not pay attention to this bit and you tried to reset sequence counter.

    4. As suggested, just use manual mode to convert one channel signal and make sure your data and timing are correct, then switch to auto mode and other configurations.

    Thanks&regards

    Dale

      

  • Dale-san

    Please let me confirm about your answer 1 and 2;

    ①When 0Ch address set ch0~ch5 select, 05h address can set range select by bit1~3.
     Is this thinking correct?
     If correct, I think that above operation conflict with below result of 【Additional information】.
     Is there any typo on datasheet?

     【Additional information】
     ・Read and write to Auto register are no problem
     ・When 10h~13h address set range select, setting was clear(0V~5V).

    ②About pull up on AL_PD pin, pull up resister value is 1kΩ.
    Is 1kΩ value enough or not?

    Best regards,
    Satoshi
  • Hi Satoshi-san,
    1. 0Ch address set ch0~ch5 select, this is correct, 05h address( Auto-scan mode register) can set the range but only for next frame. The normal range for all channels will be determined through the configuration registers (address 10h to 13h, page 0). Please check the description for these two registers in datasheet.
    2. You can use that or higher but less than 10kohm.
    Regards
    Dale