Need 3 cost effective USB ports
Currently, my custom PCB with STM32F105RCT6TR based on STM32CubeMX software has a single usb DEVICE port connecting to a display head that must play the role of USB Host. Note I'm also using dual CAN plus 5 analog inputs.
Now I need to connect TWO usb thumb drives simultaneously to my custom PCB, but with that head optionally present or absent. So I need to KEEP that single usb DEVICE, while ADDING TWO usb hosts for reading/writing the usb thumb drives, including FAT support.
I thought of adding an external Vinculum that does SPI-to-USB(dual) bridging, but there are complications there that I don't like. Any of you have STM32 + VNC1/VNC2 experience?
I found the STM32F2 family, including STM32F2?7 series [EDIT 07/30/22: example STM32F207VCT7 {256KB Flash, 132KB Ram}, but I need to compare program flash memory size and ram size, as well as availability, to my current STM32F105RCT6TR {256KB Flash, 64KB Ram}. Or even STM32F205RGT6 looks reasonably priced, same LPFQ-64 package, 1MB Flash, 128KB Ram, I can always downsize Flash/Ram after development settles. Availability seems tough on ALL of them. I like to have in stock before designing pcb!]. It looked like I could connect a traditional hub chip outside the MCU. However, I'm now seeing info suggesting that the CubeMX does *not* support hubs. If it DID support hubs, I like this STM32F2+Hub solution. Does CubeMX possibly support a hub chip with two thumb drives plugged in? Is there a reliable, quick to get running, third party add-on that doesn't force me to lose all the other CubeMX stuff I'm using? (And, sorry, I really don't want to hear about dumping CubeMX altogether, unless the new library easily provides all that and more, for some price.)
Finally, I'm starting to see STM32M1 stuff with built-in hub. [EDIT 07/30/22: Yes, I meant STM32MP1. I thought it had a dual-core and single-core version, where single-core was simply STM32 MCU. However, I think I now find that it always has one or two linux/android suitable cores, plus a STM32 MCU core. So this is too much horsepower and complexity for the job.] I don't know yet if that's a "different world". I'm running simple RTOS on the F105, and I'd rather not go up to embedded linux or such. I can't have that slow a boot, and I have dealt with embedded linux many times in the past -- it's a bad choice for this project.
Any other ideas for how to cost and time effectively get where I need to be?
Thanks!!!