Post Go back to editing

Problem in reading all channel of LTC2497 in real time


Tarun Garg this side. I am using LTC2497 IC. I want to read all channels of IC.

I want to know, how much time will it take for controller to read all channels from IC. Because as per LINDUINO sample code I am getting very slow response.

I have following queries :

In the sample code, there is delay(170) function mentioned. so when I consider delay (170) as 170 us then I2C bus get hanged, but when I change this delay to 170ms then it is Ok. I get some values in my read variables. but there arises new problem; values doesn’t store in respective variable allocated for each channel.

Say, CH1 – var1, CH2 – var2 and so on…. But I get value of CH2 in Var1 and CH3 in Var 2., then to overcome this I need to use throw out last read function, as per sample code. but this line add additional delay in the each channel read from 170 ms to 340 ms.

Considering these observations, Calculation doesn't fit for real time application:

time taken by LTC2497 IC for giving digital output for single channel  - 340ms

for all 16 channel - 16*340 = 5440 ms = 5 seconds 

Therefore to read one sample of all channels of  one IC - takes 5.5 seconds, 

But in practice, we can't rely on one sample. Generally, we take average of samples.

In doing so, the time will increase to consider final output.

say: 8 samples average for all channels will take: 5.5*8 =44 seconds.

Anyone have idea, please help as my project has got stuck due to this non-real time performance.

I have two such ICs in my bus, therefore to read all 32 channels , it will be a big delay.because in round robin approach for reading the 32th channel, processor will  have to wait for around 80 seconds.

Is there any way by which we can cut short this Complete IC reading time?

  • Hi,

    We will contact the responsible product apps to address this concern. We'll get back to you as soon as we can. 



  • The conversion time for each channel is a maximum of 149.9ms. Add to that the time to program and read the ADC. Round it off to 150ms per channel and multiply that by 8 or 16 depending on whether single-ended or differential reads are being done.

    The ADC actually does averaging for each conversion so averaging additional samples may not be necessary.

    If this too long, a delta sigma ADC may not be appropriate for you application. Something like the AD4696 which can do a conversion in 1us may be more appropriate.

  • Hello,

    Does it mean, the problem can't be resolved with the existing part no. LTC2497 ? it is due to limitation on conversion time ?

    you are saying, I can rely on single reading for processing in my application program, is it so?

    Even if , I can take single reading why does after some arbitrary time, my I2C lines get hanged? 


    Tarun garg

  • Yes, the problem cannot be resolved using the LTC2497.

    You will have to determine the suitability of the part for your application. I am saying that the LTC2497 does some averaging during its normal operation. You will have to determine if that is adequate.

    With the information provided, I cannot determine why the i2c bus stops working.