Usb Behind The Scenes Hands On Hid Firmware Development
Tags: Embedded Systems
The #1 video course that explains programming bare-metal firmware for USB human interface devices (HID) step by step.
Last updated 2022-01-10 | 4.8
- Write a bare-metal firmware for USB 2.0 human interface devices (HID) without using any third-party libraries or code generators.- Implement USB device driver and USB 2.0 protocol framework.
- Program a fully functional USB mouse from zero.
What you'll learn
* Requirements
* Basic knowledge of C programming language (recommended).* Basic knowledge of designing embedded systems.
* Any STM32F4 Microcontroller (ARM Coretx-M4 based) on Discovery or Nucleo board to apply the knowledge.
Description
- Write a bare-metal firmware for USB 2.0 human interface devices (HID) without using any third-party libraries or code generators.
- Implement USB device driver and USB 2.0 protocol framework.
- Program a fully functional USB mouse from zero.
- Understand the generic USB descriptors and the descriptors specific to human interface device (HID) class.
- Deal with native USB (WITHOUT any conversion to UART)
- Use ARM Cortex-M4 based microcontroller (STM32F4xx), one of the most developed and famous MCU in the world.
- Debug USB communication using Wireshark and Linux SysLog.
- Read different parts of ARM Cortex-M4 reference manual and extract the important information efficiently.
- Understanding how USB 2.0 protocol works in full speed mode.
- Understand USB endpoints, pipes, transfer types, packets, transactions, frames, power supply, topology, and many more.
- Learn the basic mechanical and electrical specifications of the USB (connectors, cables, speed enumeration resistors, and many more).
- Know the history and motivation behind developing the universal serial bus (USB).
- Learn using Single Wire Output (SWO) to send logs to the debugging host.
- Increase your productivity and code portability by using ARM CMSIS.
- Document your code using Doxygen syntax.
Course content
11 sections • 166 lectures
Introduction Preview 04:38
Credits:
Optimistic / Inspirational by Mixaund | https://mixaund.bandcamp.com
Music promoted by https://www.free-stock-music.com
How to Get the Most of This Course? Preview 00:37
Discord Server for Student Communication Preview 00:09
Why STM32F429ZI (ARM Cortex-M4 Based) Microcontroller? Preview 00:09
Udemy Review Preview 01:37
Credits:
Five stars: http://www.pngall.com/?p=39082
Definition and Motivation Preview 05:37
The definition of universal serial bus (USB) and the motivation behind USB development.
History Preview 05:48
The history of USB development and USB versions.
Cables and Connectors Preview 02:55
The most common USB cables and connectors.
USB 2.0 Cable Structure Preview 01:23
A quick look on the inner-structure of the specified cable in USB 2.0.
Main Features Preview 05:58
The main features of USB protocol regardless of the USB version.
Bus Topology and Functions Preview 09:10
Demonstration of the USB star topology and the meaning of USB function.
VBUS Preview 00:29
Power Delivery Specification Preview 10:18
Explanation about the history of different power supply specifications for USB devices.
Smart Charger Preview 01:40
Explanation about the principle of smart chargers.
Differential States Preview 05:27
Bus States Preview 10:09
Timing Tolerance Preview 01:21
USB 2.0 Speed Identification Preview 02:33
Bit Stuffing Preview 01:21
Non-Return-to-Zero Inverted (NRZI) Preview 04:24
Host Controllers Preview 05:11
Frames Preview 01:52
Endpoints Preview 11:57
(PDF) Packet and Transaction Types Preview 00:11
Here you can find a PDF file that contains the slides of some of the important upcoming lectures that you may need frequently to be opened next to you while watching the videos (e.g. to be able to compare the transaction types without switching between the videos).