From c2fec7be38bcf8fdfb1369f28006c77f7d509d82 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Thu, 13 Aug 2015 01:55:27 +0300 Subject: [PATCH] STM32 driver: CAN timing docs --- libuavcan_drivers/stm32/driver/src/uc_stm32_can.cpp | 6 ++++++ 1 file changed, 6 insertions(+) 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()) {