最近做项目时,遇到一个非常头疼的问题,一直无法解决,大伙帮我想想办法 具体要实现的功能是用STM32的定时器模块生成一对互补对称带死区的波形(频率大约1hz~200Hz),这个相对简单,难就难在该项目有个特殊要求,那就是这对互补波形每次换向(即上升沿、下降沿)时等待另一个脉冲信号波形(脉冲信号的频率大约100Khz)的上升沿来临才翻转,也就是说,如果互补波形边沿事件在脉冲波形上升沿之前发生,处理后的互补波形保持不变一直到脉冲信号波形的上升沿来临才翻转,并且保证死区参数不变,当时认为D触发器可以实现这个功能,但后来发现还有个问题就是,经过D触发器处理后互补波形没有了死区参数,希望各位高人有什么好的想法指点指点,软件、硬件实现都可以 时序图如下(希望实现下图功能) 使用D触发器会出现的问题 不知道能看明白不? |
回复:时序电路解决方案求助
不知道这个死区时间能不能达道你要求。如果不行,用pll把系统时钟倍频上去试试。
回复:时序电路解决方案求助
可以把脉冲信号接到MCU的IO脚么?在定时器需要翻转处理前互补波形时,标记准备翻转;脉冲信号上升沿中断,进入中断子程序时候正式翻转即为处理后互补波形。
不知道这个死区时间能不能达道你要求。如果不行,用pll把系统时钟倍频上去试试。
谢谢!这个方案不错,我正有这个想法,具体是不是当定时器计数到比较值减一或者计数器溢出前时停止计数并标记准备翻转,当脉冲信号上升沿中断,在中断子程序再启动定时器继续计数,这样就可以控制OCREF信号,互补输出的死区是固定的对吗?对了,有没有用硬件实现的方法,用中断我怕实时性不够,搞不好会炸机的
回复:时序电路解决方案求助
回复第 2 楼 于2014-02-08 09:54:23发表:
可以把脉冲信号接到MCU的IO脚么?在定时器需要翻转处理前互补波形时,标记准备翻转;脉冲信号上升沿中断,进入中断子程序时候正式翻转即为处理后互补波形。
不知道这个死区时间能不能达道你要求。如果不行,用pll把系统时钟倍频上去试试。
谢谢!这个方案不错,我正有这个想法,具体是不是当定时器计数到比较值减一或者计数器溢出前时停止计数并标记准备翻转,当脉冲信号上升沿中断,在中断子程序再启动定时器继续计数,这样就可以控制OCREF信号,互补输出的死区是固定的对吗?对了,有没有用硬件实现的方法,用中断我怕实时性不够,搞不好会炸机的
硬件延时不好做,你尝试下用两个D触发器;1号触发器产生A信号和沿信号到MCU的IO,然后经过MCU延时后产生2号触发器的时钟沿,生成B信号。