一、 序言
東芝 M3H TXZ3系列 MCU 是基於 ARM® Cortex®-M3 的核心,具有 real time 應用所需的低功耗、高速、高代碼密度和快速中斷響應時間等特性。
TXZ3 應用領域:
• 馬達控制
• 工業設備
• 影音設備
• 家用電器
• 空氣調節系統 (HVAC)
TXZ3 系列 MCU 區分為兩個 Group,一個是最高工作時脈 40 MHz 的M3H Group(1),另外一個是最高工作時脈 80 MHz 的M3H Group(2);
這篇文件的內容主要討論 M3H Group(2),為了方便講述,以下內容,會簡稱為 M3H。
M3H 採用 40nm 製程製造 ARM®32 位 Cortex®-M3 CPU,特點如下
最大操作頻率 :80 MHz
工作電壓 :2.7 to 5.5V
RAM :64KB
Code Flash Memory :256KB ~ 512KB (由包裝及型號決定)
Data Flash Memory :32 KB, rewritable up to 100,000 times
時脈
‒ External High-speed Oscillator : 6 MHz to 12 MHz(Ceramic, Crystal)
‒ External High-speed clock input : 6 to 20 MHz
‒ Internal High-speed Oscillator (IHOSC1) : 10 MHz
‒ PLL : 80 MHz output
‒ External Low-speed Oscillator : 32.768kHz
本篇博文將先介紹 GPIO 與 UART 的實作,之後再陸續介紹其他的應用實作。
二、 編譯軟體
編譯軟體 : M3H 支援 IAR 與 Keil IDE,本篇內容採用IAR 做為編譯環境;
Keil 可在以下網址下載到 Development Tools 開發工具,此外,還需下載並且安裝 TXZ3 系列的 Device Family Pack 芯片支援包
https://www.keil.com/dd2/toshiba/tmpm3hpfzfg/#!#eula-container
IAR可在以下網址下載
PS:IAR 的環境搭建,請參考此篇博文: TOSHIBA MCU 環境搭建與實作 GPIO
三、 M3H 的 Sample Software
Sample Software : TMPM3Hy_v1.2.0 , 由東芝所提供
可在以下連結下載
這包軟體可用在 M3H Group(2) 的 TMPM3HQ / 3HP / 3HN / 3HL 這幾個系列 MCU 上
下載 TMPM3HQ.zip 檔並且解壓縮後,裡面有 TMPM3Hy_v1.2.0 這個資料夾,使用者可以將這個資料夾解壓到準備開發 M3H 程式碼的資料夾中(建議路徑不要使用中文或過長的檔案夾名稱)
以下是 BSP 資料夾 “TMPM3Hy_v1.2.0” 中的資料夾結構及內容
“/TMPM3Hy_v1.2.0/Libraries” 這個資料夾中有 CMSIS, Doc, Periph_driver 三個資料夾;
“/TMPM3Hy_v1.2.0/Libraries/Doc” 中的 index.html 檔案,是使用驅動程式的使用手冊。
以上我們統稱為 “BSP” 開發板支援套裝軟體 ( board support package,以下簡稱BSP ),因此使用者也會在 BSP 中發現多個以 “bsp” 開頭所命名的原始碼檔案,如 “bsp.c”、“bsp_led.c”、“bsp_sw.c”等。
使用者可以查詢或閱讀這份文件以了解進一步 M3H 驅動程式的使用方式。
四、 開發板介紹
AdBun-M3HQ 為 M3H 的 EVM,主要提供客戶熟悉 M3H MCU 的使用與功能驗證。
AdBun-M3HQ (EVB) :
♦ 適用於東芝 TMPM3HQFDFG MCU
♦ 2.54mm 間距 3 pin 跳線連接器 (CN18) 用於電源 3.3V 或 5V 選擇
♦ 4 個綠色按鈕開關 (S4、S5、S6、S7)
♦ 4個LED (D10、D9、D8、D7)
♦ 2 可變電阻
♦ 內置 USB 拖放 FLASH 編程器
♦ RAM 大小 (64Kbytes) 和 BACKUP RAM (2Kbytes)。
M3H Group(2) EVM – AdBum-M3HQ
五、 Sample Project 實作
1. GPIO 實作
這個 project 的目的是演示
♦ 當您按下開關按鍵時,通過反轉中斷處理程序中的輸出信號來點亮和關閉 LED。
♦ 將 PortV0 至 PortV3 (S4 ~ S7 綠色按鍵) 設置為輸入端口,檢測按鍵開關是否有按下。
♦ 將 PortK4 至 PortK7 (D10 ~ D7 LED)設置為輸出端口,當按下開關按鍵時,中斷處理程序
設定GPIO“高”電平輸出信號來點亮對應的 LED。
AdBun-M3HQ 的 push SW 除了 RESET 按鍵外,還有 SW0 ~ SW5 五個按鍵;但因為 SW0 另有用途,所以這個範例 只有使用到 S4 ~ S7 做為 demo。
S4 = PV0 |
LED D10 = PK4 |
S5 = PV1 |
LED D9 = PK5 |
S6 = PV2 |
LED D8 = PK6 |
S7 = PV3 |
LED D7 = PK7 |
LED 及按鍵線路如下:
因為 CN5 沒有上件,所以下圖藍色框線 CN5 的紅色線段部分需連接起來,SW1~4 與 LED0~3 才會接到對應的 GPIO 引腳
GPIO_LED
開啟 TMPM3Hy_v1.2.0 Sample Software 的"TMPM3Hy_v1.2.0\Project\Examples\GPIO\GPIO_LED\LED_GPIO.eww”IAR project file,
開啟 “LED_GPIO” project 的 IAR 畫面後,滑鼠移到在 LED_GPIO project 名稱上按右鍵,點選 “Options...”
在 Options 的 “Debugger”選項中把“Driver”設置為“CMSIS-DAP”
設置好後之後對“LED_GPIO”專案進行編譯“Rebuild All”
下載及除錯
[執行程式]
程序執行後LED1~LED4 (D10、D9、D8、D7) 都處於熄燈狀態;
按下 S4 按鍵,LED D10點亮,松開 S4 按鍵,LED1 D10熄滅;
按下 S5 按鍵,LED D9 點亮, 松開 S5 按鍵,LED2 D9熄滅;
按下 S6 按鍵,LED D8 點亮, 松開 S6 按鍵,LED3 D8熄滅;
按下 S7 按鍵,LED D7 點亮, 松開 S7 按鍵,LED4 D7熄滅;
2. UART 實作
以下的實作,我們把編譯環境改成在 Keil 的編譯環境介紹,可讓讀者也了解兩者兩種編譯軟體使用的差別。
這個 project 的目的是演示
♦ 使用 Terminal 工具程式 “Tera Team”
♦ 將Baudrate 設成 115200,測試UART Tx 及 Rx 的功能
開發板線路圖與 Jump 設定:
1. 這裡使用 UART0 : TX ( PA1 ),RX ( PA2 )。
2. 連接 CN12 Pin 53-54 與 Pin 55-56
(評估板的UART TX 及 RX 及 MCU PA1 與 PA2未接通,因此需手動連接起來)
UART_Echo
開啟 TMPM3Hy_v1.2.0 Sample Software 的"TMPM3Hy_v1.2.0\Project\Examples\UART\UART_Echo.uvprojx”Keil project file,
開啟 “UART_Echo” project 的 Keil 畫面後,滑鼠移到在 下面視窗中紅色框線的 “Options”,點擊左鍵,會出現 “ Options for Target ‘UART_Echo’ ” 的視窗
接著 Rebuild 專案
編譯完成後,點擊 Download 或者按下“F8”功能鍵將 FW 下載到評估板的 MCU 中
在 Terminal 工具“Tera Term”中 Serial Port 設定Baud rate 設定為“115200”
Terminal setup 中 Receive 及 Transmi 都設成“CR+LR”,並且勾選“Local echo”
[執行結果]
載入完成並且 reset 之後,會自動印出 “Input = “ 的字串,按下任何字元並且按下 “Enter”。之後,會在下一行印出 “Echo = ” 及剛才所輸入的字元。
參考資料文檔
1. TMPM3Hy_v1.2.0軟件開發包:TMPM3Hy_v1.2.0.zip
(https://toshiba-semicon-storage.com/cn/product/microcomputer/ev1.html)
2. Keil MDK的M3HQ芯片支持包:Keil.TXZ3_DFP.1.2.0.rar
(https://www.keil.com/dd2/toshiba/tmpm3hqfdfg/#/eula-container)