學程簡介 | 課程大綱 | 專題實績 | 課程預覽 | 會員優惠 |
1.專為學習者設計,獨家研發ARM Cortex M教學開發板
2.學中做!讓您自己動手寫code
3.教你如何整合與活用MCU各式應用
4.深入了解USB控制與USB韌體實作
5.擁有最完整的教學儀器設備
企業都選擇艾鍗不只是學技術,還有縮短自學摸索的時間
艾鍗學院為了隨時掌握產業的變化並跟上技術需求,設有教學研發團隊,以提供新技術、高品質的課程服務,訓練出業界需要的人才!感謝台達電子、廣達、Intel、協益電子、華城電機、高通、創威光電、德立斯、國防部、光環等80多家企業選擇艾鍗培訓。
2. 能熟悉微控制器常用通訊模組,如RS232、I2C、SPI、UART。
3. 能讓學員依照原廠Datasheet 的說明,從波形與時序關係,逐行引領學員完成驅動。
4. 掌握MCU微控制器韌體程式撰寫,使具備韌體開發之測試/debug/維護能力。
5. 熟悉USB運作原理與設計USB HID class、USB Audio Class、USB CDC class、USB MSC class,並使用HID Class 讓USB和PC端能雙向通訊。
6. 能了解如何利用USB分析儀進行USB Debug工作。
7. 針對物聯網及穿戴式裝置上常見的感測器,教你如何驅動與了解如何應用這些感測器。
8. 能從課程中學習一個完整專案開發的建立方法,例如:如何選擇合適的晶片來滿足產品需求。
基本上,一顆MCU單晶片就是一個CPU core並整合多個I/O週邊。CPU core 可能是IC廠自行開發(如TI、Microchip)或是License來自別人的CPU Core (如ARM Cortex-Mx)。
韌體是一段程式碼介於硬體與軟體之間,其主要目的就是用來控制硬體並且設計一個友善程式介面供上層軟體來呼叫使用,因此之所以稱”韌”就代表不太”硬”但也不太”軟”。因此MCU的系統架構上,若存在韌體這一層角色,就可以讓上層應用程式透過韌體所提供的API介面來操控或讀取硬體資料,而不必知道底層的細節,諸如控制暫存器讀寫、電路、訊號波形與時序控制等等。這樣的系統架構設計,可以讓軟體開發人員,專注於產品應用與使用者界面上,而完全與MCU晶片無關。即使將來更換MCU或週邊IC時,只須修改韌體程式而非軟體程式。
能對訊號處理、IP元件的驅動、界面電路、IC間通訊、中斷系統、時序控制等主題有所掌握。要能看懂DataSheet與波形時序圖,接著能跟著撰寫相對應的code。
不同廠商對於不同的市場應用,會推出符合該市場應用的MCU晶片。如針對工業控制、車用電子,可能會有CAN Bus; 針對生醫電子可能會有解析度較高的ADC。因此主要還是依據產品應用來選擇,即便是同廠商同款IC也會有RAM,Flash大小的差別,仍視應用而定。
開發的重點主要是熟悉MCU本身及週邊元件的驅動方法、建立良好的軟硬體系統架構與了解產品的應用面。對於底層Timer、GPIO、UART、I2C、SPI、ADC等各種IP驅動到更為複雜的USB HID、USB-CDC、USB Audio及USB MSC是韌體工程師應該熟悉的部份。雖然各家廠商推出的MCU晶片,對這些IP控制方式可能不同(暫存器的操作不同),但因為原理原則都是相同的,因此對於一個訓練有素的韌體工程師,只要有能力讀懂MCU廠商Datasheet或IC Manual,其實並不難上手新的MCU。
由於現在MCU幾乎都是以C語言來開發,不像早期都是寫組合語言,因此CPU Core是那一家的,其實對開發者而言完全沒有差別。
此外,ARM針對Cortex-M 提供CMSIS 介面(Cortex-M Software Interface Standard),使得韌體工師使用ARM Cortex-M based的MCU根本不必知道ARM架構、ARM內部暫存器及指令集。正是因為CMSIS函式庫的存在,開發者對於使用ARM Cortex M的任何版本,是沒有差異性的。雖然最新的ARM Cortex 7的CPU效能較高,但就如同如果你是會開車的,不論是駕駛BMW或Toyota你都還是會開,並不用去考兩張駕照。
市面上有許多不同廠牌的晶片可供選擇,撇開其各自特性(適合的應用)不談,其實差別僅在各家晶片商的 API 不一樣。ARM + 晶片商的電路 = 各家的MCU。所以,ARM 是一樣的。1. ARM Cortex -M 的核心程式 一樣 2. Keil C 的開發環境一樣。來參加艾鍗的MCU單晶片課程,老師會明確指出,如何讓共通性的東西更相容 。
最大的差別就是軟體著重應用而韌體著重硬體訊號控制,並且軟體都是先假設底層韌體/硬體一切正常。韌體設計最根本的技術是”訊號處理”而不是程式。訊號處理意謂著你要先能理解兩個IC間的溝通方法,是否有依照IC DataSheet中的訊號時序圖來傳遞。”時序”表示訊號交握是有Timing的關係,這通常是軟體背景者最難入手的地方,如果你已經拿著會動的Code去改,那只有學到軟體的功夫而不是韌體的真本事。艾鍗課程講師會教授每一位學員LA邏輯分儀如何使用並搭配艾鍗在Windows上開發的訊號產生工具,讓學員可以用一目了然的方法去看見波形時序是怎麼一回事。
Arduino是MCU,但多數人是用Arduino開發”軟體”而非”韌體”。因為底層的晶片及週邊Driver均被包成現成的硬體函式庫(Hardware Peripheral Library), 所以並不需要使用者研讀微控制晶片及DataSheet,所以就工程技術角度來看,這僅僅是純軟體上的學習。若是專注於Arduino硬體函式庫的開發,這才是韌體設計。
韌體並不好學,但有專家引導,差別會很大!艾鍗MCU課程由業界講師帶你用圖像式思考的方式,有邏輯架構地一步步開發出所需的功能。而這樣寫出的Code是簡單明瞭,易於除錯和維護的,搭配講師親自編寫的完整範例程式碼輔助,絕對省下你在學習和工作上摸索、走冤枉路所耗費的時間。講師還會帶你學會自己使用儀器抓訊號、自己解讀訊號;一步步精要步驟解析,不用擔心跟不上,回家還能自主複習。正確架構觀念指導外,充分的實務演練安排,是因為我們相信學習要實際操作才會有感覺,所以每一步都帶你透過實踐去感受。
【用心教學 值得您的肯定,專業技術 值得您的信賴】
專為學習者設計的教學開發板,讓您在學習的路上更能事半功倍!
艾鍗為了傳達正確的韌體設計學習觀念與學習重點,我們從無到有,從一顆MCU晶片、電路設計到PCB板的完成,接著為我們的板子撰寫每一行code。由於這是韌體教學實驗板,所以我們特地預留了很多訊號量測腳位,方便學員在學習中能快速量測訊號。
何老師 ※講師具16年韌體開發與電路設計經驗!韌體真功夫讓您自己寫出每一行 code,而不是拿別人現成的 code 去改而已!
▪ 電子工程碩士 ▪ TQC+ 電路設計領域委員 ▪ 全國技能競賽工業電子培訓教師
▪ 電路設計 ▪ OrCAD PCB Layout 設計 ▪ Microchip PIC18/ TI MSP430
▪ Nuvton Nano130 ▪ RFID無線射頻 ▪工業控制 ▪ RF無線通訊韌體設計
Kangta ※講師具15年USB Divice開發經驗,在國內一線PC/NB ODM廠擔任主任級資深工程師!
▪ 輔仁大學電子工程所
▪ 國內一線電子大廠/資深工程師
▪ 8051單晶片 ▪ USB韌體設計 ▪ Linux驅動程式設計