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.

ADS8317 nonlinearity at code -1

Other Parts Discussed in Thread: OPA2365, ADS8317

My ADS8317-based project is almost done, thanks also to the help I got from here. Everything is already working well, the values I get are generally sensible, but I noticed one (final?) problem:

When I read a linearly decreasing voltage around 0, the converter performs as expected down to a code of -1. However, it gets "stuck" there for around 64 codes, before resuming to go down with -2, -3 etc.

I am sure that this is a problem that manifests itself inside the ADC (i.e. not a problem with the incoming signal) because while the ADC is stuck on code -1, it will constantly report this value without any noise. If the problem was outside the ADC, I should at least be seeing the inherent noise of the ADC in my measurements. I have also confirmed on the oscilloscope that the ADC actually outputs this code, so this is not a digital interfacing issue.

The ADS8317 is running from a 5V supply bypassed with 100nF. The reference voltage is 1.25V, driven by an OPA2365 through 10 Ohm and buffered by a 47µF ceramic capacitor. The negative input is directly connected to the ref input, while the positive input is driven by the same amplifier IC, with a 82 Ohm/4.7nF RC filter. SPI clock rate is around 4.6MHz. Since the RC filter on the positive input is relatively slow (to get rid of an unrelated noise issue), I wait a bit after pulling CS low to extend the acquisition time to ~5µs.

I have heard of nonlinearity issues due to e.g. bad reference design. Could this to be an issue here, or is it more likely that I e.g. fried the IC while hand-soldering or subjected it to ESD while probing around? I'd check the latter by replacing it, but I'll have to order new ones first. And I already replaced it once because the first one would not work at all... maybe they are just too sensitive for my clumsy prototyping? :)

However, is there something I can try while waiting for the new parts, to check other potential error sources?