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.

[参考译文] CCS/TMS320F28377D:如何使 ADC 每2或3个开关周期采样一次?

Guru**** 2595770 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/670246/ccs-tms320f28377d-how-to-make-the-adc-sampling-every-2-or-3-switching-cycles

器件型号:TMS320F28377D

工具/软件:Code Composer Studio

您好!

在我的电路中、开关频率为300kHz、因此开关时间为3.3us。

SoC 在 EPWM CTR=0匹配时启动、 因此 ADC 在每个开关周期发生。 请参阅下面的蓝色一个、即 ePWM 计数器、在 A1、A2、A3发生时、SOC。

我认为我的时间不够、因此我希望每2个开关周期执行一次 ADC。 请参阅下面的红色部分、其中包括两个开关周期或2个原始 ePWM 计数器。 如何执行该操作或设置是什么?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我进行以下设置、这是正确的吗? 这是否意味着 SOC 每2个开关周期发生一次? 我不知道如何检查它是否正确?
    EPwm10Regs.ETPS.bit.SOCAPRD = 2;//在发生第2个事件时生成脉冲,150kHz 采样频率
    我是否错过了一些设置? 谢谢!

    void InitEPwm10 (void)//用于采样

    EALLOW;
    SyncSockRegs.SYNCSELECT.BIT.EPWM10SYNCIN=0;

    EPwm10Regs.TBCTL.bit.CTRMODE = 3;//现在冻结计数器
    EPwm10Regs.TBPRD = SW_PRD;// 300kHz 开关频率
    EPwm10Regs.TBCTR = 0x0000;//清除计数器
    EPwm10Regs.TBCTL.bit.HSPCLKDIV = 0;//最大速度100MHz;将比率设置为1/2 SYSCLK
    EPwm10Regs.TBCTL.bit.CLKDIV = 0;//与 HSPCLKDIV 相同?

    EPwm10Regs.ETSEL.bit.SOCAEN= 0;//禁用组上的 SOC
    EPwm10Regs.ETSEL.bit.SOCASEL = 1;//Select SOCA on - 1:0、
    EPwm10Regs.ETPS.bit.SOCAPRD = 2;//生成 2st 事件上的脉冲、150kHz 采样频率
    EDIS;

    //启动 ePWM 10以开始 ADC 采样和中断
    EPwm10Regs.ETSEL.bit.SOCAEN = 1; 启用 ADC SOCA (EPWMxSOCA)脉冲
    EPwm10Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;//启用上-下模式
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Hongmei、

    是的、ETPS 正是您想要的。 这应允许您缩放触发事件的频率。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、Devin。