95
第三章 TI MSP430 平台介紹 物聯網電子系統平台

第三章Ti msp430平台介紹 v3

  • Upload
    -

  • View
    212

  • Download
    3

Embed Size (px)

Citation preview

Page 1: 第三章Ti msp430平台介紹 v3

第三章 TI MSP430 平台介紹

物聯網電子系統平台

Page 2: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

Outline開發版硬體規格 位定義腳數位輸出實驗教學 (Digital Output)數位輸入實驗教學 (Digital Input)類比輸入實驗教學 (Analog Input)脈衝 度調變寬 實驗教學 (PWM)序列通訊界面實驗教學 (SPI)UART實驗教學CC2500通訊模組實驗教學

2

Page 3: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

開發版硬體規格

3

Page 4: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

開發版硬體規格MSP430-F5438硬體規格介紹 :

The Texas Instruments MSP430 family of ultralow-power microcontrollers

16-Bit RISC ArchitectureFlexible Power Management SystemUnified Clock System16-Bit Timer Up to Four Universal Serial Communication Interfaces12-Bit Analog-to-Digital (A/D) Converter

4

Page 5: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

開發版硬體規格CC2500硬體規格介紹 :

High sensitivity (–104 dBm at 2.4 kBaud, 1% packet error rate)Frequency range: 2400 – 2483.5 MHzProgrammable data rate from 1.2 to 500 kBaud64-byte transmit/receiveSPI interfaceOutput power up to +1 dBm

5

Page 6: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

位定義腳

6

Page 7: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

位定義腳

7

Page 8: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸出實驗教學實驗目的

可利用 UI介面藉由通信系統來要求MSP430做高、低電位輸出的信號控制。對於直流馬達、 LED等單純高低電位控制等設備皆須以此法操縱

硬體設備MSP430F5438LED*1

軟體工具與套件IAR Embedded Workbench IDE version 4.21

原理簡介 設定 GPIO訊號傳輸方向為 OUTPUT,並且設定輸出訊號為高電位 (HIGH),此為達到數位訊號輸出之目的。

8

Page 9: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸出實驗教學實驗 驟步 .

第一步 :找出該功能對應之硬體 (LED),與其在開發版上所在位址 ( 位腳 )。本實驗以 P1.0(Port1第一個 pin腳 )為連接 LED的位。腳

第二步 :根據該 位功能腳 ,決定該 位之傳輸方向。腳 1.設定輸入 :對 PxDIR暫存器對應之 BIT寫 0。 2.設定輸出 :對 PxDIR暫存器對應之 BIT寫 1。

第三步 :輸出訊號,若是數位 I/O則透過 PXOUT來輸出訊號。

9

Page 10: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸出實驗教學程式範例 :

程式說明 :P1SEL=0x00 //設定 Port1所有 pin 的功能為腳 GPIOP1DIR=0x01 //設定 Port1第 1隻 pin腳 (pert1 pin0)的 I/O方向為 OUTPUT

P1OUT=0x01 //Port1.0 OUTPUT HIGH點亮接在 Port1.0上的LED燈

10

Page 11: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸出實驗教學問題與討論

設定 PxSEL的目的是為了選擇相對應之 pin的功能,有些 pin除了當 GPIO使用外還可以當作 PWM或是 UART、 SPI等特定功能,例如 P1SEL=0x02(P1SEL= b0000 0010)就是將 port1的pin1設定為 PWM的輸出功能。

數位訊號輸出是控制周邊設備最基本的操作方式,凡事要對其他設備做控制一定要給它們控制的訊號,而此控制訊號對MSP430F5438微處理器來說就是數位訊號輸出了,後面的章節會介紹到 PWM的使用, PWM就是數位訊號輸出的一種應用,可以用來控制馬達轉速、馬達轉向、 LED亮暗程度等等。

11

Page 12: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸出實驗教學參考資料

MSP430F5438 datasheetMSP430F5438 user guideMSP430F5438 schematic

12

Page 13: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸入實驗教學實驗目的

此實驗目的為讓使用者學習如何使用MSP430上的 KEYPAD以及中斷,接收數位輸入訊號並產生中斷做相對應的中斷服務(Interrupt Service Routine , ISR)。在本系統架構中可以將相關的數位輸入讀入並且藉由通信回饋給與使用者。

硬體設備MSP430F5438LED*1

軟體工具與套件IAR Embedded Workbench IDE version 4.21

13

Page 14: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸入實驗教學原理簡介

當使用者按下 KEYPAD上的按鍵以後會產生數位輸入訊號,當此訊號產生就會觸發中斷,此時程式會依照中斷向量來判別要進入 一個中斷服務哪 (ISR)並執行其內容。

實驗 驟步第一步 :找到 KEYPAD對應之 pin。 第二步 :設定其功能為 GPIO、輸出入方向為 INPUT。第三步 :設定 KEYPAD中斷。第四部 :撰寫相對應之中斷服務內容 (ISR)。

14

Page 15: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸入實驗教學數位訊號輸入 :

MSP430有提供數位訊號輸入、輸出控制暫存器,上一章節提到 PxOUT為數位訊號輸出,而 PxIN就是數位訊號輸入,但PxIN是唯讀的,也就是說只能看 PxIN暫存器的內容不能對它做改寫的動作。在本章節中當按下 PEYPAD時會產生一個訊號到 P2IN暫存器中,所以我們只要讀取 P2IN的內容就可以知道是否有按下 PEYPAD,若有按下則產生中斷。

15

Page 16: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸入實驗教學中斷產生執行流程 :

當一個事件發生時需要 CPU暫停目前的工作就會產生中斷,產生中斷後 CPU就會去 詢中斷向量看是 一個事件產生中斷,查 哪然後再去相對應的 ISR職執行其內容。

16

Page 17: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸入實驗教學中斷向量表 :

系統程式之中的的表格,每一個 entry紀錄一個 address,這個位址指到一段程式 (或說一個函式 ),稱為中斷處理程式 (或ISR, Interrupt Service Routine)。系統程式必須告訴 CPU或中斷處理器,中斷向量表放在 裡哪 (位於 個位址哪 ),當外部事件或 exception產生時, CPU或中斷處理器會知道第幾號中斷產生了,並參考中斷向量表,再將 CPU「跳」到中斷向量表相對entry裡紀錄的位址。中斷處理程式執行完畢後,會返回被中斷的程式。

中斷向量可查 msp430x54x.h。

17

Page 18: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸入實驗教學程式範例 :

18

Page 19: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

數位輸入實驗教學問題與討論

要使用中斷功能時要注意中斷向量的設定,若設定不正確將無法執行正確的 ISR,導致程式執行結果無法達成預期目標。中斷是非常重要的一項功能,很多情況都會產生中斷,而產生中斷後 CPU原本做到一半的工作被暫停了,此時勢必有些資料需要保存,方法就是先將要保存的 address存到 Stack中,等到執行完 ISR後再將原本的 address從 Stack讀回來,如此一來可以確保中斷之前的程式流程繼續運作。

參考資料MSP430F5438 datasheetMSP430F5438 user guideMSP430F5438 schematic

19

Page 20: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學實驗目的

讓使用者學習如何使用 ADC轉換,使得外部的類比訊號可以轉存到MSP430中。

硬體設備MSP430F54381.5V電池 *1

軟體工具與套件IAR Embedded Workbench IDE version 4.21

20

Page 21: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學原理簡介

ADC轉換是將外部連續的類比訊號轉換成離散的數位訊號,本章節主要是將電池的電壓量透過 ADC轉換後儲存到MSP430的memory裡,並透過讀取 memory內容得知電池的電壓。圖為ADC轉換流程示意圖,而從圖十五中可以了解到連續的訊號如何轉換成離散的訊號。

21

Page 22: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學

22

ADC電路圖

Page 23: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學ADC轉換示意圖

23

Page 24: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學連續類比訊號轉離散數位訊號示意圖

24

Page 25: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學實驗 驟步

25

Page 26: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學第一步 : 設定參考電壓和輸入通道。

其目的在於設定參考電壓的範圍以及從 一個輸入通道讀入訊哪號。

輸入通道的選擇 :MSP430F5438 的 ADC 輸入通道有 A0 到 A15 共 16 個。

26

Page 27: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學ADC 轉換公式 :

Vref+ 為參考電壓對最大 。值Vref- 為參考電壓對最小 。值Vin 為輸入電壓。NADC 為轉換後的結果 。值

27

Page 28: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學第二步 :ADC 處理核心內部設定。

其目的在於設定 ADC 基本功能暫存器。

第三步 : 設定取樣時間。首先要設定好 clock 的來源與理想的頻率。

28

Page 29: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學而後計算好理想的取樣時間並做設定。因為 ADC 要將連續的訊號轉成離散的訊號,也就是說 MSP430

會在一段時間取樣一次,而設定取樣時間就是設定兩次取樣中間的時間間隔,也就是設定取樣的頻率。

29

Page 30: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學第四步 : 設定資料要儲存位址以及讀取資料的中斷。

其目的在於設定 ADC 資料儲存在 memory 的起始位址和終點位址,還有讀進資料時會產生中斷。

30

Page 31: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學第五步 : 儲存資料

其目的在於當讀入資料時會產生中斷進入 ADC 中斷服務,進而把讀入資料寫入設定好的 memory 位址內。

31

Page 32: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學暫存器介紹 :

32

Page 33: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學

33

Page 34: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學

34

Page 35: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學

35

Page 36: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學

36

Page 37: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學

37

Page 38: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

類比輸入實驗教學問題與討論

ADC 是一種將外界類比資訊轉成數位資訊並讀入至嵌入式平台之方法,其中設定參考電壓和取樣時間需要多加注意,若設定的不理想就無法達到系統要求的目標。舉例來說,取樣時間若設定不理想系統就會在不對的時間點做中斷處理,而往往會造成儲存錯誤的 。值 ADC 轉換的應用非常普遍,很多時候人們需要得到一些外界的類比資訊,例如溫度、濕度等,像市面上可自動調控室內溫度的冷氣機就是用類比輸入 ADC 轉換的方式感應到室內的溫度,並做相對應的溫度、風量調整,而在物聯網的世界中 ADC 的轉換比定是不可或缺的。

參考資料MSP430F5438 datasheetMSP430F5438 user guideMSP430F5438 schematic

38

Page 39: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學實驗目的

讓使用者學習如何調控 duty cycle 來控制 Output 訊號的脈波寬度,並以此操作來改變 LED 的亮暗程度。換言之則 Analog Output 。

硬體設備MSP430F5438LED*1

軟體工具與套件IAR Embedded Workbench IDE version 4.21

39

Page 40: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學原理簡介

藉由調控 OUTPUT 脈波的 度,也就是寬 duty cycle 的大小來改變 LED 燈光的亮暗,調控 duty cycle 的大小改變 OUTPUT 脈波的 度就是寬 PWM(Pulse-Width Modulation) 的基本操作。

40

Page 41: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學duty cycle 和平均電壓的計算

41

Page 42: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學實驗 驟步

第一步 : 找到 PWM 對應之 pin ,提供 LED 連接接 。腳

第二步 : 設定其功能為 PWM 、輸出入方向為 OUTPUT 。第三步 : 設定 PWM 操作模式和 OUTPUT 模式 。第四步 : 計算理想 duty cycle 。第五步 : 設定輸出頻率與脈波 度。寬

42

Page 43: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學PWM 操作模式介紹,本實驗使用 Up Mode

43

Page 44: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學Up Mode 操作

操作說明 :在 Up Mode 模式下計數器會從 0 數到 TAxCCR0( 使用者設定的值 ) ,然後再直接回到 0 ,當計數器數到 TAxCCR0 時會產生CCIFG 中斷訊號,而從 TAxCCR0 重至回 0 的時候會產生TAIFG 中斷訊號。

44

Page 45: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學OUTPUT 模式介紹,本實驗使用 Reset/Set 模式

45

Page 46: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學OUTPUT 模式示意圖

46

Page 47: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學OUTPUT 模式 (Reset/Set) 與 PWM 操作模式 (Up Mode)

搭配特性

47

Page 48: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學

特性說明 :

首先給定 TAxCCR0 和 TAxCCR1 兩個暫存器 ,值

Up Mode 模式特性是當計數器從 0 數到 TAxCCR0 時計數器會

歸零

Reset/Set 模式特性是當計數器數到 TAxCCR1 時會產生 reset 訊

號,也就是本實驗設定的接腳 P8.1 為 LOW ,接者當計數器數

到 TAxCCR0 時會產生 set 訊號 (P8.1 為 HIGH) ,在 set 和 reset

之間就會產生一個脈波 度。寬

48

Page 49: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學程式範例 :

49

Page 50: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學程式說明 :

8~9 設定 P8.1為 PWM功能及 OUTPUT方向。10 設定 TimerA0計數器 clock來源、 PWM操作模式。11 設定 TimerA1,同上。12 設定 OUTPUT模式為 reset/set。13~14 設定 TA0CCR0、 TA0CCR1的 。值15 設定 TA1CCR0的值16 開啟 TA1CCTL中斷。(開 此中斷目的為當中斷發生時進入啟 ISR調整 PWM的脈波 度寬,而設定 TA1CCR0的 目的為當計數器數到值 TA1CCR0時產生中斷 )

18 進入 low power模式並開 總中斷。啟19行以下就是 ISR的撰寫,目的為藉由改變 TA0CCR1的 來值改變 duty cycle大小,使得 LED亮暗程度改變。

50

Page 51: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學暫存器介紹 :TAxCTL暫存器 :

51

Page 52: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學TAxCCTL暫存器

52

Page 53: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學

53

Page 54: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

脈衝 度調變寬 實驗教學問題與討論

PWM的應用非常多,可以控制馬達、控制訊號頻率、調整蜂鳴器音頻等等,使用上也不複雜,而要注意的是 duty cycle的計算,若計算錯誤則無法達成理想的效果,例如若要控制蜂鳴器音頻,但 duty cycle計算失準,理所當然蜂鳴器音頻就會不準確。

參考資料MSP430F5438 datasheetMSP430F5438 user guideMSP430F5438 schematic

54

Page 55: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學實驗目的

本實驗室目的在於學習如何在MSP430上驅動 SPI的通信環境介面,並且利用此通信協定來達到交換資料封包及互相溝通的效果。

硬體設備MSP430F5438USART模組(MSP430 F5438內部即有)

軟體工具與套件IAR Embedded Workbench IDE version 4.21

55

Page 56: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學原理簡介

SPI全稱為「 Serial Peripheral Interface」,此通信協定可以利用四條線和目標板溝通。 SPI除了全雙工之外,更可以藉由MOSI和MISO的配合不斷地將信息串起來,就像火車一樣,從機的信息傳給下一個從機,不斷的位移到相對應的 Address上。而 SPI也可以利用 CLK和MOSI來達到一線對多物控制的效果。

MOSI:Master Output, Slave Input.MISO:Master Input, Slave Ouput.SCK: Clock.(利用時間來分析出來 SPI所傳輸過來的資料或是傳輸出去的資料,如果沒有 CLK幫忙分頻,資料將無法分析而導致亂 。值 )

CS: Chip select.( 動該啟 Slave設備 )

56

Page 57: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學SPI電路圖

57

Page 58: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學SPI主模式

58

Page 59: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學SPI從模式

59

Page 60: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學SPI時序圖

60

Page 61: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學實驗 驟步

本程式使用 SPI之模組編號為 USCI_B0,而和 SPI較為相關暫存器包含:

一、控制暫存器 (UCB0CTL0、 UCB0CTL1)二、 Baud rate控制暫存器 (UCB0BR0、 UCB0BR1)三、調整控制暫存器 (UCB0MCTL、 UCB0MCTL1)四、狀態暫存器 (UCB0STAT)五、接收緩衝 (UCB0RXBUF)六、發送緩衝 (UCB0TXBUF)七、中斷開 暫存器啟 (UCB0IE)硬體接線:

3.1(UCB0SIMO)、 3.2(UCB0SOMI)、 3.3(UCB0CLK).

61

Page 62: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學本程式碼主要利用 LED1來提醒使用者在 SPI上是否傳輸成功,確認方式為對照 SPI的 TX和 RX的 Buffer暫存器是否和傳送 相值同。

程式範例 :設定控制暫存器、 Baud rate控制暫存器、 SPI 位設定。腳

62

Page 63: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學傳送資料

63

Page 64: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學接收資料

64

Page 65: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學暫存器介紹 :

65

Page 66: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學

66

Page 67: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學

67

Page 68: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學

68

Page 69: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

序列通訊界面實驗教學問題與討論

許多工程師會熟練一些通信協定以便於嵌入式系統、單晶片上面的應用,目前 SPI、 I2C、 UART三者是比較多人使用的,在本次實驗中最主要注意的部分是暫存器的開 和啟 Baud rate設定、 Clock的配置。而如果測試上發現只有一塊板子也沒有關係,可以將自己的MISO接到自己的MOSI,因為 Clock都是一樣,所以不用擔心不同步的問題。藉用這個方法,就可以將信息傳進來,也可以在 Buffer中看到自己的資料。

參考資料MSP430F5438 datasheetMSP430F5438 user guideEmp-Learn (http://emplearn.blogspot.tw/)

69

Page 70: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學實驗目的

本實驗室目的在於學習如何在MSP430上驅動 UART的通信環境介面,並且利用此通信協定來達到交換資料封包及互相溝通的效果。

硬體設備MSP430F5438 USART模組(MSP430 F5438內部即有)

軟體工具與套件IAR Embedded Workbench IDE version 4.21

70

Page 71: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學原理簡介

通用非同步收發傳輸器 (Universal Asynchronous Receiver/Transmitter, UART)為一種非同步收發通訊機制,可將資料由串列傳輸與並列傳輸間做傳輸轉換。

UART傳輸資料主要原理為使用分時傳送方式,由傳送端每隔一段時間就將一位元的資料狀態傳送出去,直到這筆資料傳送結束,如此即完成一筆資料的傳送。接收端則必須以相同的速度,以分時的方式一個位元一個位元的接收。

71

Page 72: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學資料傳送與接收示意圖

72

Page 73: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學上圖說明 :

使用者傳送的資料是以序列的方式傳到微處理機的接收端暫存器 (Rx), Rx再以並列的方式傳送資料給 CPU,而相反的當CPU傳送資料給微處理機的傳送端暫存器 (Tx)時是以並列的方式, Tx再以序列的方式將資料傳回給使用者。

73

Page 74: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學Parity bit機制 :

傳送端會計算 Parity bit,也就是計算傳送資料裡面有幾的 1,若 1的個數為奇數則 Parity bit為 0,偶數則為 1。傳送端會連帶 Parity bit一起傳送,而接收端收到資料後也會計算資料中 1的個數再和 Parity bit做相比,若兩者符合則表示傳送資料沒有遺失,不符合則表示資料在傳送過程中可能有缺陷。

74

Page 75: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學實驗 驟步

第一步 : 設定 Baud-rate,設定 UCBRx暫存器設定 Baud-rate的目的就是設定連接 UART的兩端設備傳輸頻率,傳輸頻率必須一致資料才可以傳輸。若頻率不一致可能會造成資料遺失。

75

Page 76: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學Baud-rate設定公式 :

fBRCLK: clock source頻率。N: 計算後之結果 ,並設定到值 UCBRx暫存器中。範例 :

fBRCLK : 32768(32kHz) Baud-rate : we want set 9600 N = 32768 / 9600 = 3.413…

76

Page 77: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學第二步 : 設定 UCBRSx

公式 : UCBRSx = round [ ( N – INT(N) ) * 8 ]範例 :

UCBRSx = round [ ( 3.413 – INT(3.413)) * 8 ] = round [ (3.413 – 3) * 8 ] = round [ 0.413 * 8 ] = round [ 3.304 ] = 3

第三步 : 撰寫中斷 ISR,將 RxBUF收到的資料傳給TxBUF。

第四步 : 開啟 Putty並且由鍵盤輸入字串。

77

Page 78: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學程式範例 :

78

Page 79: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學暫存器介紹 :

79

Page 80: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學

80

Page 81: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學

81

Page 82: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學

82

Page 83: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學

83

Page 84: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學測試方式 :

使用電腦透過 Putty設定 Baud-rate,由 RS-232連接至開發 ,粄透過 Putty觀看資料傳送結果是否正確。

84

Page 85: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學是否成功 (無亂碼 )。

85

Page 86: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

UART實驗教學問題與討論

暫存器的設定在前幾章節都有類似的操作,所以本章節就不多介紹。反而 UART的 ISR撰寫是比較 得注意的事。值 很多人剛開始接觸 UART時都會將 Tx和 Rx寫反,會有這樣的錯誤觀念是因為使用者不小心將使用者端和 CPU端 反了,程式撰寫全搞部都是在寫 CPU端的程式,所以要從 CPU端來思考,由於CPU端的 Rx是接受使用者端傳進來的資料然後 Tx是將處理過的資料回傳給使用者端,所以流程是「先收再傳」,也就是說資料會先進 Rx再傳到 Tx再傳回使用者端,而程式碼的撰寫就是 Tx=Rx了。

參考資料MSP430F5438 datasheetMSP430F5438 user guideMSP430F5438 schematic

86

Page 87: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

CC2500通訊模組實驗教學實驗目的

讓使用者學習使用無線傳輸模組來達到無線傳輸訊息之目的。透過按下 KEYPAD按鍵產生中斷將訊息從 master端傳到 slave端並點亮 LED燈。

硬體設備MSP430F5438CC2500(MSP430 F5438內部即有)LED*1

軟體工具與套件IAR Embedded Workbench IDE version 4.21

87

Page 88: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

CC2500通訊模組實驗教學CC2500電路圖

88

Page 89: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

CC2500通訊模組實驗教學原理簡介

CC2500模組有一組 64-byte RX and TX暫存器, RX是用來接收資料而 TX是傳送資料,在設定好 CC2500傳輸頻率以及傳送與接收兩端傳輸資料長度、接收端位址 (接收端 IP)、接收端腳位後就可以互相傳遞資料。

89

Page 90: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

CC2500通訊模組實驗教學實驗 驟步

第一步 :設定 CC2500傳輸頻率在 CC1100-CC2500.c 中將傳輸頻率設定為檔 2400。

第二步 :初始化 SPI、 CC2500模組、無線電 Buffer。第三步 :設定 KEYPAD和 LED 位。腳第四步 :設定接收端無線接收 位,本實驗是使用腳 P1.6接收訊息。

第五步 :撰寫傳送端 ISR內容。第六步 :撰寫接收端 ISR內容。

90

Page 91: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

CC2500通訊模組實驗教學程式範例 :

91

Page 92: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

CC2500通訊模組實驗教學程式說明

10 初始化 SPI設定。11 初始化 CC2500模組及暫存器。12 初始化無線電設定。13 設定 CC2500和MSP430通訊模組。14~20 設定 KEYPAD暫存器並開啟 KEYPAD中斷,與實驗

3.6相同。23 設定接收 位為腳 P1.6並設定當訊號為下降緣 (HIGH to

LOW)時產生中斷。 (當接收到資料後會產生中斷 )24 清除 P1.6中斷旗標。25 開 接收 位中斷。啟 腳26 當 RX收到包封後發出信號告知 CPU準備將資料透過 SPI傳輸到MSP430。

29 進入 low power模式並開 總中斷。啟92

Page 93: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

CC2500通訊模組實驗教學程式範例 :ISR

93

Page 94: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

CC2500通訊模組實驗教學程式說明 :

32~47 為按下 KEYPAD之中斷,也就是傳送端中斷 ISR。49~60 為接受端中斷 ISR。35~36 設定 P4.1為 LED接 ,當訊息傳送的時候點亮腳 LED燈。

38 設定傳送封包長度。39 設定接收端的位址。40 傳送封包內容。42 傳遞封包。52 設定接收封包長度。53~54 設定 P4.1為 LED接 ,當接收到訊息的時候點亮腳 LED燈。

56~57 接收傳遞之封包資料。

94

Page 95: 第三章Ti msp430平台介紹 v3

物聯網電子系統平台

CC2500通訊模組實驗教學問題與討論

若同時有多組封包資料進行傳送時,則要判斷資料的重要程度來決定資料的接收優先順序,還有如果有封包遺失的情形發生時需要建立重傳機制,接收端也需要告知傳送端是否已接收到封包資料,如此一來可降低封包傳輸錯誤的情況。

參考資料MSP430CC2500 datasheetMSP430F5438 datasheetMSP430F5438 user guide

95