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.

ADS7961-Q1: Manual mode channel bit error

Part Number: ADS7961-Q1
Other Parts Discussed in Thread: ADS7961

Tool/software:

Hello, everyone.
I am trying to convert analog voltages to digital values using a circuit combining an ADS7961 Q1 and a Renesas RH850 microcomputer.
First, I am trying to check whether each channel is functioning in manual mode, but I noticed that the upper 4 bits (channel number) returned from the AD converter side are strange. As shown in the image below, when I send CH0, 0000 is returned, but when I send CH1, 0010 is returned, and when I send CH2, 0100 is returned.
After this,
CH3 0110
CH4 0000
CH5 0010
CH6 0100
CH7 0110
CH8 1000
CH9 1010
CH10 1100
CH11 1110
CH12 1000
CH13 1010
CH14 1100
CH15 1110
in the DOUT. The correct command is sent to DIN but wrong response DOUT.
I would appreciate it if any expert could explain why this behavior occurs.
regards.

PS: Oscilloscope capture from CH0 to CH2 is shown below.

yellow:SCLK, Light blue:CS, Deep blue:DIN Purple:DOUT

  • Additional information: When I applied a high voltage, I found that the voltage is displayed in the upper 4 bits.

    CH3 - 1.27V

  • Hi Hoshi-san, 

    From your description, it seems like you are seeing a bit shift. From the oscilloscope captures you sent, it looks like your SCLK is high as CS falls. This is incorrect, as SCLK should be low as CS falls (SPI CPHA = 0). See the dashed line a from the timing diagram below. The device clocks out the SDO bit on the falling edge of SCLK, but these bits will be valid to be read by the MCU on the rising edge of SCLK. 

    Therefore, the first image you sent is 0001, indicating the conversion is coming from CH1. The last image you sent, I am seeing 0111, indicating the conversion is from CH7. Let me know how this works out!

    Regards,
    Joel

  • Thanks, Joel.
    I noticed yesterday that the microcomputer clock phase was set differently.
    And the problem is solved, thanks!