新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 怎樣學(xué)習(xí)MSP430單片機

怎樣學(xué)習(xí)MSP430單片機

作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
MSP430是Texas Instrument(TI,德州儀器)推出的一款超低功耗單片機。TI是一個非常有實力的、全球領(lǐng)先的芯片制造公司,MSP430不僅因為其優(yōu)秀的設(shè)計,更因為TI提供的強有力的技術(shù)支持,而很快成為今天市場上非常受歡迎的一款單片機。

使用官方資料

學(xué)習(xí)使用任何一款芯片,我們要明確最根本最權(quán)威的參考資料是官方給出的資料。對于MSP430單片機,也不例外。市面上有各種各樣介紹MSP430單片機的書,水平參差不齊。而其中有一大部分基本上就是翻譯芯片手冊,更大的問題是,很多書上還有大量的印刷錯誤等(像寄存器寫錯、程序有問題等的現(xiàn)象很常見)。這樣的情況下,很難好好學(xué)習(xí)。

本文引用地址:http://butianyuan.cn/article/201611/318292.htm

在學(xué)習(xí)430單片機的過程中,尤其是對于接觸過51單片機的人來說,我們最好不要還是像學(xué)習(xí)51單片機一樣,到處找視頻教程,指望著完全中文的資料,而應(yīng)該學(xué)會如何去使用官方給出的資料?;蛟S你沒有體會到這樣有什么好處,但是將來如果要研究一些比較深入的東西,或者你要用一些最新的芯片,這時你唯一能獲取的資料,不是各種中文書籍和翻譯來的資料,更不是各種視頻教程,而往往只是官方給出的一些全英文的手冊。

所有的芯片官方都會給出對應(yīng)的Data Sheet(數(shù)據(jù)手冊,芯片手冊),有些會有Application Note(應(yīng)用筆記),對于一些復(fù)雜的芯片,有一些強大的公司可能也會推出一些中文資料,但還是以英文資料為主。因為英語是國際通用的語言,何況很多高科技產(chǎn)業(yè)往往又在國外。過分依賴中文資料,就很難學(xué)好這些東西。另外,官方給出的資料,就像是說明書一樣,經(jīng)過了很多次的核對修正,還會及時的勘誤,比如430的Errata Sheet會專門指出官方各種手冊資料中的紕漏和錯誤。官方手冊的權(quán)威性,是任何根據(jù)官方手冊編寫的資料視頻所不及的。

不要懼怕英文

在技術(shù)性的手冊中,除了一些專有名詞外,都會避免使用復(fù)雜的句式,避免復(fù)雜的語法,以及一些難以理解的詞匯。看不懂的專有名詞,我們完全可以通過查詞典來克服。久而久之,就會習(xí)慣,英文水平長進(jìn)了,也不再懼怕英文了。這里引用一位同學(xué)的話:“TI的文檔寫的相當(dāng)好,通俗易懂,而中文翻譯水平層次不一,必要的術(shù)語也不知道什么意思。而且中文翻譯的文檔制作的真心太差。我想你們也不甘心學(xué)十年英語就為了一個六級吧?”

基本認(rèn)識

學(xué)習(xí)MSP430,首先我們應(yīng)該了解MSP430的特點,分為哪幾個系列,這些在官方介紹文檔中都有。

大致了解430內(nèi)部都集成了哪些外設(shè)模塊,分別有什么作用,比如AD、串口、硬件I2C等。根據(jù)實際應(yīng)用需要,查看官方選型手冊,選擇合適的430型號,看RAM、ROM大小、定時器數(shù)目、最高運行速度、IO管腳數(shù)目、封裝等就可以。也可以直接在TI官網(wǎng)選擇型號(如下圖)。

如果不知道選什么型號,或者是想先學(xué)學(xué),可以選一些常用型號,如MSP430F149,MSP430G2553(LaunchPad上用的,有DIP直插的封裝,比較好用),MSP430F5438(比較高端的一個型號,價格也比較貴)。


參考資料

選好型號后,就可以上TI官網(wǎng),下載該型號對應(yīng)的DataSheet,Users Guide,以及Code Examples。

DataSheet介紹了具體某個型號的各種參數(shù),封裝格式,管腳分布,性能特點等。

Users Guide是分為幾個系列分別去講各種模塊的結(jié)構(gòu)和寄存器,同一個系列的不同型號,含有的同一個模塊操作通常都一樣,主要是管腳分配不一樣,或者一些型號只含有模塊中的一部分功能,比如定時器的比較捕獲模塊數(shù)目不同。

而Code Examples則是官方給出的可直接編譯執(zhí)行的程序代碼。比如MSP430G2553內(nèi)部有10位精度的AD,即ADC10模塊,而在MSP430x2xx Family Users Guide上就有對ADC10模塊的介紹。同樣是2xx系列,有些芯片沒有ADC10,但是有ADC12,這個模塊同樣會在Users Guide上介紹。

開發(fā)板

我們可能需要一塊開發(fā)板,官方推出的LaunchPad是一個不錯的選擇。LaunchPad上使用的是ValueLine超值系列(2xx系列)的430芯片G2553和G2452,對于簡單的項目開發(fā)綽綽有余,比51單片機常用的型號89C52RC要強大不少,而且是430單片機中有DIP直插封裝的很少的幾種型號之一,對于我們手工焊接很方便。

LaunchPad更大的優(yōu)勢在于,在幾十塊錢的開發(fā)板上,集成了JTAG調(diào)試芯片,可以連接計算機直接進(jìn)行程序的調(diào)試。LaunchPad使用的是兩線JTAG,而不少430型號不支持兩線JTAG,則需要購買比較昂貴的430標(biāo)準(zhǔn)JTAG仿真器。JTAG仿真器同時可以進(jìn)行程序的燒寫。430也支持價格低廉的BSL方式燒寫程序,但BSL就沒有JTAG強大的調(diào)試功能了。

關(guān)于LaunchPad的使用,官方給出了十分詳細(xì)的介紹文檔《Getting Started with the MSP430 LaunchPad》,包括怎么新建工程都有具體到每一步的截圖(使用的是CCS軟件)。關(guān)于具體電路實現(xiàn),則可以參考官方的《MSP430 Hardware Tools Users Guide》。如果動手能力強,也可以嘗試自己焊接簡易開發(fā)板。

開發(fā)環(huán)境

然后要安裝開發(fā)環(huán)境。最常用的是官方推出的CCS和IAR公司推出的IAR Embedded Workbench For MSP430。兩種軟件各有優(yōu)缺點,CCS的優(yōu)點是集成Eclipse,還有官方推出的430Ware、Grace插件,用起來比較方便,軟件比較穩(wěn)定,但是由于Eclipse基于Java開發(fā),反應(yīng)比較遲鈍,IAR的優(yōu)勢則是編譯效率非常高,能產(chǎn)生高效的代碼,缺點是運行不太穩(wěn)定,有時會死機。總體來說,目前建議用IAR EW430。

程序編寫

然后就要開始寫程序了。首先我們應(yīng)該了解最基本的一些東西,時鐘、看門狗定時器、以及IO操作。我們并不一定要對它們都掌握透徹,但是應(yīng)該知道怎么初始化時鐘開啟外部高速晶振,看門狗是什么,怎么關(guān)閉看門狗以免系統(tǒng)復(fù)位等。

然后根據(jù)我們的實際需求,再進(jìn)一步去了解定時器、串口、硬件SPI、硬件I2C、Flash讀寫、AD、DA等的操作。如果是為了做一個項目,我們只要學(xué)習(xí)要用的模塊就足夠了,如果是想提前學(xué)習(xí)以備以后使用,了解常用的模塊就可以了。

學(xué)習(xí)每個模塊時,我們應(yīng)該先看芯片手冊,確認(rèn)自己使用的型號有這個模塊,以及相應(yīng)IO口的分配情況,然后認(rèn)真詳細(xì)的看Users Guide中內(nèi)部結(jié)構(gòu)框圖和寄存器的介紹,參考Code Examples去寫程序,并進(jìn)行測試。在學(xué)習(xí)每個模塊時,我們可以把這些模塊的程序?qū)懗瑟毩⒌奈募?,必要的地方自己做一些注釋說明,保留好這些程序,方便以后使用。下次再用的時候,即使忘了怎么操作,只要自己之前寫好的模塊文件,然后根據(jù)自己注釋的調(diào)用規(guī)則去調(diào)用函數(shù),就可以很輕松的使用,代碼得到了重復(fù)利用,非常節(jié)省時間精力。

學(xué)過51或其他單片機的人,就沒必要特地花時間在學(xué)430的時候又特地把數(shù)碼管、1602什么的外設(shè)重新再學(xué)一遍了,因為程序都是一樣的寫法,只是IO口的操作有點不同而已。

在這里,強烈建議大家學(xué)會模塊化編程,代碼分層。

前面說的把每個模塊寫成單獨的文件,通過調(diào)用函數(shù)去重復(fù)使用,就是模塊化編程的思想。

另一方面,學(xué)會代碼分層,比如同樣是驅(qū)動數(shù)碼管,對于不同的單片機,只是IO操作語句寫法不同,而IO的高低電平控制是一樣的。我們把具體IO操作語句用宏定義寫出來(如#define LED_OFF P1OUT&=~BIT0),更換單片機只需要修改宏定義,這樣就可以實現(xiàn)代碼復(fù)用,節(jié)省了精力。

在這里,宏定義根據(jù)不同的單片機,寫法不一樣,屬于硬件接口層;而數(shù)碼管掃描函數(shù)始終是調(diào)用宏定義過的語句控制IO口電平,不同單片機寫法一樣,則屬于驅(qū)動層;這樣的做法就叫做代碼分層,也是模塊化編程很大的一個特點。

這里再說一點,可能有人之前學(xué)習(xí)51單片機時寫過軟件模擬I2C程序讀寫AT24C01等芯片,現(xiàn)在改用430了,我們?nèi)匀豢梢杂煤甓x操作IO,軟件模擬I2C時序,另一方面,430內(nèi)部集成了硬件I2C,我們也可以學(xué)習(xí)硬件I2C,通過設(shè)置相關(guān)寄存器去控制相同的芯片。一般情況下,硬件接口比軟件接口會更有優(yōu)勢,因為不需要占用CPU時間去模擬時序。這個時候,可能就需要重新去了解一下了,因為有些接口用硬件實現(xiàn)和用軟件模擬還是有一定區(qū)別的。

單片機不是用來學(xué)的,而是要去用的

用什么學(xué)什么,這樣能更好的掌握所學(xué)知識,也不至于感覺無從下手。MSP430有幾百個型號,我們沒必要把每種型號每個模塊都拿來學(xué)一遍,也不可能有那樣的精力,即使你打算全部學(xué),還沒學(xué)完,TI又會推出一款新的產(chǎn)品。對于其它的各種芯片等的使用也是類似的。所以我們要做的,是掌握學(xué)習(xí)的方法,以不變應(yīng)萬變。




關(guān)鍵詞: msp430單片

評論


技術(shù)專區(qū)

關(guān)閉