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.

[参考译文] TMS320F280023:CMPSS 问题

Guru**** 2522770 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1082959/tms320f280023-issue-with-cmpss

部件号:TMS320F280023

各位专家:

我在使用 CMPSS 模块时遇到问题。 我的设置如下:  

void CompInit()
{
    EALLOW;
    CmpssRegs4.COMPCTL.bit.COMPDACE = 1;    // Power up comparator
    CmpssRegs4.COMPCTL.bit.COMPHSOURCE = 0; // Internal DAC to be used for inverting input
    EDIS;
}
.
.
.
.
.
.
void EpwmUpdate ()
{
    EALLOW;
    EPwm2Regs.TZCTL.bit.TZA = 2;
    EPwm2Regs.TZDCSEL.bit.DCAEVT2 = 2;
    EPwm2Regs.DCAHTRIPSEL.bit.TRIPINPUT4 = 1;
    EPwm2Regs.DCTRIPSEL.bit.DCAHCOMPSEL = 3;
    EPwm2Regs.TZSEL.bit.DCAEVT2 = 2;
    EPwm2Regs.TZEINT.bit.DCAEVT2 = 1;
    EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX6 = 0;
    EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX6 = 1;
    EDIS;
}

我的应用程序是实施峰值电流模式控制。 我们的观察结果如下:

每当我们增加 DAC 值或第一次给出参考 DAC 值时,电流就会出现较大的过冲。

我尝试在 CompInit()函数中添加以下行-  

AnalogSubsysRegs.CMPHPMUXSEL.Bit.CMP4HPMUXSEL = 1;

但是,即使 DAC 值设置为0,电流也会流动。

我怀疑我在设置跳闸操作时发生了一些错误。

请求论坛帮助解决此问题!

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

    你好,阿迪蒂亚,

    您能否提供更多有关您问题的详细信息,以便我们能够更好地帮助您?

    ~引用 userid="510570" url="ë/support/微控制器/C2000 -微控制器组/CC2000 /f/C2000 -微控制器-论坛/1082959/tms320f280023-issue-with -cmps"]每当我们第一次增加 DAC 值或给出参考 DAC 值时,都会出现电流过大。

    您能否详细介绍上述陈述? 将 DAC 的值增加到什么? 什么电流是过度注射? 电流不是输入吗?

    另请提供您与设备针脚至 CMPSSS 的连接的高级概述。

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

    你好,弗兰克,

    请在以下位置找到系统概述:  

    1.我们使用的是 CMPSSS4的高侧比较器,它使用的是引脚 A7/C3 (引脚15)。

    非反相输入来自主板上的电流感应部分(0 - 3.3V)。 反相输入通过内部 DAC (如  DACVal)提供。

    3. EPWM2A 连接到电流流经的交换设备(如 IA)。

    4.根据所需的电流,我们将 DACVal 设置 为特定值。

    我的目标是执行以下操作:  

    1. EPW2A 已打开

    2.测量 IA,并向 UC 提供相应的信号。 假设此信号为 VA

    3.每当 VA 超过 DACVal 时 ,都会生成一个关闭 EPWM2A 的跳闸信号。

    4.转至1并继续循环。

    我 的观察结果是:  

    1.在开机后的前几个周期中,即使 VA 值超过 DACVal,EPWM2A 也不会跳闸。

    2.只要我们将 DACVal 增加几个计数(一次大约10个),就会看到这种行为。

    3.这与反馈信号(VA)超出参考范围后应立即关闭开关(EPWM2A)的要求相违背。

    因此,这会导致系统输出电流(IA)过冲。

    希望我能充分解释!

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

    你好,阿迪蒂亚,

    谢谢。 这种情况要好得多,我现在更清楚这一问题。 以下回答和问题:

    [引用 userid="510570" url="~ë/support/当天 封装的微处理器/C2000微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1082959/tms320f280023-iss-with -cmpss/4009443#4009443"]1. 我们使用的是使用引脚 A7/C3 (引脚15)的 CMPSSS4的高侧比较器。

    明白了。 在这种情况下,您以前使用的配置代码是正确的“AnalogSubsysRegs.CMPPMUXSEL.Bit.CMP4HPMUXSEL =1”

    [引用 userid="510570" url="~ë/support/当天 封装的微处理器/C2000微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1082959/tms320f280023-iss-with -cmpss/4009443#4009443"]2. 非反相输入来自主板上的电流感应部分(0 - 3.3V)。 反相输入通过内部 DAC (如  DACVal)提供。

    我认为您所指的电流感应非反相输入是高于 A7/C3 (引脚15)吗?

    [引用 userid="510570" url="~ë/support/icontrs/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1082959/tms320f280023-iss-with -cmpss/4009443#4009443"]

    3. EPWM2A 连接到电流流经的交换设备(如 IA)。

    4.根据所需的电流,我们将 DACVal 设置 为特定值。

    [/引用]

    这一点也很清楚。 在这种情况下,什么是设置 DACVAL? 中断?

    [引用 userid="510570" url="~ë/support/icontrs/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1082959/tms320f280023-iss-with -cmpss/4009443#4009443"]

    我的目标是执行以下操作:  

    1. EPW2A 已打开

    2.测量 IA,并向 UC 提供相应的信号。 假设此信号为 VA

    3.每当 VA 超过 DACVal 时 ,都会生成一个关闭 EPWM2A 的跳闸信号。

    4.转至1并继续循环。

    [/引用]

    这种流动是有道理的。 我假设您已经确认 I 至 V 转换的极性正确吗? 我的意思是,您已经确认,当 IA 增加时,VA 也会增加。

    [引用 userid="510570" url="~ë/support/当天 封装的微处理器/C2000微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1082959/tms320f280023-iss-with -cmpss/4009443#4009443"]1. 在开机后的前几个周期中,即使 VA 值超过 DACVal,EPWM2A 也不会跳闸。

    您提到了“在前几个周期中”。 问题是否会在一段时间后得到解决? 发生这种情况时,您能否检查 COMPSTS 寄存器以查看其是否跳闸?

    您可能还必须通过输出 Xbar 输出 GPIO 上的 CTRIPOUTH 以进行调试。 这样,我们就可以确认比较器是否正确跳闸。