Created
March 15, 2020 22:24
-
-
Save tstellanova/ae5222d816307530c9ab310ab368d643 to your computer and use it in GitHub Desktop.
ArduPilot Durandal hardware description hwdef.dat
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # hw definition file for processing by chibios_hwdef.py | |
| # MCU class and specific type | |
| MCU STM32H7xx STM32H743xx | |
| # crystal frequency | |
| OSCILLATOR_HZ 16000000 | |
| # USB setup | |
| USB_VENDOR 0x3162 # ONLY FOR USE BY Holybro | |
| USB_PRODUCT 0x004B | |
| USB_STRING_MANUFACTURER "Holybro" | |
| USB_STRING_PRODUCT "Durandal" | |
| USB_STRING_SERIAL "%SERIAL%" | |
| # board ID for firmware load | |
| APJ_BOARD_ID 139 | |
| FLASH_SIZE_KB 2048 | |
| # with 2M flash we can afford to optimize for speed | |
| env OPTIMIZE -O2 | |
| # bootloader takes first sector | |
| FLASH_RESERVE_START_KB 128 | |
| # board voltage | |
| STM32_VDD 330U | |
| # order of UARTs (and USB) | |
| UART_ORDER OTG1 USART1 USART2 USART3 UART4 USART6 UART7 OTG2 | |
| # default the 2nd interface to MAVLink2 until MissionPlanner updates drivers | |
| define HAL_OTG2_PROTOCOL SerialProtocol_MAVLink2 | |
| define HAL_STORAGE_SIZE 16384 | |
| define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_CHIBIOS_FMUV5 | |
| define HAL_CHIBIOS_ARCH_FMUV5 1 | |
| define BOARD_TYPE_DEFAULT 24 | |
| # now we define the pins that USB is connected on | |
| PA11 OTG_FS_DM OTG1 | |
| PA12 OTG_FS_DP OTG1 | |
| # these are the pins for SWD debugging with a STlinkv2 or black-magic probe | |
| PA13 JTMS-SWDIO SWD | |
| PA14 JTCK-SWCLK SWD | |
| # SPI1 - internal sensors | |
| PG11 SPI1_SCK SPI1 | |
| PA6 SPI1_MISO SPI1 | |
| PD7 SPI1_MOSI SPI1 | |
| # SPI2 - FRAM | |
| PI1 SPI2_SCK SPI2 | |
| PI2 SPI2_MISO SPI2 | |
| PI3 SPI2_MOSI SPI2 | |
| # SPI4 - sensors2 | |
| PE2 SPI4_SCK SPI4 | |
| PE13 SPI4_MISO SPI4 | |
| PE6 SPI4_MOSI SPI4 | |
| # SPI5 - external1 | |
| PF7 SPI5_SCK SPI5 | |
| PF8 SPI5_MISO SPI5 | |
| PF9 SPI5_MOSI SPI5 | |
| # SPI6 - external2 | |
| PG13 SPI6_SCK SPI6 | |
| PG12 SPI6_MISO SPI6 | |
| PB5 SPI6_MOSI SPI6 | |
| # sensor CS | |
| PF10 MS5611_CS CS | |
| PF2 ICM20689_CS CS SPEED_VERYLOW | |
| PF3 ICM20602_CS CS SPEED_VERYLOW | |
| PF4 BMI055_G_CS CS | |
| PG10 BMI055_A_CS CS | |
| PF5 FRAM_CS CS SPEED_VERYLOW | |
| # external CS pins, SPI5 connector | |
| PI4 EXT1_CS1 CS | |
| PI10 EXT1_CS2 CS | |
| # external CS pins, SPI6 connector | |
| PI6 EXT2_CS1 CS | |
| PI7 EXT2_CS2 CS | |
| PI8 EXT2_CS3 CS | |
| # I2C buses | |
| # I2C1 is on GPS port | |
| PB8 I2C1_SCL I2C1 | |
| PB9 I2C1_SDA I2C1 | |
| # I2C on telem4 connector | |
| PF1 I2C2_SCL I2C2 | |
| PF0 I2C2_SDA I2C2 | |
| # I2C for onboard mag | |
| PH7 I2C3_SCL I2C3 | |
| PH8 I2C3_SDA I2C3 | |
| # I2C4 is on BDMA on DMAMUX2, connected to I2CA connector | |
| PF14 I2C4_SCL I2C4 | |
| PF15 I2C4_SDA I2C4 | |
| # order of I2C buses | |
| I2C_ORDER I2C3 I2C1 I2C2 I2C4 | |
| define HAL_I2C_INTERNAL_MASK 1 | |
| # enable pins | |
| PE3 VDD_3V3_SENSORS_EN OUTPUT LOW | |
| # start peripheral power off, then enable after init | |
| # this prevents a problem with radios that use RTS for | |
| # bootloader hold | |
| PF12 nVDD_5V_HIPOWER_EN OUTPUT HIGH | |
| PG4 nVDD_5V_PERIPH_EN OUTPUT HIGH | |
| PG5 VDD_5V_RC_EN OUTPUT HIGH | |
| PG6 VDD_5V_WIFI_EN OUTPUT HIGH | |
| PG7 VDD_3V3_SD_CARD_EN OUTPUT HIGH | |
| # drdy pins | |
| PE7 DRDY8_NC INPUT | |
| PB4 DRDY1_ICM20689 INPUT | |
| PB14 DRDY2_BMI055_GYRO INPUT | |
| PB15 DRDY3_BMI055_ACC INPUT | |
| PC5 DRDY4_ICM20602 INPUT | |
| PC13 DRDY5_BMI055_GYRO INPUT | |
| PD10 DRDY6_BMI055_ACC INPUT | |
| PD15 DRDY7_EXTERNAL1 INPUT | |
| # UARTs | |
| # USART2 is telem1 | |
| PD6 USART2_RX USART2 | |
| PD5 USART2_TX USART2 | |
| PD3 USART2_CTS USART2 | |
| PD4 USART2_RTS USART2 | |
| # USART1 is GPS1 | |
| PB7 USART1_RX USART1 NODMA | |
| PB6 USART1_TX USART1 NODMA | |
| # USART3 is telem2 | |
| PD9 USART3_RX USART3 | |
| PD8 USART3_TX USART3 | |
| PD11 USART3_CTS USART3 | |
| PD12 USART3_RTS USART3 | |
| # UART4 GPS2 | |
| PD0 UART4_RX UART4 NODMA | |
| PD1 UART4_TX UART4 NODMA | |
| # USART6 is telem3 | |
| PG9 USART6_RX USART6 NODMA | |
| # we leave PG14 as an input to prevent it acting as a pullup | |
| # on the IOMCU SBUS input | |
| # PG14 USART6_TX USART6 | |
| PG15 USART6_CTS USART6 | |
| PG8 USART6_RTS USART6 | |
| # UART7 is debug | |
| PF6 UART7_RX UART7 NODMA | |
| PE8 UART7_TX UART7 NODMA | |
| # UART8 is for IOMCU | |
| PE0 UART8_RX UART8 | |
| PE1 UART8_TX UART8 | |
| # UART for IOMCU | |
| IOMCU_UART UART8 | |
| # PWM AUX channels | |
| PE14 TIM1_CH4 TIM1 PWM(1) GPIO(50) | |
| PA10 TIM1_CH3 TIM1 PWM(2) GPIO(51) | |
| PE11 TIM1_CH2 TIM1 PWM(3) GPIO(52) | |
| PE9 TIM1_CH1 TIM1 PWM(4) GPIO(53) | |
| PD13 TIM4_CH2 TIM4 PWM(5) GPIO(54) | |
| PD14 TIM4_CH3 TIM4 PWM(6) GPIO(55) | |
| # we need to disable DMA on the last 2 FMU channels | |
| # as timer 12 doesn't have a TIMn_UP DMA option | |
| PH6 TIM12_CH1 TIM12 PWM(7) GPIO(56) NODMA | |
| PH9 TIM12_CH2 TIM12 PWM(8) GPIO(57) NODMA | |
| define BOARD_PWM_COUNT_DEFAULT 8 | |
| # PWM output for buzzer | |
| PE5 TIM15_CH1 TIM15 GPIO(77) ALARM | |
| # analog in | |
| PA0 BATT_VOLTAGE_SENS ADC1 SCALE(1) | |
| PA1 BATT_CURRENT_SENS ADC1 SCALE(1) | |
| PA2 BATT2_VOLTAGE_SENS ADC1 SCALE(1) | |
| PA3 BATT2_CURRENT_SENS ADC1 SCALE(1) | |
| PC4 SPARE1_ADC1 ADC1 SCALE(1) | |
| PA4 SPARE2_ADC1 ADC1 SCALE(1) | |
| PB0 RSSI_IN ADC1 SCALE(1) | |
| #PC3 HW_REV_SENS ADC1 SCALE(1) | |
| #PC2 HW_VER_SENS ADC1 SCALE(1) | |
| PC0 VDD_5V_SENS ADC1 SCALE(2) | |
| PC1 SCALED_V3V3 ADC1 SCALE(2) | |
| # CAN bus | |
| PI9 CAN1_RX CAN1 | |
| PH13 CAN1_TX CAN1 | |
| PB12 CAN2_RX CAN2 | |
| PB13 CAN2_TX CAN2 | |
| PH2 GPIO_CAN1_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(70) | |
| PH3 GPIO_CAN2_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(71) | |
| PH4 GPIO_CAN3_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(72) | |
| # GPIOs | |
| PA7 HEATER_EN OUTPUT LOW GPIO(80) | |
| define HAL_HEATER_GPIO_PIN 80 | |
| define HAL_HAVE_IMU_HEATER 1 | |
| define HAL_IMU_TEMP_DEFAULT 45 | |
| # SPI temperature sensor | |
| PH5 TSENSE_CS CS | |
| PG1 VDD_BRICK_VALID INPUT PULLUP | |
| PG2 VDD_BRICK2_VALID INPUT PULLUP | |
| PA9 VBUS INPUT | |
| PF13 VDD_5V_HIPOWER_OC INPUT PULLUP | |
| PE15 VDD_5V_PERIPH_OC INPUT PULLUP | |
| PB10 nSPI5_RESET_EXTERNAL1 OUTPUT HIGH | |
| # capture pins | |
| PA5 FMU_CAP1 INPUT GPIO(58) | |
| PB3 FMU_CAP2 INPUT GPIO(59) | |
| PB11 FMU_CAP3 INPUT GPIO(60) | |
| PI0 FMU_SPARE_4 INPUT GPIO(61) | |
| # SPI devices | |
| SPIDEV ms5611 SPI4 DEVID1 MS5611_CS MODE3 20*MHZ 20*MHZ | |
| SPIDEV icm20689 SPI1 DEVID1 ICM20689_CS MODE3 2*MHZ 8*MHZ | |
| SPIDEV icm20602 SPI1 DEVID2 ICM20602_CS MODE3 2*MHZ 8*MHZ | |
| SPIDEV bmi055_g SPI1 DEVID3 BMI055_G_CS MODE3 10*MHZ 10*MHZ | |
| SPIDEV bmi055_a SPI1 DEVID4 BMI055_A_CS MODE3 10*MHZ 10*MHZ | |
| SPIDEV ramtron SPI2 DEVID1 FRAM_CS MODE3 8*MHZ 8*MHZ | |
| # SPI5 external connections | |
| SPIDEV external1m0 SPI5 DEVID1 EXT1_CS1 MODE0 2*MHZ 2*MHZ | |
| SPIDEV external1m1 SPI5 DEVID1 EXT1_CS1 MODE1 2*MHZ 2*MHZ | |
| SPIDEV external1m2 SPI5 DEVID1 EXT1_CS1 MODE2 2*MHZ 2*MHZ | |
| SPIDEV external1m3 SPI5 DEVID1 EXT1_CS1 MODE3 2*MHZ 2*MHZ | |
| SPIDEV external2m0 SPI5 DEVID2 EXT1_CS2 MODE0 2*MHZ 2*MHZ | |
| SPIDEV external2m1 SPI5 DEVID2 EXT1_CS2 MODE1 2*MHZ 2*MHZ | |
| SPIDEV external2m2 SPI5 DEVID2 EXT1_CS2 MODE2 2*MHZ 2*MHZ | |
| SPIDEV external2m3 SPI5 DEVID2 EXT1_CS2 MODE3 2*MHZ 2*MHZ | |
| # SPI6 external connections | |
| SPIDEV external3m0 SPI6 DEVID1 EXT2_CS1 MODE0 2*MHZ 2*MHZ | |
| SPIDEV external3m1 SPI6 DEVID1 EXT2_CS1 MODE1 2*MHZ 2*MHZ | |
| SPIDEV external3m2 SPI6 DEVID1 EXT2_CS1 MODE2 2*MHZ 2*MHZ | |
| SPIDEV external3m3 SPI6 DEVID1 EXT2_CS1 MODE3 2*MHZ 2*MHZ | |
| SPIDEV external4m0 SPI6 DEVID2 EXT2_CS2 MODE0 2*MHZ 2*MHZ | |
| SPIDEV external4m1 SPI6 DEVID2 EXT2_CS2 MODE1 2*MHZ 2*MHZ | |
| SPIDEV external4m2 SPI6 DEVID2 EXT2_CS2 MODE2 2*MHZ 2*MHZ | |
| SPIDEV external4m3 SPI6 DEVID2 EXT2_CS2 MODE3 2*MHZ 2*MHZ | |
| SPIDEV external5m0 SPI6 DEVID2 EXT2_CS3 MODE0 2*MHZ 2*MHZ | |
| SPIDEV external5m1 SPI6 DEVID2 EXT2_CS3 MODE1 2*MHZ 2*MHZ | |
| SPIDEV external5m2 SPI6 DEVID2 EXT2_CS3 MODE2 2*MHZ 2*MHZ | |
| SPIDEV external5m3 SPI6 DEVID2 EXT2_CS3 MODE3 2*MHZ 2*MHZ | |
| # Two IMUs | |
| IMU Invensense SPI:icm20689 ROTATION_NONE | |
| IMU BMI088 SPI:bmi055_a SPI:bmi055_g ROTATION_ROLL_180_YAW_90 | |
| # These are here for compatibility with pre-release boards | |
| IMU BMI055 SPI:bmi055_a SPI:bmi055_g ROTATION_ROLL_180_YAW_90 | |
| define HAL_DEFAULT_INS_FAST_SAMPLE 7 | |
| # microSD support (disabled for now) | |
| PC8 SDMMC1_D0 SDMMC1 | |
| PC9 SDMMC1_D1 SDMMC1 | |
| PC10 SDMMC1_D2 SDMMC1 | |
| PC11 SDMMC1_D3 SDMMC1 | |
| PC12 SDMMC1_CK SDMMC1 | |
| PD2 SDMMC1_CMD SDMMC1 | |
| # red LED marked as B/E | |
| PB1 LED_RED OUTPUT GPIO(90) | |
| # green LED marked as PWR. We leave this solid on, but allow | |
| # for it to be controlled as a relay if needed | |
| PC6 LED_GREEN OUTPUT GPIO(91) LOW | |
| # blue LED marked as ACT | |
| PC7 LED_BLUE OUTPUT GPIO(92) HIGH | |
| # setup for BoardLED2 | |
| define HAL_GPIO_A_LED_PIN 90 | |
| define HAL_GPIO_B_LED_PIN 92 | |
| define HAL_GPIO_LED_ON 0 | |
| # enable RAMTROM parameter storage | |
| define HAL_STORAGE_SIZE 16384 | |
| define HAL_WITH_RAMTRON 1 | |
| # allow to have have a dedicated safety switch pin | |
| define HAL_HAVE_SAFETY_SWITCH 1 | |
| # one baro | |
| BARO MS56XX SPI:ms5611 | |
| define HAL_COMPASS_DEFAULT HAL_COMPASS_NONE | |
| define HAL_COMPASS_AUTO_ROT_DEFAULT 2 | |
| # enable FAT filesystem support (needs a microSD defined via SDMMC) | |
| define HAL_OS_FATFS_IO 1 | |
| define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" | |
| define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" | |
| ROMFS io_firmware.bin Tools/IO_Firmware/iofirmware_lowpolh.bin | |
| # don't share IOMCU DMA | |
| DMA_NOSHARE UART8* SPI1* TIM*UP* | |
| DMA_PRIORITY UART8* ADC* SPI1* | |
| # battery setup | |
| define HAL_BATT_MONITOR_DEFAULT 4 | |
| define HAL_BATT_VOLT_PIN 16 | |
| define HAL_BATT_CURR_PIN 17 | |
| define HAL_BATT2_VOLT_PIN 14 | |
| define HAL_BATT2_CURR_PIN 15 | |
| define HAL_BATT_VOLT_SCALE 18.182 | |
| define HAL_BATT_CURR_SCALE 36.364 | |
| # there is an issue with DMA on SPI which needs to be solved | |
| # before we enable it | |
| #define HAL_SPI_USE_POLLED |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment