I use the stm32g0b1 microcontroller to USB Host. I use the HAL library from STMicroelectronics. Class for FS IP: Communication Host Class (Virtual Port Com). And it works great with other microcontrollers that use Class for FS IP: Communication Device Class (Virtual Port Com). Both from ST and from other companies. But if I connect a device from FTDI (for example FT230X or FT232) or from WCH (for example CH340/343) to the host, nothing works. Everything freezes on Appli_state == APPLICATION_START.
As far as I understand, many people have encountered this, but I have not found any solution to this on the Internet. Is it possible to somehow change the standard library for USB Host from ST so that it would be possible to connect such devices?
More detailed description:
I use a debug board with a stm32g0b1 microcontroller. The USB connector is connected to the PA11(DM), PA12(DP) pins (there is also power and ground on this USB connector). Then, via STM32CubeMX, I configured the UBS Host mode with support for all available classes.
Then if I connect another microcontroller to this connector, but already with the USB Device mode. I see that the Appli_state variable = APPLICATION_READY. This means that I can exchange data. And everything works.
But when I connect a USB Device, which is implemented on the FT230X(FT323) or CH340/341 chip, Appli_state hangs on the APPLICATION_START state and I cannot exchange data. I realized that FTDI and CH3xx chips are not quite compatible with CDC, so a special driver is needed. Maybe someone has encountered something similar and knows how to change the standard driver to work with devices on the FTDI and CH3xx chip? I found on Chinese forums that someone managed to make USB Host work with CH3xx. I tried to do the same, but all was unsuccessful...