104學習精靈

全部 課程 貼文 教室 證照 影片
韌體設計相關的課程 (5)
從工作推薦課程
MCU韌體設計
對於想要快速上手MCU的學習者,此課程使用WengPic實驗板內建函式,讓你可以快速上手!對於有專題設計的需求者,此MCU課程提供明確乾淨的單元規劃,以及良好範例程式參考。這門MCU課程也適合有驅動程式設計需求的學員,課程會帶你看懂Datasheet,去整理、定義嵌入式程式設計技巧。 學習目標 1.熟悉微控制器一般常用I/O控制與電路設計,如Timer、PWM、ADC、LCD、RTC等 2.熟悉微控制器常用通訊模組,如RS232、I2C、SPI等 3.依原廠Datasheet的說明,從波形與時序關係,逐行引領學員完成驅動 章節架構 Part1-Weng PIC函式庫介紹&開發環境建立 ► Weng PIC函式庫介紹 & 開發環境建立 ► Weng pic開發模組 ► 套件包資料夾介紹 ► MPLAB操作說明 ► 軟體更新操作 ► 燒錄操作 ► LCD函式庫練習 ► button函式庫練習 ► 電位器函式庫練習 ► 繼電器函式庫練習 ► 2.4G RF函式庫練習 Part2-GPIO控制 ► GPIO電路的基本需求 ► PIC18IO埠 ► PIC18F46J50_DataSheet Part3-Button視覺化及狀態圖 ► 視覺化思考與狀態圖 ► 狀態關聯的循環圖 ► 狀態+數位訊號>反應 ► 訊號分析 ► 狀態圖轉換成C語言 ► button實作01 ► 增加歸零功能及其分析 ► 增加連按兩下功能及其狀態分析 Part4-LCD實驗 ► 記憶體配置 ► LCD控制器 ► LCD接腳關係 ► 4位元轉換範例 ► Datasheet_HD44780U ► LCD實作 ► LCD_print位置控制 Part5-ADC實驗 ► 10bit_AD轉換 ► IC內部訊號時序圖 ► AD模組操作 ► 規劃AD模組及使用 ► AD模組操作順序步驟 ► ADC實作 Part6-中斷控制實驗 ► 中斷程式 ► 中斷功能 ► CCP之Compare模式 ► interrupt實作 Part7-Capture:紅外線接收器解碼 ► 紅外線接收模組 ► Capture mode設定 ► 紅外線接收訊號 ► 紅外線功能實作 Part8-PWM調節與控制 ► CCP之PWM模式 ► 頻率與工作週期關係 ► 晶片運作說明 ► CCP暫存器 ► 設定PWM模式與規劃 ► 複製專案的方法 ► PWM練習 Part9-UART與PC端 ► 非同步串列傳輸 ► EUSART傳送方塊圖 ► EUSART接收方塊圖 ► 鮑率計算 ► 非同步傳輸時序圖 ► 傳送接收處理 ► UART傳送_練習 Part10-I2C EEPROM操作 ► I2C控制碼 ► I2C接腳定義 ► I2C練習 ► EEPRO資料寫入操作 ► EEPRO資料讀取操作 Part11-PC端C#圖控介面實作 ► WinMerge軟體操作 ► 除錯訊息_條件式 ► C#開啟UART ► C#圖控介面實作 Part12-SPI控制CC2500 RF無線通訊 ► CC2500驅動程式設計 ► CC2500暫存器 ► CC2500_strobe練習 ► 設定CC2500發射功率 ► CC2500狀態機 ► 封包傳送 ► 封包接收 ► 封包切換傳送與接收 ► 主程式總整理
艾鍗學院
USB韌體設計
如果您設計的應用必須和PC連接,您能用的界面就是USB。 然而USB架構有一定的複雜程度,而且和PC連接又會涉及到PC端作業系統的問題,所以對於大部份的工程師而言,要進入到USB設計領域,通常是不得其門而入,而望之興嘆。為了讓您快速解惑USB惱人的工程問題,本課程邀請從事USB韌體開發15年經驗的資深工程師,以實戰結果導向的教學方式,讓您以10倍速學習速度,快速切入USB設計領域。本課程會先對USB架構做個簡介,接著再介紹相關的資料封包、協定、和USB request等。講師將帶入如何實作4個USB類別,包含HID、CDC-ACM、MSC、Audio等。課程也包含USB Audio Class且展示如何利用USB Audio specific request來控制USB Audio device。 課程將帶你深入了解USB控制與USB韌體實作,不論是想了解USB Protocol、想開發USB相關產品,如果你設計的應用必須和PC連接,你都會非常需要這門課。帶你了解USB控制原理與USB協定,教你最常用到的USB設計,包含USB HID、USB CDC、USB Audio及USB MSC類別,並使用HID Class讓USB和PC端能雙向通訊。像目前很夯的USB PD(USB Power Delivery)技術,你也會更容易切入。 學習目標 1.熟悉USB運作原理與設計USB HID class、USB Audio Class、USB CDC class、USB MSC class,並使用HID Class 讓USB和PC端能雙向通訊。 2. 能了解如何利用USB分析儀進行USB Debug工作。 課程特色 ▪ 課程採用艾鍗獨家研發的ARM MCU Board開發板!更多詳情 ▪ 業界唯一上課使用USB Protocol Analyzer儀器。 ▪ 業界講師從事韌體設計20多年,並具備15年USB韌體設計及Linux驅動程式設計開發經驗。真正產業出發,業界專家手把手教學! 課程大綱 Part I Fundamentals of USB 1. Introduction to USB Architecture 2. Other related USB Terms(ULPI,HSIC,OTG … ) 3. USB Data Flow Type and Communication protocol 4. USB Device Enumeration 5. Windows INF Files 6. USB Classes ● USB Audio (USB Speaker) ● USB CDC-ACM (USB-UART) ● USB CDC-ECM (USB Ethernet Adapter) ● USB HID (Mouse , Keyboard , Consumer device) ● USB Mass Storage ● USB Bluetooth Part II USB韌體實作(點我看Lab實作) 1.Windows INF 實作練習 2.USB Device Enumeration練習 3.USB Audio練習 ● USB Audio 封包說明 ● 如何控制USB Audio (Mute , Volume Up/Down) 4.USB HID class 實作 ● HID Class 封包說明 ● 實作Mouse相關功能 ● 實作Keyboard相關功能 ● 實作HID Data Transfer功能 ● 實作HID Consumer Device功能 ● 實作如何wakeup PC功能 5. USB CDC class 實作 ● CDC Class 封包說明 ● 實作USB轉UART相關功能 6. USB MSC class 實作 ● Mass Storage Class 封包說明 ● 了解MSC SCSI command , 存取MSC device 7. Bluetooth over USB ● Bluetooth HCI (Host Controller Interface) 控制說明 ● 透過HCI來控制Bluetooth Module
艾鍗學院
嵌入式Linux設計開發
「嵌入式系統」是所有電子產品最重要的底層核心技術之一。從工業自動化控制設備、機器人、WiFi路由器、汽車、電動車充電樁,到手機與平板等行動裝置、各種互動式多媒體機台、監控與電信設備、醫療設備等,都採用了嵌入式系統。在半導體技術與人工智慧的發展下,AI與物聯網中各種嵌入式終端整合為AIoT系統,帶動嵌入式應用更加多元、智慧與彈性。儘管科技持續迭代變化,嵌入式技術的重要性仍未動搖,嵌入式Linux開發人才在半導體與電子資訊科技產業依然炙手可熱。 然而,由於學習嵌入式有一定的門檻和難度,學習者普遍面臨著整體概念模糊、實作經驗不足、學習與應用之間的落差,以及相對複雜的軟硬體整合等問題。因此,艾鍗力邀業界資深工程師聯手打造嵌入式系統學程。帶你熟悉Linux系統環境及伺服器安裝,了解Embedded Linux的主要部份包含:Toolchain, Bootloader, Kernel, Root Filesystem。上手Embedded Linux BSP:Buildroot與OpenWrt。 學習目標 1. 能清楚掌握嵌入式Linux的開發流程,並了解業界如何進行嵌入式產品開發與生產。 2. 瞭解如何建構一個完整的嵌入式Linux系統,並能夠進行軟硬體系統的整合、移植與開發。 3. 掌握Embedded Linux開發重點:Toolchain, Bootloader, Kernel, Root Filesystem。 4. 上手Embedded Linux BSP:Buildroot與OpenWrt。 5. 瞭解Open Source Porting與Debug技巧。 6. 學會如何在嵌入式Linux開發多執緒Pthread程式、網路Socket通訊程式。 課程大綱 1. 嵌入式Linux系統簡介與實務開發方式 2. 開發硬體平台說明 3. 軟體開發平台BSP 解說 4. 深入 GNU make 5. 移植 Open Source 6. Linux Frame Buffer Device & GUI 圖形系統 7. Bootlloader (u-boot開發, init SDRAM, Flash, How to write Driver in U-bot....) 8. Linux 檔案系統 (JFFS2, CRAMFS, YAFFS,UBIFS...) 9. Linux MTD 裝置 10. GNU toolchain (Shared vs. Static Library, Linker Script, ELF Format, ar, objcopy, objdump, nm, libtool,etc. GCC Compiler . GDB,..) 11.產品應用 (1)Media Player -Porting MP3 Player (2)NAS -Porting SAMBA (3)Wi-Fi Router -hostapd, dhcpd, bridge, ... (4)IP Camera -Porting Streaming server (5)HTTP Server & CGI -BusyBox
艾鍗學院
Linux驅動程式
用Raspberry Pi學Linux驅動程式,並且搭配本公司所設計的Raspberry Pi I/O擴充板作為驅動程式實戰演練,實戰GPIO, UART, I2C, SPI等Linux硬體驅動,讓您在學習的過程中能夠快速了解硬體架構及軟體架構。 1.學習Driver撰寫的各個層面,包含核心API、中斷處理、同步、記憶體管理等等。 2.導正學員Linux Device Driver與Linux基本作業系統的觀念,為將來的Driver coding打下良好的基礎。 3.可以了解user-space與kernel-space之間的關係。 4.可以開始研讀及參考kernel裡面或是別人撰寫的device driver source code。 學習目標: 1. 能掌握Linux驅動程式設計概要及學習方法 2. 能看懂drivers目錄中與你要寫的類似驅動程式,並能依此參考並能加以改寫完成你自己的驅動程式 章節架構: ► Linux 驅動程式架構 ► Linux HAL ► Linux Driver開發流程 ► 核心程式碼與Makefile ► Driver 模組編譯與載入 ► 字元裝置Driver ● Character_Driver (1) ● Character_Driver (2) ● Character_Driver (3) ● Udev ► Linux Misc Device ► Linux GPIO Driver Framework ● Linux GPIO Lib ● BCM2835 GPIO 控制說明 ● Linux GPIO Host Controller驅動程式 ► Linux 中斷服務程式 ► Linux中斷控制器HAL層 ► Bottom Halves (Tasklet & Work Queue) ► 進階字元Driver ● Wait Queue ● Completion及非同步通知 ● Kernel Timer List (Jiffies, timer ticks) for LED 閃爍 ► Linux Platform Device & Platform Driver ► Linux Device Tree ► Linux SPI Driver Framework ● SPI簡介 ● SPI Flash 操作 ● Linux SPI Client驅動程式 for SPI Flash ● Linux MTD 驅動程式 ● Linux SPI Bus master驅動程式 ► Device Tree for ADC Driver (MCP3008) ► Linux I2C Driver Framework ● I2C 簡介 ● Linux I2C Framework(1) ● Linux I2C Framework(2) ● Linux I2C Bus master驅動程式 ► Linux UART Driver Framework ► Linux User Space Driver - BCM2835 C I/O Library
艾鍗學院
ARM Boot loader
本課程將透過ARM開發工具模擬器操作,以實際瞭解ARM核心的指令集、記憶體處理器(MMU)、中斷處理等。課程使用開源硬體平台Raspberry Pi實作一個ARM BootLoader,從中你可以了解從最底層的ARM Assembly到C main函式所發生的每一件事。實作中也以bare-metal (Non-OS)方式驅動如,GPIO、UART、TIMER等I/O,另也以實際code說明Raspberry Pi的SoC晶片(BCM2835/BC2836)中,ARM CPU如何和GPU通訊。最後,有鑑於學員在實際工作上所使用的開發工具大多為開發套件外,最後將講習如何將程式轉換為GNU工具可使用的原始碼。<<對於想要從無到有開發一套ARM-based作業系統,本課程絕對是一個OS開發者的前哨站>> 藉由Bare Metal 開發, 我們可以學到: 1.ARM 的CPU架構及組合語言 2.ARM Exception Vector Table & ARM例外處理 3.Boot From Where ? CPU initialize & DRAM controller initialize 4.How to write Startup Code ? 如何撰寫Linker Script 5.SoC 中斷控制器 & ISR (Interrupt Service Routine) 6.在沒有OS情況下要如何撰寫程式, 包含Application或 Chip Driver 7.CPU和GPU如何通訊? 適合對象 1.對ARM架構和其底層系統程式開發有興趣者。 2.想從事ARM BSP development、ARM Bootloader/BIOS programming、研發相關工作者。 3.須具C程式設計基礎。 章節架構: ► 1.SoC基本架構 ► 2.ARM處理器架構 ► 3.ARM組合語言 ► 4.Thumb mode ► 5.ARM 標準程序呼叫 ► 6.ARM Exception handling /例外中斷處理 ► 7.Memory Barrier & Coprocessor ► 8.系統程式-Linker & startup code ► 9.Bare-metal Development using Raspberry Pi 3 ● 認識Broadcom BCM283x SoC ● Raspberry Pi 3開機流程 ● 實作 GPIO 驅動-LED、 Button ● 實作BCM2835 中斷控制器 ● 實作System Timer 中斷 ● 實作GPIO中斷 ● 實作UART ► 10.GPU 與ARM間的溝通 ● 用Mailbox 界面實作Framebuffer
艾鍗學院