Is this FTDI stuff still of interest to hardware people, now that every jellybean microcontroller has USB and UARTs built in? I see that an FTDI usb-to-serial cable is still around $20 but a Raspberry Pi Pico is $4 and and this board ( https://www.seeedstudio.com/CH551G-Development-board-p-4764.... ) (also available from Digikey if you don't want to order from China) is $1.49. Can I do the same things with those, easily enough?
FTDI-style chips are still extremely relevant to hardware development, because they're plug-and-play. They just go. No buggy software to work around or kLOC to write yourself. The time and effort saved there is real and valuable.
That's for one-offs and debugging connections, though. If you're shipping a product, then suddenly the economics change and the software-heavy solutions start to look good again.
Thanks, what I'm wondering is whether you can program one of those boards as a USB converter one time and be done with it. It really shouldn't take KLOC, I hope, and it even seems likely that such code is already out there. The idea then is that you can use a board with that code instead of an FTDI cable from then on.
Unfortunately USB stacks are pretty heavyweight. On a Cortex-M3 class part they end up around 6kB compiled. You have three basic options for getting them going:
1. Trust your vendor's libraries/ROM drivers/example code. This is the fastest to bring up, the least flexible, the buggiest (it's vendor code!) and the hardest to debug. (Trust me on the debugging part.)
2. Use a library like tinyUSB. This can actually go pretty quickly, since you've got full source control. If your part is popular enough that someone else has already done most of the work, this is by far the best choice. Even if you have to get personal with the hardware, I still like this option. (tinyUSB is much better than what came before... I wish it'd been around last time I had to do this.)
3. Write your own. Don't do this. (You might have to do parts of this if you tried #1 and it isn't panning out.)
All of these are doable. Any of them are enough work that if you're only making one, just put the FTDI down and call it done.
FT232RL is unbrickable, microcontrollers can be and its USB might not work without the firmware blob in the Flash ROM, that’s why engineers put a CH340G on — I mean an FT232RL on a board.
Lots of ARM chips come with USB DFU mode firmware baked in ROM, those don’t need one.