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.

ADS7067: Unable to read from certain channels when daisy-chaining devices

Part Number: ADS7067
Other Parts Discussed in Thread: ADS7066

I am unable to read from certain specific channels when I have 5 ads7067's in series, specifically channels 1, 4, and 7. I know I am configuring the devices properly because I am able to read/write to all of the necessary registers properly, and I am getting the proper data from channels 0, 2, 3, 5, and 6 from all of the devices so I am not sure what the issue could be. I have multiple boards that are all having the same issue, and I have checked my software and hardware for any obvious issues and there is nothing clearly wrong. I am getting an all zeros response when I try to read from these channels on every device in the chain. I have also tried appending the channel ID to the 16-bit response, and it is not even reading out the channel that I am requesting.

Anyone have any ideas or know anything about this chip in particular? I have had issues with the ADS7066 before, but when using that chip with the same software but only 1 device at a time I am able to read all of the channels just fine.

  • Hi Tom,

    Thank you for your post.

    Can you please share a complete list of the register settings you are using to configure the ADS7067 devices? Specifically, which channel selection mode are you using?

    Regards,

    Ryan

  • I am using the manual selection mode to read from the analog inputs. I initialize the device with the equivalent of 

    ADCwrite(0,1)

    ADCwrite(1,0x88)

    Where the first value is the register and the second value is the hex I want to write to that register. Then I can use ADCwrite(0x11,i) to write the channel I want to sample, and clock the SPI clock to get a value out of the device

  • Hi Tom,

    So in your initialization sequence, you are just clearing the "brown out condition" bit and then selecting the internal reference voltage with 2x VREF input range. The rest of the devices settings remain in their default condition?

    I know you mentioned trying the Channel ID bits - when you say you're not measuring the selected channel, do the ID bits show an unexpected channel ID or nothing altogether (meaning all zeros, same as the data)?

    What is the voltage applied to each of the input pins? If you're not already, I would suggest applying a known DC voltage to each of the channel inputs, such as a mid-scale positive voltage to the even channels and full-scale or AVDD voltage to the odd channels, and repeat your testing. It may help to reduce the system complexity to one or two ADS7067 devices for now. 

    Do you have a logic analyzer which you could use to share a timing capture with /CS, SCLK, one SDI and one SDO pin (say the leading device in the chain)?

    Regards,

    Ryan