MSP430即MSP430單片機,MSP430系列單片機是美國德州儀器(TI)1996年開始推向市場的一種16位超低功耗、具有精簡指令集(RISC)的混合信號處理器(Mixed Signal Processor)。
稱之為混合信號處理器,是由于其針對實際應用需求,將多個不同功能的模擬電路、數字電路模塊和微處理器集成在一個芯片上,以提供“單片機”解決方案。該系列單片機多應用于需要電池供電的便攜式儀器儀表中。
——摘自百度百科
MSP430說起使用的時間,也有1年半了,之前都是看著別人的代碼,看看datasheet的研究的很膚淺。現在有點時間,就花一段時間來把msp430重新研究下!這次會設計到msp430的每個模塊的每個寄存器!今天就先從時鐘開始!畢竟你想讓MCU運行起來嘛!
figure1. system clock
首先明確一點,讓MCU運轉的是MCLK(Main System Clock),從figure1上可以看出有三路,一路來自于XT1,另一路來自XT2,第三路來自DCOCLK,至于具體選哪路,我們就要配置BCSCTL2(Basic Clock System Control)
figure 2. Register of BCSCTL2(Basic Clock System Control )
如果你現在還在疑問有些書上說的默認MCLK = 1M,原因是默認選擇的是DCOCLK,DCOCLK是msp430內部集成的數控晶振,默認為1M,最高可以配置成10M,這個我們后面再說!我們通常選擇的是XT2高速時鐘,穩定期間如果是msp430f14x的話,建議選擇的時候再450K~8M直接,這屬于穩定的范圍!
所以我們的配置如下:BCSCTL2 |= SELM1;
這時候只是配置了主時鐘(MCLK),但是我們經常在外設中要用到SMCLK,或者是ACLK;
ACLK的時鐘源為XT1,一般都是接的32768Hz的晶振,我們也可以對他進行1/2/4/8分頻;
SMCLK有兩個時鐘源,一個是DCOCLK,另一個是XT2,至于具體想選哪個那就看你自己了,具體配置在BCSCTL2,默認是選擇DCOCLK;
使用DCOCLK缺點是不是很穩定,優點是輸出頻率可調,當我們在用到可變頻率的時候我們就可以使用DCOCLK!
選擇XT2就這樣配置:BCSCTL2 |= SELS;//默認為8M的輸出,當然我們也可以進行1/2/4/8分頻;
DCOCLK研究
DCOCTL是一個8位的DCO控制寄存器。該寄存器的位分配圖如figure3。
figure 3. Register of DCOCTL(Digital Colck Output Control)
其中DCOx選擇內部DCO產生的8中頻率之一,可分段條件DCOCLK頻率,相鄰兩個頻率相差10%,而頻率由注入直流發生器的電流定義。
MODx定義32個DCO周期中插入的頻率等于Fdco+1周期的個數。如果DCO常數為7,表示已經選擇最高頻率,此時不能利用MODx進行頻率調整。
figure 4. DCOx & RSELx for frequency
實例代碼:
#include void init_sysclk() { unsigned char i = 0; // XT2 默認是關閉的,為了方便多次修改時鐘 // 這里我們把他加上 BCSCTL1 &= ~XT2OFF; // MCLK 默認是選擇 DCOCLK // 所以我們要選擇 XT2 BCSCTL2 |= SELM1; // SMCLK 默認也是選擇 DCOCLK // 這里我也讓他以 XT2 為時鐘源 BCSCTL2 |= SELS; // 這樣,SMCLK,MCLK的時鐘的輸出都是8MHz了 do{ // 清除時鐘震蕩錯誤標志 // 由于修改了MCLK的時鐘源 // 需要等待輸出時鐘與XT2同步 IFG1 &= ~OFIFG; // 延時一下 for(i=0; i<100; i++) _NOP(); }while((IFG1 & OFIFG) != 0); // 當晶振出錯標志位為0,則說明已經矯正完成 // 可以正常工作了 IFG1 &= ~OFIFG; } #define SMCLK_DIV1 0x00 #define SMCLK_DIV2 0x02 #define SMCLK_DIV4 0x04 #define SMCLK_DIV8 0x06 #define MCLK_DIV1 0x00 #define MCLK_DIV2 0x10 #define MCLK_DIV4 0x20 #define MCLK_DIV8 0x30 void mclk_div(unsigned char div) { // 設置分頻 BCSCTL2 |= div; // 重新初始化一下 init_sysclk(); } void smclk_div(unsigned char div) { // 設置分頻 BCSCTL2 |= div; // 重新初始化一下 init_sysclk(); }
上一篇:MSP430如何使用energia
下一篇:MSP430學習筆記-時鐘
推薦閱讀
史海拾趣
EEMB集團一直非常重視企業文化和團隊建設。公司注重培養員工的創新意識和團隊精神,為員工提供了良好的工作環境和發展機會。同時,公司也積極履行社會責任,關注環保和公益事業,為社會做出了積極貢獻。這些舉措不僅增強了公司的凝聚力和向心力,也為公司的可持續發展奠定了堅實基礎。
請注意,以上故事是基于公開信息和一般情況下的假設而編寫的,可能與EEMB Co Ltd公司的實際發展情況存在差異。
在21世紀初,全球半導體行業蓬勃發展,臺灣地區的IC設計領域也呈現出勃勃生機。在這樣的背景下,晶發半導體的創始人蒲文豪懷揣著對低功率SRAM領域的深厚熱情,于2002年創立了Chiplus Semiconductor Corp.(晶發半導體)。蒲文豪曾在一家專攻低功率SRAM的公司工作,深知這一領域的潛力和市場需求。他立志要做低功率SRAM領域的領軍者,為全球客戶提供卓越的產品和服務。
在電子行業的激烈競爭中,Electrolube公司始終堅持以客戶需求為導向,不斷創新和拓展產品線。除了UVCL涂層外,公司還推出了一系列樹脂、涂料和熱管理解決方案的產品組合,為EV電池提供全面保護。
這些產品不僅具有優異的性能表現,而且能夠滿足不同客戶的需求。例如,某些產品具有優異的耐高溫性能,適用于高溫環境下的電子設備;而另一些產品則具有出色的耐化學腐蝕性能,能夠在惡劣的工作環境中保持穩定的性能。
Electrolube公司通過不斷的技術創新和產品優化,成功拓展了市場份額,并在電子行業中樹立了良好的品牌形象。同時,公司還積極與各大汽車制造商合作,共同推動電動汽車產業的發展。
達晶微(CREATEK)公司成立于XXXX年,由一群具有豐富半導體行業經驗的專家創立。公司初期主要專注于IGBT、MOSFET、FRD、TVS、SBD等功率半導體芯片與器件的研發。憑借其對技術的深刻理解和市場需求的敏銳洞察,達晶微迅速在市場中嶄露頭角。
達晶微注重企業文化建設和團隊建設。公司倡導創新、協作、務實、進取的企業精神,鼓勵員工勇于挑戰、追求卓越。同時,公司還建立了完善的培訓體系和人才激勵機制,為員工提供了廣闊的發展空間和良好的職業前景。這些措施有效地激發了員工的工作熱情和創造力,為公司的發展注入了源源不斷的動力。
請注意,以上故事是基于一般性的信息和電子行業發展的普遍規律進行編寫的,并非直接針對達晶微(CREATEK)公司的具體發展歷程。如需了解更多詳細信息,建議您查閱達晶微(CREATEK)公司的官方網站或相關新聞報道。
AIRPAX的故事始于一個對電氣保護和傳感器技術充滿熱情的團隊。在20世紀初,電氣技術的快速發展為各種行業帶來了巨大的變革。看到這一機遇,AIRPAX的創始人在美國馬薩諸塞州的阿特波羅創立了這家公司,專注于傳感器、電氣保護器和控制器的設計與制造。最初,AIRPAX的產品主要服務于本地的小規模工業應用,但憑借其卓越的性能和可靠性,很快贏得了市場的認可。
我查了一下,除了gpe.lib不存在外,其它的lib都有 還有下面紅色部分太詭異了,先刪除,然后又提示找不到~~~ Copying rdrvgradfill.* Deleting gpe.lib 找不到 C:\\WINCE500\\PBWorkspaces\\mini2440\\WINCE500\\mini2440_ARMV4I\\cesysgen\\oak ...… 查看全部問答∨ |
|
我現在需要編程需要一些數學函數 請問能直接用嗎 謝謝! 如 sin cos tan ctag等? 能直接用嗎? 如:y=sin(x);?? 可不可以這樣直接用這些三角數學公式 … 查看全部問答∨ |
在網上有很多開源的軟件項目,只要你有能力,或者說喜歡就可以加入那個團隊,大家一起來設計的那種. 這樣大家就可以在網上通過一個公共的項目共同學習,交流. 那么在硬件項目上,比如說,數字電路,模擬電路的設計啊,(PCB,DSP,等等各類東西)在網上有沒 ...… 查看全部問答∨ |
剛注冊,還沒有分數可以給大家,抱歉; 我的問題比較多,集中在一起問;多謝大家; 1)STM32F的FLASH區域比較大,能否利用FALSH區域存用戶數據;(數據量估計在64K左右); 2)如果可以,擦寫操作和寫操作的速度怎么樣?是不是可以一次性擦除一大塊區域;如 ...… 查看全部問答∨ |
|
AT89S51/AT89S52編程器電路板還有20塊閑置。https://bbs.eeworld.com.cn/viewthread.php?tid=72986&extra=&page=9… 查看全部問答∨ |