2019-12-24 08:46 PM
We are using the STM32F446 at 180 MHz and one of my engineers says he can't quite get the CAN peripheral to run at 500K (reliably?) with the available clocking system.
Anybody know any tricks to make this work ?
This is partly what he said.....
"I don't think running the AHB bus @180 MHz will work for 500K baud CAN communications. It kinda sorta works but the prescalers and time quanta settings I have to work with won't let me get quite close enough to 500K baud for it to be reliable. Too many errors. It's still preliminary right now, but it doesn't look good. If I set the N parameter in the PLL to 200 (rather than 180) I can get AHB / AHP1 / AHP2 buss frequencies of 200 / 100 / 50, which violates the requirements in section 6.3.3 but I can get the CAN frequency right on 500K baud. This appears to work but technically I'm overclocking the part."
2020-01-08 01:34 PM
Looks like there are 3 (three) combinations of numbers that will work at 500K baud reliably with the processor running at 180 MHz.
Remember that the CAN bus peripheral runs at 45 MHz and not 90 MHz
Check Turboscrew's initialization above as well.
I will get the other numbers here that should work as soon as I talk to Jim, the guy working on this.