Skip to main content
Visitor II
October 28, 2022
Question

8x Virtual COM ports on USB with parallel communication on STM32H735

  • October 28, 2022
  • 2 replies
  • 1455 views

I am planning to use STM32H735 controller in my product.

I've a requirement to have 8x virtual COM ports over USB and having a parallel communication without interfering with each other.

I would like to know if it is possible and will it create an issue in handling interrupts for each virtual COM ports.

    This topic has been closed for replies.

    2 replies

    Super User
    October 28, 2022

    Each CDC (Virtual COM) port requires 2 IN endpoints and 1 OUT endpoint. So that is 16 IN and 8 OUT endpoints, plus the default EP0 IN/OUT pair for basic USB functionality. How many endpoints does the H735 have?

    Graduate II
    October 28, 2022

    >>How many endpoints does the H735 have?

    Not enough..

    Don't FTDI and SiLabs make Quad UART devices off-the-shelf?

    Sort of thing you're describing should have the MCU in some more effective role, and perhaps the board starts with a HUB.

    Perhaps there's some network serial muxing method?

    Or you create a host side driver?

    PShah.5Author
    Visitor II
    October 30, 2022

    It is possible to have 8 Virtual COM ports, confirmation from ST.

    My question is, will I get different interrupt for each virtual COM port on STM32H735 ? or will there be only a single interrupt? if it is a single interrupt, how do I differentiate it?

    Super User
    October 31, 2022

    Can you provide ST's reasoning for claiming it supports 8 VCOMs? Section 62.2.3 of RM0468 rev 3 (STM32H723/33/25/35/30 Ref Man) says it supports 8 bidirectional endpoints plus EP0. Based on my experience (as per my first post) that is at best enough for 4 VCOM ports. I am curious how they manage that - perhaps there is a way to do away with the "management" IN endpoint that I haven't found.

    So @Community member​ 's suggestion of a FTDI/SL 4-port USB-to-serial (connected to 4 STM32 UARTS) plus the built-in USB gets you 8, but then you need a USB HUB on your board, or expose 2 USB connectors on your board to an external HUB.