此前寫過一篇文章,分析德州儀器C2000系列DSP移相同C2000系列DSP移相同步功能步功能的一個缺陷,導致在大范圍移相時出現的脈沖丟失問題。
最近,一位西安交大的博士遇到相同的問題,經過跟他的討論,發現在他這種特定應用下,是可以規避脈沖丟失問題的,本文給出了一個簡單的實例,對方法做一個介紹。
上圖為脈沖丟失時刻的波形。
前文中介紹了,出現脈沖丟失問題的原因是移相值與比較值發生跨越,導致二者在一個周期內沒能發生匹配,所以驅動信號在這個周期內就沒有發生任何變化,我們看到的現象就是“脈沖丟失”。如下圖:
想避免出現脈沖丟失,可以通過規避比較值與移相值跨越的情出現。根據脈沖丟失的原因,當移相值在0與CMP(比較值)之間變化或在CMP(比較值)與PRD(周期值)之間變化,是不會出現脈沖丟失問題的,對于大部分應用,移相值變化范圍并不會非常大。例如移相全橋的應用,就不會出現脈沖丟失問題,也正因為這個原因,C2000移相同步功能的這個缺陷鮮為人知。
關于這個解決方案,首先我們要針對C2000系列的同步信號傳遞方式做一些介紹。
上圖是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°移相效果,從而規避了移相值與比較值的跨越。具體移相方法見下圖:
使用ePWM2模塊產生了一個固定的90°移相角作為中繼,使ePWM1與ePWM3之間的相位可以在大于90°小于270°之間變化,當然由于本實例的周期分度比較粗,變化范圍會有所減小,畢竟周期PRD中的一個值要對應3.6°了。值得說明的是C2000系列的移相并不是滯后移相,而是超前移相,因此上圖中滯后1/4周期的移相,設置移相寄存器為超前3/4周期。
本方法的設計思路就是在需要做大移相角移相時,使用一個ePWM模塊作為中繼,提供一個固定的移相角,從而避免移相值與比較值發生跨越,進而避免出現脈沖丟失的現象。這個方法為了規避脈沖丟失的問題,使用了一個額外的ePWM模塊,造成了片上資源的浪費,但從思路上來看,這個方式是有效的,希望這個設計思路能夠對你們的設計有幫助。
-
dsp
+關注
關注
553文章
7987瀏覽量
348745 -
寄存器
+關注
關注
31文章
5336瀏覽量
120230 -
德州儀器
+關注
關注
123文章
1706瀏覽量
140691 -
脈沖
+關注
關注
20文章
889瀏覽量
95620 -
CMP
+關注
關注
6文章
150瀏覽量
25980
發布評論請先 登錄
相關推薦
評論