淺談dsPIC33C系列高速PWM模塊高精度模式的運(yùn)行
掃描二維碼
隨時隨地手機(jī)看文章
??????? 隨著新能源汽車市場發(fā)展的推動,不斷涌現(xiàn)出各種數(shù)字電源的應(yīng)用需求,汽車車載無線充電應(yīng)用及車載充電器OBC是近來其中兩個非常典型的應(yīng)用,基于Microchip的dsPIC33C系列芯片的數(shù)字電源在這兩個領(lǐng)域的使用越來越廣泛。
? ? ? 如下是一個單核dsPIC33CK系列(雙核為dsPIC33CH系列芯片)芯片的大致資源的說明,其中高速PWM模塊是實(shí)現(xiàn)數(shù)字電源最為重要的模塊之一。以已經(jīng)量產(chǎn)的dsPIC33CK256MP50X或者dsPIC33CK256MP20X系列為例來說,最大可以提供多達(dá)8組,共16個獨(dú)立的PWM輸出通道,充分滿足各種開關(guān)電源拓?fù)涞?/span>PWM通道需求。

? ?? 這個PWM模塊內(nèi)部具有實(shí)現(xiàn)高精度模式的設(shè)計,當(dāng)使能高精度PWM模式時,就可以讓PWM模塊大大提高參數(shù)的調(diào)整步長,比如電源PWM占空比,周期,相位及死區(qū)的精度,依靠高精度時最高250pS的分辨率更好的體現(xiàn)數(shù)字電源的優(yōu)勢,比如精確的進(jìn)行占空比的調(diào)整。用戶在使用時,可以分別使能相關(guān)PWM輸出子模塊的PWM高精度模式,具體通過使能PGxCONL寄存器中的HREN位來實(shí)現(xiàn)(x代表1-8,對應(yīng)于每一個PWM產(chǎn)生器)。


? ? 當(dāng)讀規(guī)格書時,細(xì)心的朋友會發(fā)現(xiàn)對于PWM高精度位使能,Microchip是規(guī)定了一些限制條件的。比如如下在寄存器說明時,通過小字體注釋對HREN位的一個額外要求,即一定要在500M輸入頻率的條件下去使用PWM高精度模式。

? ? 在這篇文章中,我們也重點(diǎn)分析一下PWM高分辨率的使用及在電源設(shè)計中需要注意的地方。
第一,我們總結(jié)一下產(chǎn)品規(guī)格書及PWM模塊reference manual中dsPIC33CK系列PWM高精度模式的使用條件說明。
?? 作為一個數(shù)字外設(shè),其運(yùn)行需要一定的時鐘,所以我們理解高速PWM模塊的運(yùn)行及高精度模式運(yùn)行之前,首先了解一下其時鐘的分配方式。

?? 上圖是PWM模塊的時鐘產(chǎn)生框圖,除了給PWM模塊一個整體的master時鐘選擇(即上圖中的MCLKSEL對應(yīng)的選項)之外,用戶可以對每一個PWM子模塊設(shè)置不同的獨(dú)立的時鐘源(即PGx_clk),這個時鐘源可以和總的PWM時鐘源一致,也可以是進(jìn)行分頻之后的低頻,或者通過頻率調(diào)整電路之后再給到PWM子模塊,這為設(shè)置不同范圍的PWM頻率提供了方便。
? ?? 在reference manual中也對PWM高精度模式做了一些說明,如下截圖中的注釋Note中,我們可以看到使用PWM高精度模式時,必須要將CLKSEL設(shè)置為0b01,也就是必須要直接選擇我們給PWM模塊選擇的總的master時鐘源,而不能采用頻率分頻電路或者頻率調(diào)整電路之后的時鐘源。這是文檔中對高精度PWM模式時鐘源的 “定性限制“。
?

? ? 其次,對于PWM模塊,如同其它MCU的外設(shè)模塊一樣,在規(guī)格書電氣特性中有一些定量參數(shù)描述,如下可以參考。

? ?? 這里我們重點(diǎn)關(guān)注PMW模塊的輸入頻率,Microchip建議必須要在500M下實(shí)現(xiàn)高精度模式PWM,那么潛在意思是如果采用低于500M的輸入頻率時,這個高精度PWM模式就不做保證了,最多就是在±10%范圍內(nèi)變化(即最小450MHz),產(chǎn)品出廠前所有相關(guān)的PWM高精度電路的驗(yàn)證測試都是基于這個條件去進(jìn)行。這是關(guān)于PWM高精度模式運(yùn)行頻率的一個 “定量限制” 的信息。
? ? 嚴(yán)格按照這個限制,我們對PWM主時鐘頻率進(jìn)行一定的簡單分析,首先使能高精度模式,即HREN設(shè)置為1.

? ? 再通過MCLKSEL的設(shè)置選擇11,即APLL輔助鎖相環(huán)的后分頻輸出,而我們將APLL的后分頻輸出事先設(shè)置為500MHz的頻率(關(guān)于dsPIC33CK芯片的時鐘PLL及APLL的設(shè)置,由于篇幅關(guān)系我們不在本篇文章中做說明)。
?

? ? ? 對應(yīng)PWM模塊(如PG1)的時鐘源選擇寄存器CLKSEL設(shè)置為01,意味著PG1的時鐘源直接選擇PWM主時鐘源。
?

? ? ? 這樣設(shè)置后對應(yīng)PG1的輸入頻率就是500MHz,結(jié)合PG1內(nèi)部的高精度8倍頻PLL電路的作用,我們就得到了4G的PWM時鐘頻率,對應(yīng)時鐘周期為1/4GHz=250pS,由于我們的PWM周期PG1PER或者占空比PG1DC為16bit寄存器,在這種條件下可以實(shí)現(xiàn)的PWM周期和占空比的最大數(shù)字就是65535,即對應(yīng)的最大周期為65535*0.25nS=16.384uS.大約為61kHz左右,這也就是我們在按照嚴(yán)格限制的高精度模式下實(shí)現(xiàn)的最大周期(最小頻率)。
?
? ? 第二,我們對規(guī)格書“定量限制”的之外的情況進(jìn)行嘗試,對PWM模塊輸入頻率進(jìn)行調(diào)整,觀察測試的結(jié)果。此時我們對PWM輸入頻率做一個極限的變化,將之設(shè)為8MHz,也就是說選擇系統(tǒng)時鐘FOSC作為PWM模塊的輸入頻率,即如下MCLKSEL選擇為00, 同時在時鐘鏈路上直接將內(nèi)部FRC振蕩器8M時鐘設(shè)置為FOSC.
?


?
對系統(tǒng)主時鐘進(jìn)行如下簡單設(shè)置即可。
?

按照如下周期和占空比的設(shè)置,

? ? 我們就得到了如下PWM輸出波形,PG1H的實(shí)測頻率為306k,由于此時PWM輸入頻率為8MHz,因此疊加PWM內(nèi)部的PLL的8倍頻關(guān)系,得知PWM的內(nèi)部時鐘頻率為64MHz,即分辨率約為15.6nS,計算出來的PWM頻率對應(yīng)這個PWM的實(shí)測頻率,由此得知在常溫demo測試下,PWM內(nèi)部高精度電路運(yùn)行還是正常的。

第三.我們對規(guī)格書“定性限制”的之外的情況進(jìn)行嘗試,啟用PWM主時鐘的分頻電路,如下的寄存器位,DIVSEL,此處設(shè)置為2分頻,選擇00,同時如第一步驟中一樣,將PWM模塊master時鐘設(shè)置為500MHz(這里采用MCLKSEL=0b11,且將APLL的后分頻輸出設(shè)置為500MHz).

? ? ? 實(shí)測結(jié)果我們得到了如下波形,通道1為PG1H,通道2為PG1L,代碼中我們設(shè)置二者為互補(bǔ)輸出模式。
? ?? 此時PWM開關(guān)頻率為250kHz。對此頻率進(jìn)行分析,輸入時鐘頻率500MHz,進(jìn)行分頻后輸入給PWM模塊PG1的輸入頻率為250MHz,假定PWM內(nèi)部的PLL在工作的話,實(shí)際PWM的時鐘頻率為2GHz,則對應(yīng)分辨率為500pS,根據(jù)周期PG1PER和占空比PG1DC的設(shè)置,其計算周期為4uS,對應(yīng)實(shí)測的250kHz,以上說明PWM模塊內(nèi)部的8倍頻PLL在啟用PWM主時鐘分頻時在常溫demo下還是正常工作。
?

?

? ? 以上第二和第三部分內(nèi)容分析了在PWM模塊主時鐘輸入頻率大幅降低時,及不降低PWM主時鐘輸入頻率而啟用PWM模塊輸入頻率分頻器后的PWM模塊內(nèi)部8倍頻PLL的實(shí)際表現(xiàn)。可以看出來microchip在設(shè)計這個高精度電路時的設(shè)計裕量還是比較大的,其對應(yīng)的規(guī)格書和外設(shè)參考手冊說明也非常的嚴(yán)謹(jǐn)和保守。
? 由于dsPIC33C芯片在測試及驗(yàn)證高精度模式時僅僅只對PWM在500MHz下的性能進(jìn)行了保證,所以真正在應(yīng)用產(chǎn)品設(shè)計電源時并不推薦PWM模塊輸入頻率低于500MHz這個頻率,否則在各種復(fù)雜的工況下,比如高低溫等條件時會有一定的風(fēng)險。當(dāng)然如果采用的是非HREN=1的模式,那么將另當(dāng)別論。
第四,對于PWM高精度模式電路在電源產(chǎn)品閉環(huán)設(shè)計中的考慮。
? ? 首先介紹一下我們所常用的Q15格式,因?yàn)槲覀兊?/span>dsPIC33C系列芯片是基于定點(diǎn)運(yùn)算的處理器,所以要處理電源環(huán)路涉及到的線性差分方程系數(shù)等小數(shù)時要將小數(shù)轉(zhuǎn)化為與之對應(yīng)的定點(diǎn)整數(shù)。
? ?? 我們簡要說明一下Q15格式(或者Q1.15)的數(shù)據(jù),因?yàn)橛幸粋€最高位符號位,所以它可以表示正數(shù)(符號位為0),也可以表示負(fù)數(shù)(符號位為1),其余位數(shù)按照如下圖所示含義表示,那么就可以知道它表示的最大整數(shù)數(shù)字范圍就是0x7FFF,即0.999969482422,對應(yīng)的最大負(fù)數(shù)為,0x8000,即-1,計算時按照二進(jìn)制補(bǔ)碼去計算相應(yīng)表示的小數(shù)值,一定要注意小數(shù)點(diǎn)在對應(yīng)bit14和bit15之間。

? ? 在我們的dsPIC33系列產(chǎn)品的編譯器中包含了非常豐富的定點(diǎn)數(shù)學(xué)函數(shù)庫,只要去調(diào)用libq-omf.a中,或者libq-dsp-omf.a,同時在程序中包含相應(yīng)的頭文件libq.h即可使用。
? ? ? 通過如下一個示例,可以很方便的理解小數(shù)和Q15整數(shù)之間的相互轉(zhuǎn)換關(guān)系,如下表格中+24576轉(zhuǎn)對應(yīng)的小數(shù)就是0.75,實(shí)際上二者之間是32768這個系數(shù)。

? ? 在數(shù)字電源設(shè)計中,為了盡可能的利用處理器的最大字長,即16位的Q15整數(shù)對應(yīng)+32767為最大字長,除了采用Q15格式表示線性差分方程系數(shù)之外,還需對它進(jìn)行一系列的縮放操作(這一部分內(nèi)容我們放在后面的話題中進(jìn)行討論)。如果采用Q15進(jìn)行線性差分方程系數(shù)的定義,那么通過調(diào)用環(huán)路計算函數(shù)2P2Z或者3P3Z產(chǎn)生的結(jié)果(周期或者占空比)也將以Q15的范圍進(jìn)行限制,即最大限制為0x7FFF,即32767,如果考慮到電源設(shè)計中對最大占空比的限制,這個值將被設(shè)置的更小。所以在500M頻率下使能PWM的高精度HREN=1的模式時,最大分辨率為250pS時,對應(yīng)最大周期為8.191uS,即122kHz,如果最大周期高于8.191uS,或者開關(guān)頻率低于122k,在閉環(huán)設(shè)計中就不能采用Q15格式進(jìn)行計算,用戶需要對環(huán)路補(bǔ)償器的運(yùn)算及線性差分方程系數(shù)定義做適當(dāng)變化。
? ?? 當(dāng)然,如果環(huán)路設(shè)計不采用Q15的格式計算,那么在HREN=1的高精度PWM模式下可以獲得61kHz的最低頻率。如果需要采用更低的開關(guān)頻率,建議將PWM設(shè)置為非高精度PWM模式,即HREN=0.
? ?? 以上是dsPIC33CK系列高速PWM模塊的一些基礎(chǔ)分析,對dsPIC33C系列芯片有興趣的朋友可以作為簡單了解,歡迎討論。
?
?
?
?
?





