新的一年,開個(gè)好頭~K60涼在手里好多天了,好久沒弄了,今天又拿出來當(dāng)寶貝似的玩了玩,搗鼓了一上午,有點(diǎn)小收獲,跟大家分享一下,因?yàn)橹皇且环N小技巧,所以就不單獨(dú)列入從零入手系列了。
其實(shí)以前看啟動(dòng)代碼的時(shí)候就注意過這個(gè),不過那時(shí)候沒親手試驗(yàn)過,老覺著空有理論,然而不實(shí)踐一下怎么能行呢是吧,呵呵。其實(shí)現(xiàn)在發(fā)現(xiàn)好多人都有這個(gè)毛 病,覺著看那點(diǎn)東西就那么回事兒,小菜兒,往往就懶得去動(dòng)手去驗(yàn)證一下,個(gè)人覺著這個(gè)陋習(xí)不只是在剛?cè)腴T的人身上有體現(xiàn),很多高手也有這個(gè)毛病。個(gè)人建議 下盡量去克服這個(gè)陋習(xí)(雖然我也有這個(gè)毛病,汗,正在改_ing),因?yàn)槲覀兏汶娮拥摹⒏愎こ痰牟痪褪强康膭?dòng)手能力嗎,咱靠著吃飯的家伙可不能冷落了它, 覺著有理的頂一個(gè)哈,哈哈~
下面進(jìn)入正題,我們在通過MCG模塊設(shè)置系統(tǒng)時(shí)鐘的時(shí)候,往往無法去準(zhǔn)確確定設(shè)置后系統(tǒng)的運(yùn)行時(shí)鐘跟自己的設(shè)置是否對應(yīng)。到這里可能會(huì)有人提出通過軟件延 時(shí)不斷翻轉(zhuǎn)某個(gè)IO狀態(tài)來驗(yàn)證,好吧,我只能微微一笑了,呵呵~既然飛思卡爾給咱提供了方便的方式(不只是飛思卡爾,其實(shí)很多單片機(jī)都提供這個(gè)功能,這里 用飛思卡爾人家的東西就替人家吹吹吧),咱們何樂而不為呢。
K60(144pin的,因?yàn)橛行┬吞栍捎诠苣_數(shù)量限制,可能會(huì)被裁減掉,這里為了嚴(yán)謹(jǐn)提一下)提供了兩個(gè)復(fù)用IO管腳(PTA6和PTC3)用來輸出 trace_clock 和FB_Clock,其中trace_clock為調(diào)試用的跟蹤時(shí)鐘,通過軟件可以設(shè)置成為MCG_Clock_Out或者 Core_Clock/System_Clock(注意trace clock實(shí)際輸出為內(nèi)部時(shí)鐘的2分頻);FB_Clock為FlexBus clock即總線時(shí)鐘。文字啰嗦,下面還是上圖(管腳復(fù)用圖),呵呵~
上面是硬件上的復(fù)用情況,可以看到,trace clock 為第七個(gè)復(fù)用功能(ALT7),F(xiàn)B_Clock為第五個(gè)復(fù)用功能(ALT5),F(xiàn)在硬件上的配置我們已經(jīng)了然了,下面看看飛思卡爾官方給出的軟件上是怎 么實(shí)現(xiàn)的。這部分軟件需要到啟動(dòng)代碼文件之一sysinit.c文件(這里再抱怨一下,飛思卡爾官方給出的太麻煩了,哎)里找到。在最后面可以看到兩個(gè)子 函數(shù)及在程序之中的調(diào)用,下圖:
軟件上如上圖所示設(shè)置之后就可以正常輸出了。在軟件MCG初始化里,我設(shè)置的內(nèi)核時(shí)鐘為100MHz(所以trace clock為50MHz,上面有說到),總線時(shí)鐘為50MHz(FB_Clock),下面看下我照下來的波形(汗,用手機(jī)照的,效果一般,沒帶U盤沒法從 示波器里直接導(dǎo)出,湊合著先看著,下次一定不要忘了帶U盤啊,呵呵):
trace clock 波形圖
FB_Clock 波形圖
通過上面簡單的步驟就可以實(shí)現(xiàn)對K60內(nèi)部時(shí)鐘的運(yùn)行頻率驗(yàn)證了,非常方便。不過從圖上看,波形有一定的直流分量,而且我測試過頻率越低,這個(gè)直流分量越小,沒想明白,希望有高手遇到過這個(gè)問題的指點(diǎn)一下,謝謝了。