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.

Problem with ADS7957

Other Parts Discussed in Thread: ADS7957

Hi,

I can't control the ADS7957 correctly. I tried every mode and the mux is stuck on channel 0. Here's what I want to do.

By default, the ADS7957 is in manual mode, channel 0 selected. So I just want to loop through all channel manually. I dont need to configure anything, just to continue in manual mode and specify each channel in each frame. Here's what I send to the ADS7957:

n+0: 0001 1000 0000 0000 -> Manual mode, Program enable, 2V5 range, channel 0
n+1: 0001 1000 1000 0000 -> Manual mode, Program enable, 2V5 range, channel 1
n+2: 0001 1001 0000 0000 -> Manual mode, Program enable, 2V5 range, channel 2
n+3: 0001 1001 1000 0000 -> Manual mode, Program enable, 2V5 range, channel 3
n+4: 0001 1010 0000 0000 -> Manual mode, Program enable, 2V5 range, channel 4

and so on...

The answer of the ADS7957 is always the reading of channel 0:

answer 0 : 0000 00XX XXXX XXXX -> Channel 0, sample value
answer 1 : 0000 00XX XXXX XXXX -> Channel 0, sample value
answer 2 : 0000 00XX XXXX XXXX -> Channel 0, sample value
answer 3 : 0000 00XX XXXX XXXX -> Channel 0, sample value
answer 4 : 0000 00XX XXXX XXXX -> Channel 0, sample value

I also have a screenshot from my logic analyser:

Anyone see what I could have been done wrong?

Best regards,
Jerome Baron

  • Hi Jerome!

    You have to leave the ADS7957 programming mode...  The first sequence (D11 = 1) above gets you into programming mode to set up the range, power down and GPIO stuff.  The second sequence should clear bit so that you remain in Manual mode but can now access the mux.  The channels won't change if you remain in the programming mode.  One other note, the implication in the data sheet for the SDI/SDO is that the clock polarity should be '0' - if you still have trouble after clearing bit 11, change your clock polarity setting.

  • Hi,

    Thanks for the quick answer. The problem was with the clock and data polarity. The correct value are CPOL=0 and CPHA=0. So clock polarity low and data valid on leading edge.
    I also tried keeping the programming bit and it still work but I don't need it anyway once it is programmed.

    Thanks,
    Jerome

  • Great news!  Thanks for letting us know.