教學大綱表 (110學年度 第1學期)
請遵守智慧財產權,勿使用非法影印教科書,避免觸法。
課程名稱
Course Title
(中文) MCU硬體與韌體系統設計
(英文)
開課單位
Departments
電機工程學系
課程代碼
Course No.
E2500
授課教師
Instructor
熊大誠
學分數
Credit
3.0 必/選修
core required/optional
選修 開課年級
Level
大三
先修科目或先備能力(Course Pre-requisites):計算機概論, C語言程式設計
課程概述與目標(Course Overview and Goals): 本課程的設計目標是以MCU硬體為基礎,進而培養韌體的能力。現在業界的MCU的程式記憶體空間已經來到Mega-Byte的量級,韌體開發所需要的工程人力往往是硬體設計的兩三倍以上。所需要研究與閱讀的基本技術與文件量,也越來越多。如何理解基本功能,在成千上萬個MCU之中找到合用的IC,是MCU系統工程師的基本素養。透過課堂上的技術教導與實作,讓同學理解並且應用已經無所不在的MCU。
雖然技術的演進是讓MCU內部的系統越來越複雜,但是開發的方式卻有了很大的改進;配合open source HW / SW / FW 要開發一套MCU系統,有了非常多便宜又好用的資源可以使用;對於新手的門檻也大幅地下降。目前市場上最主流的IDE開發環境,基本上多採用Eclipse這個開源IDE做客製化調整,並且與開源生態系高度地整合。
意法半導體(ST)目前是市場上擁有最大量的ARM Cortex-M MCU IC數量與類別的公司,這2020年突破了一千顆的數量,基本上涵蓋非常大的市場應用層面。尤其它所建置的MCU開發系統STM32CubeMX,透過IDE介面,可以自動產生開發所需要的程式碼,讓我們可以更專注在系統的應用開發。在帶入STM32CubeIDE之後,編譯成功後,可以透過ST-Link v2這個工具下載到目標電路板中,進行後續的驗證與除錯。
課程會採用俗稱Blue-pill的open-source hardware電路板做實作練習,使用ST-Link v2作為下載與除錯的工具。透過一步一步的實作練習,提升Datasheet & Application Note的閱讀能力,熟悉MCU常用介面,建立MCU硬體與韌體系統設計的基本能力。此外,很有趣的是Arduino社群也支援Blue-pill這塊電路板,我們也可以透過Arduino IDE開發簡單的應用。
教科書(Textbook) 自編講義
參考教材(Reference) https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html
課程大綱 Syllabus 學生學習目標
Learning Objectives
單元學習活動
Learning Activities
學習成效評量
Evaluation
備註
Notes

No.
單元主題
Unit topic
內容綱要
Content summary
1 認識MCU 硬體系統 隨著IC集成度越來越高,MCU內部的系統把越來越多的功能整合進來。了解MCU內部每一個組成方塊(Building Blocks)的功能特性。 理解個別MCU IC的市場定位。精準地讓特定的MCU發揮在系統中的功能,合理的IC成本設定與開發工時,是MCU系統設計追求的目標  
2 MCU開發的生態體系 硬體方面選定以 STM32F103C8T6為核心,MCU俗稱Blue-pill的open source hardware作為開發板,配合市場上很容易取得的ST-Link v2作為ICE,提供中斷點等除錯功能。
軟體方面透過ST提供的STM32CubeMX和 STM32CubeIDE形成完整的C語言的韌體開發環境。
認識不同的開發環境  
3 STM32CubeMX 在多數廠家以範例程式為基礎的開發起始點時,ST的 STM32CubeMX(支援全系列Cortex-M MCU),開發者透過選單介面可以設定MCU內部所有的功能與相關的初始狀態。同時也提供USB通信協定等程式庫,讓開發者可以專注於上層程式的開發 以範例來練習STM32CubeMX的程式碼自動生成的功能  
4 STM32CubeIDE 一般的MCU開發都是以IDE為起始點,IDE顧名思義是把C/C++語言編輯器、編譯器及除錯器等整合集成在一起。以往需要在命令列下執行每一個工具程式的繁瑣作業程序全部被整合在一個環境中,是非常便利的。 同學們透過範例的練習,累積實作的經驗與工時。  
5 期中考 期中考當天每人呈現3~4分鐘短視頻或是PowerPoint呈現出學習內容與心得 理解與內化上課的內容  
6 導讀MCU Datasheet & Application Note 一般在業界韌體和硬體,甚至軟體都分屬不同部門,在文件中,有些部分是屬於韌體和硬體都必須知道的規格,多一分了解會在韌體硬體混雜在一起的除錯問題上,迅速地找到解方。 對於自己正在使用MCU的 Datasheet有基本閱讀能力,遇到細節問題時,才會知道到哪裡找答案。  
7 基本通信介面 所謂的inter-chip communication(UART、SPI、I2C) ,它們是用在MCU和周邊IC的短距離通信,也就是在同一塊PCBA上,或是兩片連接在一起的PCBA。UART是一個歷久不衰,應用層面非常廣泛的協定(Protocol),它延伸的典型應用包含USB的Virtual COM Port(VCP)。 理解inter-chip communication  
8 Arduino路徑 Arduino的bootloader讓開發者可以直接透過USB下載程式,更加簡化了開發程序,它的除錯方式是透過Virtual COM port(VCP)和Arduino IDE互通。 Blue-Pill更可以巧妙地連結到新一代的專業開發工具上。同學們使用進而參與開源社群是幫助自己在軟韌體成長茁壯的途徑之一。  
9 期末考 期末考當天每人呈現3~4分鐘短視頻或是PowerPoint呈現出自己設定的小計畫 和產業中的工程師一般,具有自學和設定目標解決工程議題的能力  


教學要點概述:
1.自編教材 Handout by Instructor:
□ 1-1.簡報 Slids
□ 1-2.影音教材 Videos
□ 1-3.教具 Teaching Aids
□ 1-4.教科書 Textbook
□ 1-5.其他 Other
□ 2.自編評量工具/量表 Educational Assessment
□ 3.教科書作者提供 Textbook

成績考核 Performance Evaluation: :10%   期中考:40%   期末考:50%  

教學資源(Teaching Resources):
□ 教材電子檔(Soft Copy of the Handout or the Textbook)
□ 課程網站(Website)
扣考規定:https://curri.ttu.edu.tw/p/412-1033-1254.php