(1)MSP430F5529學習入門


  為想學MSP430單片機的初學者,或者,你是剛轉到電子硬件嵌入式開發,如果你的電子基礎課程已經完成,想盡快掌握MSP430單片機,又糾結於怎樣盡快闖入MSP430學習過程的問題,現總結整理出新手開始學習MSP430的一些問題,和學習中有關注意事項和方法。 供有心學習MSP430單片機的童鞋參考吧。

  當然,闖入MSP430學習,你需要有一些單片機的理論基礎,和比較強的C語言功底,學習MSP430單片機最好的方法是文武並進:“文”指學好片內模塊的資源知識;“武”則指動手能能力。基礎知識+動手實操,是一個非常有效的學習方法。文武並進必能學有所成。

  進入各個電子產品公司的網站,招聘里面嵌入式占據了大半工程師職位。 廣義的嵌入式無非幾種:傳統的什么51單片機、 MSP430稱做嵌入式微控制器;ARM是嵌入式微處理器;當然還有DSP;FPGA。我們現在就不說別的,就說MSP430單片機,多數想學MSP430的童鞋,對89C51內核系列的單片機是很熟悉的,為了加深對MSP430 系列單片機的認識嗎,迅速闖入MSP430學習過程,就必須徹底了解MSP430單片機,我們不妨將51單片機和MSP430兩者進行一下比較。

  第一點, 51內核單片機是8 位單片機。其指令是采用的被稱為“ CISC ”的復雜指令集,共具有111 條指令。而MSP430 單片機是16 位的單片機,采用了精簡指令集( RISC )結構,只有簡潔的27 條指令,大量的指令則是模擬指令,眾多的寄存器以及片內數據存儲器都可參加多種運算。這些內核指令均為單周期指令,功能強,運行的速度快

  第二點,MCU主要分為兩種工作模式:待機與執行。51內核單片機正常情況下消耗的電流為mA級 ,在掉電狀態下,其耗電電流仍約為3mA左右 ;即使在掉電方式下,電源電壓可以下降到2V ,但是為了保存內部RAM 中的數據,還需要提供約50uA的電流。

  而430單片機功耗是在uA級的工作電流極小,並且超低功耗,關斷狀態下的電流僅為0.1μA,待機電流為0.8μA,常規模式下的(250μA/1MIPS@3V),端口漏電流不足50 nA,並可零功耗掉電復位(BOR)另外,該芯片屬低電器件,僅需1.8~3.6V電壓供電,因而可有效降低系統功耗。MSP430將低功耗模式擴展為7種,分別對應不同應用場合及任務的低功耗方式。以睡眠模式為例,包括深度睡眠模式RTC:只有時鍾在跑而其他都不動,目前,TI宣布其MSP430在RTC模式下最低功耗僅為360nA。同時也包括諸如液晶顯示驅動等需要幾十毫秒刷新一次的間歇性睡眠模式。所以,MSP430 的超低功耗更適合應用於使用電池供電的儀器、儀表類產品中。

  第三點, 51內核單片機由於其內部總線是8 位的,受其結構本身的限制很大,模擬功能控制功能受限制。MSP430 系列其基本架構是16 位的,同時在其內部的數據總線經過轉換還存在8 位的總線,在加上本身就是混合型的結構,因而對它這樣的開放型的架構來說,無論擴展8 位的功能模塊,還是16 位的功能模塊,即使擴展模/ 數轉換或數/ 模轉換這類的功能模塊也是很方便的。

  第四點,典型MCU的存儲結構有兩種。諾依曼結構——程序存儲器和數據存儲器統一編碼哈佛結構——程序存儲器和數據存儲器;MSP430系列單片機屬於前者,而常用的51內核單片機系列屬於后者。

       第五點,就是在開發工具上面。對51內核單片機來說,不少適合我們使用的開發工具。但是如何實現在線編程還是一個很大的問題。對於MSP430 系列而言,由於引進了Flash 型程序存儲器和JTAG 技術,不僅使開發工具變得簡便,而且價格也相對低廉,並且還可以實現在線編程。

      那么說了以上這些,作為新手,到底怎么學習430這種16位低功耗的單片機呢?或者說有什么有什么效果比較好的方法嗎,答案是肯定。

  網上有很多介紹MSP430單片機學習的方法,一定要結合自己的學習特點,集百家之長,善於總結別人的、自己的學習方法和效果,積極實踐。當然學習的方法都是相通的。大概對這些方法簡單總結,也就是下面幾點:

  1. 作為430新手,首先看我們是否准備好以下幾樣硬件:電腦(帶有並口)1台,MSP430FET仿真器1套,MSP430開發實驗板1套,和一些MSP430教程或電子教程資料等。
  2. 選用MSP430仿真器。購買現成的MSP430JTAG仿真器如TI-MSP430JTAG
  3. 選用MSP430開發板或目標板是學習一個重要的工具,建議購買一個開發板或目標板,同時也會得到很好的技術支持。如果自己制作的話也行,也未尚不可,那就看個人水平了。
  4. 軟件工具,因為現在都有學習板的工具軟件,如IAR的EW430學習版,430GCC軟件還是免費的。建議還是使用IAR軟件較方便,因為使用的人群較多,有問題還可請教,容易解決。
  5. MSP430學習資料及教程,<<MSP430系列16位超低功耗單片機原理與應用>> 清華大學出版社和一本關於430C語言編程應用的書本<<MSP430系列單片機實用C語言程序設計>>。
  6. MSP430系列中硬件源資是非常豐富的。有看門狗(WDT)、定時器A (Timer_A)、定時器B(Timer_B)、比較器、串口0(USARTO)、串口1(USART1)、硬件乘法器、液晶驅動器、10位/12位ADC, 14位ADC,數十個可實現方向設置及中斷功能的並行輸入輸出端口、基本定時器(Basic Timer)
  7. 以下幾部分模塊硬件資源是作為初學者必須要了解學習的。
    ①WDT看門狗定時器: 新手們會看到很多編程實例中,開頭都有“WDTCTL = WDTPW + WDTHOLD;”語句。這是CUP執行關閉定時器的意思。在剛開始,我們沒必要關心這個,可以跳過這章節,只要大概地知道他的作用就好了。看門狗定時器一般是用於防止程序失效而存在的,一般是用於完整的程序中使用。主程序中可不斷地清除看門狗定時器的計數值,以防定時器的值自動計滿后使CPU復位而重新開始工作。當程序發生錯誤時,無法正常清除看門狗的定時值時,則看門狗定時器計數溢出而產生CPU復位。

    ②IO模塊:對於IO模塊可分為初級與提高兩階段,可以不必同一時段內進行理解。
     a初學者必需了解幾個常用寄存器使用如P1OUT,P1IN,P1DIR,P1SEL寄存器。
     b理解MSP430 IO口常用編程語法,這些都可以查看參考例程。
     c結合書本介紹和個人理解,然后在開發板上進行實驗。例如比如LED、響聲之類的初級實驗。
     d對於IO模塊:了解如何使用IO中斷,和IO中斷相關寄存器的使用。如果不太必要,可以跳過IO中斷的使用,而是去學習其他章節的基礎部分;當其他章節基礎學習到一定程序時回過頭再來學習這部分。另外,我們需要搞清楚IO模塊在什么時候為高阻狀態?高阻狀態時的漏電流為多少?IO驅動電流能力如何?等等一些常關注的參數時,我們都需要養成主動查看器件手冊的習慣。

   中斷是430處理器的一大特色,因為幾乎每個外圍模塊都能產生,430可以在沒有任務時進入低功耗狀態,有事件時中斷喚醒cpu,處理完畢再次進入低功耗狀態。整個中斷的響應過程是這樣的,當有中斷請求時,如果cpu處於活動狀態,先完成當前命令;如果處於低功耗,先退出,將下一條指令的pc值壓入堆棧;如果有多個中斷請求,先響應優先級高的;執行完后,等待中斷請求標志位復位,要注意,單中斷源的中斷請求標志位自動復位,而多中斷的標志位需要軟件復位;然后系統總中斷允許位SR.GIE復位,相應的中斷向量值裝入pc,程序從這個地址繼續執行。這里要注意,中斷允許位SR.GIE和中斷嵌套問題。如果當你執行中斷程序過程中,希望可以響應更高級別的中斷請求時,必須在進入第一個中斷時把SR.GIE置位。 其實,其他的外圍模塊時鍾沿着時鍾和中斷這個核心來執行的。具體的結構我也不羅索了,可以參考430系列手冊。
  ③時鍾模塊:系統時鍾是一個程序運行的指揮官,時序和中斷也是整個程序的核心和中軸線。430最多有三個振盪器,DCO內部振盪器;LFXT1外接低頻振盪器,常見的32768HZ,不用外接負載電容;也可接高頻450KHZ-8M,需接負載電容;XT2接高頻450KHZ-8M,加外接電容。初學者若要使用到片中某模塊時幾乎都要使用不同的時鍾。時鍾模塊是提供整個單片機中各模塊的時鍾發生源,所以這章節是非常強調地要去認真理解的。
  ⑴.必須理解430有幾種時鍾信號:MCLK系統主時鍾可分頻1 2 4 8,供cpu使用,其他外圍模塊在有選擇情況下也可使用SMCLK系統子時鍾供外圍模塊使用,可選則不同振盪器產生的時鍾信號;ACLK輔助時鍾只能由LFXT1產生,供外圍模塊。

  ⑵.DCO,SMCLK,MCLK,ACLK各個時鍾有什么優點和缺點。
  ⑶.4個時鍾信號中,每個時鍾的通常頻率范圍是多少。
  ⑷.常規的時基控制寄存器設置和時鍾如何從引腳輸出等等。
  ④TimaA模塊:⑴.初學者需要搞清TimerA的三個不同工作模式TA、CCR1、CCR2與CCR0之間的關系。⑵.搞清楚TA、CCR1、CCR2與CCR0之間的中斷向量關系。⑶.綜合上面的理解,我們可以結合TimerA的例程來進行相關驗證,只有通過親自的操作才能有效地記住。⑷.利用TimerA實現PWM信號輸出、利用捕獲/比較功能實現捕獲信號等等

  1. 另外多大學習430學習單片機論壇上, 和網友交流,咨詢,多看別人出現的問題的解決方法。

      可以說,只要經過上述方面認真折騰學習的話,其實MSP430單片機編程應用就有了基本入門階段,可以說已經闖入MSP430單片機有效學習過程,接下要繼續學習其他相關的模塊應用也不難了。那么剩下的一些模塊可以按需而用,按需而學。 但前提的就是需要熟悉幾個常用模塊基礎應用,以使用量最多的14x系列為例,初學者入門必學有IO模塊、時基模塊、定時器模塊等,以后可繼續強化學習如ADC12模數轉換、UART串行異步通訊模塊、比較器A模塊等等。

  文章摘錄於:http://blog.lehu.shu.edu.cn/879836630/A448888.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM