• 沒有找到結果。

第二章 無線通訊技術簡介與使用模組介紹

2.4 MSP430F5438A 微控制器模組簡介

本論文選用 TI MSP430F5438A 超低功耗混合信號處理器作為系統微控制器[19],

其搭載的 MSP-TS430PZ5x100 開發板如下圖 2.17 所示。載板上提供 JTAG 程式除 錯介面、100 個腳位的晶片座、100 個輸入/輸出引腳,以便使用者進行系統開發。

而如圖 2.18 所示,MSP430F5438A 採用馮紐曼架構的位址記憶體匯流排(Memory Address Bus ,MAB)與資料記憶體匯流排(Memory Data Bus ,MDB)來連接周邊模組 和核心處理器,其內部主要包含(1)16-bit 的精簡指令集電腦(Reduced Instruction Set Computer ,RISC)CPU、(2)JTAG 實體模擬模組、(3)256 KB 的 Flash 程式記憶體 (4)16KB 的 RAM 資料記憶體(5)多個週邊裝置(包含 P1~P10、USCI_A0~USCI_A3、

USCI_B0~USCI_B3 、 TA0~TA1 、 TB0 、 ADC 及 看 門 狗 計 時 器 等 ) 。 其 中 使 用 MSP430F5438A 本身的內建模擬電路,可以透過 JTAG 來連接而不需要用到額外 的系統資源,可以支援全速執行、設置斷點或單步執行程式。

MSP430F5438A 的主要特色如下:

1. 低工作電壓:1.8 ~ 3.6V。

2. 1 種工作模式,6 種的省電模式,從待機模式下喚醒時間在 3.5µs 內。

3. 16 位元的 RISC 架構,可工作於高達 25 MHz 的系統時脈。

4. 靈活的電源供應管理系統,內部整合可編程調整電壓的低壓差線性穩壓器(Low Dropout Linear Regulator)。

5. 彈性的時脈系統,具有 5 個時脈來源,3 個時脈訊號 MCLK、ACLK、SMCLK 可供 CPU 或周邊裝置使用。

6. 計時器 TA0、TA1、TB0 可做 16 位元計時/計數器,分別包含 5、3、7 組抓取/

比較暫存器。

7. 四組通用串列通訊介面(Universal Serial Communication Interface ,USCI),其中 USCI_A0~USCIA_3 可用於 UART、SPI 通訊,而 USCI_B0~USCI_B3 用於 I2C、

SPI 通訊。

8. 12 位元的類比/數位轉換器(Analog to Digital Converter ,ADC)

內建獨立的 32 位元硬體乘法器(Hardware Multiplier),提供高速的乘加運算以支援 數位訊號處理的需求。

圖 2. 17、MSP430F5438A 單晶片與開發板實體圖

圖 2. 18、MSP430F5438A 單晶片內部架構圖

圖 2. 19、MSP430F5438A 單晶片接腳圖

MSP430F5438A 單晶片具有 100 個接腳,採用 LQFP 封裝,其接腳分佈如圖 2.19 所示。由於 MSP430 功能豐富,因此需要眾多的接腳實現功能,但受於引腳數 量的限制,故 MSP430F5438A 在同一接腳上有不同的功能。

MSP430F5438A 內部有著 16 位元 RISC 高速應用的 CPU,圖 2.20 是處理器的 結構圖,由資料路徑及控制單元兩個主要部分組成。資料路徑(Data Path)由暫存器 組(Register Set)和算術邏輯運算單元(Arithmetic Logic Unit ,ALU)構成,以內部匯流 排連結彼此。暫存器是 CPU 的重要組成部分,暫存器組由一個或多個暫存器組成,

如圖 2.20 中的 R0~R3 為特殊暫存器分別為程式計數器(Program Counter ,PC)、堆 疊指標(Stack Pointer ,SP)、狀態暫存器(Status Register ,SR)、常數產生器(Constant Generator ,CG),而 R4~R15 為ㄧ般功能暫存器,用來儲存運算的數據以及運算結 果,也可以用來儲存資料位址。

MSP430 採用馮紐曼記憶體架構,意即程式記憶體、資料記憶體及晶片內部周 邊模組等,都在同一個記憶體定址空間內。MSP430F5438A 單晶片具有 256 kB 的 Flash 程式記憶體以及 16kB 的 RAM 資料記憶體,其記憶體架構如下表 2.4 所示。

圖 2. 20、MSP430F5438A 單晶片 CPU 結構圖

表 2. 4、MSP430F5438A 記憶體空間分配表

位址(Hex) 記憶體 型態及大小

45BFFH ↔ 10000H

程式記憶體 (Code memory)

Flash 256 KBytes 0FFFFH ↔ 0FF80H

中斷向量表 (Interruot vector)

0FF7FH ↔ 05C00H

程式記憶體 (Code memory)

05BFFH ↔ 01C00H

資料記憶體 (Data memory)

RAM 16 KBytes

019FFH ↔ 0187FH

資訊記憶體 (Information memory)

Flash 526 Bytes

017FFH ↔ 01000H

啟動程式記憶體 (Boot loader memory)

Flash 2 KBytes

00FFFH ↔ 00000H

周邊模組 (Peripherals)

TIMER、I/O、USCI、ADC...

4 KBytes