diff --git a/software/library/boards/board.build b/software/library/boards/board.build index fa9e0797a8382822cb430a9d54a9544858e2f104..faa3ab5e1331cbbea1ae4e8031f607111a489118 100644 --- a/software/library/boards/board.build +++ b/software/library/boards/board.build @@ -11,6 +11,10 @@ CONFIG_NET_ETHERNET %end + %subsection canbus + CONFIG_DRIVER_STM32_CANBUS + %end + %section bmaaa-pinky %inherit nrf51-xxac diff --git a/software/library/boards/brain.c b/software/library/boards/brain.c index f322aec1711ea6b84658363f70061bb5efa279a5..22206ebf8a196ccb7abd05bcdc6867ccef3e5b8b 100644 --- a/software/library/boards/brain.c +++ b/software/library/boards/brain.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -126,6 +127,27 @@ DEV_DECLARE_STATIC(dwc10100_dev, "eth0", 0, dwc10100_drv, ); #endif +#if defined(CONFIG_DRIVER_STM32_CANBUS) +/* CAN bus controller */ +DEV_DECLARE_STATIC(canbus_dev, "canbus1", 0, stm32_canbus_drv, + DEV_STATIC_RES_MEM(STM32_BXCAN_ADDR, STM32_BXCAN_ADDR + STM32_BXCAN_SIZE), + + DEV_STATIC_RES_FREQ(36000000, 1), + + DEV_STATIC_RES_DEV_ICU("/cpu"), + DEV_STATIC_RES_IRQ(0, STM32_IRQ_CAN1_RX0, DEV_IRQ_SENSE_HIGH_LEVEL, 0, 0x1), + DEV_STATIC_RES_IRQ(1, STM32_IRQ_CAN1_RX1, DEV_IRQ_SENSE_HIGH_LEVEL, 0, 0x1), + DEV_STATIC_RES_IRQ(2, STM32_IRQ_CAN1_TX, DEV_IRQ_SENSE_HIGH_LEVEL, 0, 0x1), + DEV_STATIC_RES_IRQ(3, STM32_IRQ_CAN1_SCE, DEV_IRQ_SENSE_HIGH_LEVEL, 0, 0x1), + + DEV_STATIC_RES_DEV_IOMUX("/gpio"), + DEV_STATIC_RES_IOMUX("rx", 0, STM32_PD0, 0, 0), + DEV_STATIC_RES_IOMUX("tx", 0, STM32_PD1, 0, 0), + + DEV_STATIC_RES_CANBUS_INFO(500000 /* 500kbps */, 2 /* meters */) +); +#endif + #include #include #include