C2000系列DSP移相功能缺陷的分析与解决方法(一)

描述

此前写过一篇文章,分析德州仪器C2000系列DSP移相同C2000系列DSP移相同步功能步功能的一个缺陷,导致在大范围移相时出现的脉冲丢失问题。

最近,一位西安交大的博士遇到相同的问题,经过跟他的讨论,发现在他这种特定应用下,是可以规避脉冲丢失问题的,本文给出了一个简单的实例,对方法做一个介绍。

dsp

上图为脉冲丢失时刻的波形。

前文中介绍了,出现脉冲丢失问题的原因是移相值与比较值发生跨越,导致二者在一个周期内没能发生匹配,所以驱动信号在这个周期内就没有发生任何变化,我们看到的现象就是“脉冲丢失”。如下图:

dsp

想避免出现脉冲丢失,可以通过规避比较值与移相值跨越的情出现。根据脉冲丢失的原因,当移相值在0与CMP(比较值)之间变化或在CMP(比较值)与PRD(周期值)之间变化,是不会出现脉冲丢失问题的,对于大部分应用,移相值变化范围并不会非常大。例如移相全桥的应用,就不会出现脉冲丢失问题,也正因为这个原因,C2000移相同步功能的这个缺陷鲜为人知。

关于这个解决方案,首先我们要针对C2000系列的同步信号传递方式做一些介绍。

dsp

上图是280x,2801x,2802x,2803x等DSP的ePWM模块连接结构,手册中还可以查到2833x的结构,本次以上图为例。其中EPWMxSYNCI是模块同步信号的输入端,当有脉冲输入时,将该模块计数(CTR)器会被设定为PHS寄存器的预设值。EPWMxSYNCO是模块同步信号的输出端,连接到下一个模块的输入端,用于同步下一个模块。SYNCO信号有三种产生的方式如下:

直接透传SYNCI的信号到下一个模块,这种方式也是我当年的毕业设计用应用的,这样可以避免途经的模块移相角对后面的模块相位的影响。实际应用中可能存在一个时钟的延迟。

CTR=0时产生SYNCO脉冲,即计数器归零时产生脉冲,这种方式假设模块1与模块2之间的相位发生变换,模块3也会随之变化,导致模块之间的移相同步值存在耦合。

CMPB=CTR 时产生同步脉冲这种方法可以在模块不使用CMPB时获得比较自由的移相方式。

本文将使用第二种同步脉冲产生方式,解决特定需求下的移相操作。第三种同步脉冲产生方式将会在下一篇文章中讲解,当不使用CMPB时,这种同步方式也许可以彻底解决在双向传输的双有源桥调制问题,且不会导致脉冲丢失,不过我还需要进一步推导一下。

使用第二种同步方式时,第一个ePWM1模块并不需要设置输入同步信号,该模块作为同步的主导,后面的的同步脉冲均与该模块有关。下面以一个需求为例:

任务描述:获得2路驱动脉冲,均为50%占空比,相位关系在100°-260°之间变化。

50%对应的比较值CMP刚好为180°,由于相位PHS的变换范围正好覆盖了比较值CMP的位置,因此当移相角PHS与占空比CMP发生跨越时,将会导致脉冲丢失。当占空比50% 且移相角范围超过180°时必然造成比较值与移相值的跨越,导致脉冲丢失。而当前应用移相角变换范围为160°,小于180°。如果移相角在0°-180°之间变化,就不会导致比较值与移相值跨越,也就不会因此造成脉冲丢失。

本文的设计思路是使用ePWM2模块作为中继,提供一个固定的移相值90°,ePWM3产生第二路50%占空比的驱动脉冲,使ePWM2与ePWM3之间的移相角始终在0°-180°之间变化,加上固定的90°移相角,刚好获得90°-270°移相效果,从而规避了移相值与比较值的跨越。具体移相方法见下图:

dsp

使用ePWM2模块产生了一个固定的90°移相角作为中继,使ePWM1与ePWM3之间的相位可以在大于90°小于270°之间变化,当然由于本实例的周期分度比较粗,变化范围会有所减小,毕竟周期PRD中的一个值要对应3.6°了。值得说明的是C2000系列的移相并不是滞后移相,而是超前移相,因此上图中滞后1/4周期的移相,设置移相寄存器为超前3/4周期。

本方法的设计思路就是在需要做大移相角移相时,使用一个ePWM模块作为中继,提供一个固定的移相角,从而避免移相值与比较值发生跨越,进而避免出现脉冲丢失的现象。这个方法为了规避脉冲丢失的问题,使用了一个额外的ePWM模块,造成了片上资源的浪费,但从思路上来看,这个方式是有效的,希望这个设计思路能够对你们的设计有帮助。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分