鎖相環是一種控制晶振使其下你跟對於參考訊號保持恆定的電路。主要作用是通過軟體實時配置片上外設時鐘
譬如當30mhz的oscclk訊號經鎖相環倍頻後,倍頻倍數可通過pllcr[div]設定,可設定為10,經過pll後的訊號變為300mhz,因為28335的時鐘頻率為150mhz,所以需要將pllsts[divsel]設定為2,可得300/2=150mhz時鐘訊號。
下圖是系統控制及外設時鐘,clkin是經過pll模組後送往cpu的時鐘訊號,經過cpu的分發,作為sysclkout送至各個外設,因此sysclkout=clkin
在28335進行開發時,通常會使用到一些外設,因此需要給外設提供時鐘訊號。因此,在系統初始化的時候,就需要對使用到的各個外設的時鐘進行使能,使能**如下所示:
sysctrlregs.pclkcr0.bit.adcenclk=1;
//使能adc的時鐘
sysctrlregs.pclkcr1.bit.ecap1enclk=1;
//使能scia的時鐘
sysctrlregs.pclkcr3.bit.gpioinenclk=1;
//使能gpio的時鐘
對於低速時鐘暫存器lospcp和高速時鐘暫存器hispcp,可以通過給暫存器設值,來設定時鐘,具體配置如下所示:
a)lospcp:
lospcp=0時,lspclk=sysclkout
lospcp≠0時,lspclk=sysclkout/(2lospcp)
b)hispcp:
hispcp=0時,hspclk=sysclkout
hispcp≠0時,hspclk=sysclkout/(2hispcp)
28335提供了一路可以輸出到晶元外部的時鐘訊號,即xclkout,通過對sysclkout分頻可以得到不同的時鐘頻率,xclkout的訊號如圖所示:
經過配置,xclkout可以等於syscllkout,也可以為其1/2或者1/4,如果不適用xclkout訊號機,可以通過xintcnf2暫存器中的clkoff位將其關閉。
為了提高安全效能。ti的dps對很多關鍵暫存器做了保護處理,dsp由於在上電復位之後,狀態暫存器基本上都是清零,而這樣的狀態下正式上述特殊暫存器禁止改寫的狀態。為了能夠對這些特殊暫存器進行初始化,所以再對上述特殊暫存器進行改寫之前,先要執行「eallow」,在設定完成後,執行「edis」
DSP28335 外設時鐘
tms320f28335通過外部時鐘訊號 osc和pll產生倍頻時鐘訊號clkin後,clkin經過cpu後產生時鐘sysclkout clkin和sysclkout頻率是一樣的 sysclkout給各個片內外設提供時鐘訊號。為了實現低功耗和提供高低頻率時鐘訊號,需要把sysclkout進一步分頻,...
dsp28335時鐘 總結
1.dsp28355的最高頻率為150mhz 30mhz晶振訊號oscclk經鎖相環10倍頻 pllcr設定 然後經過2分頻 pllsts設定 產生150mhz時鐘訊號 2.150mhz 1 lspclk 低速時鐘 spi,sci,iic,mcbsp 2 1 2 75mhz ecan 3 150mh...
DSP28335進入非法中斷
進入非法中斷是因為cpu核心讀到了非法指令,之所以會讀到非法指令,一般是因為程式跑飛。程式跑飛不一定是軟體問題,硬體上的時鐘電源不穩定也會導致這個問題。1.程式中是否使用了delay us 函式,如果是,是否已經copy到ram中?2.檢查是否開了足夠的stack空間?3.進入程式後,先單步執行,看...