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.

20 bit resolution without Toggling in ADS1230

Other Parts Discussed in Thread: ADS1230, TL431

Hey All,

 I am using ADS1230 in weigh application  Where i am using Interrupt method to polling the data from ADS1230 and my exitation  voltage  for ADCis 5V.  Here when i am polling the data it is toggling +- 7 counts because of this i could not able to get 1% accuracy. Can some body suggest me what is the procedure that i need to follow to get fixed count.

 

My Code: i am giving 20 Clk to get data after that 2 more clk as given in the datasheet. I am not doing offset calibration if i have to do is it before the reading or after the reading.

 

Kindly advice.

 

Thanks in advance,

Mani.

 

 

 

 

 

  • Mani,

    +/- 7 counts may not be that bad depending on how you have the ADS1230 configured.  You will see approximately that much noise if you are at PGA=128 and data rate of 80SPS.  See the noise plots on page 7 of the datasheet.

    You may also have noise from your power supply/reference.  Poor board layout can also increase noise.  You can check the noise best case by shorting your inputs together (0V differential) and then biasing the inputs at 2.5V.  If you are not reaching the desired noise levels specified in the datasheet, then look at improving your power supply/reference and layout.

    Also, you should always do the offset cal first thing.  This won't help the noise, but it will give you a result much closer to what it should be.

    Best regards,

    Bob B

  • Hi Bob,

    Thanks a lot for your feedback. As you mentioned i have implemented Offset Calibration before processing the ADC Read. Regarding my power supply which is constant 5V Ref from TL431for ADC and to my MCU. I have one doubt on my board i have made the single GND for AGND and DGND is it cause the problem and more over my ADC is separate and my power supply board is separate [ two different PCB's]. I am working on 128 gain and 10SPS.

    Kindly let me know your inputs here to achieve 1g Accuracy.

     

    Regards,

     

    Mani

     

     

  • Mani,

    Please review the ADS1230REF user guide:

    http://www.ti.com/lit/pdf/sbau125

    This is the reference design using the ADS1230 for weigh scales.  Notice the layout and the capacitors used at the input of the ADC.  The TL431 is noisy (even though it says low noise).  You need a better reference (REF5050 for example) to get the kind of performance you desire.  At the very least you need a good linear LDO to drive the ADC power and reference pins.  You also need to make sure you are using high grade caps (C0G and poly) at the ADC inputs.  The BOM in the user guide will help you see the kind of caps you need.

    Best regards,

    Bob B

  • Hi Bob,

    Thanks for your reply. We are using first order LPF to reduce noise at input [ 0.1mF and 220 MH] . I have refer the code send by you you are processing the input with some standard deviation and other method.And we have tested with LDO also but result is same.

    Regarding Dout processing which is advisable either Polling method [ Reading Port value Zero] or Interrupt method and i have not connected any cap in my schematic i have directly connected Dout to MCU pin.

    Can you guide me whether we need to use any kind of data processing [ Mathematical calculation] to take care of Bit  toggeling.

     

    Looking for your feedback.

     

    Regards,

    Mani.

     

     

     

     

  • Mani,

    I'm not sure how much more I can help you without schematics, layout and load cell specifics.  Best case with shorted inputs you will measure 198nV peak to peak noise.  This means in the best case you will see 2-3 codes of variation, or toggling as you call it.  You will not see a rock solid value.  Even though you can have 20 bit resolution doesn't mean that can achieve 20 bit performance.  At PGA of 128 and a data rate of 10 SPS, you will have ENOB of 19.8, but noise free bits of 17.5.  You might improve this some by averaging the data, or by possibly processing this further with a DSP, but generally this adds quite a bit of time to getting the actual result, and this may be unacceptable in the end.  In other words there are a lot of trade offs.

    In the ADS1230 datasheet, review the application example on page 20.  You will see that noise free counts depends on the best case of the converter and filtering/averaging times the ratio of the maximum deflection of the load cell and the full scale input of the converter.  So you can see that you will not be able to achieve 2^20 range of codes, even though you have a 20 bit resolution.  In the example case they showed effective noise free bits at 18.5 (17.5 +1), which still has 1.5 bits of noise, and the output will still vary by a code or two and will not be a constant value.

    Best regards,

    Bob B

  • Hi Bob,

    Thanks a lot for your feedback and support. I have understand the practical difficulty of yours and thank you very much for your great support.

    Please let me have below inputs from your side.

    1. I am aware that we cannot get 20 Bit accuracy and Noise free bit only up to 17.5 Bits. My objective is trying to achieve 1g Accuracy and my load cell is 55Kg and my setting is 128Gain and 10SPS.

    2. I am trying to work on 18 Bit Accuracy with stable count which will help me achieve stable count. Here i need your help for below,

    My present data processing,

    1. I am waiting for Dout become zero in interrupt and 26 sclk with Dout  = 1 for offset calibration.

    2. After that small delay routine i am taking 20 bit data out by giving 20 sclk and 2 more clk extra as mentioned the data sheet.

    3. In that 20 bit i am processing only 18 bit data.

    4. To do averaging any recommendation from your end. [ Method]

     

    Is above procedure is ok or i need to follow any other method. Please advice.

    My doubt as per your schematic you are also connected Dout to MCU port pin. How you are monitoring Dout High [ Data preparation] Dout Low [ Data Ready] to process ?

     

    Regards,

     

    Mani.

     

  •  

    Hi Bob,

    Thanks a lot for your feedback and support. I have understand the practical difficulty of yours and thank you very much for your great support.

    i have attached schematic for your reference.

    Please let me have below inputs from your side.

    1. I am aware that we cannot get 20 Bit accuracy and Noise free bit only up to 17.5 Bits. My objective is trying to achieve 1g Accuracy and my load cell is 55Kg and my setting is 128Gain and 10SPS.

    2. I am trying to work on 18 Bit Accuracy with stable count which will help me achieve stable count. Here i need your help for below,

    My present data processing,

    1. I am waiting for Dout become zero in interrupt and 26 sclk with Dout  = 1 for offset calibration.

    2. After that small delay routine i am taking 20 bit data out by giving 20 sclk and 2 more clk extra as mentioned the data sheet.

    3. In that 20 bit i am processing only 18 bit data.

    4. To do averaging any recommendation from your end. [ Method]

    5. please give your input about REFN and REFP 

    Is above procedure is ok or i need to follow any other method. Please advice.

    My doubt as per your schematic you are also connected Dout to MCU port pin. How you are monitoring Dout High [ Data preparation] Dout Low [ Data Ready] to process ?

     

    Regards,

     

    Mani.

    3386.ads1230.pdf

     

  • Mani,

    First thing, you have a bunch of 0.1uF caps.  What are these caps, are they multi-layer ceramic?  To get data sheet performance we used C0G multilayer ceramics as a very minimum.  As it is not possible to use C0G for values larger than 10nF, you need to use some sort of poly type cap, or suffer degradation.  You may want to look into using the 0.1uF cap we used, which is a PPS film cap of 1210 smd size.  Also, you might try using a larger value capacitor at the reference.  Maybe 2.2uF or larger.

    I'm going to assume that your load cell is 2mV/V so that 55kg give a deflection of 10mV.  55kg = 10mV, which means that 1 gram would be equal to 10mV/55000 or 187nV.  From Table 1 of the datasheet there is 198nV of noise.  So, best case you cannot achieve what you want to do with a hardware only solution.  If you have hardware issues, like cap noise, things could be even worse.

    We process all 20 bits, not just 18.  Also, we average by adding together X number of readings and then dividing the sum by X.  Simply truncating the last two bits does not give you a good average.  You will have to try out various number of readings to see which is best for your situation.  For example, if you are reading 10SPS and average 100 readings, it will take 10 seconds for a reading.  You might try something like 4 readings.

    As far as the reading of data, we look for DOUT/DRDY to go low which triggers an interrupt.  We then read the data back immediately.  We do not use any power down or sleep modes.  You only need to do offset calibration once when you first start your system, and at any other time you see large variations in temperature or if you change gain.

    You may also want to review a couple of application notes regarding averaging.  SBAA092 and SBAA124.  These were written with the MSC12XX products in mind, but the information should help you.  The documents can be found at:

    ftp://ftp.ti.com/pub/data_acquisition/MSC_CD-ROM/Application_Notes/

    Best regards,

    Bob B

  • Hi Bob,

     

    Thanks a lot for your mail feedback and kind support. I am using box type capacitor in my application and as per your suggestion i will use 2.2micro f and above poly cap also and will let you know.

    1. As per the data processing i am also working on interrupt based and taking 10 20 bit data and averaging it and display.

    2. Each data process time i am doing offset calibration before as per your suggestion it is only required at start up or at any changes happen there.

    3. I need one feed back from you regarding REFP and REFN connection i have referred one of your schematic where you have used with Resistor capacitor combination for noise reduction. Is it necssary to follow or any other suggestion you can give me to better my schematic.

    Thanks for your app notes i will try to implement the same.

     

    Best Regards,

    Mani

     

     

     

     

     

     

     

  • Mani,

    On the reference board we provided a design we know works.  In some cases the filterning may not be needed if the reference is clean enough.  Please refer to the user guide to see part placement and layout.  I really can't tell you what you need to do for your design.  You have to investigate it yourself.

    As a point of reference, we did several prototype boards before we achieved the results we wanted.  For example, you need to measure the reference noise.  You also need to look at the vref pins to make sure the bulk cap is large enough and placed close enough to the pins so as to provide adequate current.

    Another way to see if you have reference (layout or other) issues is to bias the ADC inputs at 2.5V and short them together.  You should get the results shown in the datasheet.  If you don't, you need to fix the noise problems before you try to get the load cell to work.

    Hope that helps.  It is not an easy task to get the level of performance you are trying to achieve.

    Best regards,

    Bob B