Those values ultimately get passed into a function calc_can_bit_timing where a loop figures out the closest figures to put into the 3 relevant registers ( baud_rate_prescaler, time_segment_1 (TSEG1) & time_segment_2 (TSEG2))
Yes, the source code also had a note referring to section 30.4.3, RA4M1 Group User Manual, which I had better go and read
And I just found the thread you created showing where to access the source code for all types of registers in the underlying mcu.
I've got a feeling the CAN module will need to be in Reset mode for any change in bus timing to work. A shame the Arduino folks only support 4 bus speeds out of the box.
I've modified the enum for the bit rates and can get it down to 40kbps. Anything lower means the bounds on TSEG1 and TSEG2 are exceeded* so the function to start the CAN module fails.
Is it possible this mcu cannot support lower bus speeds ?
* From section 30.4
TSEG1 = 4 Tq to 16 Tq
TSEG2 = 2 Tq to 8 Tq