diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn-bl.inc b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn-bl.inc new file mode 100644 index 0000000000..17a8e2473d --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn-bl.inc @@ -0,0 +1,66 @@ +FLASH_RESERVE_START_KB 0 +FLASH_BOOTLOADER_LOAD_KB 60 + +# reserve some space for params +APP_START_OFFSET_KB 4 + +# board ID for firmware load +APJ_BOARD_ID 1064 + +# setup build for a peripheral firmware +env AP_PERIPH 1 + +# crystal frequency set to 0 to use internal clock; currently configured for external crystal 12MHZ +OSCILLATOR_HZ 12000000 + +# assume 1024K flash part +FLASH_SIZE_KB 1024 + +STDOUT_SERIAL SD2 +STDOUT_BAUDRATE 57600 + +# order of UARTs +SERIAL_ORDER OTG1 USART2 + +# a fault LED +PA15 LED_BOOTLOADER OUTPUT HIGH # blue +define HAL_LED_ON 0 + +# USART1 +PA2 USART2_TX USART2 SPEED_HIGH NODMA +PA3 USART2_RX USART2 SPEED_HIGH NODMA + +# USB +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +define HAL_USE_SERIAL TRUE + +define STM32_SERIAL_USE_USART2 TRUE + +define HAL_NO_GPIO_IRQ + +define SERIAL_BUFFERS_SIZE 32 +define HAL_USE_EMPTY_IO TRUE +define PORT_INT_REQUIRED_STACK 64 + +define DMA_RESERVE_SIZE 0 + +MAIN_STACK 0x800 +PROCESS_STACK 0x800 + +define HAL_DISABLE_LOOP_DELAY + +# enable CAN support +PB8 CAN1_RX CAN1 +PB9 CAN1_TX CAN1 + +# debugger support +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# make bl baudrate match debug baudrate for easier debugging +define BOOTLOADER_BAUDRATE 57600 + +# use a small bootloader timeout +define HAL_BOOTLOADER_TIMEOUT 1000 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn.inc b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn.inc new file mode 100644 index 0000000000..c751c88a14 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn.inc @@ -0,0 +1,113 @@ + +# bootloader starts firmware at 60+ 4k +FLASH_RESERVE_START_KB 64 + +#MCU F405 store parameters in pages 2 and 3 +STORAGE_FLASH_PAGE 2 +define HAL_STORAGE_SIZE 15360 + +# board ID for firmware load +APJ_BOARD_ID 1064 + +# setup build for a peripheral firmware +env AP_PERIPH 1 + +# crystal frequency set to 0 to use internal clock; currently configured for external crystal 12MHZ +OSCILLATOR_HZ 12000000 + +#MCU F405 Flash 1024 +FLASH_SIZE_KB 1024 + +# order of UARTs +SERIAL_ORDER OTG1 USART2 USART3 UART4 + +define HAL_CAN_POOL_SIZE 6000 + +# PWM outputs +PA9 TIM1_CH2 TIM1 PWM(1) GPIO(50) +PA8 TIM1_CH1 TIM1 PWM(2) GPIO(51) + +# USART2, ESC telem +PA2 USART2_TX USART2 SPEED_HIGH NODMA +PA3 USART2_RX USART2 SPEED_HIGH NODMA + +# USART3 +PC10 USART3_TX USART3 SPEED_HIGH NODMA +PC11 USART3_RX USART3 SPEED_HIGH NODMA + +# UART4 +PA0 UART4_TX UART4 SPEED_HIGH NODMA +PA1 UART4_RX UART4 SPEED_HIGH NODMA + +# USB +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +# LED, active low +PA15 LED OUTPUT HIGH GPIO(1) + +# spi2 +PB10 SPI2_SCK SPI2 +PB14 SPI2_MISO SPI2 +PB15 SPI2_MOSI SPI2 + +# CS pins +PC8 BMI088_A_CS CS +PC9 BMI088_G_CS CS + +SPIDEV bmi088_g SPI2 DEVID1 BMI088_G_CS MODE3 10*MHZ 10*MHZ +SPIDEV bmi088_a SPI2 DEVID2 BMI088_A_CS MODE3 10*MHZ 10*MHZ + +# one I2C bus +PB6 I2C1_SCL I2C1 +PB7 I2C1_SDA I2C1 + +I2C_ORDER I2C1 + +# allow for reboot command for faster development +define HAL_PERIPH_LISTEN_FOR_SERIAL_UART_REBOOT_CMD_PORT 0 + +# debugger support +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +define HAL_NO_GPIO_IRQ +define SERIAL_BUFFERS_SIZE 512 + +define DMA_RESERVE_SIZE 2048 + +# stack for fast interrupts +define PORT_INT_REQUIRED_STACK 64 + +# MAIN_STACK is stack for ISR handlers +MAIN_STACK 0x300 + +# PROCESS_STACK controls stack for main thread +PROCESS_STACK 0xA00 + +define HAL_DISABLE_LOOP_DELAY + +# enable CAN support +PB8 CAN1_RX CAN1 +PB9 CAN1_TX CAN1 + +# ADC inputs +define HAL_USE_ADC TRUE +define STM32_ADC_USE_ADC1 TRUE + +PA5 VSENSE1 ADC1 SCALE(1) +PA6 VSENSE2 ADC1 SCALE(1) +PB0 VSENSE3 ADC1 SCALE(1) +PB1 VSENSE4 ADC1 SCALE(1) + +define AP_STATS_ENABLED 1 + +define HAL_NO_GCS +define HAL_NO_MONITOR_THREAD + +define AP_PARAM_MAX_EMBEDDED_PARAM 512 + +# enable ESC control +define HAL_PERIPH_ENABLE_RC_OUT +define HAL_SUPPORT_RCOUT_SERIAL 1 +define HAL_PERIPH_ARM_MONITORING_ENABLE 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef-bl.dat index e048f428f4..4a8d8fc44b 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef-bl.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef-bl.dat @@ -3,72 +3,6 @@ # MCU class and specific type MCU STM32F4xx STM32F405xx -FLASH_RESERVE_START_KB 0 -FLASH_BOOTLOADER_LOAD_KB 60 - -# reserve some space for params -APP_START_OFFSET_KB 4 - -# board ID for firmware load -APJ_BOARD_ID 1064 - -# setup build for a peripheral firmware -env AP_PERIPH 1 - -# crystal frequency set to 0 to use internal clock; currently configured for external crystal 12MHZ -OSCILLATOR_HZ 12000000 - -# assume 1024K flash part -FLASH_SIZE_KB 1024 - -STDOUT_SERIAL SD2 -STDOUT_BAUDRATE 57600 - -# order of UARTs -SERIAL_ORDER OTG1 USART2 - -# a fault LED -PA15 LED_BOOTLOADER OUTPUT HIGH # blue -define HAL_LED_ON 0 - -# USART1 -PA2 USART2_TX USART2 SPEED_HIGH NODMA -PA3 USART2_RX USART2 SPEED_HIGH NODMA - -# USB -PA11 OTG_FS_DM OTG1 -PA12 OTG_FS_DP OTG1 - -define HAL_USE_SERIAL TRUE - -define STM32_SERIAL_USE_USART2 TRUE - -define HAL_NO_GPIO_IRQ - -define SERIAL_BUFFERS_SIZE 32 -define HAL_USE_EMPTY_IO TRUE -define PORT_INT_REQUIRED_STACK 64 - -define DMA_RESERVE_SIZE 0 - -MAIN_STACK 0x800 -PROCESS_STACK 0x800 - -define HAL_DISABLE_LOOP_DELAY - -# enable CAN support -PB8 CAN1_RX CAN1 -PB9 CAN1_TX CAN1 - -# debugger support -PA13 JTMS-SWDIO SWD -PA14 JTCK-SWCLK SWD - -# make bl baudrate match debug baudrate for easier debugging -define BOOTLOADER_BAUDRATE 57600 - -# use a small bootloader timeout -define HAL_BOOTLOADER_TIMEOUT 1000 - +include ../CarbonixCommon/cpn-bl.inc define CAN_APP_NODE_NAME "org.ardupilot.CarbonixF405" diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef.dat index f46e5137da..9205cdcf58 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixF405/hwdef.dat @@ -3,121 +3,4 @@ # MCU class and specific type MCU STM32F4xx STM32F405xx -# bootloader starts firmware at 60+ 4k -FLASH_RESERVE_START_KB 64 - -#MCU F405 store parameters in pages 2 and 3 -STORAGE_FLASH_PAGE 2 -define HAL_STORAGE_SIZE 15360 - -# board ID for firmware load -APJ_BOARD_ID 1064 - -# setup build for a peripheral firmware -env AP_PERIPH 1 - -# crystal frequency set to 0 to use internal clock; currently configured for external crystal 12MHZ -OSCILLATOR_HZ 12000000 - -#MCU F405 Flash 1024 -FLASH_SIZE_KB 1024 - -# order of UARTs -SERIAL_ORDER OTG1 USART2 USART3 UART4 - -define HAL_CAN_POOL_SIZE 6000 - -#STDOUT_SERIAL SD1 -#STDOUT_BAUDRATE 57600 - - -# PWM outputs -PA9 TIM1_CH2 TIM1 PWM(1) GPIO(50) -PA8 TIM1_CH1 TIM1 PWM(2) GPIO(51) - -# USART2, ESC telem -PA2 USART2_TX USART2 SPEED_HIGH NODMA -PA3 USART2_RX USART2 SPEED_HIGH NODMA - -# USART3 -PC10 USART3_TX USART3 SPEED_HIGH NODMA -PC11 USART3_RX USART3 SPEED_HIGH NODMA - -# UART4 -PA0 UART4_TX UART4 SPEED_HIGH NODMA -PA1 UART4_RX UART4 SPEED_HIGH NODMA - -# USB -PA11 OTG_FS_DM OTG1 -PA12 OTG_FS_DP OTG1 - -# LED, active low -PA15 LED OUTPUT HIGH GPIO(1) - -# spi2 -PB10 SPI2_SCK SPI2 -PB14 SPI2_MISO SPI2 -PB15 SPI2_MOSI SPI2 - -# CS pins -PC8 BMI088_A_CS CS -PC9 BMI088_G_CS CS - -SPIDEV bmi088_g SPI2 DEVID1 BMI088_G_CS MODE3 10*MHZ 10*MHZ -SPIDEV bmi088_a SPI2 DEVID2 BMI088_A_CS MODE3 10*MHZ 10*MHZ - -# one I2C bus -PB6 I2C1_SCL I2C1 -PB7 I2C1_SDA I2C1 - -I2C_ORDER I2C1 - -# allow for reboot command for faster development -define HAL_PERIPH_LISTEN_FOR_SERIAL_UART_REBOOT_CMD_PORT 0 - -# debugger support -PA13 JTMS-SWDIO SWD -PA14 JTCK-SWCLK SWD - -define HAL_NO_GPIO_IRQ -define SERIAL_BUFFERS_SIZE 512 - -define DMA_RESERVE_SIZE 2048 - -# stack for fast interrupts -define PORT_INT_REQUIRED_STACK 64 - -# MAIN_STACK is stack for ISR handlers -MAIN_STACK 0x300 - -# PROCESS_STACK controls stack for main thread -PROCESS_STACK 0xA00 - -define HAL_DISABLE_LOOP_DELAY - -# enable CAN support -PB8 CAN1_RX CAN1 -PB9 CAN1_TX CAN1 - -# ADC inputs -define HAL_USE_ADC TRUE -define STM32_ADC_USE_ADC1 TRUE - -PA5 VSENSE1 ADC1 SCALE(1) -PA6 VSENSE2 ADC1 SCALE(1) -PB0 VSENSE3 ADC1 SCALE(1) -PB1 VSENSE4 ADC1 SCALE(1) - -define AP_STATS_ENABLED 1 - -define HAL_NO_GCS -define HAL_NO_MONITOR_THREAD - -define AP_PARAM_MAX_EMBEDDED_PARAM 512 - -define HAL_PERIPH_ENABLE_RC_OUT - -# enable ESC control -define HAL_SUPPORT_RCOUT_SERIAL 1 - -define HAL_PERIPH_ARM_MONITORING_ENABLE 1 \ No newline at end of file +include ../CarbonixCommon/cpn.inc diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef-bl.dat index a7b8e7937a..01871d3d40 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef-bl.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef-bl.dat @@ -3,72 +3,25 @@ # MCU class and specific type MCU STM32L496 STM32L496xx -FLASH_RESERVE_START_KB 0 -FLASH_BOOTLOADER_LOAD_KB 36 +include ../CarbonixCommon/cpn-bl.inc -# reserve some space for params -APP_START_OFFSET_KB 4 +undef FLASH_BOOTLOADER_LOAD_KB +FLASH_BOOTLOADER_LOAD_KB 36 # board ID for firmware load +undef APJ_BOARD_ID APJ_BOARD_ID 1053 -# setup build for a peripheral firmware -env AP_PERIPH 1 - -# crystal frequency -OSCILLATOR_HZ 12000000 - # assume 256k flash part +undef FLASH_SIZE_KB FLASH_SIZE_KB 256 -STDOUT_SERIAL SD2 -STDOUT_BAUDRATE 57600 - -# order of UARTs -SERIAL_ORDER OTG1 USART2 +# disable debugger support (disabled as conflicts with LED) +undef PA13 +undef PA14 # a fault LED +undef PA15 PA13 LED_BOOTLOADER OUTPUT HIGH # blue -define HAL_LED_ON 0 - -# USART1 -PA2 USART2_TX USART2 SPEED_HIGH NODMA -PA3 USART2_RX USART2 SPEED_HIGH NODMA - -# USB -PA11 OTG_FS_DM OTG1 -PA12 OTG_FS_DP OTG1 - -define HAL_USE_SERIAL TRUE - -define STM32_SERIAL_USE_USART2 TRUE - -define HAL_NO_GPIO_IRQ - -define SERIAL_BUFFERS_SIZE 32 -define HAL_USE_EMPTY_IO TRUE -define PORT_INT_REQUIRED_STACK 64 - -define DMA_RESERVE_SIZE 0 - -MAIN_STACK 0x800 -PROCESS_STACK 0x800 - -define HAL_DISABLE_LOOP_DELAY - -# enable CAN support -PB8 CAN1_RX CAN1 -PB9 CAN1_TX CAN1 - -# debugger support, disabled as PA13 used for LED -# PA13 JTMS-SWDIO SWD -# PA14 JTCK-SWCLK SWD - -# make bl baudrate match debug baudrate for easier debugging -define BOOTLOADER_BAUDRATE 57600 - -# use a small bootloader timeout -define HAL_BOOTLOADER_TIMEOUT 1000 - define CAN_APP_NODE_NAME "org.ardupilot.CarbonixL496" diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef.dat index 58795571f5..1ddf6eb9c8 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixL496/hwdef.dat @@ -3,136 +3,67 @@ # MCU class and specific type MCU STM32L496 STM32L496xx +include ../CarbonixCommon/cpn.inc + # bootloader starts firmware at 36k + 4k (STORAGE_FLASH) +undef FLASH_RESERVE_START_KB FLASH_RESERVE_START_KB 40 # store parameters in pages 18 and 19 +undef STORAGE_FLASH_PAGE STORAGE_FLASH_PAGE 18 +undef HAL_STORAGE_SIZE define HAL_STORAGE_SIZE 800 # board ID for firmware load +undef APJ_BOARD_ID APJ_BOARD_ID 1053 -# setup build for a peripheral firmware -env AP_PERIPH 1 - -# enable watchdog - -# crystal frequency -OSCILLATOR_HZ 12000000 - # assume the 256k flash part +undef FLASH_SIZE_KB FLASH_SIZE_KB 256 -# order of UARTs -SERIAL_ORDER OTG1 USART2 USART3 UART4 - -define HAL_CAN_POOL_SIZE 6000 - -#STDOUT_SERIAL SD1 -#STDOUT_BAUDRATE 57600 - - -# PWM outputs -PA9 TIM1_CH2 TIM1 PWM(1) GPIO(50) -PA8 TIM1_CH1 TIM1 PWM(2) GPIO(51) PC6 TIM3_CH1 TIM3 PWM(3) GPIO(52) # LED -# USART2, ESC telem -PA2 USART2_TX USART2 SPEED_HIGH NODMA -PA3 USART2_RX USART2 SPEED_HIGH NODMA - # USART3 +undef PC10 +undef PC11 PC4 USART3_TX USART3 SPEED_HIGH NODMA PC5 USART3_RX USART3 SPEED_HIGH NODMA -# UART4 -PA0 UART4_TX UART4 SPEED_HIGH NODMA -PA1 UART4_RX UART4 SPEED_HIGH NODMA - -# USB -PA11 OTG_FS_DM OTG1 -PA12 OTG_FS_DP OTG1 +# disable debugger support (disabled as conflicts with LED) +undef PA13 +undef PA14 # LED, active low +undef PA15 PA13 LED OUTPUT HIGH GPIO(1) -# spi2 -PB10 SPI2_SCK SPI2 -PB14 SPI2_MISO SPI2 -PB15 SPI2_MOSI SPI2 - -# CS pins -PC8 BMI088_A_CS CS -PC9 BMI088_G_CS CS - -SPIDEV bmi088_g SPI2 DEVID1 BMI088_G_CS MODE3 10*MHZ 10*MHZ -SPIDEV bmi088_a SPI2 DEVID2 BMI088_A_CS MODE3 10*MHZ 10*MHZ - # one I2C bus +undef I2C1 +undef PB6 PB6 I2C4_SCL I2C4 +undef PB7 PB7 I2C4_SDA I2C4 +undef I2C_ORDER I2C_ORDER I2C4 -# allow for reboot command for faster development -define HAL_PERIPH_LISTEN_FOR_SERIAL_UART_REBOOT_CMD_PORT 0 - -# debugger support (disabled as conflicts with LED) -#PA13 JTMS-SWDIO SWD -#PA14 JTCK-SWCLK SWD - -define HAL_NO_GPIO_IRQ -define SERIAL_BUFFERS_SIZE 512 - -define DMA_RESERVE_SIZE 2048 - -# stack for fast interrupts -define PORT_INT_REQUIRED_STACK 64 - -# MAIN_STACK is stack for ISR handlers -MAIN_STACK 0x300 - -# PROCESS_STACK controls stack for main thread -PROCESS_STACK 0xA00 - -define HAL_DISABLE_LOOP_DELAY - -# enable CAN support -PB8 CAN1_RX CAN1 -PB9 CAN1_TX CAN1 - -# ADC inputs -define HAL_USE_ADC TRUE -define STM32_ADC_USE_ADC1 TRUE - +undef PA5 +undef PA6 +undef PB0 PA4 VSENSE1 ADC1 SCALE(1) PA5 VSENSE2 ADC1 SCALE(1) PA6 VSENSE3 ADC1 SCALE(1) -PB1 VSENSE4 ADC1 SCALE(1) - -define AP_STATS_ENABLED 1 - -define HAL_NO_GCS -define HAL_NO_MONITOR_THREAD - -define AP_PARAM_MAX_EMBEDDED_PARAM 512 - -define CAN_APP_NODE_NAME "org.ardupilot.CarbonixL496" define HAL_PERIPH_ENABLE_MAG define HAL_PERIPH_ENABLE_BARO -define HAL_PERIPH_ENABLE_RC_OUT - # enable ESC control -define HAL_SUPPORT_RCOUT_SERIAL 1 define HAL_WITH_ESC_TELEM 1 # enable GPS define HAL_PERIPH_ENABLE_GPS define HAL_PERIPH_GPS_PORT_DEFAULT 2 -#define HAL_PERIPH_ENABLE_NOTIFY -#define HAL_PERIPH_ENABLE_NCP5623_LED_WITHOUT_NOTIFY # default ADSB off by setting 0 baudrate define HAL_PERIPH_ENABLE_ADSB @@ -142,3 +73,7 @@ define HAL_PERIPH_ADSB_BAUD_DEFAULT 57600 BARO MS56XX I2C:0:0x76 define AP_COMPASS_QMC5883P_ENABLED 1 COMPASS QMC5883P I2C:0:0x2C false ROTATION_YAW_180 + +undef HAL_PERIPH_ARM_MONITORING_ENABLE + +define CAN_APP_NODE_NAME "org.ardupilot.CarbonixL496"