Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

第三章Ti msp430平台介紹 v3

3 898 vues

Publié le

此簡報為教育部種子教師人才培育計畫的物聯網計畫 其中一部份即為msp430

Publié dans : Ingénierie
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/2F4cEJi ❤❤❤
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Sex in your area is here: ♥♥♥ http://bit.ly/2F4cEJi ♥♥♥
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

第三章Ti msp430平台介紹 v3

  1. 1. 第三章 TI MSP430 平台介紹 物聯網電子系統平台
  2. 2. 物聯網電子系統平台 Outline 開發版硬體規格  位定義腳 數位輸出實驗教學 (Digital Output) 數位輸入實驗教學 (Digital Input) 類比輸入實驗教學 (Analog Input) 脈衝 度調變寬 實驗教學 (PWM) 序列通訊界面實驗教學 (SPI) UART 實驗教學 CC2500 通訊模組實驗教學 2
  3. 3. 物聯網電子系統平台 開發版硬體規格 3
  4. 4. 物聯網電子系統平台 開發版硬體規格 MSP430-F5438 硬體規格介紹 : The Texas Instruments MSP430 family of ultralow-power microcontrollers 16-Bit RISC Architecture Flexible Power Management System Unified Clock System 16-Bit Timer Up to Four Universal Serial Communication Interfaces 12-Bit Analog-to-Digital (A/D) Converter 4
  5. 5. 物聯網電子系統平台 開發版硬體規格 CC2500 硬體規格介紹 : High sensitivity (–104 dBm at 2.4 kBaud, 1% packet error rate) Frequency range: 2400 – 2483.5 MHz Programmable data rate from 1.2 to 500 kBaud 64-byte transmit/receive SPI interface Output power up to +1 dBm 5
  6. 6. 物聯網電子系統平台 位定義腳 6
  7. 7. 物聯網電子系統平台 位定義腳 7
  8. 8. 物聯網電子系統平台 數位輸出實驗教學 實驗目的 可利用 UI 介面藉由通信系統來要求 MSP430 做高、低電位輸出 的信號控制。對於直流馬達、 LED 等單純高低電位控制等設備 皆須以此法操縱 硬體設備 MSP430F5438 LED*1 軟體工具與套件 IAR Embedded Workbench IDE version 4.21 原理簡介 設定 GPIO 訊號傳輸方向為 OUTPUT ,並且設定輸出訊號為高 電位 (HIGH) ,此為達到數位訊號輸出之目的。 8
  9. 9. 物聯網電子系統平台 數位輸出實驗教學 實驗 驟步 . 第一步 : 找出該功能對應之硬體 (LED), 與其在開發版上所在位 址 ( 位腳 ) 。本實驗以 P1.0(Port1 第一個 pin 腳 ) 為連接 LED 的 位。腳 第二步 : 根據該 位功能腳 , 決定該 位之傳輸方向。腳  1. 設定輸入 : 對 PxDIR 暫存器對應之 BIT 寫 0 。  2. 設定輸出 : 對 PxDIR 暫存器對應之 BIT 寫 1 。 第三步 : 輸出訊號,若是數位 I/O 則透過 PXOUT 來輸出訊號。 9
  10. 10. 物聯網電子系統平台 數位輸出實驗教學 程式範例 : 程式說明 : P1SEL=0x00 // 設定 Port1 所有 pin 的功能為腳 GPIO P1DIR=0x01 // 設定 Port1 第 1 隻 pin 腳 (pert1 pin0) 的 I/O 方向 為 OUTPUT P1OUT=0x01 //Port1.0 OUTPUT HIGH 點亮接在 Port1.0 上的 LED 燈 10
  11. 11. 物聯網電子系統平台 數位輸出實驗教學 問題與討論 設定 PxSEL 的目的是為了選擇相對應之 pin 的功能,有些 pin 除了當 GPIO 使用外還可以當作 PWM 或是 UART 、 SPI 等特 定功能,例如 P1SEL=0x02(P1SEL= b0000 0010) 就是將 port1 的 pin1 設定為 PWM 的輸出功能。 數位訊號輸出是控制周邊設備最基本的操作方式,凡事要對其 他設備做控制一定要給它們控制的訊號,而此控制訊號對 MSP430F5438 微處理器來說就是數位訊號輸出了,後面的章節 會介紹到 PWM 的使用, PWM 就是數位訊號輸出的一種應用 ,可以用來控制馬達轉速、馬達轉向、 LED 亮暗程度等等。 11
  12. 12. 物聯網電子系統平台 數位輸出實驗教學 參考資料 MSP430F5438 datasheet MSP430F5438 user guide MSP430F5438 schematic 12
  13. 13. 物聯網電子系統平台 數位輸入實驗教學 實驗目的 此實驗目的為讓使用者學習如何使用 MSP430 上的 KEYPAD 以 及中斷,接收數位輸入訊號並產生中斷做相對應的中斷服務 (Interrupt Service Routine , ISR) 。在本系統架構中可以將相關的 數位輸入讀入並且藉由通信回饋給與使用者。 硬體設備 MSP430F5438 LED*1 軟體工具與套件 IAR Embedded Workbench IDE version 4.21 13
  14. 14. 物聯網電子系統平台 數位輸入實驗教學 原理簡介 當使用者按下 KEYPAD 上的按鍵以後會產生數位輸入訊號,當 此訊號產生就會觸發中斷,此時程式會依照中斷向量來判別要 進入 一個中斷服務哪 (ISR) 並執行其內容。 實驗 驟步 第一步 : 找到 KEYPAD 對應之 pin 。  第二步 : 設定其功能為 GPIO 、輸出入方向為 INPUT 。 第三步 : 設定 KEYPAD 中斷。 第四部 : 撰寫相對應之中斷服務內容 (ISR) 。 14
  15. 15. 物聯網電子系統平台 數位輸入實驗教學 數位訊號輸入 : MSP430 有提供數位訊號輸入、輸出控制暫存器,上一章節提 到 PxOUT 為數位訊號輸出,而 PxIN 就是數位訊號輸入,但 PxIN 是唯讀的,也就是說只能看 PxIN 暫存器的內容不能對它 做改寫的動作。在本章節中當按下 PEYPAD 時會產生一個訊號 到 P2IN 暫存器中,所以我們只要讀取 P2IN 的內容就可以知道 是否有按下 PEYPAD ,若有按下則產生中斷。 15
  16. 16. 物聯網電子系統平台 數位輸入實驗教學 中斷產生執行流程 : 當一個事件發生時需要 CPU 暫停目前的工作就會產生中斷,產 生中斷後 CPU 就會去 詢中斷向量看是 一個事件產生中斷,查 哪 然後再去相對應的 ISR 職執行其內容。 16
  17. 17. 物聯網電子系統平台 數位輸入實驗教學 中斷向量表 : 系統程式之中的的表格,每一個 entry 紀錄一個 address ,這個 位址指到一段程式 ( 或說一個函式 ) ,稱為中斷處理程式 ( 或 ISR , Interrupt Service Routine) 。系統程式必須告訴 CPU 或中 斷處理器,中斷向量表放在 裡哪 ( 位於 個位址哪 ) ,當外部事件 或 exception 產生時, CPU 或中斷處理器會知道第幾號中斷產 生了,並參考中斷向量表,再將 CPU 「跳」到中斷向量表相對 entry 裡紀錄的位址。中斷處理程式執行完畢後,會返回被中斷 的程式。 中斷向量可查 msp430x54x.h 。 17
  18. 18. 物聯網電子系統平台 數位輸入實驗教學 程式範例 : 18
  19. 19. 物聯網電子系統平台 數位輸入實驗教學 問題與討論  要使用中斷功能時要注意中斷向量的設定,若設定不正確將無 法執行正確的 ISR ,導致程式執行結果無法達成預期目標。中 斷是非常重要的一項功能,很多情況都會產生中斷,而產生中 斷後 CPU 原本做到一半的工作被暫停了,此時勢必有些資料需 要保存,方法就是先將要保存的 address 存到 Stack 中,等到執 行完 ISR 後再將原本的 address 從 Stack 讀回來,如此一來可以 確保中斷之前的程式流程繼續運作。 參考資料 MSP430F5438 datasheet MSP430F5438 user guide MSP430F5438 schematic 19
  20. 20. 物聯網電子系統平台 類比輸入實驗教學 實驗目的 讓使用者學習如何使用 ADC 轉換,使得外部的類比訊號可以轉 存到 MSP430 中。 硬體設備 MSP430F5438 1.5V 電池 *1 軟體工具與套件 IAR Embedded Workbench IDE version 4.21 20
  21. 21. 物聯網電子系統平台 類比輸入實驗教學 原理簡介 ADC 轉換是將外部連續的類比訊號轉換成離散的數位訊號,本 章節主要是將電池的電壓量透過 ADC 轉換後儲存到 MSP430 的 memory 裡,並透過讀取 memory 內容得知電池的電壓。圖為 ADC 轉換流程示意圖,而從圖十五中可以了解到連續的訊號如 何轉換成離散的訊號。 21
  22. 22. 物聯網電子系統平台 類比輸入實驗教學 22 ADC 電路圖
  23. 23. 物聯網電子系統平台 類比輸入實驗教學 ADC 轉換示意圖 23
  24. 24. 物聯網電子系統平台 類比輸入實驗教學 連續類比訊號轉離散數位訊號示意圖 24
  25. 25. 物聯網電子系統平台 類比輸入實驗教學 實驗 驟步 25
  26. 26. 物聯網電子系統平台 類比輸入實驗教學 第一步 : 設定參考電壓和輸入通道。 其目的在於設定參考電壓的範圍以及從 一個輸入通道讀入訊哪 號。 輸入通道的選擇 : MSP430F5438 的 ADC 輸入通道有 A0 到 A15 共 16 個。 26
  27. 27. 物聯網電子系統平台 類比輸入實驗教學 ADC 轉換公式 : Vref+ 為參考電壓對最大 。值 Vref- 為參考電壓對最小 。值 Vin 為輸入電壓。 NADC 為轉換後的結果 。值 27
  28. 28. 物聯網電子系統平台 類比輸入實驗教學 第二步 :ADC 處理核心內部設定。 其目的在於設定 ADC 基本功能暫存器。 第三步 : 設定取樣時間。 首先要設定好 clock 的來源與理想的頻率。 28
  29. 29. 物聯網電子系統平台 類比輸入實驗教學 而後計算好理想的取樣時間並做設定。 因為 ADC 要將連續的訊號轉成離散的訊號,也就是說 MSP430 會在一段時間取樣一次,而設定取樣時間就是設定兩次取樣中 間的時間間隔,也就是設定取樣的頻率。 29
  30. 30. 物聯網電子系統平台 類比輸入實驗教學 第四步 : 設定資料要儲存位址以及讀取資料的中斷。 其目的在於設定 ADC 資料儲存在 memory 的起始位址和終點位 址,還有讀進資料時會產生中斷。 30
  31. 31. 物聯網電子系統平台 類比輸入實驗教學 第五步 : 儲存資料 其目的在於當讀入資料時會產生中斷進入 ADC 中斷服務,進而 把讀入資料寫入設定好的 memory 位址內。 31
  32. 32. 物聯網電子系統平台 類比輸入實驗教學 暫存器介紹 : 32
  33. 33. 物聯網電子系統平台 類比輸入實驗教學 33
  34. 34. 物聯網電子系統平台 類比輸入實驗教學 34
  35. 35. 物聯網電子系統平台 類比輸入實驗教學 35
  36. 36. 物聯網電子系統平台 類比輸入實驗教學 36
  37. 37. 物聯網電子系統平台 類比輸入實驗教學 37
  38. 38. 物聯網電子系統平台 類比輸入實驗教學 問題與討論  ADC 是一種將外界類比資訊轉成數位資訊並讀入至嵌入式平台 之方法,其中設定參考電壓和取樣時間需要多加注意,若設定 的不理想就無法達到系統要求的目標。舉例來說,取樣時間若 設定不理想系統就會在不對的時間點做中斷處理,而往往會造 成儲存錯誤的 。值 ADC 轉換的應用非常普遍,很多時候人們需 要得到一些外界的類比資訊,例如溫度、濕度等,像市面上可 自動調控室內溫度的冷氣機就是用類比輸入 ADC 轉換的方式感 應到室內的溫度,並做相對應的溫度、風量調整,而在物聯網 的世界中 ADC 的轉換比定是不可或缺的。 參考資料 MSP430F5438 datasheet MSP430F5438 user guide MSP430F5438 schematic 38
  39. 39. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 實驗目的 讓使用者學習如何調控 duty cycle 來控制 Output 訊號的脈波寬 度,並以此操作來改變 LED 的亮暗程度。換言之則 Analog Output 。 硬體設備 MSP430F5438 LED*1 軟體工具與套件 IAR Embedded Workbench IDE version 4.21 39
  40. 40. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 原理簡介 藉由調控 OUTPUT 脈波的 度,也就是寬 duty cycle 的大小來改 變 LED 燈光的亮暗,調控 duty cycle 的大小改變 OUTPUT 脈波 的 度就是寬 PWM(Pulse-Width Modulation) 的基本操作。 40
  41. 41. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 duty cycle 和平均電壓的計算 41
  42. 42. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 實驗 驟步 第一步 : 找到 PWM 對應之 pin ,提供 LED 連接接 。腳 第二步 : 設定其功能為 PWM 、輸出入方向為 OUTPUT 。 第三步 : 設定 PWM 操作模式和 OUTPUT 模式 。 第四步 : 計算理想 duty cycle 。 第五步 : 設定輸出頻率與脈波 度。寬 42
  43. 43. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 PWM 操作模式介紹,本實驗使用 Up Mode 43
  44. 44. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 Up Mode 操作 操作說明 : 在 Up Mode 模式下計數器會從 0 數到 TAxCCR0( 使用者設定的 值 ) ,然後再直接回到 0 ,當計數器數到 TAxCCR0 時會產生 CCIFG 中斷訊號,而從 TAxCCR0 重至回 0 的時候會產生 TAIFG 中斷訊號。 44
  45. 45. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 OUTPUT 模式介紹,本實驗使用 Reset/Set 模式 45
  46. 46. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 OUTPUT 模式示意圖 46
  47. 47. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 OUTPUT 模式 (Reset/Set) 與 PWM 操作模式 (Up Mode) 搭配特性 47
  48. 48. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 特性說明 : 首先給定 TAxCCR0 和 TAxCCR1 兩個暫存器 ,值 Up Mode 模式特性是當計數器從 0 數到 TAxCCR0 時計數器會 歸零 Reset/Set 模式特性是當計數器數到 TAxCCR1 時會產生 reset 訊 號,也就是本實驗設定的接腳 P8.1 為 LOW ,接者當計數器數 到 TAxCCR0 時會產生 set 訊號 (P8.1 為 HIGH) ,在 set 和 reset 之間就會產生一個脈波 度。寬 48
  49. 49. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 程式範例 : 49
  50. 50. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 程式說明 : 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
  51. 51. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 暫存器介紹 : TAxCTL 暫存器 : 51
  52. 52. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 TAxCCTL 暫存器 52
  53. 53. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 53
  54. 54. 物聯網電子系統平台 脈衝 度調變寬 實驗教學 問題與討論  PWM 的應用非常多,可以控制馬達、控制訊號頻率、調整蜂鳴 器音頻等等,使用上也不複雜,而要注意的是 duty cycle 的計算 ,若計算錯誤則無法達成理想的效果,例如若要控制蜂鳴器音 頻,但 duty cycle 計算失準,理所當然蜂鳴器音頻就會不準確。 參考資料 MSP430F5438 datasheet MSP430F5438 user guide MSP430F5438 schematic 54
  55. 55. 物聯網電子系統平台 序列通訊界面實驗教學 實驗目的 本實驗室目的在於學習如何在 MSP430 上驅動 SPI 的通信環境 介面,並且利用此通信協定來達到交換資料封包及互相溝通的 效果。 硬體設備 MSP430F5438 USART 模組( MSP430 F5438 內部即有) 軟體工具與套件 IAR Embedded Workbench IDE version 4.21 55
  56. 56. 物聯網電子系統平台 序列通訊界面實驗教學 原理簡介 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
  57. 57. 物聯網電子系統平台 序列通訊界面實驗教學 SPI 電路圖 57
  58. 58. 物聯網電子系統平台 序列通訊界面實驗教學 SPI 主模式 58
  59. 59. 物聯網電子系統平台 序列通訊界面實驗教學 SPI 從模式 59
  60. 60. 物聯網電子系統平台 序列通訊界面實驗教學 SPI 時序圖 60
  61. 61. 物聯網電子系統平台 序列通訊界面實驗教學 實驗 驟步 本程式使用 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
  62. 62. 物聯網電子系統平台 序列通訊界面實驗教學  本程式碼主要利用 LED1 來提醒使用者在 SPI 上是否傳輸成功, 確認方式為對照 SPI 的 TX 和 RX 的 Buffer 暫存器是否和傳送 相值 同。 程式範例 :  設定控制暫存器、 Baud rate 控制暫存器、 SPI 位設定。腳 62
  63. 63. 物聯網電子系統平台 序列通訊界面實驗教學 傳送資料 63
  64. 64. 物聯網電子系統平台 序列通訊界面實驗教學 接收資料 64
  65. 65. 物聯網電子系統平台 序列通訊界面實驗教學 暫存器介紹 : 65
  66. 66. 物聯網電子系統平台 序列通訊界面實驗教學 66
  67. 67. 物聯網電子系統平台 序列通訊界面實驗教學 67
  68. 68. 物聯網電子系統平台 序列通訊界面實驗教學 68
  69. 69. 物聯網電子系統平台 序列通訊界面實驗教學 問題與討論 許多工程師會熟練一些通信協定以便於嵌入式系統、單晶片上 面的應用,目前 SPI 、 I2C 、 UART 三者是比較多人使用的, 在本次實驗中最主要注意的部分是暫存器的開 和啟 Baud rate 設 定、 Clock 的配置。而如果測試上發現只有一塊板子也沒有關 係,可以將自己的 MISO 接到自己的 MOSI ,因為 Clock 都是 一樣,所以不用擔心不同步的問題。藉用這個方法,就可以將 信息傳進來,也可以在 Buffer 中看到自己的資料。 參考資料 MSP430F5438 datasheet MSP430F5438 user guide Emp-Learn (http://emplearn.blogspot.tw/) 69
  70. 70. 物聯網電子系統平台 UART 實驗教學 實驗目的 本實驗室目的在於學習如何在 MSP430 上驅動 UART 的通信環 境介面,並且利用此通信協定來達到交換資料封包及互相溝通 的效果。 硬體設備 MSP430F5438 USART 模組( MSP430 F5438 內部即有) 軟體工具與套件 IAR Embedded Workbench IDE version 4.21 70
  71. 71. 物聯網電子系統平台 UART 實驗教學 原理簡介 通用非同步收發傳輸器 (Universal Asynchronous Receiver/Transmitter, UART) 為一種非同步收發通訊機制,可將 資料由串列傳輸與並列傳輸間做傳輸轉換。 UART 傳輸資料主要原理為使用分時傳送方式,由傳送端每隔 一段時間就將一位元的資料狀態傳送出去,直到這筆資料傳送 結束,如此即完成一筆資料的傳送。接收端則必須以相同的速 度,以分時的方式一個位元一個位元的接收。 71
  72. 72. 物聯網電子系統平台 UART 實驗教學 資料傳送與接收示意圖 72
  73. 73. 物聯網電子系統平台 UART 實驗教學 上圖說明 : 使用者傳送的資料是以序列的方式傳到微處理機的接收端暫存 器 (Rx) , Rx 再以並列的方式傳送資料給 CPU ,而相反的當 CPU 傳送資料給微處理機的傳送端暫存器 (Tx) 時是以並列的方 式, Tx 再以序列的方式將資料傳回給使用者。 73
  74. 74. 物聯網電子系統平台 UART 實驗教學 Parity bit 機制 : 傳送端會計算 Parity bit ,也就是計算傳送資料裡面有幾的 1 , 若 1 的個數為奇數則 Parity bit 為 0 ,偶數則為 1 。傳送端會連 帶 Parity bit 一起傳送,而接收端收到資料後也會計算資料中 1 的個數再和 Parity bit 做相比,若兩者符合則表示傳送資料沒有 遺失,不符合則表示資料在傳送過程中可能有缺陷。 74
  75. 75. 物聯網電子系統平台 UART 實驗教學 實驗 驟步 第一步 : 設定 Baud-rate ,設定 UCBRx 暫存器 設定 Baud-rate 的目的就是設定連接 UART 的兩端設備傳輸頻率 ,傳輸頻率必須一致資料才可以傳輸。若頻率不一致可能會造 成資料遺失。 75
  76. 76. 物聯網電子系統平台 UART 實驗教學 Baud-rate 設定公式 : fBRCLK: clock source 頻率。 N: 計算後之結果 ,並設定到值 UCBRx 暫存器中。 範例 :  fBRCLK : 32768(32kHz)  Baud-rate : we want set 9600  N = 32768 / 9600 = 3.413… 76
  77. 77. 物聯網電子系統平台 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
  78. 78. 物聯網電子系統平台 UART 實驗教學 程式範例 : 78
  79. 79. 物聯網電子系統平台 UART 實驗教學 暫存器介紹 : 79
  80. 80. 物聯網電子系統平台 UART 實驗教學 80
  81. 81. 物聯網電子系統平台 UART 實驗教學 81
  82. 82. 物聯網電子系統平台 UART 實驗教學 82
  83. 83. 物聯網電子系統平台 UART 實驗教學 83
  84. 84. 物聯網電子系統平台 UART 實驗教學 測試方式 : 使用電腦透過 Putty 設定 Baud-rate ,由 RS-232 連接至開發 ,粄 透過 Putty 觀看資料傳送結果是否正確。 84
  85. 85. 物聯網電子系統平台 UART 實驗教學 是否成功 ( 無亂碼 ) 。 85
  86. 86. 物聯網電子系統平台 UART 實驗教學 問題與討論  暫存器的設定在前幾章節都有類似的操作,所以本章節就不多 介紹。反而 UART 的 ISR 撰寫是比較 得注意的事。值 很多人剛 開始接觸 UART 時都會將 Tx 和 Rx 寫反,會有這樣的錯誤觀念 是因為使用者不小心將使用者端和 CPU 端 反了,程式撰寫全搞 部都是在寫 CPU 端的程式,所以要從 CPU 端來思考,由於 CPU 端的 Rx 是接受使用者端傳進來的資料然後 Tx 是將處理過 的資料回傳給使用者端,所以流程是「先收再傳」,也就是說 資料會先進 Rx 再傳到 Tx 再傳回使用者端,而程式碼的撰寫就 是 Tx=Rx 了。 參考資料 MSP430F5438 datasheet MSP430F5438 user guide MSP430F5438 schematic 86
  87. 87. 物聯網電子系統平台 CC2500 通訊模組實驗教學 實驗目的 讓使用者學習使用無線傳輸模組來達到無線傳輸訊息之目的。 透過按下 KEYPAD 按鍵產生中斷將訊息從 master 端傳到 slave 端並點亮 LED 燈。 硬體設備 MSP430F5438 CC2500 ( MSP430 F5438 內部即有) LED*1 軟體工具與套件 IAR Embedded Workbench IDE version 4.21 87
  88. 88. 物聯網電子系統平台 CC2500 通訊模組實驗教學 CC2500 電路圖 88
  89. 89. 物聯網電子系統平台 CC2500 通訊模組實驗教學 原理簡介 CC2500 模組有一組 64-byte RX and TX 暫存器, RX 是用來接 收資料而 TX 是傳送資料,在設定好 CC2500 傳輸頻率以及傳送 與接收兩端傳輸資料長度、接收端位址 ( 接收端 IP) 、接收端腳 位後就可以互相傳遞資料。 89
  90. 90. 物聯網電子系統平台 CC2500 通訊模組實驗教學 實驗 驟步 第一步 : 設定 CC2500 傳輸頻率  在 CC1100-CC2500.c 中將傳輸頻率設定為檔 2400 。 第二步 : 初始化 SPI 、 CC2500 模組、無線電 Buffer 。 第三步 : 設定 KEYPAD 和 LED 位。腳 第四步 : 設定接收端無線接收 位,本實驗是使用腳 P1.6 接收訊 息。 第五步 : 撰寫傳送端 ISR 內容。 第六步 : 撰寫接收端 ISR 內容。 90
  91. 91. 物聯網電子系統平台 CC2500 通訊模組實驗教學 程式範例 : 91
  92. 92. 物聯網電子系統平台 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
  93. 93. 物聯網電子系統平台 CC2500 通訊模組實驗教學 程式範例 :ISR 93
  94. 94. 物聯網電子系統平台 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
  95. 95. 物聯網電子系統平台 CC2500 通訊模組實驗教學 問題與討論  若同時有多組封包資料進行傳送時,則要判斷資料的重要程度 來決定資料的接收優先順序,還有如果有封包遺失的情形發生 時需要建立重傳機制,接收端也需要告知傳送端是否已接收到 封包資料,如此一來可降低封包傳輸錯誤的情況。 參考資料 MSP430CC2500 datasheet MSP430F5438 datasheet MSP430F5438 user guide 95

×