UAVCAN: Add STM32H7 FDCAN Driver

Took the existing uavcan_stm32 driver and replaced all bxCAN code with
the equivalent for FDCAN following ST Reference Manual RM0433.

Note: There is still a bug somewhere in regards to FDCAN2 (probably
incorrect setup of the message RAM? Not sure.)  But (FD)CAN1 is fully
functional (Classic CAN only, no CAN-FD).

Also TODO: Configure CAN filters.  Right now there are no filters; all
incoming messages are accepted.
This commit is contained in:
JacobCrabill
2020-06-18 18:55:21 -04:00
committed by Daniel Agar
parent 08d2226043
commit 62799d9aca
18 changed files with 4053 additions and 3 deletions
+2 -2
View File
@@ -10,7 +10,7 @@ px4_add_board(
BUILD_BOOTLOADER
IO px4_io-v2_default
TESTING
UAVCAN_INTERFACES 2 # - No H7 or FD can support in UAVCAN
UAVCAN_INTERFACES 2
SERIAL_PORTS
# IO DEBUG:/dev/ttyS0
TEL1:/dev/ttyS1
@@ -55,7 +55,7 @@ px4_add_board(
telemetry # all available telemetry drivers
test_ppm
tone_alarm
# uavcan - No H7 or FD can support in UAVCAN yet
uavcan
MODULES
airspeed_selector
attitude_estimator_q
@@ -192,6 +192,9 @@
#define STM32_RCC_D3CCIPR_SPI6SRC RCC_D3CCIPR_SPI6SEL_PLL2 /* SPI6 clock source */
#define STM32_RCC_D2CCIP2R_USBSRC RCC_D2CCIP2R_USBSEL_PLL3 /* USB 1 and 2 clock source */
#define STM32_RCC_D3CCIPR_ADCSEL RCC_D3CCIPR_ADCSEL_PLL2 /* ADC 1 2 3 clock source */
#define STM32_RCC_D2CCIP1R_FDCANSEL RCC_D2CCIP1R_FDCANSEL_HSE /* FDCAN 1 2 clock source */
#define STM32_FDCANCLK STM32_HSE_FREQUENCY
/* FLASH wait states */
#define BOARD_FLASH_WAITSTATES 2