2812的時鐘系統
---by eys417
1. 振盪器osc和鎖相環pll
2812基於pll的時鐘模組可以採用兩種模式,一種是pll未被禁止的情況下(旁路或使能),使用外部晶振給2812提供時鐘訊號,使用x1/clkin引腳和x2引腳;另外一種pll被禁止的情況下,旁路片內振盪器,由外部時鐘源提供時鐘訊號,即將外部振盪器的訊號輸入到x1/xclkn引腳,x2引腳不使用。通常情況下,採用第一種方式,由外部晶振通過片內osc來產生時鐘訊號。
平常使用的是第3種方式,即pll使能
晶振為30m,pllcr的div位被設定成1010時的時鐘頻率
clkin=(osclkin*10)/2=(xclkin*10)/2=(30m*10)/2=150m hz
2.2812晶元中各種時鐘訊號的產生情況
和時鐘使能相關的暫存器是外設時鐘控制暫存器pclkcr。使能外設時鐘
sysctrlregs.pclkcr.bit.scienclka=1;
sysctrlregs.pclkcr.bit.evaenclk=1;
sysctrlregs.pclkcr.bit.adcenclk=1;
低速時鐘外設 ---- scia、scib、spi、mcbsp
lspclk計算公式
lospcp=0,lspclk=sysclkout
lospcp=1—7,lspclk=sysclkout/(2*lospcp)
注:lospcp表示的是lospcp暫存器中位2-0的值
高速時鐘外設 ---- eva、evb和adc
hspclk計算公式
hispcp=0,hspclk=sysclkout
hispcp=1—7,hspclk=sysclkout/(2*hispcp)
注:hispcp表示的是hispcp暫存器中位2-0的值
sysoutclk組:cpu定時器,ecan匯流排
oscclk組:看門狗電路
3.看門狗(watch dog)
看門狗,又叫watchdog timer,是乙個定時器電路, 一般有乙個輸入,叫餵狗(kicking the dog or service the dog),乙個輸出到mcu的rst端,mcu正常工作的時候,每隔一端時間輸出乙個訊號到餵狗端,給wdt 清零,如果超過規定的時間不餵狗,(一般在程式跑飛時),wdt 定時超過,就回給出乙個復位訊號到mcu,是mcu復位. 防止mcu宕機.看門狗的作用就是防止程式發生死迴圈,或者說程式跑飛。
2812的看門狗電路有乙個8位的看門狗加法計數器wdcntr,無論什麼時候,如果wdcntr計數到最大值時,看門狗模組就會產生乙個輸出脈衝,脈衝寬度為512個振盪器時鐘寬度。為了防止看門狗加法計數器wdcntr溢位,我們通常可以採用兩種方法:一種是禁止看門狗,即使得計數器wdcntr無效;另一種就是定期的「餵狗」,通過軟體向負責復位看門狗計數器的看門狗金鑰暫存器(8位的wdkey)週期性的寫入0x55+0xaa,緊跟著0x55寫入0xaa能夠清除wdcntr。寫任何其他的值都會使看門狗立即復位
4.系統初始化函式
系統初始化函式dsp281x_sysctrl.c檔案。
void initsysctrl(void)
//禁止看門狗
void disabledog(void)
//餵狗函式
void kickdog(void)
//pll初始化,30m*val/2
void initpll(uint16 val)}}
//初始化個外設時鐘--時能or禁止
void initperipheralclocks(void)
2812的時鐘系統
2812的時鐘系統 1.振盪器osc和鎖相環pll 2812基於pll的時鐘模組可以採用兩種模式,一種是pll未被禁止的情況下 旁路或使能 使用外部晶振給2812提供時鐘訊號,使用x1 clkin引腳和x2引腳 另外一種pll被禁止的情況下,旁路片內振盪器,由外部時鐘源提供時鐘訊號,即將外部振盪器的...
HELLO六 2812的時鐘系統
by eys417 1.振盪器osc和鎖相環pll 2812基於pll的時鐘模組可以採用兩種模式,一種是pll未被禁止的情況下 旁路或使能 使用外部晶振給2812提供時鐘訊號,使用x1 clkin引腳和x2引腳 另外一種pll被禁止的情況下,旁路片內振盪器,由外部時鐘源提供時鐘訊號,即將外部振盪器的...
HELLO六 2812的時鐘系統
by eys417 1.振盪器osc和鎖相環pll 2812基於pll的時鐘模組可以採用兩種模式,一種是pll未被禁止的情況下 旁路或使能 使用外部晶振給2812提供時鐘訊號,使用x1 clkin引腳和x2引腳 另外一種pll被禁止的情況下,旁路片內振盪器,由外部時鐘源提供時鐘訊號,即將外部振盪器的...