diff --git a/libuavcan_drivers/stm32/driver/src/uc_stm32_can.cpp b/libuavcan_drivers/stm32/driver/src/uc_stm32_can.cpp index ccd13ef802..f88600adc5 100644 --- a/libuavcan_drivers/stm32/driver/src/uc_stm32_can.cpp +++ b/libuavcan_drivers/stm32/driver/src/uc_stm32_can.cpp @@ -298,6 +298,12 @@ int CanIface::computeTimings(const uavcan::uint32_t target_bitrate, Timings& out /* * Final validation + * Helpful Python: + * def sample_point_from_btr(x): + * assert 0b0011110010000000111111000000000 & x == 0 + * ts2,ts1,brp = (BTR>>20)&7, (BTR>>16)&15, BTR&511 + * return (1+ts1+1)/(1+ts1+1+ts2+1) + * */ if ((target_bitrate != (pclk / (prescaler * (1 + solution.bs1 + solution.bs2)))) || !solution.isValid()) {