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

圖1 dsPIC33CK系列典型資源圖

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

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

圖4 保存MCC配置文件
當點擊工具欄中MCC的圖標后,可以看到如圖4所示的對話框,在這里,你可以輸入MCC配置文件的名字,也可以按照默認名字保存文件,則.mc3的配置文件就保存在了工程文件目錄下了。

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

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

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

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

圖9 FRC的主要精度指標

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

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

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

圖13 APLL配置的限制條件

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

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

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


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

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

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

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

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

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

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

圖24 代碼文件結(jié)構(gòu)
產(chǎn)生代碼后,點擊工具欄MCC圖標,退出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ù)用戶的需求來添加相應(yīng)的主程序軟件任務(wù)。

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

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

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

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

圖30 燒入代碼
點擊圖30所示的編程選項,將執(zhí)行編程動作,將代碼燒入芯片中去。

圖31 編程硬件工具選擇
在圖31中,可以看到,當點擊編程按鈕后,對話框需要你選擇編程工具,我這里連接了Snap工具,所以我選擇Snap來實現(xiàn)編程。

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

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

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

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

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

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

圖38 FRC輸入master Core PLL時鐘配置示例

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

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

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

圖42 FRC輸入master Core參考時鐘輸出pin選擇

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

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

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





