Skip to main content
steja
Visitor II
August 11, 2020
Question

About stm32 usb uvc data transmission

  • August 11, 2020
  • 2 replies
  • 2929 views

sir,

Hope you doing all are well.......

Presently am working on Stm32f746ZG NUCLEO board. am working on usb uvc communication between MCU and computer.so i need to send image/video data on usb using uvc protocol.

I got some developed code from lepton but it is developed to f4 controllers. i took library files and attached to f7 project. and there is no compilation errors.and camera port also detecting in my system.

I have done CDC_transmit(serial communication) also it is working fine messages are printing on my console.but when i started UVC_transmit function my port is disabling and am getting hard fault handler.

st is developed any libraries for video steaming using UVC class???????

please find the attachment for UVC libraries.

2 replies

Lecordier.Guy
Associate III
August 13, 2020

Hello

Using the ST32429_EVAL1 board with a OV2640 sensor, I am able to send a 480*272 YUV video to VLC on my win10 computer at 5 images per second.

I am not expert in USB, I used work from Gvigelet.

I use USB in HS mode with ULPI;

Call uint8_t USBD_UVC_Transmit(USBD_HandleTypeDef *pdev, uint8_t *pbuff, uint32_t length, uint32_t lTime) every 200ms. pBuff must aligned((4)) .

Hope, it can help

MKing
Associate
January 26, 2024

Hi,

it is a shame that CubeMX does not support a video class (uvc) for USB or a combination of several device classes. After one day of searching examples i found a "software pack" for CubeMX:

alambe94/I-CUBE-USBD-Composite: Create STM32 USB Composite devices with ease. (github.com)

here a small uvc example I created:

mkoenig334455/-USB_Video_STM32F407VGTX: STM32F407VGTX + USB3310 example / enumerate as webcam and show 2 pictures as videostream (github.com) 

 

ST, please support this project and promote it, so we all can save lifetime!

 

MKing_0-1706259844317.png

 

 

I use:

CubeMX 6.10.0

CubeIDE 1.14.0

Processor: STM32F407VGT + PHY USB3310