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.

ADC error and correction in TMS570ls3137

Other Parts Discussed in Thread: TMS570LS3137, HALCOGEN

Hello,

We are using TMS570ls3137 processor and reading precision 1.5Vdc through the ADC input. When I read the converted digital data, it shows 1.52Vdc instead of 1.5Vdc. Concern is that getting 20mV error in ADC value though we are using 12 bit mode

I used precision digital multimeter to measure the ADC input voltage and reference voltage (3.00Vdc) to ADC . Both values are very precise. Can you clarify whether we need to any calibration or simple noise cancellation technique to get the precise voltage or Ground noise causing  this issue?

In addition, Is there any way to read the reference 3.00Vdc in ADC register, if so please brief

regards,

  • First, I would suggest to check if the deviation is caused by noise. You can make some large number (1000 for example) of conversions and calculate the mean and standard deviation. I am not aware of any method in finding the actual value of the reference voltage.

    I believe that long term average is the method used in precision digital DC meters.

    Thanks,

    Zhaohong
  • Hi John,
    My company has spent a lot of time investigating ADC accuracy issues. If you are sampling both ADC1 and ADC2 at the same time there is an issue which causes a small crosstalk error. Details can be found in a post here: http://e2e.ti.com/support/microcontrollers/hercules/f/312/t/314565.

    Another thing that you need to be careful of is ensuring that the ADC reference voltage is not greater than the ADC supply. However I think this issue would probably cause a low reading rather than a high reading. However the accuracy of your ADC conversion is only as good as the accuracy of your ADC voltage reference.

    Also, you need to run the internal ADC calibration routine at power on. Again this probably only accounts for 1 or 2 bits so not the source of your problem.

    You need to ensure that the capacitors on the ADC inputs are correctly selected for your conversion time. There is a TI article on this here: http://www.ti.com/lit/pdf/spna118

    It appears that you are using a 3V ADC reference voltage. For optimal accuracy I would suggest that you use a 5V reference.

    As Zhaohong has stated, there is no direct way of reading the ADC reference voltage. Of course you could divide it down using a resistor network and sample on another channel but all that would tell you is the tolerance of your resistors since everything is measured relative to the ADC reference voltage.

    Regards,
    Richard
  • Many thanks Zhaohong and Richard.

    We are measuring the DC signals, so I believe that sampling at fast rate and averaging will provide precise measurement.

    Can you please tell me how to set the sample rate in TMS570LS31317 processor and how to adjust for high sampling rate.

    Do you suggest any simple algorithm for noise power calculation and cancellation in ADC, Any ideas?

    regards
  • Hi Johnson,

    Unfortunately there is no alternative but to read the manual. You need to look at the Technical Reference Manual which is at http://www.ti.com/lit/pdf/spnu499. You can use Halcogen (http://www.ti.com/tool/halcogen) to generate the code for you once you have determined what settings you require.

    You should be able to achieve a conversion time of under 1 us. I can't help you with power calculations.

    Regards,

    Richard