Bringing up FD-CAN on the STM32G4

To verify that I could make FD-CAN work in the next revision of the moteus controller, I made a simple desk setup between two NUCLEO-G474RE boards.  I started by soldering up some breakout boards for the TCAN334G CAN transceiver I’m planning on using:

dsc_1549

dsc_1553.jpg

And then wired those up with a lot of jumper wires:

dsc_1555

After a fair amount of fiddling, bisecting against the ST CUBE example project, and fixing some problems with my STM32G4 support in rules_mbed, I ended up with some 16 byte CAN frames being sent and received with a data rate of ~4Mbit.

whole_frame
A whole frame
single_bit
A single bit within the data part of the frame

2 thoughts on “Bringing up FD-CAN on the STM32G4

  1. Fun-fact, I recently realized you can clock the normal CAN peripheral on the STM32F4’s faster than 1 Mbaud, even though it’s not in the documentation anywhere I can find. I was able to get it up to 3 Mbaud on the F446. If you’re only going STM32 to STM32, it seems like a good option. I’m also planning on using the G4’s soon so I was looking into using CAN-FD, but tried this on a whim and surprisingly it worked.

    Like

    1. Nice. Yeah, I was likely going to use non-standard >1Mbps for the regular frame also, (which the G4 can do too I suspect), just because the bus length is so short that it doesn’t matter.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s