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.

TMS320F28377D: Tricks to increase the accuracy and resolution of ADC measurements for very low ripple power supplies

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Hello!

I am designing a power supply and using the F2837xD for control. I need to achieve a maximum voltage ripple of 100mV for an output voltage of 6kV. 

For an ADC to achieve the voltage resolution required, the following equations hold: ADC Resolution: 6kV 100mV = 60K million levels. The DSP far as I remember is 12 bits maximum.

(4.1) For an ADC with 12 bits: 2^12 = 4096, but I would require an ADC with at least 16 bits of information to give 65,536 levels. 

A 12 bit ADC is therefore not a feasible way of measuring the cathode voltage to an accuracy of 100mV as it would not realistically be able to measure 60K levels accurately.

With this series of DSP, can anyone recommend any ways to achieve this accuracy? Is there any ways to use multiple 12 bit ADC's, for example triggered in sequence? Each ADC has 8 channels, and there are 4 ADC's on the board. There must be some way to get over this limitation of standard feedback control when the DSP has so many channels available for sampling, I just can't get my head around the best solution on how to trigger them to achieve it? Can timers be used to stagger the ADC's and oversample to this type of level of accuracy?

I would ideally be able to push beyond this 60K levels and 100mV ripple, to even say 10mV, which would require 600K levels, but I may be being optimistic there?

Any feedback is appreciated!

Regards,
Joel

  • This is exactly what I want: RF sampling: interleaving builds faster ADCs - Analog - Technical articles - TI E2E support forums

    This shows how the ADC's are clocked at same frequency but are phase shifted by N number of ADCs that are used. With this, alongside oversampling of the signal in each of the ADC's, I believe I can get the desired result.

    Can anyone help with how this can be performed in the C2000 F2837xD MCU?

    If I oversampled each ADC using all 8 channels, this would give 8 * 2^12 which is 32768 level of information. 

    If I then used 3 of the 4 ADC's in an interleaved format, this should give me 3 * 32768 levels of information, or 98304. For a 6000V output this should give a possible voltage resolution of 61mV. Do these calculations look correct?

  • Joel,

    It sounds like you might be mixing the characteristics of sampling rate with precision. The RF article is talking about increasing the raw sampling throughput of the system to reconstruct high speed signals, but the extra samples don't necessarily lead to increased precision. For example, 5 measurements taken with a poorly calibrated instrument would not necessarily be more accurate than just 1 measurement.

    Oversampling can be used with signals carrying white noise to improve the effective precision of the ADC, but there are limits to how well this works. I don't think you would be able to achieve your goal through raw conversions.

    It would probably be more fruitful to use front-end circuitry to condition the voltage feedback signal. For example, an attenuated version of the output can be sampled using one ADC channel to determine the DC level, while an AC-coupled version of the output (with positive offset to match the ADC input range) can be sampled using another ADC channel to determine the ripple. If the ripple is too slow for AC-coupling, you can use a less attenuated version of the output with negative offset.

    You can find ADC examples in C2000Ware:

    ~\C2000Ware_XXXX\driverlib\f2837xd\examples\cpu1\adc
    ~\C2000Ware_XXXX\device_support\f2837xd\examples\cpu1

    -Tommy

  • "It would probably be more fruitful to use front-end circuitry to condition the voltage feedback signal. For example, an attenuated version of the output can be sampled using one ADC channel to determine the DC level, while an AC-coupled version of the output (with positive offset to match the ADC input range) can be sampled using another ADC channel to determine the ripple. If the ripple is too slow for AC-coupling, you can use a less attenuated version of the output with negative offset."

    First of all let me thank you for this very detailed reply to my issue. It is very helpful. I must say however I am not very well versed in digital control and use of ADC as my expertise is more in design of power supplies and standard analogue control chips. I am converting to digital control to test the performance. 

    i) Can AC coupling be achieved with a simple capacitor arrangement or is there a better solution to use with the DSP?
    ii) Does AC coupling cause some offset, and that's the reason why positive offset to match the ADC input range is required? 
    iiI) How does sampling both the ripple and the DC voltage increase accuracy of the measurement? Is it because the ripple can be sampled with the 16-bit differential sensors?
    iv) I am fairly sure the ripple is fast enough for AC coupling, but if not, do you mean taking two samples of the DC output voltage? If so, what does this achieve in regards to increasing measurement accuracy?

    Apologies for all the questions, I am just very interested in this solution. 
    Thanks for your help thus far.

    Regards,
    Joel

  • I must say however I am not very well versed in digital control and use of ADC as my expertise is more in design of power supplies and standard analogue control chips.

    Keep in mind that my background is primarily digital so my front-end recommendations may not be optimal.

    i) Can AC coupling be achieved with a simple capacitor arrangement or is there a better solution to use with the DSP?

    Yes, I was thinking of AC-coupling with a capacitor and buffering + conditioning with a front-end amplifier.

    ii) Does AC coupling cause some offset, and that's the reason why positive offset to match the ADC input range is required? 

    Ideally, the AC coupling would remove all of the DC components of the signal so you would end up with a bipolar signal with common-mode voltage at ground. The embedded ADC is unipolar so the bipolar signal will need positive offset to bring it into the valid unipolar input range.

    iiI) How does sampling both the ripple and the DC voltage increase accuracy of the measurement? Is it because the ripple can be sampled with the 16-bit differential sensors?
    iv) I am fairly sure the ripple is fast enough for AC coupling, but if not, do you mean taking two samples of the DC output voltage? If so, what does this achieve in regards to increasing measurement accuracy?

    My thinking is that you can optimize the usable precision of the ADC by discarding the irrelevant portions of the feedback. For example, with a fixed 6kV output with 100mV ripple, you would only need high precision in some reduced DC spec range (like 5.999kV to 6.001kV). If you are outside of that range, the output is already out of DC spec so the ripple is probably the lesser concern.

    On further reflection, a diff-amp of the feedback voltage vs the feedback representation for 6kV would probably be a cleaner solution than AC coupling.

  • On further reflection, a diff-amp of the feedback voltage vs the feedback representation for 6kV would probably be a cleaner solution than AC coupling.

    Can you expand on this point, please? What would be the benefit of comparing two different DC measurements of the same signal? 

  • Hi Joel, Tommy is our of office today but should be able to get back to you tomorrow.  Perhaps Tommy meant something else, but in general differential signals offer more noise immunity by canceling unwanted signals that are common to the positive and negative inputs.  Perhaps he intends to leverage this to remove the AC component.

  • Joel,

    A diff-amp would be helpful for shaping the Vout error into the ADC input range. If you have a fixed Vout of 6kV, you can use a predetermined reference voltage that matches the feedback value for (6kV - Error Spec - Margin) and diff it against the feedback signal.

    So when the Vout is at the acceptable Min spec for 6kV, the ADC would convert some non-zero small value. You can then design the diff-amp gain to make use of as much of the ADC range as you want.

    -Tommy

  • Hi Tommy, 

    This is a brilliant solution and I agree it will be cleaner and easier than an AC coupled version. Would we still need to apply an offset since the voltage should still be centered around 0V and we would only see positive ripple? Is there an issue with connecting the output voltage to the +ve of the differential amp but also to a single ended channel of the ADC? It's just that with this solution, it looks like it will be perfect for me, but then we lose information on what the actual output voltage is and to be able to regulate the actual output voltage rather than just accurately measure the ripple. The output voltage ripple is most important but an accurate 6kV regulation is still preferred. I'm not sure if any pin sharing will cause any inaccurate measurements on either channel of the ADC.

    At start up, the differential ADC would push my duty cycle higher to increase the output voltage up until the feedback representation of the output matched the precision voltage reference of say 3V. If my gain was 10, a 100mV ripple would become a 1V ripple, when offset say another 1V, this would make the duty cycle vary quite erratically if we assume a sinusoidal or triangular ripple voltage. Maybe just adding an offset to the differential result between the reference voltage and the feedback representation would be a better solution without any amplification, but the maximum offset that is added should not exceed the level at which the minimum duty cycle is output to the gate drives. I am just trying to think beyond the ADC now and actually think how the ADC result effects the output PWM...

    Regards,
    Joel

  • Would we still need to apply an offset since the voltage should still be centered around 0V and we would only see positive ripple?

    The offset would be introduced by way of reference voltage selection. The 0V output should be met when the Vout is a bit below the normal operating range of the supply (including measurement error and ripple). This way, when the ADC converts close to 0, you will know that the system is out of spec.

    Is there an issue with connecting the output voltage to the +ve of the differential amp but also to a single ended channel of the ADC?

    The feedback signal will need to reduced one way or another to fall within low voltage operating levels. With the proper matching of signal levels, you can even power the diff-amp using a 3.3V single supply so the ADC will never be exposed to voltages that exceed recommendations.

    we lose information on what the actual output voltage is and to be able to regulate the actual output voltage rather than just accurately measure the ripple. The output voltage ripple is most important but an accurate 6kV regulation is still preferred.

    You would use another ADC channel for coarse measurements of the 6kV voltage. Once the output gets close to 6kV, you would switch to the diff-amp for fine measurements of both the 6kV and ripple.

    I'm not sure if any pin sharing will cause any inaccurate measurements on either channel of the ADC.

    The ADC is expected to meet datasheet performance even when multiple channels are used. These documents can help:

    If my gain was 10, a 100mV ripple would become a 1V ripple, when offset say another 1V, this would make the duty cycle vary quite erratically if we assume a sinusoidal or triangular ripple voltage.

    The benefit of using a digital controller is that you can implement complex compensation behavior to match various scenarios. Software can normalize the readings, and the compensator topology and coefficients can be tuned.