Other Parts Discussed in Thread: TLV773
First, let me provide some backgrounds.
In one of our 4-20mA current loop-powered sensor products, we utilize Analog Devices' AD7989-1, along with several op-amps and an MCU, to sample sensory signals. The product is already in low-volume production, and we wanted to lower the BOM cost since the ADC provided by ADI is quite costly. We consulted TI technical support and identified the ADS8887 as a potential alternative.
After carefully reviewing the datasheets of both ADCs, we concluded that they are pin-to-pin compatible, software-compatible (at least in our use case), and similar in performance. We applied for free samples from TI and, upon receiving them, promptly swapped the ADC (hand-soldered). To our delight, the product performed as expected with no noticeable performance issues. We nearly proceeded to order a full reel from our distributor before discovering a disturbing issue I'm talking about here…
By frequently power-cycling the product, there’s a 5~10% chance that the ADS8887 somehow becomes ‘stuck’ by returning all-zero data, and the total current consumption goes up by about 2mA (which is critical in a current-loop powered device). Since the product PCB is tiny and void of any test-points on the SPI bus, we are unable to fire up logic analyzer on it. However, I've programmed the firmware and am quite experienced and confident that it won't be an issue here (forgive me for any perceived arrogance). The firmware has been thoroughly tested, and the logic has been carefully debugged on previous occasions using the ADI's part, which has never exhibited such an issue.
When the ADS8887 got ‘stuck’, resetting the MCU (no matter how many times) doesn’t recover it, the only way to recover is by power cycling the device, which affirms that the issue isn’t firmware-related.
We also suspected at first that the hand-soldering might somehow damaged the chip, so we soldered another 3 products via SMT and reflow oven, using our best efforts, and all 4 products now have the very same issue.
Furthermore, we've made another crucial observation: the method of power-cycling significantly affects the occurrence of the problem. If the power (the 24V current loop) is cut and resumed using a circuit breaker (such as a push-button), the issue doesn’t show at all, and we tried at least several hundred times. But if a loose hook or bare wires is used instead (creating several transients upon contact), the issue can be replicated fairly quickly.
Note that the sampling rate of the ADC is roughly at 30ksps.
Currently we have tried the following tricks, but none of these shows any improvement or mitigation:
1) Adding TVS diode (SZMM3Z4V7) between PWR_3V3 (as ADS8887's reference) and GND.
2) Replacing all or some of the 105 (1uF) capacitors to 104 (0.1uF).
3) Reducing the number of 106 (10uF) capacitors on PWR_2V5 to 1.
4) Using higher voltage (3.3v) for the PWR_2V5 network by replacing TPS78225 to TPS78233.
We're reaching out for assistance from TI as well as e2e community, any guidance or assistance in resolving this issue would be greatly appreciated!