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.

TLA2528: Use without clock stretching when oversampling

Part Number: TLA2528
Other Parts Discussed in Thread: ADS7138

Simple question: Is the TLA2528 fully usable on devices that don't support clock stretching? In the datasheet on page 15, it states "If SCL stretching is not required during averaging, enable the statistics registers by setting STATS_EN to 1b and initiate conversions by writing 1b to the CNVST bit".

TI has known for over 4 years now that this section in the datasheet is completely wrong (https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/903722/tla2528-i-can-t-find-the-stats_en-bit-mentioned-in-the-text-in-the-registers) and yet it has not been updated. Why? Surely a $150B company can afford to hire people to fix incorrect data sheets.

Can I use CNVST from the GENERAL_CFG register to trigger a one-shot conversion and poll OSR_DONE in SYSTEM_STATUS? In the previous linked issue, this question was asked but was not answered.

Clock stretching is a weak point in the I2C specification and is a common implementation issue. This is a famous issue for the Raspberry Pi and a sticky point for many other controllers (including most USB to I2C devices). The simplicity gained by not needing polling is drastically overshadowed by the limitation in hardware support.

  • Hi Kiran,

    Welcome to our e2e forum!  We'll get the datasheet updated after the holidays.  My understanding is that the TLA2528 will stretch the clock until the conversion is complete.  The ADS7138 has the STATS_EN feature which can get around the clock stretching issue.

  • I'm glad to hear the datasheet will get updated. However, I'm still confused by "the TLA2528 will stretch the clock until the conversion is complete". Is this true also when requesting a conversion with setting CNVST or only when providing a "conversion start frame" from 7.4.2? If it is true for both, what are the purposes of the CNVST and OSR_DONE bits? CNVST isn't used in either the one-shot or auto-sequencing flowcharts. Indeed, it is confusing why you'd want to asynchronously start a conversion if not to poll some status bit to avoid clock stretching.

    Regarding the ADS7138, I'm glad it's documented that one can avoid the clock stretching, but it is more than double the cost of the TLA2528 - which I can't justify. At that point, it would make more sense not to use oversampling on the device at all and instead average on the I2C host.

  • Hi Kiran,

    I appreciate the feedback and will pass it on to the design team.