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.

CCS/ADS8684: Range Problem - Cannot Measure Above 4.8V

Part Number: ADS8684
Other Parts Discussed in Thread: MSP430F5132

Tool/software: Code Composer Studio

Hello,

On my custom device, MSP430F5132 communicates with ADS8684 over SPI. MCU prints the measurement data on console. But, I couldnt succeed to measure 0-10V range. It always measures 65535 for 5V.

By default, I saw the measurement value starts about 32000 for +/-10V (range bits=0000) . But it also shows 65535 for 5V.

Also, I changed the range bits and I got maximum 2.5V and 1.20V levels.

ADS8684 acts like it only measures between 0V and 5V.

Here is the console output:

And what I do for configuration:

1) Device reset: Sending 0x8500FFFF 32-bit value

2) CH1 RANGE SELECT 0x0B050000 32-bit value

3) CH2 RANGE SELECT 0x0D050000 32-bit value

4) CH3 RANGE SELECT 0x0F050000 32-bit value

5) CH4 RANGE SELECT 0x11050000 32-bit value

6) Measurement preparation by sending 0xA0000000 32-bit value

7) Measurement-1 by sending 0x00000000 32-bit value (Got zero value)

8) Measurement-2 by sending 0x00000000 32-bit value (Got value between 0 and 100)

9) Measurement-3 by sending 0x00000000 32-bit value (Got zero value)

10) Measurement-4 by sending 0x00000000 32-bit value (Got 64750 value for 4.80V!)

Do you have any ideas why I cant measure over 5V?

Regards,

Onur

  • Hi Onur,

    I will look into it and get back to you soon.

    I also noticed that you had another post about same device ADS8684 on E2E as below link, my co-worker has worked on that, can you please keep your all questions about same device into same query in the future? this will be more efficient for such case. Thank you for your understanding.

    e2e.ti.com/.../665036

    Best regards

    Dale

  • Hi Onur,

    Definitely ADS8684 can support 0~2.5VREF range also this ADC can measure a input signal higher than 5V. Your register data is correct but please notice that your channel number doesn't match real channel number:  0x0B05 is for CH0 Input range,0x0D05 is for CH1 Input range, 0x0F05 is for CH2 Input range,0x1105 is for CH3 Input range.

    Are you using internal or external reference? Can you please check if the reference voltage is correct? You scope screenshot for /CS,SCLK,SDO and SDI and your circuit schematic will be helpful to address the issue as well.

    Did you see the data written into the register on SDO regarding to Figure 88? if yes, is the return data same as the data you write to the register? There is one test you can do, change the Feature Select Register to include Input Range on SDO, you can check if the input range is the range you have programmed, please refer to table 12 in datasheet.

    To be simple and for test purpose, please don't switch the channel, use default CH0 after power up, apply a DC signal to CH0 (for example: 8V DC):

    1.  Check the conversion data after send 32 clocks without any programming internal registers

    2. If the conversion code from above step is correct, program CH0's input range by writing 0x0B050000, read back the register to confirm, then keep same 8V input and check the conversion data after send another 32 clocks.

    Please let me know your test result. Thanks.

    Best regards

    Dale

  • Hello,

    Today, I couldnt find much time but I did some tests. Tomorrow, I will fully busy with my device. Here are the screenshots:

    Also, I made another test. It was sent 0x0301 for Feature Select register configuration and measurements showed all "0"s from all channels. 

    I didnt take into account feature select register because in the description it says about using the ADS8684 in daisy chain mode. I have single mcu and ADS8684.

    There is one more thing that I didnt understand in the datasheet. Normally, in AUTO_RST mode, first 16 bits are for the command and the next 16bits for measurement data. BUT, it says about 40-bits output format in table 13:

    16bits for command + 16bits for output [24-9 bits] + 3 bits for channel address [8-5 bits] + 2 bit for device address [4-3 bits] + 3 bits for input range [2-0 bits]

    BUT it was 32 bits AUTO_RST or MAN_CH commands!?

    By the way, I measured 4.091V on my 5th pin of ADS8684.

    Tomorrow, I will make more tests. 

  • Hi Onur,

    The Command registers(AUTO_RST etc.) are 16-bit registers, generally the ADC needs 32 clocks for conversion and data reading shown in Figure 1, what Table 13 describes is, if you want to get more information, more clocks are needed.

    I still suggest you to use default mode and input range without any programming to internal registers after power up, just check the data from CH0 by applying a DC signal on AIN_0P and ground AIN0GND, this will be simple but it can help you check if your digital bus and your timing are correct by checking the conversion code, then you can program internal registers and switch channels next step.

    Thanks.

    Best regards

    Dale