cancel
Showing results for 
Search instead for 
Did you mean: 

Advice on getting STM32 CAN bus to PC

jgauthier
Senior

Some time ago I designed a simple CAN to USB device. It accepts CAN network packets, then converts them to a binary packet that is sent to the virtual COM port. It works very well. However, the Virtual COM Port is limited to about 1MB/s even though USB can do much faster.

Unfortunately, I will need to sustain a higher data rate than 1MB/s in the future and I need to find an interface that I can use that might be faster than the virtual COM port but also somewhat easy to implement on both the STM32 and the PC side.

USB seems like the simplest solution, but unfortunately it can't meet the requirements.

Can anyone suggest an alternate interface that I could push 10MB/s with?

2 REPLIES 2

USB 12Mbps tops out at about 700-800 KBps on MSC devices

You should be using devices supporting USB-HS at 480 Mbps (F723 ?, Anchor Chips from 20+ years ago)

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

I am using an STM32G0B1, which does apparently only support FS. However, I was under the impression that even using HS that CDC is still limited to 1MB/s.

I read this here:

https://stackoverflow.com/questions/44275560/what-is-the-maximum-speed-of-the-stm32-usb-cdc#:~:text=Nope.,speed%20is%20about%201MByte%2Fsec%20.

Even if I were able to exceed 1MB/s, I am wondering if I can program a "serial" device to exceed that very far.