Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Embedded Vision: High-Speed USB Video Streaming
Welcome
Introduction(Same as Promo) (2:06)
Course Requirements
Setting Up
Downloading CubeIDE (2:34)
Installing CubeIDE (2:38)
Introduction to Digital Cameras
Role of Digital Cameras in Embedded Devices (4:06)
Challenges and Consideration for Integrating Digital Cameras (2:21)
Fundamentals of Imaging
Light and Electromagnetic Radaiation (2:40)
Imaging Formation and Resolution (2:09)
Contrast and Dynamic Range (2:36)
Basics of Imaging (3:41)
Key Components of Digital Cameras (2:02)
The Charge-Coupled Device(CCD) Sensor (2:06)
How the Charge-Coupled Device(CCD) Works (1:39)
The Complementary Metal-Oxide-Semiconductor (CMOS) Sensor (2:28)
The Lens and Image Processor (1:27)
The Camera Interface (3:20)
The Digital Camera Interface(DCMI)
Overview of the Digital Camera Interface(DCMI) Peripheral (1:40)
Functional Overview of the DCMI (4:29)
Summary of How the DCMI Works (1:10)
Data Register with 8-bit and 10-Bit Data Width (5:06)
Data Register with 12-bit and 14-Bit Data Width (3:14)
How Hardware Synchronization Works (3:39)
The DCMI Snapshot Mode and Continuous Grab Mode (3:12)
The DCMI Data Format and Storage (2:57)
The DCMI Crop and Image Resize Feature (2:08)
The DCMI Interrupts and Behavior in Power Modes (1:08)
Configuring the Vision Project
Programming: Getting the Right Package for the MCU (6:27)
Programming: Creating the Base Project (5:43)
Programming: Properly Naming the Multicore Project (4:15)
Programming: Adding the Required Files (8:13)
Programming: Integrating the Required Files into the Project (3:18)
Programming: Including the Paths of the Required Files to the Project (7:59)
The USB Vision Project Architecture
Overview of the USB Camera Application (Pt.1) (5:25)
Overview of the USB Camera Application (Pt.2) (5:17)
Programming: Overview of the Workspace (1:28)
Programming: Intrgrating the Middleware and JPEG Utilility (3:42)
Drawing the Complete Stack of Our Intended System (13:41)
Programming: Updating the Project Paths and Symbols (3:56)
Programming: Analyzing the HAL Layer Modules (6:55)
The USB Descriptor Module for the USB Video Device
Programming: Creating the USD Descriptor Module Files (5:10)
Programming: Implementing the USB Device Descriptoor Interface File (9:21)
Programming: Defining the Device Identifiers and Human-readable Strings (4:08)
Programming: Implementing the Descriptor Callback Table (4:34)
Programming: Implementing the other Descriptors (6:07)
Programming: Implementing the Function for Returning the Device Descriptor and LanguageIDDescriptor (2:53)
Programming: Implementing the Function for Returning the Product and Manufacturer String Descriptors (2:58)
Programming: Getting the Serial String Descriptor (6:10)
Programming: Implementing the Function for Returning the Configuration and Interface String Descriptors (2:08)
The USB Device Configuration Module
Programming: Creating the Files for the USB Device Configuration Module (2:49)
Programming: Defining the Frame-rate Limits (7:39)
Programming: Defining the Macros for Buffering and Transport (5:36)
Programming: Understanding the Job the of the USB Device Configuration File (4:23)
Programming: Implementing the PCD MSP Initialization Function (9:58)
Programming: Implementing the PCD MSP De-Initialization Function (1:37)
Programming: Implementing the Setup Stage and Data Out Stage Callbacks (9:21)
Programming: Implementing the rest of the Callback Functions (5:49)
Programming: Initializing th Low Level Portion of the Device Driver (12:49)
Programming: Starting and Stopping the Low Level Portion of the Device Driver (1:39)
Programming: Implementing the Endpoint Management Low Level Functions (4:13)
Programming: Implementing the Data Transfer Functions (5:02)
The USB Video Class(UVC) Module
Programming: Integrating the USB Video Class Module Files (2:06)
Programming: Understanding the UVC Geometry and Packet Parameters (6:02)
Programming: Understanding the UVC Bitrate and Color Related Parameters (3:09)
Programming: Understanding UVC Interface and Endpoint Size Parameters (4:01)
Programming: Analyzing the rest of the UVC Macros (6:40)
Programming: Analyzing the ENUMs and Structures used by the USB Video Class (4:54)
Programming: Analyzing the USBD Video Configuration Descriptor (7:00)
Programming: Initializing the USB Video Interface (4:59)
Programming: Understanding the USB Video Setup Function (6:03)
Programming: Understanding the Video DataIn Function (2:56)
Programming: Understanding the rest of the UVC Functions (3:38)
The USB Device Video Interface
Programming: Creating the Files for the USB Device Video Interface Module (2:05)
Programming: Implementing the Header File for the USB Device Video Interface (9:56)
Programming: Constructing the USB Device Video Callback Table (4:03)
Programming: Implementing the USB Device Video Callback Functions Pt2 (5:22)
Programming: Enabling the JPEG and MDMA Modules (6:12)
Programming: Configuring the Input MDMA Channel for the JPEG Module (4:07)
Programming: Configuring the Output MDMA Channel for the JPEG Module (4:53)
Programming: Implementing the Interrupt Request Handlers for the Modules (8:45)
The Camera Board Support Package
Programming: Analyzing the Camera Board Support Package Interface File (12:10)
Programming: Analyzing the Camera Board Support Package Implementation File (5:08)
The System in Concert
Programming: Including the Header Files (6:37)
Understanding the System Hardware Architecture (3:01)
Programming: Declaring Constants to Hold the Largest Frame Geometry (5:43)
Programming: Implementing the FrameBuffer Strategy (5:30)
Programming: Configuring the Memory Protection Unit (5:20)
Programming: Enabling the Cortex-M7 Cache (1:37)
Programming: Bringing Up the USB Device Stack (4:13)
Programming: Moving the Captured Lines from the Staging Buffer to the SDRAM (6:14)
Programming: Configuring the JPEG Encoder with the Active Image Format (6:39)
Programming: JPEG Encoding and RGBToYCbCr Conversion (10:57)
Programming: Applying the Camera Mode Requested by the UVC to the Image Sensor (4:51)
Programming: Implementing the JPEG Error Callback Function (4:20)
Programming: Implementing the JPEG Data Ready and BSP Camera Callback Functions (3:34)
Programming: Implementing the DCMI DMA Line Transfer Complete Handler (5:27)
Programming: Implementing the DCMI MDMA Frame Transfer Complete Handler (4:21)
Programming: Extending the Normal DCMI DMA Start Path with a Second MDMA Stage (7:07)
Programming: Initializing all System Modules (4:18)
Programming: Processing the CAM_STATE_SETUP Requests (4:08)
Programming: Processing the CAM_STATE_CONFIGURED Requests (4:09)
Programming: Understanding the Job the of the USB Device Configuration File
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock