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.

关于正弦波周期(频率)检测



我用的是28377D,

采样正弦波,并检测正弦波周期(频率),

问题:1:通过ECAP检测,是否可以直接将正弦波输入到ECAP引脚进行检测(不用进行方波变换,我的硬件已经固定,没有过零检测部分电路)。

            2:如果不能通过将正弦波输入到ECAP引脚方式进行检测,还有什么方法可以检测到。

谢谢!

  • 1. ECAP只能检测沿口,并不能接收模拟量,所以需要转换为方波信号才可以被ECAP识别;

    2. 如果想要其它方式,建议可以输入到CMPSS的引脚,由它产生高低电平,然后进入EPWM X-BAR将它转换为Trip事件,产生对应的DCEVT,通过EPWM的Digital Compare Sub-module的capture功能实现。请仔细阅读一下相关章节,特别注意不去配置TZ相关模块触发EPWM的动作即可。

  • 你好:

          如果用ADC里面的PPB中的过零检测是否可以实现这个功能。

        如果可以,要怎样配置启动过零检测。我用例程中的‘’adc_ppb_limits‘’例程修改,没有中断产生。资料<spruhm8e.pdf>中10.1.9 Post-Processing Blocks上对过零检测也没有详细说明。

  • 可以的,原理上与使用CMPSS没有大的差别,但是花费的时间会更长,因为CMPSS是硬件直接比较模拟量,响应快,而使用ADC的PPB,是先通过ADC进行模拟到数字的转换,然后再进行数字里的比较,产生中断后还需要在代码里进行计数的处理,当然也可以在比较结果出来以后,像CMPSS一样直接将结果送到EPWM的DC子模块的capture单元,通过硬件进行计数。

    启动过零检测是通过对ADCRESULT减去一个偏移量之后跟0进行比较,设定Lo为零即可,然后可以在ADCEVTSTAT寄存器中查询PPBxZERO的状态。

  • 你好。技术参考手册1405页,10.1.9.3节第二段中"Note that the PPBxZERO bit in the ADCEVTSTAT register is gated by EOC and not by the sign change in the ADCPPBxRESULT register.",这句话是说,被测信号过零标志ADCEVTSTAT.PPBxZERO是在本次采样转换(当然,先是采样和保持)完成之后才会更新,从而由此产生的中断信号最大可能滞后了一个PWM采样周期(假定每个PWM周期开始时采样),对吗。谢谢解答。