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.

TMS320F28P650DK: C2000 ACMC Examples

Part Number: TMS320F28P650DK
Other Parts Discussed in Thread: PMP23338, TIDM-DC-DC-BUCK, BOOSTXL-BUCKCONV

Hi,

Are there any examples of using average current mode control (ACMC) for buck regulators? Can the C2000 achieve a ACMC digital control loop with just receiving voltage divider feedback from the output voltage and inductor current feedback from a current sense amplifier?

Has anyone ever achieved this? I cant seem to find anything on this.

  • Hello Mike

    Please check the reference design pmp23338. This is totem pole PFC (AC/DC converter) based on average current mode control. In this design, we have outer voltage loop plus inner current loop control.

    Thanks

    Amir

  • Hi Mike,

    I have a version of our TIDM-DC-DC-BUCK reference design example which leverages closed-loop ACMC. Please let me know if you are interested. This is a software implementation for evaluation purposes only so does not come with any accompanying documentation (though code is commented appropriately)

    Regards,

    Peter

  • Hi Peter,

    Yes that would be very helpful! Thank you so much!

    Do you also by any chance have examples for phase shifted (phase modulation) control like for Phase-Shifted Full-Bridge or a Dual Active Bridge converter.

  • Hi Mike,

    This zip contains the CCS project to demonstrate ACMC on the TIDM-DC-DC-BUCK project interfacing on the BOOSTXL-BUCKCONV hardware with F28004x LaunchPad. This has been fully tested on hardware but compensators are generic and not tuned. From my testing, this works as expected

    buck_F28004x_ACMC.zip

    ACMC is implemented on top of the closed-loop VMC build (build 2).

    Project can switch between closed-loop VMC and closed-loop ACMC by changing the #define ACMC in the buck_user_settings.h file. Setting to 1 will be ACMC and setting it to 0 will be VMC.

    Also, I have created a different debug environment so you can execute this script to see the desired ACMC variables used in the code. Refer to the lab2_acmc.js file

    Regards,

    Peter