1.時鐘結構圖
圖1 片內時鐘結構圖
2.時鐘分配
有三種方式可為5744提供時鐘源,分別為外部有源晶振、外部無源晶振和內部16MHz RC晶振。其中16MHz內部RC晶振一般作為PLL或外部晶振失效情況下的備用時鐘,系統復位后5744默認選擇16MHz內部RC晶振作為時鐘源。5744內含有PLL0和PLL1兩個PLL,PLL0輸出為PLL0_PHI、PLL0_PHI1,PLL1輸出為PLL1_PHI,其中PLL0_PHI1還可以作為PLL1的輸入時鐘。選擇的時鐘源經過PLL后可為系統和片內外設提供時鐘。系統和片內外設可利用對應AUX Clock Selector選擇不同的時鐘源,在選擇好時鐘源之后可根據對應的Divider分頻器來獲取不同頻率的時鐘。
3.頻率限制
5744對系統和片內外設時鐘做了限制,在設置時不應超過對應的時鐘限制值,各個模塊的最高時鐘頻率如下:
表1 系統和片內外設頻率限制表
4.時鐘選擇和分頻因子
5744利用MC_CGM模塊對系統和片內外設進行時鐘源的選擇和分頻因子的設置,主要包含圖1中的各個AUX Clock Selector和Divider。
圖2 系統和外設時鐘時鐘源選擇和分頻控制模塊
5.系統時鐘配置
1.Mode Entry Module(MC_ME)
5744可對各個模塊進行使能和失能以進行能耗管理,默認情況下一些模塊處于失能狀態,在使用該模塊時需要對其使能。5744通過Mode Entry Module(MC_ME)對各個片內外設模塊進行管理。MC_ME的模塊如下:
圖3 MC_ME模塊圖
5744一共有RESET、TEST、SAFE、DRUN、RUN0-3、HALT0、STOP0等運行模式,其中RESET_FUNC、SAFE、 DRUN、 RUN0、 RESET_DEST模式總是使能,若使用其他模式需要實時MC_ME_ME使能。各個模式可以互相轉換,可以通過MC_ME_MODEx_MC寄存器對外設有不同的設置。在系統時鐘設置時,我們應先選擇想要的運行模式,然后設置對應的MC_ME_MODEx_MC寄存起對外設配置,然后轉換到對應的運行模式。
2.PLL配置
由圖3 MC_ME模塊圖可知外部晶振XOSC、PLL0和PLL1由MC_ME控制,PLL0、PLL1的時鐘源選擇有MC_CGM控制,則PLL配置步驟如下:
1)選擇運行模式;
2)關閉XOSC、PLLs(配置MC_ME.MODEx_MC寄存器,MODEx為1中所選的運行模式)
3)配置分頻和倍頻因子(配置PLLDIG_PLL0DV、PLLDIG_PLL1DV寄存器);
4)利用MC_CGM模塊選擇時鐘源(配置MC_CGM.ACx_SC);
5)利用MC_ME使能對應模塊(XOSC、PLLs);
6)進行模式轉換。
3.PLL參數的計算
5744對PLL的輸入輸出頻率有所限制,PLL0的輸入頻率應為8~56MHz,輸出應為4.762~625MHz;PLL1的輸入頻率應為37.5~78.125MHz,輸出應為4.764~625MHz,此外還有一個重要限制為PLL內部Fvco的頻率范圍為600~1250MHz 。
PLL0的計算公式如下:
其中fpll0_ref為PLL0所選時鐘源的時鐘頻率,fpll0_phi,fpll0_phi1分別為PLL0輸出PHI和PHI1非頻率
PLL1的計算公式如下:
其中fpll1_ref為PLL1的輸入時鐘頻率,若不使能PLLDIG_PLL1FD寄存器,默認情況下不使能,則PLL1計算公式可簡化為
fpll1_VCO = fpll1_ref × PLL1DV[MFD]
fpll1_phi = fpll1_ref × PLL1DV[MFD] / ( 2 * PLL1DV[RFDPHI ] )
4.示例代碼
/*******************************************
* 函數名 CLOCK_Config_System_180mhz
* 功能 配置系統時鐘為180mhz
* 輸入參數 無
* 返回值 無
* 示例 CLOCK_Config_System_180mhz();//配置系統時鐘為180mhz
*******************************************
*/
static void CLOCK_Config_System_180mhz()
{
//PLL0設置
MC_ME.RUN0_MC.R&=0xFFFFFF9F; //關閉PLL0,XOSC,需以字訪問
//PLL0分頻倍頻因子配置
//配置Fpll0_phi=Fref*MFD/(PREDIV*RFDPHI)=40*24/(2*4)=120Mhz
//配置Fpll0_phi1=Fref*MFD/(PREDIV*RFDPHI*2)=40*24/(2*8)=60Mhz
PLLDIG.PLL0DV.B.MFD=24;
PLLDIG.PLL0DV.B.PREDIV=2;
PLLDIG.PLL0DV.B.RFDPHI=4;
PLLDIG.PLL0DV.B.RFDPHI1=8;
MC_CGM.AC3_SC.B.SELCTL=1; //選擇XOSC作為PLL0時鐘
MC_ME.RUN0_MC.R|=0x00000020; //打開XOSC,需以字訪問
MC_CGM.AC4_SC.B.SELCTL=3; //選擇PLL0_PHI1作為PLL1時鐘源
MC_ME.RUN0_MC.R|=0x00000040; //打開PLL0,需以字訪問
//模式轉換
//選擇目標運行模式為RUN0,并設置KEY,該寄存器只能以字訪問
MC_ME.MCTL.R = 0x40005AF0;
//選擇目標運行模式為RUN0,并設置反轉KEY,該寄存器只能以字訪問
MC_ME.MCTL.R = 0x4000A50F;
while(MC_ME.GS.B.S_MTRANS);
while(MC_ME.GS.B.S_CURRENT_MODE!=4); //轉換到RUN0模式并等待模式轉換完成
//PLL1設置
MC_ME.RUN0_MC.R&=0xFFFFFF7F; //關閉PLL1
/PLL1分頻倍頻因子設定
//配置Fpll1_phi=Fref*MFD/(RFDPHI*2)=60*18/(2*3)=180Mhz
PLLDIG.PLL1DV.B.MFD=18;
PLLDIG.PLL1DV.B.RFDPHI=3;
//設置運行外設配置模式寄存器0,表示外設全模式運行,不同外設可選擇不同的配置寄存器
//該寄存器有8個
MC_ME.RUN_PC[0].R=0x000000FE;
MC_ME.RUN0_MC.R|=0x00000080; //打開PLL1,需以字訪問
MC_ME.RUN0_MC.R&=0xFFFFFFF0;
MC_ME.RUN0_MC.R|=0x00000004; //選擇PLL1_PHI作為系統時鐘源,需以字訪問
//模式轉換
//選擇目標運行模式為RUN0,并設置KEY,該寄存器只能以字訪問
MC_ME.MCTL.R = 0x40005AF0 ;
//選擇目標運行模式為RUN0,并設置反轉KEY,該寄存器只能以字訪問
MC_ME.MCTL.R = 0x4000A50F;
while(MC_ME.GS.B.S_MTRANS);
while(MC_ME.GS.B.S_CURRENT_MODE!=4); //轉換到RUN0模式并等待模式轉換完成
//等待XOSC、PLL0、PLL1穩定
while((!MC_ME.GS.B.S_XOSC)||(!MC_ME.GS.B.S_PLL0)||(!MC_ME.GS.B.S_PLL1));
}
6.片內外設時鐘配置
在系統時鐘配置完成后,需要進行片內外設時鐘的配置,片內外設的時鐘結構如下圖:
由于大部分外設掛在外設橋上,所以通過配置外設橋即可。ADC模塊除了需要配置外設橋,還需要配置單獨ADC_CLK時鐘。
在系統時鐘配置完成的情況下,外設時鐘只需要通過選擇時鐘源,設置分配因子即可獲得所需頻率的時鐘,則配置步驟如下:
1)通過MC_CGM.ACx_DCx使能分頻因子并設置分頻因子數值。
2)通過MC_CGM.ACx_SCx_選擇所采用的時鐘源。
所需要的Aux Clock Selector和Aux Clock Divider可根據所配置的外設在圖1查得。
1.外設橋時鐘配置
由于外設橋時鐘源直接選為系統時鐘,故不需要進行時鐘源的選擇,直接對分頻寄存器進行操作即可,代碼如下:
**************************************
* 函數名 CLOCK_Config_Peripheral_Bridge_45mhz
* 功能 配置外設橋時鐘頻率為45mhz
* 輸入參數 無
* 返回值 無
* 示例 CLOCK_Config_Peripheral_Bridge_45mhz();//配置外設橋頻率為45mhz
*/
static void CLOCK_Config_Peripheral_Bridge_45mhz()
{
//該寄存器只能以字訪問,設置PA_CLK=PB_CLK=SYS_CLK/(3+1)=180mhz/4=45mhz
//PB_CLK,PA_CLK頻率最高為45mhz
MC_CGM.SC_DC0.R=0x80030000;
}
2.ADC_CLK的配置
ADC模塊除一般外設橋時鐘外,還需配置ADC_CLK時鐘,代碼如下:
/**************************************
* 函數名 CLOCK_Config_ADC_60mhz
* 功能 配置ADC模塊時鐘頻率為60mhz
* 輸入參數 無
* 返回值 無
* 示例 CLOCK_Config_ADC_60mhz();//配置ADC模塊時鐘頻率為60mhz
*/
static void CLOCK_Config_ADC_60mhz()
{
//使能DC0,DIV=1,CLK_ADC=CLK_PLL0_PHI/(1+1)=120Mhz/2=60mhz
MC_CGM.AC0_DC2.R=0x80010000;
MC_CGM.AC0_SC.B.SELCTL=2; //選擇PLL0 PHI作為時鐘源
}
上一篇:MPC5744入門筆記(3)Flash實驗
下一篇:最后一頁
推薦閱讀
史海拾趣
隨著公司業務的不斷發展,Echelon開始積極拓展全球市場。公司通過在海外設立分支機構、與當地企業合作等方式,將LonWorks技術和能源管理服務方案推廣至全球各地。同時,Echelon還積極參與國際能源管理標準的制定和推廣工作,提升了公司在國際市場的知名度和影響力。
在追求經濟效益的同時,Ericsson Power Modules也注重環保和可持續發展。公司積極采用環保材料和綠色生產工藝,降低生產過程中的能耗和排放。此外,Ericsson Power Modules還積極參與環保公益活動,推動電子行業的綠色發展。這種環保意識和行動體現了Ericsson Power Modules對社會的責任感和對可持續發展的承諾。
CONTTEK Group GmbH公司深知品質是企業的生命線。因此,公司建立了嚴格的質量管理體系,從原材料的采購到產品的生產、檢測、包裝等每一個環節都進行嚴格把控。這種對品質的執著追求,使得公司的產品贏得了客戶的廣泛信賴和好評。許多知名電子企業都選擇與CONTTEK Group GmbH公司建立長期合作關系,共同推動電子行業的發展。
CONTTEK Group GmbH公司深知品質是企業的生命線。因此,公司建立了嚴格的質量管理體系,從原材料的采購到產品的生產、檢測、包裝等每一個環節都進行嚴格把控。這種對品質的執著追求,使得公司的產品贏得了客戶的廣泛信賴和好評。許多知名電子企業都選擇與CONTTEK Group GmbH公司建立長期合作關系,共同推動電子行業的發展。
背景:1966年,在貴州凱里白午山區,國營新云器材廠(后更名為振華新云)正式成立,標志著公司的誕生。
內容:成立初期,公司面臨著技術落后、設備陳舊等困難。然而,在老一輩員工的艱苦奮斗下,公司逐漸摸索出適合自身的發展道路。通過引進新技術、優化生產流程,不斷提高產品質量和生產效率。
成果:經過幾年的努力,振華新云逐漸在電子元器件行業嶄露頭角,為后續的快速發展奠定了堅實基礎。
背景:2004年,為了適應國家經濟發展和產業布局調整的需要,振華新云面臨從凱里白午山區調遷至貴陽市新添高新技術開發區的挑戰。
內容:在調遷過程中,公司克服了種種困難,如設備搬遷、員工安置、生產線重建等。通過精心組織和周密安排,確保了調遷工作的順利進行。
成果:調遷完成后,振華新云在貴陽市新添高新技術開發區迎來了新的發展機遇,為公司后續的快速發展提供了有力保障。
目錄: 前言 第一章引言 1.1模擬集成電路設計的特征 1.2模擬集成電路設計自動化及其任務 1.2.1模擬集成電路設計自動化的層次式模型 1.2.2模擬集成電路的表象與模塊生成 1.2.3模擬集成電路設計自動化系統的任務及必備條件 1. ...… 查看全部問答∨ |
|
如何在uboot的運行狀態下(此時linux kernel還未運行),響應外部按鍵產生的gpio中斷,使uboot重啟或做其他工作?在linux kernel運行狀態下我已實現此功能,只要調用request_irq()注冊一個中斷就行了。但在uboot里似乎沒有這樣的函數和機制,該怎樣把 ...… 查看全部問答∨ |
|
請教版主斑竹,我現在用的是STVD4.1.5,編譯器是COSMIC(OSMIC Software ST7 Compiler Driver V4.4a),芯片用的是ST72F324J4B6,程序編譯沒有問題,在運行時出錯,單步調試時發現有符號數和立即數比較存在錯誤,比如如下的代碼,我在main函數 ...… 查看全部問答∨ |
請問怎么修改STM32的BOOTLOADER,我想用CAN更新代碼。 我的實際使用中是把很多個STM32用CAN聯網在一起,如果修改STM32的BOOT,讓我可以通過CAN升級任意一個STM32的代碼, ...… 查看全部問答∨ |
求助:TMS320LF2407A同CY7C1021CV33連接 TMS320LF2407A有PS,DS,IS三個片選端口,分別選擇片外程序存儲器、數據存儲器和I/O存儲器,而CY7C1021CV33只由一個CS片選端,請問該如何連接它們才能使CY7C1021CV33既作片外程序存儲器,又作片外數據存儲器? 謝了先!… 查看全部問答∨ |
利用賽靈思ISE功耗估算工具XPower實現低功耗FPGA電子系統優化技巧與方法 本文首先與實測系統功耗進行對比,驗證了Xilinx公司ISE軟件包中FPGA功耗估算工具XPower的準確性。然后對FPGA設計中影響 ...… 查看全部問答∨ |
想用launchpad擴展一個矩陣鍵盤,現在做作品要用,io口不能用太多,所以就像用個74hc系列的芯片,但是又不知道用什么好,而且是不是這樣用了以后鍵盤掃描就不能用中斷來寫了啊?我的想法是行掃描和列掃描分別用一個io口擴展出來,就只用到兩個io口 ...… 查看全部問答∨ |
2013年10月21日 快遞太坑了 早上到了兩個快遞 但是只發了一個短信 害我跑那么遠去取東西,還跑兩次 哭。。。。。。。。。。。 這板子直接連電腦沒驅動的,我還專門去TI下了個驅動,帖子最后我會附驅動以及開發板資料,還有芯幣能干嘛,新人 ...… 查看全部問答∨ |