TI E2E Community
Precision Data Converters
Precision Data Converters Forum
ads1230 interfacing 8052
My ADC board is working fine,But some of my customers complainted that after power on the weigh scale,the value slightly increased without any weight on the loadcell upto 1 gm for 10kg/1gm scale and 5 gm for 30kg/5gm scale within 1 - 2 hour.So the customer needs to tare after 1 - 2 hour to make it zero.So i observed my board,s internal counts and it seems increasing slightly upto some level.What is the cause of this.How can i arrest this problem.
And also if i calibrated a 30kg/5gm scale with 20 or 30 kg weight ,i can achieve precision for all the weight above 500gm.But if i put some 10 or 20 gm on the loadcell it shows the precision 05 or 15 gm,why this happening,Please suggest me some ideas,expecting your valuable reply...
This sounds like it may be a thermal equilibrium issue. Can you share the details of your layout and packaging with us?
As per your information,pcb layout file has been attached with this mail.
C8,C17,C18,C19=0.1 uF(box type capacitor)
Please go through that and give me necessary instruction.I m expecting your valuable reply.
There are a couple of things that are confusing to me. The layout doesn't appear to match the actual pinout of the ADS1230. Can you send me your schematic? One thing that might be a problem is your cap values. If you use both differential (cap across the inputs) and common mode caps (caps from inputs to ground) the common mode caps must be at least 1/10 the value of the differential caps or you will see some dramatic drift issues. So if the differential cap is 0.1uF, the common mode caps should not be larger than 0.01uF.
As per your information,schematic has been attached with this mail.I m facing the following issues :
1) The counts are gradually increasing upto 10 counts within 5 - 6 hours.So this reflects on the weight value.But i observed that, its due to temperature variation inside the weigh scale body(Regulator Ic temperature variation,when it connected to main supply).Because when the weigh scale operates on battery there is no such type of drifting.
And if i connect electrolytic capacitor(100uF or 10uF) across the AVDD and DVDD for filtering,the same drifting issue was happening(during battery operation also).So later i removed those electrolytic capacitor and placed with 0.1uF capacitor.Now the counts are maintained in between + or - 1 or 2 counts drifting.....Is it possible to arrest this small drifting completely.
2)After calibrating using standard weight,the weight shows on display is lesser than the standard weight.
For Example:After calibrating a 10kg/1gm scale(load cell capacity is 15kg) ,if i put 1kg on the load cell it shows only 0.999gm on the display.Is this due to the counts fluctuating + or - 1 count.Also I m little bit confused that,my averaging process is perfect or not.Below there shows the outline how i m taking the values,Please verify..
i)After offset calibration,i take 20 bits of useful data.
ii)After taking 20 bits of data,i divide this with 4.
Therefore display weight=(ADC_count - Zero_count - TARE_count) * ((Cal_weight)/(span_count - zero_count))
So in practical, display weight=(6000-2000)*500/(6000-2000)=500gm (TARE_count not mentioned)
so if the ADC_count is fluctuating 1 count and hence the value is 5999,the value seems
display weight=(5999-2000) * 500/(6000 - 2000) = 499.875 gm, So if i take the integer value i get the value 499gm only.So 1 gm is missing.
How to fix this problem...Please suggest me some ideas...I m expecting your valuable reply...
Thanks for the schematic. You might want to consider placing a 0.01 to 0.1uF cap close to the reference input pins.
I'm not sure about your averaging. Did you mean to say that you are taking four readings (each 20 bits) adding them together then dividing by four? Are you doing a running average?
When calibrating, have you waited for the input to settle for both analog and digital filters before averaging the readings? You must wait for the input to settle before averaging. Averaging helps with noise, but will not correct settling error.
Can you clarify one other thing...in your equation, is the span_count the count with the calibrated weight applied? I normally think of the span as being the number of counts adjusted by zero, or the measurement range of counts. You have to be really careful with TARE and ZERO counts so that your equation is adjusting correctly.
It appears that noise or settling may be an issue initially. For example, if the reference is not stable or the filtering not settled when calibrating you will see an error after the reference is stable or the filter is settled. I think that is why you see a difference with the larger caps. With the smaller caps the supply settled faster. As the supply is being used for your reference, this will shift slightly over time.
Thank you for your reply..I had provided a 0.1uF capacitor,but it is not closer to reference pin(around 1 inch distance).would this affect the adc performance..?
Could you please explain, how to perform averaging,Actually i m not doing any averaging.I m directly taking the value after 20 clock pulses and process it,to display the weight and also to achieve good speed at 10SPS.(was it a wrong procedure).
Here after getting the value (after 20 clock pulses) i divide that value by 4,to view the counts in display before doing calibration..
Does Averaging reduces the processing speed of the controller .?
What is running average ?,could you please give me the details..!
I m expecting your valuable reply..
Having the cap close to the reference pins allows charge to be available on demand as needed, and also allows for stability when the reference is being sampled. If you make changes to your layout, you should consider moving the cap closer to the pins.
I've attached a link to an application note about averaging that was written for the MSC12xx microcontrollers, but the principles still apply.
I'm not totally clear on why you are dividing your result by four. This shifts your result to the right by two, which essentially makes your result 18 bit instead of 20. You also are adjusting the full-scale range. This is ok to do, as long as all your calculations are also adjusted appropriately. Are you just throwing away noise bits?
if you throw away two bits of resolution, and the adjusted lsb is toggling then from the intial measurement you are seeing noise of 3 bits from the original measurement. From the datasheet at 10 sps and gain of 128, noise free bits are 17.5. This is the best the ADC can get under the best of circumstances. Any layout issues, reference noise, noise at the inputs, etc., will reduce this further. There will also be some drift over time due to temperature. Running the self offset can help with some of these effects.
Some averaging can help you, but this takes time. At 10 sps, and four conversions averaged effectively reduces the conversion result rate to 2.5 sps. There will be a little computational overhead involved, but this should not slow things down below 2.5 sps.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.