UCD3138的DPWM的control寄存器1的SFRAME_EN位的使用
今天在用DPWM Control Register 1 (DPWMCTRL1) Register里面的SFRAME_EN位,想进行双脉冲输出,但是在程序里面将SFRAME_EN置1,并且将SFRAME_EN置1之后,只输出单脉冲
根据technique reference manual里面SFRAME_EN的说明,
1 = Enable Single Step Frame Mode. One EADC sample is requested, CLA then Filters, then one PWM duty cycle performed, then wait on Single Frame Trigger toggle before advancing to next frame.
里面的Single Frame Trigger 功能怎么实现?求指教~目前只会发出单脉冲信号,不知道第二个脉冲该如何触发或者怎么设置
或者,有没有延时的方法可以过一段时间触发一次?
您好,
Single Frame通常是用于在启动瞬间检测原边输入电压,通常发出一对即可,您的两对脉冲是用在什么场合的呢?
发出single frame的步骤是先配置SFRAME_EN, 然后全局使能DPWM,最后使能PWM_EN。UCD3138中没有寄存器设置可以连续发多少个脉冲,但您可以尝试下在需要的时间点失能再使能达到这个效果。
谢谢~
Regards,
Patrick
您好,
1、明白single frame的作用,只能发出一对。 发出两对脉冲的场合是 double pulse test 原边驱动测试。
2、single frame ,我试了在其他时间点将PWM_EN置0,再使能SFRAME_EN,再重新使能PWM_EN,能够发出双脉冲,但是这个时间点不好把握。
3、想问问UCD3138执行程序的时序关系,main函数是顺序执行还是其他顺序? 如果要实现我需要时间延时以达到时间点,该怎么编写代码?我在main函数中用for语句循环运算想达到延时的效果,最后测试的时候发现main函数中的for语句没能延时,所以对程序执行的时序有点困惑。
谢谢~
Regards,
Hongwu Peng
您好,
UCD3138软件结构如下图所示,初始化,main循环,标准中断和快中断。一般反馈在标准中断里做,保护,环路切换等时间要求更高的操作放在快中断里面做。您可以参考尝试一下。
Regards,
Patrick
您好,
大概知道软件结构了,谢谢您的回答!
Regards,
Hongwu Peng