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_Closed Loop

Hello all,

I am working on closed loop ADC for my Boost converter using F28069 piccolo sample kit which got in one-day workshop.

The problem is  ADC output is fluctuating +/- 0.4 volts coz of which my pwm pulse is not settling on a constant voltage, instead varying from min to max duty cycle.

If someone can help me in solving my problem and letting me to get the success in my closed loop, i'll be greatly thankful.

Thanks

Vivek Chaudhary

  • If you are using piccolo control stick then there are bound to be errors. This is because there is no separation between analog and digital grounds on the board. Also the VCC to ADC is the same which goes to Flash and core. All these will cause a lot of noise. We observed a difference of +/- 0.05V. Your errors seem to be too high. Check the grounding between measured signal and piccolo board. 

    Also try increasing the sampling time to see if values become steady.

    Thanks,

    Vivek

  • Vivek C,

    I would recommend loosening the parameters of the control loop.  For example, if the control is PID, lower the P, I, and D parameters until the output becomes stable.

    You'll then need to retighten everything just enough to stabilize transients for your application.


    Thank you,
    Brett

  • Thanks to you guys for your support.
    I'hv tried the things, seem to be close enough.

    Right now what happening is, my piccolo adc gets supply from  boost converter and i need to get stable pwm pulse according to the simultaneous variation in adc voltage. for example, if it is 1 volt then up the duty cycle nd keep increasing upto the specified limit (eg 1.75volts) and when it is at 1.75 v duty cycle should stuck at 80% if it goes 1.76 it is 81%, if 1.74 it is 79% and so on.

    So my problem is how to make my code stable with such a fine changes??  while i check on expressions window after debug, there are random changes in adc value at a fixed value only.

    I am stuck with this issue, plz help me out.

    I'll be greatly thankful!!

    Thanks

     Vivek Chaudhary

  • Vivek C,

    What do you mean by, make your code stable?  Do you want to the PWM duty cycle to be stable? The ADC value?  How stable?

    Under a specific ideal load, the example you mention can occur, but in reality loads are not ideal, the load will change with time, and the ADC will sample some noise.  This means that under one load 75% duty cycle may generate your reference voltage but under a different load 50% duty cycle may be adequate to generate your reference.  This, in combination with the fact that each duty cycle step is discrete (as opposed to continuous) and that the ADC will pick up some noise, means that you should have a continuous variation in your duty cycle value.  The key question is, how big is the variation?  You need your controller to be sensitive enough to account for errors (changes in loads, etc) but not oversensitive (wildly changing duty cycle when minimal error (or noise) exists).

    If you have not already I would recommend looking up PID control:
    http://en.wikipedia.org/wiki/PID_controller


    Thank you,
    Brett

  • Brett,

    Thanks for yours ultimate support, i have been to this link, it seems to be quiet helpful. Thanks!

    By code stability, i meant that my variations in pwm follows the variations in adc i.e. simultaneous variations in both i.e. closed loop for the boost converter.

    right now what  happening is, my pwm kept on increasing upto the specified limit fastly and then  gets fixed to the faulty condition without the variation in the load (as of now ), making no effect on the adc. Instead of this, it has to be flexible to follow the changes and getting stuck to a certain duty cycle at a certain voltage.

    Although i am trying with an average of 300 samples so that i could fix it at a certain limit of adc count. yet i have to get into the exact close loop as i mentioned.

    Thanks,

    Vivek Chaudhary