This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

24-bit A/D converter noise free resolution help

hi,
i am developing a weigh scale application using Cirrus Logic 5532 24-bit ADC in unipolar mode.the output i am getting is very unstable (flickering on display). Can anybody please tell me how to get a stable count.

Parents
  • my display is flickering in +/- 7 counts range with occasional surges

    +-7 you may be able to (almost) average out, but the "occasional surges" need redesign/relayout you can not get rid of that in software. It HAS been tried, believe me, the costliest part of a scale is the analog, the $0.83 uC does not matter. Every scale manufacturer and his brother is trying to get by with a cheaper analog section, last I checked, no one had succeeded.

    One experience: if the chopper for the analog is not synchrounous with the uC clock you may get "funny things" I had to change a free running oscilator for the CSA to T2out.

    Erik

Reply
  • my display is flickering in +/- 7 counts range with occasional surges

    +-7 you may be able to (almost) average out, but the "occasional surges" need redesign/relayout you can not get rid of that in software. It HAS been tried, believe me, the costliest part of a scale is the analog, the $0.83 uC does not matter. Every scale manufacturer and his brother is trying to get by with a cheaper analog section, last I checked, no one had succeeded.

    One experience: if the chopper for the analog is not synchrounous with the uC clock you may get "funny things" I had to change a free running oscilator for the CSA to T2out.

    Erik

Children
  • You are getting +/- 3 bits (i.e. 0..7) with occasional surges.

    Assuming you really have done everything possible to get the best possible signal, the only thing left is DSP.

    Digital Signal Processing sounds daunting, but don't be put off: the on-line book I mentioned is just what you need and it is the most readable text on the subject I have ever seen. If you are new to this, a little investment of effort now will pay good dividends in the future.

    http://www.dspguide.com/pdfbook.htm

    After looking at chapter 2, read chaper 15.

    The good news is that any amount of genuine random white noise can be eliminated from a signal; a moving window is the ideal algorithm; and a moving window is as simple as DSP gets! The bad news is that this may require in infinite number of samples to be processed. And, of course, your noise may not actually be random white noise.

    "The amount of noise reduction is equal to the square-root of the number of points in the average. For example, a 100 point moving average filter reduces the noise by a factor of 10."

    For your application, a moving average filter should be just the ticket. You will need a window size of about 100. 127 would be a good choice for a processing a ring buffer. To get a reasonable response, you will have to take samples every 10ms or more. Do note that a moving window is quite different from simply taking the average of n samples.

    Multiple passes, i.e. feeding the result of one moving average window into another moving average window, will give a nice smooth response. If you are not constrained by memory limitations consider up to four passes. While this does not actually improve the noise rejection, the smooth response should be just what is required for display purposes.

    Incidentally, I have some digital kitchen scales at home - I don't know how they work in detail, but they behave in a manner entirly consistent with this sort of implementation.

    Enjoy.

  • genuine random white noise
    Is rarely the problem with a scale. As Graham stated, that can easily be filtered buy moving averages (se my pseudocode above).

    The real problem (aside from drift) is the spurious noise. Many techniques have been tried and failed because someone putting something on the scale look exactly like spurious noise and a scale that takes many seconds to show the weight does not have many applications outside the laboratory. For a laboratory scale sometimes the ultimate precision is more important than fast weighing.

    Zero drift is such a problem that autocalibration is a must, for some reason full scale drift is not that big a problem.

    Erik