基于MCC配置dsPIC33C芯片的時(shí)鐘及輸出系統(tǒng)時(shí)鐘FOSC波形
掃描二維碼
隨時(shí)隨地手機(jī)看文章
? ? ? ? 在數(shù)字電源應(yīng)用中,不管是車載OBC還是無(wú)線充電電源等,都是比較典型的重要應(yīng)用,項(xiàng)目開發(fā)過程中,時(shí)鐘模塊配置正確與否,不僅涉及到代碼的執(zhí)行,也涉及到諸多外設(shè)的性能,其中dsPIC33C系列芯片主頻最大可以達(dá)到100MIPS,如圖1所示,而在500M輔助時(shí)鐘頻率驅(qū)動(dòng)下,PWM模塊的分辨率可以達(dá)到250ps,所以我們通過這篇文章來(lái)對(duì)dsPIC33CK單核及dsPIC33CH雙核的時(shí)鐘模塊的MCC配置進(jìn)行簡(jiǎn)要說(shuō)明。

圖1 dsPIC33CK系列典型資源圖

圖2 dsPIC33C時(shí)鐘系統(tǒng)整體框圖
在圖2所示的時(shí)鐘系統(tǒng)整體框圖中,我們可以看到PLL時(shí)鐘部分,左側(cè)輸入時(shí)鐘FRCCLK或者POSCCLK進(jìn)入系統(tǒng)后,可以經(jīng)過主鎖相環(huán)PLL產(chǎn)生FOSC,對(duì)于dsPIC33CK單核系統(tǒng),我們最高將它配置為200M的FOSC,對(duì)應(yīng)100MIPS的指令時(shí)鐘。
除了這個(gè)系統(tǒng)主時(shí)鐘外,我們還有一個(gè)輔助鎖相環(huán)APLL時(shí)鐘,如圖2中右上所示,輸入時(shí)鐘FRC或者POSCCLK進(jìn)入輔助鎖相環(huán)APLL系統(tǒng)后,最終可以產(chǎn)生AFVCODIV分頻輸出時(shí)鐘,或者AFPLLO時(shí)鐘輸出,這個(gè)AFPLLO時(shí)鐘一般配置為500M以滿足PWM模塊的高精度運(yùn)行要求,或者作為其它外設(shè)的驅(qū)動(dòng)時(shí)鐘。
一.單核dsPIC33CK系列的時(shí)鐘模塊配置(FRC為輸入時(shí)鐘)

圖3 新建項(xiàng)目工程文件
當(dāng)建立好工程文件后,并且也安裝好了MCC插件,如圖3所示,可以看到工具欄中MCC圖標(biāo)是藍(lán)色的可以操作的狀態(tài)。

圖4 保存MCC配置文件
當(dāng)點(diǎn)擊工具欄中MCC的圖標(biāo)后,可以看到如圖4所示的對(duì)話框,在這里,你可以輸入MCC配置文件的名字,也可以按照默認(rèn)名字保存文件,則.mc3的配置文件就保存在了工程文件目錄下了。

圖5 MCC配置界面
當(dāng)保存配置文件后,則可以打開MCC的配置界面,如圖5所示,相當(dāng)清爽的一個(gè)界面。在左下側(cè),你可以看到器件資源區(qū)域,當(dāng)點(diǎn)擊資源區(qū)域的外設(shè)后,它就進(jìn)入左側(cè)上部的項(xiàng)目資源區(qū)域中,右側(cè)是你當(dāng)前選擇的模塊的配置界面顯示。System Module,pin Module,Interrupt Module是默認(rèn)放在項(xiàng)目區(qū)域的三個(gè)模塊。
在配置主鎖相環(huán)PLL的系統(tǒng)輸出時(shí)鐘之前,我們先看一下其主要結(jié)構(gòu)。

圖6 主PLL的基本結(jié)構(gòu)
如圖6所示,內(nèi)部的FRC振蕩器FRCCLK,或者外部晶振時(shí)鐘源POSCCLK都可以作為PLL的時(shí)鐘源輸入,經(jīng)過一系列倍頻及分頻操作后,產(chǎn)生PLLO或者FVCODIV的輸出.

圖7 PLL配置的一些限制要求
對(duì)于具體配置來(lái)說(shuō),并不是隨意的,按照FRM手冊(cè)的要求,如圖7所示,我們需要滿足PLL輸入時(shí)鐘頻率為8M-64M之間,PFD輸入頻率為8M-FVCO/16之間,VCO輸出頻率為400M-1600M之間,我們需要在MCC配置時(shí)進(jìn)行檢查確認(rèn),其中,在芯片電氣規(guī)格中也列出了相應(yīng)的指標(biāo),如圖8所示。

圖8 PLL電氣規(guī)格要求
當(dāng)點(diǎn)擊左側(cè)System Module后,可以看到和系統(tǒng)相關(guān)的設(shè)置界面,我們首先進(jìn)行系統(tǒng)時(shí)鐘的設(shè)置,這里,我們選擇芯片內(nèi)部的8M FRC振蕩器為輸入源,并使能PLL,這個(gè)振蕩器精度雖然比不上外部晶振,但是一般的電源應(yīng)用都可以滿足要求,如圖9所示,其典型溫度范圍的精度為+-1.5%。

圖9 FRC的主要精度指標(biāo)

圖10 系統(tǒng)時(shí)鐘FOSC的配置示例
在圖10中,我們給出了一組典型的配置供參考,可見FOSC配置為了200M,對(duì)應(yīng)指令時(shí)鐘FCY為100M,在dsPIC33CK器件上,它可以在125C時(shí)運(yùn)行在100MIPS,如圖11所示。

圖11 dsPIC33CK溫度范圍和時(shí)鐘頻率的關(guān)系
在dsPIC33C系列芯片上,除了系統(tǒng)時(shí)鐘源FOSC,還提供一個(gè)輔助鎖相環(huán)時(shí)鐘APLL,它主要用于為各種外設(shè)提供時(shí)鐘源,并獨(dú)立于系統(tǒng)時(shí)鐘,其結(jié)構(gòu)框圖如圖12所示。APLL的輸入時(shí)鐘也是由FRCCLK或者POSCCLK組成,經(jīng)過一系列分頻和倍頻,產(chǎn)生AFPLLO,或者AFVCODIV兩種輸出頻率。

圖12 輔助時(shí)鐘APLL的結(jié)構(gòu)框圖
APLL的配置類似于PLL的配置,需要滿足一定的限制條件,我們?cè)趫D13中列出,其輸入時(shí)鐘需要在8M-64M之間,其PFD輸入頻率要在8M-AFVOC/16之間,AFVCO輸出頻率需要在400M-1600M之間。

圖13 APLL配置的限制條件

圖14輔助時(shí)鐘APLL的配置示例
在圖14中,我們給出一個(gè)典型的APLL配置示例,同樣采用了8M的FRC作為輸入時(shí)鐘,最后得到500M的APLLO時(shí)鐘,這個(gè)時(shí)鐘可以作為PWM模塊的輸入時(shí)鐘,產(chǎn)生高精度PWM波形。

圖15 參考時(shí)鐘輸出配置示例
在配置時(shí)鐘源后,我們希望確認(rèn)一下相應(yīng)的時(shí)鐘輸出是否達(dá)到我們的期望,是否有正確的波形,所以,我們通過參考時(shí)鐘輸出模塊的配置來(lái)實(shí)現(xiàn)這個(gè)目的,在電路debug過程中這一點(diǎn)對(duì)于分析電路也很有意義。

圖16 參考時(shí)鐘分頻設(shè)置
因?yàn)閮?nèi)部PLL或者APLL輸出的時(shí)鐘頻率非常高,很難在測(cè)試設(shè)備觀察到,在圖16中所示的REFOCONH寄存器中可以設(shè)置參考時(shí)鐘的輸出分頻,比如,設(shè)置為1,就代表2分頻。


圖17 參考時(shí)鐘輸出使能及源選擇
在圖17所示的REFOCONL寄存器中,我們可以設(shè)置是否使能參考時(shí)鐘,及選擇相應(yīng)的時(shí)鐘輸出,比如FOSC或者FRC等,在圖15的配置示例中,我們選擇FOSC輸出,并且分頻值設(shè)為100,即分頻比為200,因?yàn)槲覀冊(cè)O(shè)置為最高主頻100MIPS,所以FOSC為200M,分頻后頻率為1M.

圖18 參考時(shí)鐘輸出說(shuō)明
在圖18所示的FRM對(duì)參考書時(shí)鐘輸出說(shuō)明中,指出參考時(shí)鐘REFO可以在任何可以映射的RP pin上輸出,方便用戶選擇。

圖19 編程端口的選擇
在圖19所示截圖中,設(shè)置正確的編程端口,以保持和硬件電路一致,確保能正確的編程和Debug芯片,這里我們根據(jù)開發(fā)板硬件選擇PGD2和PGC2.

圖20 參考時(shí)鐘輸出的PPS選擇
由于參考時(shí)鐘需要在RP pin輸出,我們?cè)趫D20所示的截圖中,根據(jù)需要我們?cè)O(shè)置在RC5上輸出參考時(shí)鐘,對(duì)應(yīng)pin51.

圖21 pin module的確認(rèn)
在圖21所示截圖中,我們檢查相應(yīng)的pin的設(shè)置是否正確,如果需要對(duì)pin做進(jìn)一步設(shè)置,可以在這里設(shè)置,尤其是輸入和輸出的功能,或者模擬和數(shù)字的功能等。

圖22 產(chǎn)生代碼
所有設(shè)置完成后,我們就需要產(chǎn)生代碼,按圖22所示按鈕,就可以產(chǎn)生相應(yīng)的代碼。

圖23 代碼產(chǎn)生過程信息
在圖23所示窗口中,你可以看到MCC產(chǎn)生代碼的過程及狀態(tài),最后會(huì)顯示代碼產(chǎn)生結(jié)束,并且配置文件保存到了.mc3文件。

圖24 代碼文件結(jié)構(gòu)
產(chǎn)生代碼后,點(diǎn)擊工具欄MCC圖標(biāo),退出MCC,review一下代碼文件結(jié)構(gòu),如圖24所示截圖,可以看到相應(yīng)的.h頭文件和.c文件的組成。

圖25 main函數(shù)結(jié)構(gòu)
在圖25所示的main函數(shù)結(jié)構(gòu)中,我們可以看到除了初始化文件外,主程序沒有任何任務(wù)執(zhí)行,通常這些是需要根據(jù)用戶的需求來(lái)添加相應(yīng)的主程序軟件任務(wù)。

圖26 初始化函數(shù)結(jié)構(gòu)
在圖26截圖中,我們通過右鍵查看初始化函數(shù)line 56的內(nèi)部子函數(shù)。

圖27 初始化函數(shù)內(nèi)部子函數(shù)
在圖27中,我們打開了這個(gè)初始化函數(shù),可以看到MCC自動(dòng)生成了pin腳初始化,時(shí)鐘初始化,中斷初始化等,雖然我們?cè)谶@里沒有使能中斷功能。

圖28 時(shí)鐘初始化函數(shù)
圖28所示為我們配置的時(shí)鐘初始化函數(shù)具體代碼,它實(shí)現(xiàn)了PLL和APLL的配置,參考時(shí)鐘輸出等功能。

圖29 MCC頭文件
圖29中,在mcc.h中包含所有的頭文件,在需要包含時(shí),可以包含這個(gè)mcc.h文件,而不用去分別包含每一個(gè)頭文件。

圖30 燒入代碼
點(diǎn)擊圖30所示的編程選項(xiàng),將執(zhí)行編程動(dòng)作,將代碼燒入芯片中去。

圖31 編程硬件工具選擇
在圖31中,可以看到,當(dāng)點(diǎn)擊編程按鈕后,對(duì)話框需要你選擇編程工具,我這里連接了Snap工具,所以我選擇Snap來(lái)實(shí)現(xiàn)編程。

圖32 編程完成
在圖32所示的截圖中,我們看到編程完成,可以觀察波形。

圖33 參考時(shí)鐘輸出波形
從圖33所示的參考時(shí)鐘波形中可以看到,它是1個(gè)1M頻率的方波,符合我們的預(yù)期,這正是200M的FOSC經(jīng)過200分頻比后的波形,系統(tǒng)時(shí)鐘FOSC運(yùn)行正常。
二.單核dsPIC33CK的時(shí)鐘模塊配置(外部20M晶振輸入)

圖34 外部晶振輸入時(shí)PLL配置示例
當(dāng)需要使用更高精度時(shí)鐘源時(shí),比如在一些需要CAN通信功能的應(yīng)用中,可以使用外部晶振時(shí)鐘作為PLL輸入,圖34所示,舉例來(lái)說(shuō),采用24M頻率晶振作為時(shí)鐘源,則典型配置如圖所示,最終得到200M的系統(tǒng)時(shí)鐘FOSC,對(duì)應(yīng)100M的指令時(shí)鐘頻率。這里時(shí)鐘源選擇Primary Oscillator,表示使用了外部振蕩器為時(shí)鐘源。

圖35 外部晶振輸入輔助時(shí)鐘APLL配置示例
采用24M晶振輸入時(shí),同樣通過一定的分頻和倍頻配置得到500M的APLLO輸出頻率,供PWM等外設(shè)使用。
此部分我們不做測(cè)試,其它配置部分參考FRC振蕩器作為輸入時(shí)鐘時(shí)的配置。
三.雙核dsPIC33CH的時(shí)鐘配置(FRC作為時(shí)鐘輸入源)

圖36 dsPIC33CH雙核系統(tǒng)的時(shí)鐘架構(gòu)
在圖36所示的dsPIC33CH的雙核時(shí)鐘架構(gòu)中,slave core的時(shí)鐘和單核dsPIC33CK的一樣,所以這里我們只對(duì)master core的時(shí)鐘做一個(gè)配置介紹。

圖37 dsPIC33CH的master core主頻說(shuō)明
在圖37 中,可以看到dsPIC33CH的master core的系統(tǒng)時(shí)鐘FOSC最大為180M,對(duì)應(yīng)90MIPS指令時(shí)鐘。

圖38 FRC輸入master Core PLL時(shí)鐘配置示例

圖39 FRC輸入master Core APLL輸出配置示例

圖40 FRC輸入master Core參考時(shí)鐘輸出配置示例

圖41 FRC輸入master Core編程接口配置

圖42 FRC輸入master Core參考時(shí)鐘輸出pin選擇

圖43 FRC輸入master Core 分頻后FOSC輸出波形
通過以上圖38-42的配置示例,在基于我們的dsPIC33CH128MP506的開發(fā)板上測(cè)試,我們同樣在RC5上得到圖43所示的分頻后的FOSC的波形,因?yàn)?/span>FOSC為180M,經(jīng)過分頻比200后,得到900k頻率。
四.雙核dsPIC33CH的masterCore時(shí)鐘配置示例(外部晶振20M輸入時(shí))

圖44 外部晶振輸入雙核dsPIC33CHmaster Core系統(tǒng)時(shí)鐘配置
當(dāng)需要使用更高精度時(shí)鐘源時(shí),比如在一些需要CAN通信功能的應(yīng)用中,可以使用外部晶振時(shí)鐘作為PLL輸入,圖42所示,舉例來(lái)說(shuō),采用20M頻率晶振作為時(shí)鐘源,則典型配置如圖44所示,最終得到180M的系統(tǒng)時(shí)鐘,對(duì)應(yīng)90M的指令時(shí)鐘頻率,這里時(shí)鐘源選擇Primary Oscillator,表示使用了外部時(shí)鐘源。

圖45 外部晶振輸入雙核dsPIC33CH master Core APLL時(shí)鐘配置
采用20M晶振輸入時(shí),同樣通過一定的分頻和倍頻配置得到500M的APLLO輸出頻率,供PWM等外設(shè)使用,如圖45所示。
此處我們不做測(cè)試,其它配置部分參考FRC振蕩器作為輸入時(shí)鐘時(shí)的配置。
?
總結(jié),時(shí)鐘模塊是運(yùn)行代碼的基礎(chǔ),也是諸多外設(shè)運(yùn)行的基礎(chǔ),所以我們花一定的篇幅進(jìn)行說(shuō)明。我們通過對(duì)數(shù)字電源控制芯片dsPIC33CK系列和dsPIC33CH系列的時(shí)鐘模塊進(jìn)行配置及參考時(shí)鐘輸出測(cè)試,以說(shuō)明系統(tǒng)能正常運(yùn)行,同時(shí)也給出了外部晶振輸入時(shí)的典型配置參考。
?





