Have you ever wanted to develop your own device that can be connected to a computer using USB? Are you familiar with using USB <-> UART adapters but want to take your USB knowledge and understanding to the next ultimate level? If yes, then this course is absolutely for you.
I made the whole content of slides and code by myself after a lot of preparation and fine-tuning to give you the best experience you can find today online to learn and understand USB protocol and framework in theory and in practice.
Have you ever wanted to develop your own device that can be connected to a computer using USB? Are you familiar with using USB <-> UART adapters but want to take your USB knowledge and understanding to the next ultimate level? If yes, then this course is absolutely for you.
I made the whole content of slides and code by myself after a lot of preparation and fine-tuning to give you the best experience you can find today online to learn and understand USB protocol and framework in theory and in practice.
Your journey with me in this course should save you from any frustration that could happen when you try to learn or understand USB from any other online source. USB is for most a mystery and a very complex protocol, and most engineers try to avoid it or at least try to convert it to other simpler protocols. However, after taking this course, you will be able to be a confident native USB engineer, and you will be able to develop your first bare-metal USB device with me without using any library, which will give you full control over the powers of USB. Even if you want in your career to use a USB library, taking this course will give you a full understanding of what is going on behind the scenes, and will allow you to be able to develop and fine-tune and USB device you want, because, after the end of this course, I would expect from you to have a full understanding of the concept of USB and how it works.
In this course, we will:
- Start with some theoretical information about USB.
- Understand the essential details of USB protocol.
- Take our time to understand how to configure the clock of any embedded system correctly.
- Implement a bare-metal USB firmware for ARM Cortex M4 based microcontroller (STM32F4xx family).
- Implement a bare-metal USB framework.
- Develop our own USB HID mouse from zero to fully functional.
Of course, the source code of the project we are going to develop together in this course will be available for you to download. You may use it as a template (fully or partially) for your projects in the future.
This course is in its early stages and some new additional content will be added or enhanced if necessary frequently. Nevertheless, the current content is full and sufficient to get a fully functional USB human interface device.
Happy engineering. See you inside the course.
Credits:
Optimistic / Inspirational by Mixaund | https://mixaund.bandcamp.com
Music promoted by https://www.free-stock-music.com
Credits:
Five stars: http://www.pngall.com/?p=39082
The definition of universal serial bus (USB) and the motivation behind USB development.
The history of USB development and USB versions.
The most common USB cables and connectors.
A quick look on the inner-structure of the specified cable in USB 2.0.
The main features of USB protocol regardless of the USB version.
Demonstration of the USB star topology and the meaning of USB function.
Explanation about the history of different power supply specifications for USB devices.
Explanation about the principle of smart chargers.
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).
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.