TI Tiva TM4C123GXL LaunchPad 評估板的使用入門

image

目標

本文討論的是如何在 Microsoft Windows 作業系統上使用 Keil 的 µVision IDE(整合開發環境)和 TI 的 TM4C123GXL LaunchPad 開始進行程式設計和介面設計。

快速連結

購買連結

TI Tiva TM4C123GXL 評估板

參考文檔

TM4C123GXL 使用者指南 tm4c123g_user_guide.pdf (1.0 MB) - 此特定評估板的使用者指南。
TM4C123GH6PM MCU 規格書 - 此評估板上所包含的單晶片的規格書。
TivaWare 週邊驅動程式庫 - 使用 TI 的 C 庫對各種片內外設進行程式設計的 TI 指南。

下載

  • Keil 的 µVision IDE-一種用於對各類單晶片進行程式設計的程式設計環境。 可使用僅限 32KB 編碼的免費評估板,適用於大多數小型專案。
  • TivaWare 開發套件 - 適用於TivaWare C 系列的 TI 開發套件,包括各種片內外設的 C 庫和可用於 µVision(以及其他支援的IDE)的範例程式碼。
  • Stellaris ICDI 驅動程式-適用於內部電路調試介面的驅動程序,µVision 需要利用這些驅動程式與裝置建立適當的通訊。
  • TeraTerm-一個開源的免費串行終端仿真器,非常適合用於透過 123G 的 UART 0 周邊發送偵錯訊息。

簡介

TI TM4C123GXL LaunchPad 是 TI 的 TM4C123GH6PM 單晶片的評估/開發平台,屬於 ARM Cortex-M4F 單晶片系列的一部分。 透過 LaunchPad,你可以輕鬆地測試單晶片的功能和特性,並且透過簡單的 USB 連接即可使用 JTAG 輕鬆地對單晶片進行編程和調試,從而加快原型開發和測試的速度,因此也是這種評估板的常見 用法。

借助該評估板,你可以存取 TM4C123GH6PM MCU 上的大多數,甚至是所有周邊。 這包括 GPIO 連接埠、UART 連接埠、SSI 連接埠(可用於實作 SPI 協定)、I²C 匯流排、PWM 模組、定時器/計數器和各種其他周邊裝置。 本文將嘗試說明如何使用 µVision 和 TI 的範例專案(使用 C 程式語言)開始使用評估板和一些前述的周邊。 如需查看更多資訊和範例程式碼(本文中使用了其中許多程式碼),請訪問 DigiKey 的產品頁面TI 的產品頁面

TI 在維基上也發表了類似的文章,本文將盡量避免提及冗餘的內容。 TI 的文章更深入地介紹了該設備的功能(你也可以在 TI 的產品頁面的規格書中找到)。 但截至筆者寫作時,TI 的文章中仍缺少許多實驗細節;本文將嘗試幫助使用者開始利用 TM4C123GXL 進行實際編程和介面設計。 此外,TI 的範例使用的是 TI 專有的 Code Composer Studio(CCS)IDE 對裝置進行程式設計;我們將介紹如何使用 Keil 的 µVision IDE 對 TM4C123GXL 進行程式設計。

注意:本文中的單晶片、MCU 和處理器術語可互換使用。

運行範例項目

下載必要的軟體

首先,點擊此處下載並安裝 Keil 的 µVision IDE。 在本教學中,我們使用的是 MDK-ARM v4 的試用版,因為(截至本文撰寫時)這是與 ARM 處理器搭配使用的IDE 的最新穩定版本。 需要先在 Keil 的網站上註冊,然後才能下載 IDE,但這是完全免費的。 然後只需運行安裝程式即可;預設安裝設定對於本教學來說已經足夠。 如果 Windows 沒有建立 IDE 的捷徑,可以在「…\Keil\UV4\UV4.exe」中找到。

接著,下載 TI 的 TivaWare 開發套件。 其中包含許多有用的文件,包括 µVision 範例專案(是程式設計 TM4C123G 的良好著手點)以及 TM4C123G 周邊裝置的許多驅動程式和函式庫。 你可以點擊此處 1下載該軟體。 對於 TM4C123GXL 評估板,我們需要下載 SW-EK-TM4C123GXL-2.1.0.12573.exe。 與 Keil 的網站一樣,你需要先註冊再下載,但完全免費。 執行此可執行檔並將其安裝到所選的位置。 對於本教學課程,我們假設使用的是預設目錄「C:\ti\TivaWare_C_Series…」。

在 TI 網站上,我們還需要下載內部電路偵錯介面(ICDI)的驅動程序,以便在 TM4C123GXL 中上傳和偵錯程式碼。 你可以點擊此處下載。

最後,還需要下載序列終端程序,以便我們可以輕鬆查看 TM4C123G 的輸出,這在調試時非常有幫助。 TeraTerm 簡單易用,因此我們將在本教學中使用。 你可以點擊此處,透過 SourceForge 下載。 對於本教程,選擇標準安裝即可。

基本設定

現在,所有必要的軟體都已安裝完畢,我們可以透過裝置隨附的 MicroUSB 線纜將 LaunchPad 評估板連接到電腦上。 請確保使用裝置上的「DEBUG」MicroUSB 連接埠,並將板上的「DEVICE/DEBUG」開關設定為 DEBUG。 Windows 可能會自動安裝相應的裝置驅動程序,並且可能會將其識別為 Stellaris ICDI(內部電路偵錯介面)裝置。 如果 Windows 未自動辨識該裝置,請前往裝置管理員(在 Windows 的控制台中),在「其他裝置」下,你應該會看到三個尚未安裝驅動程式的新裝置。 右鍵單擊第一個裝置,並選擇更新驅動程式選項。 然後選擇瀏覽驅動程式的選項,並在視窗中定位到先前下載的包含 Stellaris ICDI 裝置驅動程式的資料夾(你可能需要解壓縮檔案)。 對於「其他裝置」下列出的其他兩個裝置,請重複執行上述操作。 對於 Windows 8 和 8.1 用戶,你可能需要停用「驅動程式簽章強制執行」才能安裝驅動程式。 具體的執行步驟請在搜尋引擎中搜尋(根據你使用的 Windows 8 版本,此過程可能會略有不同)。

現在打開 TeraTerm,在「File」下選擇「New Connection」。選擇序列對應的單選按鈕,在下拉式選單中選擇「Stellaris Virtual Serial Port」選項(COM 埠號碼由 Windows 隨意分配,不是很重要)。 對於將要開始使用的範例程式碼,UART 外設波特率已配置為 115,200,具有 8 個資料位元、1 個停頓位元且無奇偶校驗位,因此我們需要確保將 TeraTerm 配置為相同的設置,從而 保證 MCU 和序列終端之間建立正確的通訊。 在 TeraTerm 的頂部選單中,選擇「Setup → Serial port…」並確保設定與下方所示的設定一致(連接埠除外,Windows 可能會為裝置指派不同的連接埠號碼):

image

編譯和下載範例項目

此時,我們可以開啟 µVision IDE。 在螢幕頂部的選單中,選擇「Project → Open Project…」並導覽至先前安裝的 TivaWare 軟體。 我們需要前往「ti\TivaWare_C_Series-2.1…\examples\boards\ek-tm4c123gxl」。 在這裡,你可以看到 TI 針對此特定評估板提供的各種範例。 現在,前往「hello」資料夾並開啟「hello.uvproj」。 這是一個簡單的 Hello World 程序,將透過 MCU 的 UART 0 周邊輸出「Hello, world!」(該周邊連接到我們用於連接 TeraTerm 的相同虛擬串口)。

要編譯程序,請點擊下圖中顯示的「Rebuild」按鈕(或者,你也可以從頂部選單中選擇「Project → Rebuild all target files」來重建專案)。 這將重新編譯專案中的所有原始檔案。

image

如果編譯和連結成功,µVision 底部的「Build Output」視窗應該會顯示 0 個錯誤。 現在程式碼已編譯完畢,但仍需上傳到評估板中。 為此,請點擊下圖中顯示的「Download」按鈕(或從頂部選單中選擇「Flash → Download」)。

image

下載成功後,「Build Output」視窗將顯示「Erase Done. Programming Done.Verify OK.」現在,該專案已成功載入到我們的單晶片中,請按下評估板上的「RESET」按鈕。 此時,板上的程式將從頭開始執行,並應將字串「Hello, world!」輸出到串行終端(在本教程中為 TeraTerm),且評估板上的 LED將閃爍。

接下來該怎麼做?

要開發自己的 TM4C123GXL 程序,你可以先從我們剛剛載入到板上的 TI 範例程式碼入手。 建議嘗試一些位於「hello」專案所在資料夾中的其他範例專案。 分析這些項目有助於你更深入地了解如何使用 TI 提供的 C 函式庫對 MCU 的各種周邊進行程式設計。 這些函式庫中的許多函數只是修改了各種周邊裝置的硬體暫存器的內容,因此,為了更好地理解硬件,你可以選擇自行修改這些暫存器,而不是使用TI 的函式。 有關這些寄存器的完整清單以及有關單片機的周邊和其他特性的更多信息,請參見 TM4C123GH6PM 的規格書

其他模例

以下是我製作的一些使用 TM4C123GXL 及其片上周邊的範例:
I2C Communication with the TI Tiva TM4C123GXL

提示

  • 在編程 123G 時,應始終在主函數的末尾放置一個無限循環(例如 while(1); )。 如果沒有無限循環,可能會發生未定義的行為。 一部分原因是,由於 MCU 上的周邊可以獨立於程式碼的線性執行而運行,如果主函數在外部活動的中途結束,那麼該活動可能會中斷(儘管可能還有其他原因)。 此外,如果允許主函數結束,則中斷將無法正確執行。

  • 將新程式碼載入到評估板上後,別忘了按下板上的「RESET」按鈕!這會促使單晶片開始執行新載入的程式碼。

  • TI 的「hello」範例專案(以及其他類似專案)中的「ConfigureUART()」函數非常有用(結合 TeraTerm 使用),可在應用程式開發期間輸出簡單的偵錯資訊。 此函數可對 UART 0 周邊進行設置,以便與 TI 的「uartstdio」庫配合使用,該庫可以存取「UARTprintf()」函數。 此函數類似 C 標準 I/O 中的「printf()」函數,支援你輕鬆地將字串和整數等變數列印到序列終端上。

問題/評論

如有任何疑問或評論,請造訪 DigiKey 的技術論壇