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.

SDFM 模块采样AD,能实现不用中断的情况下和内部AD一样触发一次采样一次这种操作嘛



问题如标题(通过CPU轮询方式能否实现,能避免SDFM多次刷新数据嘛)

  • 我个人对这个外设的理解是,只要你使能了,滤波时间到了,他就会一直更新结果值。

    按照你标题的想法,如果是2837x系列的,好像是type4类型的ePWM模块,就可以使用ePWM11/12的同步信号去提前复位SDFM的滤波计数器,滤波时间到后,就可以得到最新的滤波值,然后你刚好在那个时刻产生ePWM11/12中断,再去读就可以了。

    IDDK2.0的例程就是这样的。

    比如32的抽取率,10M的SD采样器,滤波就要9.6个微秒,那你就可以将CMPC设置为PRD-500,CPMA设置为500,CMPC作为SDFM同步复位信号,CMPA用于产生PWM中断。

    技术参考手册也差不多是这样推荐的。
  • 这样操作有点太麻烦,之前就是用PWM中断然后软体触发内部AD判断标志位读取,想着直接换成SDFM模块也能这么操作。因为已经有PWM中断再做控制了,所以不想启用其他的中断。
  • 如果滤波器一直刷新结果值,也就是不能保证AC相电流和编码器采样值为同一时刻采样。因为触发AD后到实际读取的时间不总是固定的
  • 本身例程就是用ePWM11中断替换掉ePWM1中断,控制可以放到ePWM11中断中,但是这个如果是绝对值编码器,相电流和编码器采样值也保证不了在同一个时刻吧?
  • 绝对值编码器可以保证的,至少可以在同一时间触发