2022年12月11日 星期日

[MSP430]-004_點亮板上的LED燈

 [MSP430]-004_點亮板上的LED燈

要注意MSP-EXP430G2與MSP-EXP430G2ET,這兩個個開發板非常相似。主要差異在於

Board: MSP-EXP430G2 

IDE: energia





        開始寫程式時,要先選擇開發板的型號。
選擇“工具” >>>“開發板”>>>“MSP-EXPG2 w/MSP430G2553”


另外還要更新程式的版本到1.07版,不然上傳程式碼的時候會出錯喔。選擇“工具” >>>“開發板”>>>“開發版管理員”


進入開發板管理員中,點選1.07版,並選擇安裝,如此就完成版本更新了。


選擇序列埠




        剛開始學寫程式,當還不熟悉語法及環境時,從模仿並解讀現有的程式一定是比較快的方式。Energia也有內建範例程式,這些範例程式可以幫助初學者快速的熟悉程式寫法。現在就先開啟內建的Bilnk程式,並試著分析這個程式的寫法。






先看一下程式結構,

1.  在“ // ”之後的程式或文字,編譯程式會自動略過這些內容,不會成為程式的一部分,所以可以用來作為程式的註解或是說明,日後可以快速地了解程式內容。要注意的是,這只是將一行的程式或是文字作為註解,當第二行也要成為註解文字,則在第二行也要打上“ // ”。


2.  “ /* ”及“ */ ”這兩個符號有別於“ // ”,是可以將整段文字或是程式作為註解,編譯程式會自動略過這些內容。


3. 

#define LED RED_LED

將RED_LED定義為LED,這是將板上紅色的LED燈定義成LED這個名稱。MSP-EXP430G2這張開發板板上有紅綠兩個LED燈,所以RED_LED就是一個特殊的名稱,特指板上的P1.0這個腳位,所以RED_LED這個名稱就不能再用了喔。


4. 

#define LED GREEN_LED

將GREEN_LED定義為LED,這是將板上綠色的LED燈定義成LED這個名稱。與前面的RED_LED相同,GREEN_LED也是一個特殊的名稱,特指板上的P1.6這個腳位,所以GREEN_LED這個名稱就不能再用了喔。


5. 

void setup (){

        pinMode (LED, OUTPUT);

}

void setup () { },這段程式是固定寫法,也就是將一開機要設定參數寫在這個大括號中,也就是說這個大括號中的指令只會執行一次,除非再重開MSP430開發板一次。在這個大括號裡面有條指令pinMode(LED, OUTPUT);    這可以解讀成將LED這個腳位的腳位模式pinMode定義為輸出OUTPUT。這裡要先補充一個電子知識,要用MSP430或是其他微處理器的腳位來點亮LED,要先將該腳位定義成“輸出”模式,這樣這個腳位才能輸出電壓及電流,這樣外接的電子零件才能動作。


6.

void loop() {

    digitalWrite (LED, HIGH);

    delay (1000);

    digitalWrite (LED, LOW);

    delay (1000);

}

void loop () {}    這段程式是固定寫法,當執行完前面的void setup(){}之後就會執行此段程式,且如同它的名稱一樣,此段程式會一直執行,就像是一個迴圈(loop)一樣。

digitalWrite (LED, HIGH);    可以解讀成用數位寫入(digitalWrite)的方式將LED這個腳位寫入HIGH的電位。依照MSP-EXP430G2開發板的電路圖,紅色LED燈的陽極端(A)接在P1.0,陰極端(K)接在ground,所以當P1.0的輸出電壓為高電壓,則在LED形成順偏,則這個LED燈就會亮起來了。

delay (1000);    可以解讀成用延遲(delay)1000毫秒。

digitalWrite (LED, LOW);    可以解讀成用數位寫入(digitalWrite)的方式將LED這個腳位寫入LOW的電位,即0V。如此這個LED就無法形成順偏,也就是熄滅的狀態。

要注意#define LED RED_LED#define LED GREEN_LED這兩條指令,RED_LED及GREEN_LED這兩個LED燈都定義成LED這個名稱,觀察程式的順序,是先將RED_LED定義成LED,再將GREEN_LED定義成LED,所以最後LED會是GREEN_LED,而不是RED_LED,所以執行digitalWrite (LED, HIGH)這條指令時,只會亮起綠色的LED燈。

可以預測這個程式的結果應該是綠色的LED亮一秒,滅一秒,接著亮一秒,滅一秒,如此循環。


上傳程式碼到MSP-EXP430G2







上傳完畢




程式結果


2022年12月10日 星期六

[MSP430]-002_程式開發環境(CCS)

2022年12月6日 星期二

[MSP430]-003_程式開發環境(energia)

 [MSP430]-003_程式開發環境(energia)

       Energia 是一個開源的電子及程式開發平台,由 Robert Wessels 於 2012 年 1 月創立,目標是將 Wiring 和 Arduino 框架引入德州儀器的 MSP430 設計中。這樣可以讓原本習慣於Arduino使用者可以更方便的使用MSP430做為開發使用。


       Energia官方網站

https://energia.nu/







       和Arduino的IDE可以說是幾乎一模一樣啊!操左選單也是相同的,甚至連程式庫及上傳程式的方式也是相同的。比較明顯的差異大概就是Energia的操作介面是紅色的吧。這些類似的操作介面對於以前學Arduino的人可真的是一大好消息。




       接下來會用Arduino的專案來直接套用在MSP430+Energia來比較看看兩者是否類似。





[MSP430]-001_初探及版本選擇

 [MSP430]-001_初探及版本選擇

        目前微處理器有非常多的選擇,且各大晶片廠也有推出各自的微處理器,但市面上還是以Arduino最為熱門,受到創客或是初學者們的喜愛。Arduino得力於簡易的程式語法及容易在網上查到許多應用,所以這幾年來一直很火熱。

        此篇要要介紹的是TI (德州儀器)所推出的16位元,且低成本的嵌入式為處理器,MSP430。

        其實在幾年前就已經購買過MSP430的開發版,還記的整個開發板的的價錢才10美金,要注意一下,這是原廠的售價喔,不像是Arduino的開發板,就算是最便宜的Arduino Micro,原廠的要20美金左右,只有買副廠或是所謂的相容板才有可能低於10美金。就算只買MCU,Arduino上面使用的是Atmel的ATMEGA328P,單買這顆IC就要新台幣100元左右,而MS430最便宜的IC居然只要新台幣20元而已,而且MSP430的型號眾多,絕對可以挑到最適合自己的CHIP,可以不用遷就於較而貴的Arduino。

        關於MSP430的詳細資料可以查閱TI的官方網站。

https://www.ti.com/microcontrollers-mcus-processors/microcontrollers/msp430-microcontrollers/overview.html

        MSP430的型號眾多,可以依照應用、記憶體大小及腳為數量來精確選擇所需的CHIP,選定所需的型號後,也可以直接在TI網站上查詢價格或購買,非常的方便。

TI MSP430晶片選擇

        至於為什麼沒有繼續使用MSP430,那是因為軟體的開發環境,有點不太容易上手,所以沒寫幾次就放棄了,所以這幾年就改用Arduino做為開發了,但最近上網查資料的時候,發現MSP430也有類似的開發環境,而且跟Arduino IDE非常類似,所以又重新燃起了學習的動力。

        這次用的MSP430開發板用的是MSP-EXP430G2,也就是可以買到的最低價的開發板了,除了便宜好入手之外,且上傳程式碼到開發板也只要一條USB線即可,開發環境也是免費好取得。日後當然還是會使用其他的開發板,但是在此之前的基礎實驗都會是這一開發板來完成。

MSP-EXP430G2



資料連結:
1. MSP-EXP430G2實驗板資料
https://datasheet.octopart.com/MSP-EXP430G2-Texas-Instruments-datasheet-10979810.pdf