當前位置:首頁 > 單片機 > 單片機
[導讀]   本文主要介紹TIMSP430微控制器軟件編程設計中的實踐經(jīng)驗和應用技巧。  第一部分講述基于中斷的標準程序流程模式,適用于大多數(shù)的產(chǎn)品應用編程;另外一部分講述MSP430微控制器編程人員在開發(fā)產(chǎn)品時

  本文主要介紹TIMSP430微控制器軟件編程設計中的實踐經(jīng)驗和應用技巧。

  第一部分講述基于中斷的標準程序流程模式,適用于大多數(shù)的產(chǎn)品應用編程;另外一部分講述MSP430微控制器編程人員在開發(fā)產(chǎn)品時需要注意的一些關(guān)鍵問題、重要方法與注意事項,如:程序初始化流程,晶振初始化時的注意事項等,利用這些方法可以極大程度地減少產(chǎn)品的開發(fā)周期和提高產(chǎn)品的穩(wěn)定性。

  1.MSP430微控制器標準軟件設計流程MSP430微控制器軟件設計的標準流程均可參考圖1。該標準的軟件流程可將系統(tǒng)整體功耗降至最低。


圖1

  圖1所描述的軟件流程代碼是基于中斷程序的,平時MCU處于睡眠狀態(tài),直到有中斷產(chǎn)生時MCU被喚醒,最大程度降低系統(tǒng)功耗,優(yōu)化電源效率。

  理解圖1所示的中斷服務子程序(1SRs)流程,能更好的掌握MSP430微控制器處理低功耗的模式。MSP430微控制器的低功耗模式由狀態(tài)寄存器SR的控制位控制,在執(zhí)行中斷服務子程序之前,狀態(tài)寄存器SR的低功耗模式控制位可以被優(yōu)先壓棧。當中斷服務子程序返回時,主程序調(diào)用中斷之前的低功耗模式控制位,從而進入中斷之前的低功耗模式狀態(tài)。當然,如果我們在ISR中斷服務子程序返回前修改了保存在SR中的低功耗模式控制位,那么ISR中斷子程序執(zhí)行完之后,主程序流程可以轉(zhuǎn)到另一個不同的低功耗工作模式。

  中斷喚醒機制作為MSP430微控制器內(nèi)部低功耗模式的一部分,允許系統(tǒng)快速喚醒,響應中斷事件。例如,當一中斷事件發(fā)生之前MSP430微控制器處于低功耗LPM0模式,MCU在執(zhí)行中斷服務子程序之前首先向堆棧保存SR中的低功耗模式控制位值然后清除SR值,清除SR值使MCU從LPMO模式進入到執(zhí)行中斷活動模式狀態(tài)。在ISR中斷服務子程序中,軟件設計者可以寫一條語句清除SR中的低功耗模式控制位,當中斷程序完成后,MCU從堆棧中重新裝載調(diào)用各自寄存器的狀態(tài)值。如果沒有修改SR的低功耗模式控制位,退出中斷后系統(tǒng)仍然返回進入LPM0低功耗模式,若此時已修改SR控制位,當從ISR中斷程序退出后,系統(tǒng)會工作于活動模式時,并且按進入中斷之前的PC指針所指的地址繼續(xù)執(zhí)行程序。

  由于可以在fSR中斷服務子程序中改變低功耗模式,所以設計者可以選擇在ISR程序中執(zhí)行全部任務,也可以選擇在ISR喚醒MCU后在主程序中處理任務。

  在ISR程序中處理時確保能立即響應中斷事件,中斷事件發(fā)生時即能立刻處理中斷任務,但是,在處理一個中斷事件時,其它中斷將不能被載入,直到該中斷任務完成,而這樣長時間的中斷將會降低系統(tǒng)的響應靈敏,所以設計者須根據(jù)不同系統(tǒng)要求選擇最佳處理方式。

  圖1所示的流程圖中主程序需處理兩個中斷事件,這兩個中斷事件所要處理的任務是在主循環(huán)中處理的。ISRs執(zhí)行兩個不同的事件任務。第一個中斷,ISRs改變了保存在堆棧中SR的值,可以使系統(tǒng)退出中斷后進入活動工作模式,中斷事件是在主程序中被執(zhí)行,中斷事件可以是一任意應用事件,例如定時器、按鍵處理、AD轉(zhuǎn)換等。第二個中斷,在ISR中斷服務子程序設置一標志位,在主程序檢測該標志位來判斷是否執(zhí)行相應的任務。如果需處理的中斷事件能在較短的時間內(nèi)迅速完成,這樣就能夠在中斷服務子程序中直接執(zhí)行,無需進入主程序處理,此時ISR中斷服務子程序沒必要設置標志位或改變SR低功耗控制位退出睡眠模式,退出ISR中斷服務子程序后MCU仍然返回到睡眠模式。該流程可以根據(jù)系統(tǒng)應用的復雜性來定,例如,只有一個中斷事一件可喚醒主程序時,則無需設置系統(tǒng)標志位,此時,通過中斷喚醒主程序,然后主程序進行相應的任務操作,最后MCU重新進入睡眠模式。

  圖1中所提到的睡眠模式LPMn是系統(tǒng)所要用到的睡眠低功耗模式,每種應用所涉及的模式可能會有所不同,實際的睡眠模式由整個系統(tǒng)所用到的模塊(如定時器、AD、串口等)決定,取決于系統(tǒng)模塊在相應的睡眠模式下可否被中斷喚醒。例如由MCU的定時器負責喚醒CPU,且該定時器時鐘為ACLK時,則ACLK必須保持活動模式,則MCU可以工作在LPM3模式;但是如果定時器時鐘為DCO時,則MCU必須工作在LPMO。

  2方案設計技巧2.1看門狗和晶振的配置在任何一款MSP430微控制器中,看門狗默認開啟32ms復位,所以程序初始化第一步應先進行看門狗WDT的配置。如果在初始化中不快速處理WDT的話,則看門狗可能很快溢出造成芯片程序復位。為避免CPU進入復位死循環(huán),所以看門狗需在程序最開始配置,通過設置時間、設置控制位或者關(guān)閉看門狗。

  MSP430F4xx或MSP430F2xx微控制器中,使用LFXT1低頻率晶振時,代碼運行之前需通過FLL_CTL0寄存器配置晶振相應的負載電容,否則晶振可能會運行不正常,該技巧在許多TI的MSP430微控制器應用實例代碼中均可見。

  2.2使用TI的標準頭文件

  TJ為每一款MSP430微控制器均提供~標準頭文件,文件中包含相應芯片型號中的所有寄存器和位常數(shù)定義信息,使用文件中定義的信息能極大地提高程序的可讀性,同時增加系統(tǒng)可移植性,使其它設計者能快速掌握該程序的設計。TI的每~個應用方案和代碼實例都可以應用這些頭文件。

  2.3運用內(nèi)部函數(shù)處理低功耗模式和其它函數(shù)

MSP430微控制器利用C語言開發(fā)軟件時,可以直接調(diào)用編譯器包含的幾個內(nèi)部函數(shù)。有時一些關(guān)鍵事件的處理唯一方法就是使用內(nèi)部函數(shù),利用內(nèi)部函數(shù)會很大程度地提高任務處理的效率。

  使用內(nèi)部函數(shù)最普通的例子就是進入與退出低功耗模式,通常用C語言時必須對CPU寄存器中的某些位進行操作,例如在IAR編譯環(huán)境中如果需要進入LPM3模式,則即可直接使用內(nèi)部函數(shù):

  BISSR(LPM3_bits+GIE)。

  其它內(nèi)部函數(shù)有時也具有優(yōu)化功能,例如MSP430微控制器轉(zhuǎn)換BCD碼的內(nèi)部指令函數(shù),如果沒有這些指令組合,則需要一長串C語言代碼完成,且編輯器不能直接將代碼轉(zhuǎn)換成MSP430微控制器識別的BCD數(shù)學指令。使用內(nèi)部函數(shù)使得利用C語言編程的人員最大程度地優(yōu)化了程序代碼,也降低了系統(tǒng)功耗。

  MSP430微控制器的開發(fā)環(huán)境編譯器包含一系列功能函數(shù),開發(fā)設計時需注意最新版本。

  2.4晶振失效的處理函數(shù)

  MSP430微控制器具有檢查時鐘是否失效的功能。所有的微控制器系列提供內(nèi)部DCO和高頻頻晶振的失效檢測功能,MSP430F4xx和MSP430F2xx系列具有全部時鐘失效檢測的功能,如:外部32768Hz低頻時鐘與高頻時鐘失效檢測。

  具體細節(jié)可參考用戶手冊。

  本文主要考慮兩種會出現(xiàn)晶振失效的情況以及考慮是否需要做出相應的處理。

  (1)在每一次MCU上電時晶振穩(wěn)定的過程。在這個過程中會造成晶振的失效,特別對于低頻晶振初始化,時鐘穩(wěn)定需要一定時間,經(jīng)常是幾千毫秒。

  (2)在程序運行過程中出現(xiàn)晶振失效,比如某種導體將晶振管腳短路,因此需要一些特殊的方法處理,當晶振失效時,DC0時鐘模塊將繼續(xù)支持CPU的工作。

  如果時鐘源ACLK、SMCLK或者晶振未穩(wěn)定時,任何使用這些時鐘的外圍設備都將受到影響,唯一方法即是通過軟件進行檢測與處理。當一些對時間敏感的外圍(如定時器)以低頻晶振為時鐘源,若晶振未振蕩穩(wěn)定時,將導致初始化失敗,同時若程序代碼未等到晶振穩(wěn)定就開始工作,則外設輸出的結(jié)果是不可預知的。

  如果由LFXT1、LT×T2提供系統(tǒng)的MCLK時鐘源,晶振失效了,則MCLK時鐘源會自動切換到內(nèi)部DCO時鐘模塊,由內(nèi)部的DCO做為MCLK時鐘源。

  處理晶振初始化的一個簡單方法就是可以不停重復清零、等待檢測默認的晶振失效標志位,直到晶振失效標志不在置位,可參考用戶手冊。如MSP430F:2xx系列,LF×T1的低頻晶振并不能檢測晶振是否失敗,此時可調(diào)用一延時程序以保證有足夠的初始化穩(wěn)定時間。這種方法在一般程序正常操作過程中并不能捕獲到晶振是否失效,但可以通過設置OFIE位在NMI中斷服務子程序中處理。

  2.5逐漸增加MCLK頻率

  大多數(shù)MSP430微控制器的MCLK可以配置為8MHz,MSP430F2xx可以達到16MHz,系統(tǒng)要求VCC電壓值隨著頻率的升高相應有所增加。程序運行時,若設定MCLK頻率所需的VCC電壓比真正提供給微控制器的電壓值高,則運行過程中將發(fā)生不可預知的問題。

  即使MCU實際工作VCC值比工作頻率需要的實際工作電壓高出很多,但VCC上升到穩(wěn)定狀態(tài)是需要一定時間的,所以我們要在工作頻率升高之前確保芯片電壓已經(jīng)能夠支持晶振正常工作。

  如果MCU具備SVS(電壓檢測模塊)模塊,則SVS可以提醒系統(tǒng)的VCC電壓達到所需的電壓值;若MCU不具備SVS模塊,但是含有可利用的ADC模塊,則ADC模塊可以采樣VCC電壓,從而判斷在提升頻率之前芯片電壓值是否能滿足高頻工作要求。

  2.6使用初始化函數(shù)

通常在C編譯器編寫代碼時,程序會自動初始化所有定義的存儲器,并且將代碼值插入到main()主程序中。如果定義的存儲器很多(大量變量),則將導致看門狗的溢出問題。當初始化許多變量時,占用的時間相應就會很長,以至于在執(zhí)行main()主程序第一條語句之前看門狗已經(jīng)溢出,那么將導致死循環(huán)的產(chǎn)生

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉