msp430f5529教程
當然,闖入MSP430學習,你需要有一些單片機的理論基礎,和比較強的C語言功底,學習MSP430單片機最好的方法是文武并進:“文”指學好片內(nèi)模塊的資源知識;“武”則指動手能能力。基礎知識+動手實操,是一個非常有效的學習方法。文武并進必能學有所成。
進入各個電子產(chǎn)品公司的網(wǎng)站,招聘里面嵌入式占據(jù)了大半工程師職位。 廣義的嵌入式無非幾種:傳統(tǒng)的什么51單片機、 MSP430稱做嵌入式微控制器;ARM是嵌入式微處理器;當然還有DSP;FPGA。我們現(xiàn)在就不說別的,就說MSP430單片機,多數(shù)想學MSP430的童鞋,對89C51內(nèi)核系列的單片機是很熟悉的,為了加深對MSP430 系列單片機的認識嗎,迅速闖入MSP430學習過程,就必須徹底了解MSP430單片機,我們不妨將51單片機和MSP430兩者進行一下比較。
第一點, 51內(nèi)核單片機是8 位單片機。其指令是采用的被稱為“ CISC ”的復雜指令集,共具有111 條指令。而MSP430 單片機是16 位的單片機,采用了精簡指令集( RISC )結構,只有簡潔的27 條指令,大量的指令則是模擬指令,眾多的寄存器以及片內(nèi)數(shù)據(jù)存儲器都可參加多種運算。這些內(nèi)核指令均為單周期指令,功能強,運行的速度快。
第二點,MCU主要分為兩種工作模式:待機與執(zhí)行。51內(nèi)核單片機正常情況下消耗的電流為mA級 ,在掉電狀態(tài)下,其耗電電流仍約為3mA左右 ;即使在掉電方式下,電源電壓可以下降到2V ,但是為了保存內(nèi)部RAM 中的數(shù)據(jù),還需要提供約50uA的電流。
而430單片機功耗是在uA級的,工作電流極小,并且超低功耗,關斷狀態(tài)下的電流僅為0.1μA,待機電流為0.8μA,常規(guī)模式下的(250μA/1MIPS@3V),端口漏電流不足50 nA,并可零功耗掉電復位(BOR)。另外,該芯片屬低電器件,僅需1.8~3.6V電壓供電,因而可有效降低系統(tǒng)功耗。MSP430將低功耗模式擴展為7種,分別對應不同應用場合及任務的低功耗方式。以睡眠模式為例,包括深度睡眠模式RTC:只有時鐘在跑而其他都不動,目前,TI宣布其MSP430在RTC模式下最低功耗僅為360nA。同時也包括諸如液晶顯示驅動等需要幾十毫秒刷新一次的間歇性睡眠模式。所以,MSP430 的超低功耗更適合應用于使用電池供電的儀器、儀表類產(chǎn)品中。
第三點, 51內(nèi)核單片機由于其內(nèi)部總線是8 位的,受其結構本身的限制很大,模擬功能控制功能受限制。MSP430 系列其基本架構是16 位的,同時在其內(nèi)部的數(shù)據(jù)總線經(jīng)過轉換還存在8 位的總線,在加上本身就是混合型的結構,因而對它這樣的開放型的架構來說,無論擴展8 位的功能模塊,還是16 位的功能模塊,即使擴展模/ 數(shù)轉換或數(shù)/ 模轉換這類的功能模塊也是很方便的。
第四點,典型MCU的存儲結構有兩種。諾依曼結構——程序存儲器和數(shù)據(jù)存儲器統(tǒng)一編碼;哈佛結構——程序存儲器和數(shù)據(jù)存儲器;MSP430系列單片機屬于前者,而常用的51內(nèi)核單片機系列屬于后者。
第五點,就是在開發(fā)工具上面。對51內(nèi)核單片機來說,不少適合我們使用的開發(fā)工具。但是如何實現(xiàn)在線編程還是一個很大的問題。對于MSP430 系列而言,由于引進了Flash 型程序存儲器和JTAG 技術,不僅使開發(fā)工具變得簡便,而且價格也相對低廉,并且還可以實現(xiàn)在線編程。
那么說了以上這些,作為新手,到底怎么學習430這種16位低功耗的單片機呢?或者說有什么有什么效果比較好的方法嗎,答案是肯定。
網(wǎng)上有很多介紹MSP430單片機學習的方法,一定要結合自己的學習特點,集百家之長,善于總結別人的、自己的學習方法和效果,積極實踐。當然學習的方法都是相通的。大概對這些方法簡單總結,也就是下面幾點:
作為430新手,首先看我們是否準備好以下幾樣硬件:電腦(帶有并口)1臺,MSP430FET仿真器1套,MSP430開發(fā)實驗板1套,和一些MSP430教程或電子教程資料等。
選用MSP430仿真器。購買現(xiàn)成的MSP430JTAG仿真器如TI-MSP430JTAG
選用MSP430開發(fā)板或目標板是學習一個重要的工具,建議購買一個開發(fā)板或目標板,同時也會得到很好的技術支持。如果自己制作的話也行,也未尚不可,那就看個人水平了。
軟件工具,因為現(xiàn)在都有學習板的工具軟件,如IAR的EW430學習版,430GCC軟件還是免費的。建議還是使用IAR軟件較方便,因為使用的人群較多,有問題還可請教,容易解決。
MSP430學習資料及教程,<
MSP430系列中硬件源資是非常豐富的。有看門狗(WDT)、定時器A (Timer_A)、定時器B(Timer_B)、比較器、串口0(USARTO)、串口1(USART1)、硬件乘法器、液晶驅動器、10位/12位ADC, 14位ADC,數(shù)十個可實現(xiàn)方向設置及中斷功能的并行輸入輸出端口、基本定時器(Basic Timer)。
以下幾部分模塊硬件資源是作為初學者必須要了解學習的。
①WDT看門狗定時器: 新手們會看到很多編程實例中,開頭都有“WDTCTL = WDTPW + WDTHOLD;”語句。這是CUP執(zhí)行關閉定時器的意思。在剛開始,我們沒必要關心這個,可以跳過這章節(jié),只要大概地知道他的作用就好了??撮T狗定時器一般是用于防止程序失效而存在的,一般是用于完整的程序中使用。主程序中可不斷地清除看門狗定時器的計數(shù)值,以防定時器的值自動計滿后使CPU復位而重新開始工作。當程序發(fā)生錯誤時,無法正常清除看門狗的定時值時,則看門狗定時器計數(shù)溢出而產(chǎn)生CPU復位。
②IO模塊:對于IO模塊可分為初級與提高兩階段,可以不必同一時段內(nèi)進行理解。
a初學者必需了解幾個常用寄存器使用如P1OUT,P1IN,P1DIR,P1SEL寄存器。
b理解MSP430 IO口常用編程語法,這些都可以查看參考例程。
c結合書本介紹和個人理解,然后在開發(fā)板上進行實驗。例如比如LED、響聲之類的初級實驗。
d對于IO模塊:了解如何使用IO中斷,和IO中斷相關寄存器的使用。如果不太必要,可以跳過IO中斷的使用,而是去學習其他章節(jié)的基礎部分;當其他章節(jié)基礎學習到一定程序時回過頭再來學習這部分。另外,我們需要搞清楚IO模塊在什么時候為高阻狀態(tài)?高阻狀態(tài)時的漏電流為多少?IO驅動電流能力如何?等等一些常關注的參數(shù)時,我們都需要養(yǎng)成主動查看器件手冊的習慣。
中斷是430處理器的一大特色,因為幾乎每個外圍模塊都能產(chǎn)生,430可以在沒有任務時進入低功耗狀態(tài),有事件時中斷喚醒cpu,處理完畢再次進入低功耗狀態(tài)。整個中斷的響應過程是這樣的,當有中斷請求時,如果cpu處于活動狀態(tài),先完成當前命令;如果處于低功耗,先退出,將下一條指令的pc值壓入堆棧;如果有多個中斷請求,先響應優(yōu)先級高的;執(zhí)行完后,等待中斷請求標志位復位,要注意,單中斷源的中斷請求標志位自動復位,而多中斷的標志位需要軟件復位;然后系統(tǒng)總中斷允許位SR.GIE復位,相應的中斷向量值裝入pc,程序從這個地址繼續(xù)執(zhí)行。這里要注意,中斷允許位SR.GIE和中斷嵌套問題。如果當你執(zhí)行中斷程序過程中,希望可以響應更高級別的中斷請求時,必須在進入第一個中斷時把SR.GIE置位?!∑鋵?,其他的外圍模塊時鐘沿著時鐘和中斷這個核心來執(zhí)行的。具體的結構我也不羅索了,可以參考430系列手冊。
③時鐘模塊:系統(tǒng)時鐘是一個程序運行的指揮官,時序和中斷也是整個程序的核心和中軸線。430最多有三個振蕩器,DCO內(nèi)部振蕩器;LFXT1外接低頻振蕩器,常見的32768HZ,不用外接負載電容;也可接高頻450KHZ-8M,需接負載電容;XT2接高頻450KHZ-8M,加外接電容。初學者若要使用到片中某模塊時幾乎都要使用不同的時鐘。時鐘模塊是提供整個單片機中各模塊的時鐘發(fā)生源,所以這章節(jié)是非常強調地要去認真理解的。
⑴.必須理解430有幾種時鐘信號:MCLK系統(tǒng)主時鐘,可分頻1 2 4 8,供cpu使用,其他外圍模塊在有選擇情況下也可使用;SMCLK系統(tǒng)子時鐘,供外圍模塊使用,可選則不同振蕩器產(chǎn)生的時鐘信號;ACLK輔助時鐘,只能由LFXT1產(chǎn)生,供外圍模塊。
⑵.DCO,SMCLK,MCLK,ACLK各個時鐘有什么優(yōu)點和缺點。
⑶.4個時鐘信號中,每個時鐘的通常頻率范圍是多少。
⑷.常規(guī)的時基控制寄存器設置和時鐘如何從引腳輸出等等。
④TimaA模塊:⑴.初學者需要搞清TimerA的三個不同工作模式中TA、CCR1、CCR2與CCR0之間的關系。⑵.搞清楚TA、CCR1、CCR2與CCR0之間的中斷向量關系。⑶.綜合上面的理解,我們可以結合TimerA的例程來進行相關驗證,只有通過親自的操作才能有效地記住。⑷.利用TimerA實現(xiàn)PWM信號輸出、利用捕獲/比較功能實現(xiàn)捕獲信號等等。
另外多大學習430學習單片機論壇上, 和網(wǎng)友交流,咨詢,多看別人出現(xiàn)的問題的解決方法。
可以說,只要經(jīng)過上述方面認真折騰學習的話,其實MSP430單片機編程應用就有了基本入門階段,可以說已經(jīng)闖入MSP430單片機有效學習過程,接下要繼續(xù)學習其他相關的模塊應用也不難了。那么剩下的一些模塊可以按需而用,按需而學。 但前提的就是需要熟悉幾個常用模塊基礎應用,以使用量最多的14x系列為例,初學者入門必學有IO模塊、時基模塊、定時器模塊等,以后可繼續(xù)強化學習如ADC12模數(shù)轉換、UART串行異步通訊模塊、比較器A模塊等等