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.

[参考译文] UCD3138:评估板

Guru**** 2497315 points
Other Parts Discussed in Thread: UCD3138, UCD3138064

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/729297/ucd3138-evaluation-board

器件型号:UCD3138

您好!

我将开始一个开发周期、在此周期中、我将使用 UCD3138来生成固定占空比重叠 PWM (大约10%重叠)并改变 PWM 频率。 我想知道哪个 UCD3138评估板和软件版本最适合、因为功率控制器的开发时间有限。

非常感谢

Zaki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为此、最好的一点是我们的开环板。 我们的电源 EVM 都专用于比您所说的更复杂的拓扑。
    网址是 :www.ti.com/.../ucd3138ol64evm-031

    您还需要一个 USB 适配器来在它和您的 PC 之间进行通信:
    www.ti.com/.../usb-to-gpio

    然后、您需要获取 CCS - Code Composer Studio、理想情况下是6.2版、它似乎在这里:

    processors.wiki.ti.com/.../Download_CCS

    对于软件、我建议您从培训实验室开始、该实验室将向您展示如何运行工具、然后按照您的需要直接转到 DPWM 编程:

    training.ti.com/ucd3138-digital-power-training-series
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢 Ian、我现在启动了系统并运行了(尽管我禁用了 FAULT3以进行接地检查、并添加了一个额外的行来生成.x0文件)、PWM 具有我需要的分辨率级别、但最小开关频率大约为15kHz。 理想情况下、我希望其频率约为10kHz。 您知道这是否可行吗? 我正在使用 TI 培训实验室(尤其是 LAB2)。

    如果有问题、我的测试源代码如下所示



    浮点 PS = 65.0e-6;
    int i;
    define PCLK_PERIOD4.0e-9
    //#define PERIOD_SEonds10.0e-6.
    #define 周期((int)(PS/PCLK_PERIOD)<<4)
    #define EVENT1(int)(周期*0.20)
    #define EVENT2(int)(周期* 0.75)
    #define EVENT3(int)(周期*0.70)
    #define EVENT4(int)(周期*0.25)

    //int ram_event2;// HyperKnob 的注释[min=2500、max=37500、step=2500]

    void init_dpwm0 (void)

    Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 0; //在初始化期间在本地禁用 DPWM0

    Dpwm0Regs.DPWMCTRL0.bit.CLA_EN = 0;//默认值为1 (即默认值是使用滤波器输出来控制 DPWM)

    Dpwm0Regs.DPWMPRD.All =周期; //对所有值使用.all,以便缩放匹配
    Dpwm0Regs.DPWMEV1.ALL = EVENT1; //将事件1设置为周期的0%(开始)
    Dpwm0Regs.DPWMEV2.ALL = EVENT2; //将事件2设置为周期的25%(开始)
    Dpwm0Regs.DPWMEV3.ALL = EVENT3; //将事件3设置为周期的50%(开始)
    Dpwm0Regs.DPWMEV4.ALL = EVENT4; //将事件4设置为周期的75%(开始)

    Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 1; //本地启用 DPWM0
    LoopMuxRegs.GLBEN.bit.DPWM0_EN = 1; //全局启用 DPWM0



    void main()

    //启用 JTAG
    杂项 AnalogRegs.IOMUX.ALL = 0;

    ///-------------------------------------------------------
    //重要:阅读下面的内容,否则代码可能无法正确执行
    ///-------------------------------------------------------
    //将引脚 FAULT3接地以实现正常运行
    //将引脚 FAULT3连接到3.3V 以清除校验和
    //if (GioRegs.FAULTIN.BIT.FLT3_IN = 1)
    //{
    //clear_integration_word_();
    //}

    #IF (UCD3138|UCD3138064)
    杂项 AnalogRegs.CLKTRIM.bit.HFO_LN_FILTER_EN = 0;
    杂散 AnalogRegs.CSTRIM.bit.ITARM_TRIM =23;//28;
    #endif

    init_PMBus (0x58);//初始化 PMBus 处理程序
    init_dpwm0 ();//初始化 DPWM0
    //ram_event2 = Dpwm0Regs.DPWMEV2.all;//初始化 HyperKnob
    for (;;)

    PMBus_handler ();
    //Dpwm0Regs.DPWMEV2.all = ram_event2;//将 HyperKnob 值放入寄存器

    if (PS < 2.0e-6) PS = 65.0e-6;
    否则{
    PS = PS - 0.01e-6;
    //设置 PWM
    Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 0; //在初始化期间在本地禁用 DPWM0
    Dpwm0Regs.DPWMPRD.All =周期; //对所有值使用.all,以便缩放匹配
    Dpwm0Regs.DPWMEV1.ALL = EVENT1; //将事件1设置为周期的0%(开始)
    Dpwm0Regs.DPWMEV2.ALL = EVENT2; //将事件2设置为周期的25%(开始)
    Dpwm0Regs.DPWMEV3.ALL = EVENT3; //将事件3设置为周期的50%(开始)
    Dpwm0Regs.DPWMEV4.ALL = EVENT4; //将事件4设置为周期的75%(开始)
    Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 1; //本地启用 DPWM0

    //等待
    对于(i=0;i<100000;i++){