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.

[参考译文] TMS320F28384S-Q1:TMS320F28384S-Q1

Guru**** 666710 points
Other Parts Discussed in Thread: TMS320F28384S, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1179160/tms320f28384s-q1-tms320f28384s-q1

器件型号:TMS320F28384S-Q1
主题中讨论的其他器件:TMS320F28384SC2000WARE

你好。

我是首尔国家科学技术大学的 Kihon Kim。

现在、我使用 TMS320F28384S 开发板载充电器。

但我有一个问题。

如果我打开控制板、所有 PWM 输出都会在极短的时间内发出高电平信号。

在此期间、如果直流链路中或某处存在电压、则会发生 ARM-SHORT。

GPIO 72和84是上拉电阻、我们使用闪存引导。

我能解决这个问题吗?

我期待你的答复。

谢谢。

此致。

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

    您好!

    您使用 的是 TI EVM 还是定制板? 在器件引导期间或配置 PWM 后观察到高电平有效?

    此致、Santosh

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

    你(们)好

    感谢您的回答。

    现在、我正在使用我的定制板。

    并且在配置 PWM 后观察到高电平有效。

    有什么可疑的东西吗?

    此致。

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

    您好!

    您是否有 TI EVM、是否可以从 C2000Ware SDK 中运行其中一个 ePWM 示例? 您是否看到相同的行为?

    此致、Santosh

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

    抱歉。

    我没有 TI EVM。  

    底部是代码的有问题部分。

    CONF_ePWM_LOW (3、60.0);  

    void conf_ePWM_low (uint16 ch、float32 freq)

    //设置操作
    ePWM_Regs[ch]->AQCTLA.bit.ZRO = AQ_CLEAR;
    ePWM_Regs[ch]->AQCTLA.bit.CAU = AQ_SET;
    ePWM_Regs[ch]->AQCTLB.bit.ZRO = AQ_CLEAR;
    ePWM_Regs[ch]->AQCTLB.bit.CAU = AQ_SET;

    if (ch=3){
    ePWM_Regs[ch]->TBCTL.bit.PHSEN = TB_DISABLE;
    ePWM_Regs[ch]->EPWMSYNCOUTEN.bit.ZEROEN = SYNC_OUT_SRC_ENABLE;

    ePWM_Regs[ch]->TBPHS.bit.TBPHS = 0;

    否则、如果(ch!=3){
    ePWM_Regs[ch]->TBCTL.bit.PHSEN = TB_ENABLE;
    ePWM_Regs[ch]->EPWMSYNCINSEL.bit.SEL = SYNC_IN_SRC_SYNCOUT_EPWM4;


    //设置 TBCLK
    ePWM_Regs[ch]->TBCTL.bit.CTRMODE = TB_COUNT_UP;//向上计数
    ePWM_Regs[ch]->TBCTL.bit.PRDLD = TB_SHADOW;
    ePWM_Regs[ch]->TBCTL.bit.HSPCLKDIV = TB_DIV1;
    //ePWM_Regs[ch]->TBCTL.bit.CLKDIV = TB_DIV1;//0b110;///64


    ePWM_Regs[ch]->CMPCTL.bit.SHDWAMODE = CC_IMME初 始值;//每0加载一次寄存器
    ePWM_Regs[ch]->CMPCTL.bit.SHDWBMODE = CC_IMMETERM;
    //ePWM_Regs[ch]->CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    //ePWM_Regs[ch]->CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

    ePWM_Regs[ch]->DBCTL.bit.in_mode = DBA_RED_DBB_FED;
    //ePWM_Regs[ch]->DBCTL.bit.POLSEL = DB_ACTV_HI;
    ePWM_Regs[ch]->DBCTL.bit.POLSEL = DB_ACTV_HIC;
    ePWM_Regs[ch]->DBCTL.bit.out_mode = DB_full_enable;//死区时间

    ePWM_Regs[ch]->AQSFRC.bit.RLDSF = 3;//立即

    updateDuty (ch、0.0);
    updatePhase (ch、0.0);
    updateFreq (ch、freq);
    updateDeadtime (ch、0.0);

    您能找到可疑部件吗?

    此致。

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

    您好!

     您是否有一个示波器捕获、您可以共享该捕获、表示简要为高电平?

    此致、Santosh

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

    你(们)好

    这是示波器捕获。

    此致。

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

    您好!

    我 是一 名主题专家。 请期待明天的回复。

    谢谢、此致、

    桑托什

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

    谢谢你。

    我期待你的答复。

    此致。

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

    您好!

    何时分配 CMPA 的值? 乍一看、我在这里的第一个本能是、在时钟启用且 AQ 已配置之后、才会分配 CMPA 值。 复位时、默认为 CMPA 分配一个0h 的值。 这意味着、时钟开始时、会同时发生两个事件- CTR=0和 CTR=CMPA (CAU)

    如果我们从您的器件 TRM 中查看 AQ 优先级图表-

    我们可以看到、当发生这种情况时、CAU 的 AQ 事件将触发、然后立即触发 CTR=0事件、即 AQ_SET 和 AQ_CLEAR。 这都是预期行为、但显然是在不希望的时候发生的。

    更安全的实现方式是在 所有其他配置完成之前、不要分配 CTRMODE = TB_COUNT_UP。 如果我怀疑这是问题的根源、那么这将完全避免。

    或者、ePWM 的实现通常包括在初始配置之前禁用 ePWM 外设的时钟、并在之后立即重新启用该时钟、以避免意外的 ePWM 事件。 例如,在[C2000Ware->Driverlib->f2838x->Examples->C28x->ePWM]中,ePWM_ex3_synchronization 示例具有以下代码行,其中“Board_init()”包含 ePWM 配置函数:

    我希望这对您有所帮助、

    Jason Osborn