diff --git a/libraries/AP_HAL_ChibiOS/GPIO.cpp b/libraries/AP_HAL_ChibiOS/GPIO.cpp index 11b1f0d9f7..1805e083e8 100644 --- a/libraries/AP_HAL_ChibiOS/GPIO.cpp +++ b/libraries/AP_HAL_ChibiOS/GPIO.cpp @@ -78,11 +78,6 @@ void GPIO::pinMode(uint8_t pin, uint8_t output) } } -int8_t GPIO::analogPinToDigitalPin(uint8_t pin) -{ - return -1; -} - uint8_t GPIO::read(uint8_t pin) { @@ -149,7 +144,7 @@ bool GPIO::_attach_interrupt(ioline_t line, AP_HAL::Proc p, uint8_t mode) #ifdef GPIOH { GPIOH, EXT_MODE_GPIOH }, #endif -#ifdef GPIOI +#if defined(GPIOI) && defined(GPIOI_BASE) { GPIOI, EXT_MODE_GPIOI }, #endif }; diff --git a/libraries/AP_HAL_ChibiOS/GPIO.h b/libraries/AP_HAL_ChibiOS/GPIO.h index 6fdd3f6f19..b95aee97d8 100644 --- a/libraries/AP_HAL_ChibiOS/GPIO.h +++ b/libraries/AP_HAL_ChibiOS/GPIO.h @@ -31,7 +31,6 @@ public: GPIO(); void init(); void pinMode(uint8_t pin, uint8_t output); - int8_t analogPinToDigitalPin(uint8_t pin); uint8_t read(uint8_t pin); void write(uint8_t pin, uint8_t value); void toggle(uint8_t pin); diff --git a/libraries/AP_HAL_ChibiOS/hwdef/F4BY/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/F4BY/hwdef-bl.dat new file mode 100644 index 0000000000..21d2f5249a --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/F4BY/hwdef-bl.dat @@ -0,0 +1,45 @@ +# hw definition file for processing by chibios_hwdef.py +# for f4by bootloader + +MCU STM32F4xx STM32F407xx + +APJ_BOARD_ID 20 + +OSCILLATOR_HZ 8000000 +STM32_PLLM_VALUE 8 + + +# board voltage +STM32_VDD 330U + +STM32_ST_USE_TIMER 5 + +# flash size +FLASH_SIZE_KB 1024 + +# order of UARTs (and USB) +UART_ORDER OTG1 USART2 + +PE3 LED_BOOTLOADER OUTPUT +PE2 LED_ACTIVITY OUTPUT +define HAL_LED_ON 1 + +PA9 VBUS INPUT + +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +PD5 USART2_TX USART2 +PD6 USART2_RX USART2 + +FLASH_USE_MAX_KB 16 +FLASH_RESERVE_START_KB 0 + +define HAL_USE_EMPTY_STORAGE 1 +define HAL_STORAGE_SIZE 16384 + +# location of application code +define FLASH_BOOTLOADER_LOAD_KB 16 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/f4by-ch/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/F4BY/hwdef.dat similarity index 97% rename from libraries/AP_HAL_ChibiOS/hwdef/f4by-ch/hwdef.dat rename to libraries/AP_HAL_ChibiOS/hwdef/F4BY/hwdef.dat index 06c1cafcac..ea5ecf6cfa 100755 --- a/libraries/AP_HAL_ChibiOS/hwdef/f4by-ch/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/F4BY/hwdef.dat @@ -5,7 +5,7 @@ MCU STM32F4xx STM32F407xx # board ID for firmware load -APJ_BOARD_ID 129 +APJ_BOARD_ID 20 define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_CHIBIOS_F4BY # USB setup @@ -123,6 +123,8 @@ define HAL_BARO_MS5611_I2C_BUS 0 define HAL_COMPASS_DEFAULT HAL_COMPASS_HMC5843 define HAL_COMPASS_HMC5843_I2C_BUS 0 define HAL_COMPASS_HMC5843_ROTATION ROTATION_YAW_270 +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +define HAL_COMPASS_AUTO_ROT_DEFAULT 2 define HAL_EXT_COMPASS_HMC5843_I2C_BUS 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/KakuteF7/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/KakuteF7/hwdef-bl.dat new file mode 100644 index 0000000000..3bbdb78c51 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/KakuteF7/hwdef-bl.dat @@ -0,0 +1,48 @@ +# hw definition file for processing by chibios_pins.py +# for Holybro KakuteF7 bootloader + +# MCU class and specific type +MCU STM32F7xx STM32F745xx + +# board ID for firmware load +APJ_BOARD_ID 123 + +# crystal frequency, setup to use external oscillator +OSCILLATOR_HZ 8000000 + +define STM32_LSECLK 32768U +define STM32_LSEDRV (3U << 3U) + +define STM32_PLLSRC STM32_PLLSRC_HSE +define STM32_PLLM_VALUE 8 +define STM32_PLLN_VALUE 432 +define STM32_PLLP_VALUE 2 +define STM32_PLLQ_VALUE 9 + +FLASH_SIZE_KB 1024 + +# bootloader starts at zero offset +FLASH_RESERVE_START_KB 0 + +# the location where the bootloader will put the firmware +define FLASH_BOOTLOADER_LOAD_KB 96 + +# board voltage +STM32_VDD 330U + +# order of UARTs (and USB) +UART_ORDER OTG1 + +# PA10 IO-debug-console +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +PA2 LED_BOOTLOADER OUTPUT LOW +define HAL_LED_ON 0 + +define HAL_USE_EMPTY_STORAGE 1 +define HAL_STORAGE_SIZE 16384 + diff --git a/libraries/AP_HAL_ChibiOS/hwdef/KakuteF7/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/KakuteF7/hwdef.dat new file mode 100644 index 0000000000..3c1798e087 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/KakuteF7/hwdef.dat @@ -0,0 +1,137 @@ +# hw definition file for processing by chibios_pins.py +# for Holybro KakuteF7 hardware. +@ thanks to betaflight for pin information + +# MCU class and specific type +MCU STM32F7xx STM32F745xx + +# board ID for firmware load +APJ_BOARD_ID 123 + +# crystal frequency, setup to use external oscillator +OSCILLATOR_HZ 8000000 + +define STM32_LSECLK 32768U +define STM32_LSEDRV (3U << 3U) + +define STM32_PLLSRC STM32_PLLSRC_HSE +define STM32_PLLM_VALUE 8 +define STM32_PLLN_VALUE 432 +define STM32_PLLP_VALUE 2 +define STM32_PLLQ_VALUE 9 + +FLASH_SIZE_KB 1024 + +# leave 2 sectors free +FLASH_RESERVE_START_KB 96 + +# board voltage +STM32_VDD 330U + +# only one I2C bus +I2C_ORDER I2C1 + +# order of UARTs (and USB), USART3 should be in second place to map order with the board's silk screen +UART_ORDER OTG1 USART3 USART1 USART2 UART4 + +# PA10 IO-debug-console +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +PA2 LED0 OUTPUT LOW + +# SPI1 for SDCard +PA4 SDCARD_CS CS +PA5 SPI1_SCK SPI1 +PA6 SPI1_MISO SPI1 +PA7 SPI1_MOSI SPI1 + +# SPI2 for MAX7456 OSD +PB12 MAX7456_CS CS +PB13 SPI2_SCK SPI2 +PB14 SPI2_MISO SPI2 +PB15 SPI2_MOSI SPI2 + +# SPI4 for ICM20689 +PE4 ICM20689_CS CS +PE2 SPI4_SCK SPI4 +PE5 SPI4_MISO SPI4 +PE6 SPI4_MOSI SPI4 + +# I2C1 for baro +PB6 I2C1_SCL I2C1 +PB7 I2C1_SDA I2C1 + +PC3 BATT_VOLTAGE_SENS ADC1 SCALE(1) +PC2 BATT_CURRENT_SENS ADC1 SCALE(1) + +# define default battery setup +define HAL_BATT_VOLT_PIN 13 +define HAL_BATT_CURR_PIN 12 +define HAL_BATT_VOLT_SCALE 10.1 +define HAL_BATT_CURR_SCALE 17.0 + +PC5 RSSI_ADC ADC1 + +# USART1 +PA10 USART1_RX USART1 +PA9 USART1_TX USART1 + +# USART2 +PD5 USART2_TX USART2 +PD6 USART2_RX USART2 + +# USART3 (GPS) +PB11 USART3_RX USART3 +PB10 USART3_TX USART3 + +# UART4 (GPS2) +PA0 UART4_TX UART4 +PA1 UART4_RX UART4 + +# UART6, RX only, for RCIN +PC7 TIM8_CH2 TIM8 RCININT FLOAT LOW + +# UART7 USED BY ESC FROM ORIGINAL DESIGN +#PE7 UART7_RX UART7 + +PB0 TIM3_CH3 TIM3 PWM(1) +PB1 TIM3_CH4 TIM3 PWM(2) +PE9 TIM1_CH1 TIM1 PWM(3) +PE11 TIM1_CH2 TIM1 PWM(4) + +DMA_PRIORITY S* + +define HAL_STORAGE_SIZE 16384 +define STORAGE_FLASH_PAGE 1 + +# spi devices +SPIDEV mpu6000 SPI4 DEVID1 ICM20689_CS MODE3 1*MHZ 4*MHZ +SPIDEV sdcard SPI1 DEVID1 SDCARD_CS MODE0 400*KHZ 25*MHZ +SPIDEV osd SPI2 DEVID4 MAX7456_CS MODE0 10*MHZ 10*MHZ + +define HAL_BARO_DEFAULT HAL_BARO_BMP280_I2C +define HAL_BARO_BMP280_BUS 0 +define HAL_BARO_BMP280_I2C_ADDR 0x76 + +# no built-in compass, but probe the i2c bus for all possible +# external compass types +define ALLOW_ARM_NO_COMPASS +define HAL_COMPASS_DEFAULT HAL_COMPASS_NONE +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +define HAL_I2C_INTERNAL_MASK 0 +define HAL_COMPASS_AUTO_ROT_DEFAULT 2 + +# probe for an invensense IMU +define HAL_INS_DEFAULT HAL_INS_MPU60XX_SPI +define HAL_INS_DEFAULT_ROTATION ROTATION_YAW_180 + +define HAL_OS_FATFS_IO 1 +define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" + +# setup for OSD +define OSD_ENABLED ENABLED +ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.bin