[board] add tawaki v1.1 board file (#2574)

factorize code with v1.0
This commit is contained in:
Gautier Hattenberger
2020-09-04 13:48:51 +02:00
committed by GitHub
parent 2c535d7953
commit 002ac9f505
15 changed files with 2591 additions and 837 deletions
+1 -87
View File
@@ -8,92 +8,6 @@
BOARD=tawaki
BOARD_VERSION=1.0
BOARD_DIR=$(BOARD)/chibios/v$(BOARD_VERSION)
BOARD_CFG=\"boards/$(BOARD_DIR)/$(BOARD).h\"
ARCH=chibios
$(TARGET).ARCHDIR = $(ARCH)
RTOS=chibios
MCU=cortex-m7
## FPU on F7
USE_FPU=softfp
USE_FPU_OPT= -mfpu=fpv5-d16
USE_LTO=yes
$(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD -DUSE_HARD_FAULT_RECOVERY
##############################################################################
# Architecture or project specific options
#
# Define project name here (target)
PROJECT = $(TARGET)
# Project specific files and paths (see Makefile.chibios for details)
CHIBIOS_BOARD_PLATFORM = STM32F7xx/platform.mk
CHIBIOS_BOARD_PORT = ARMCMx/STM32F7xx/port.mk
CHIBIOS_BOARD_LINKER = STM32F76xxI.ld
CHIBIOS_BOARD_STARTUP = startup_stm32f7xx.mk
# ITCM flash is a special flash that allow faster operations
# At the moment it is not possible to flash the code in this mode using dfu-util
# but it should work with the BlackMagicProbe or STLINK
# By default, normal flash is used
ifeq ($(USE_ITCM),1)
$(TARGET).CFLAGS += -DUSE_ITCM=1
DFU_ADDR = 0x00200000
else
$(TARGET).CFLAGS += -DUSE_ITCM=0
DFU_ADDR = 0x08000000
endif
##############################################################################
# Compiler settings
#
# default flash mode is via usb dfu bootloader
# possibilities: DFU-UTIL, SWD, STLINK
FLASH_MODE ?= DFU-UTIL
HAS_LUFTBOOT = FALSE
#
# default LED configuration
#
RADIO_CONTROL_LED ?= 4
BARO_LED ?= none
AHRS_ALIGNER_LED ?= 2
GPS_LED ?= 3
SYS_TIME_LED ?= 1
#
# default UART configuration (modem, gps, spektrum)
#
MODEM_PORT ?= UART2
MODEM_BAUD ?= B57600
GPS_PORT ?= UART7
GPS_BAUD ?= B57600
RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT ?= UART6
RADIO_CONTROL_SPEKTRUM_SECONDARY_PORT ?= UART8
# single mode
SBUS_PORT ?= UART8
# dual mode
SBUS1_PORT ?= UART8
SBUS2_PORT ?= UART6
#
# default actuator configuration
#
# you can use different actuators by adding a configure option to your firmware section
# e.g. <configure name="ACTUATORS" value="actuators_ppm/>
# and by setting the correct "driver" attribute in servo section
# e.g. <servo driver="Ppm">
#
ACTUATORS ?= actuators_pwm
include $(PAPARAZZI_HOME)/conf/boards/tawaki_common.makefile
+13
View File
@@ -0,0 +1,13 @@
# Hey Emacs, this is a -*- makefile -*-
#
# tawaki_1.1.makefile
#
# based on STM32F7
# only compatible with ChibiOS
#
BOARD=tawaki
BOARD_VERSION=1.1
include $(PAPARAZZI_HOME)/conf/boards/tawaki_common.makefile
+98
View File
@@ -0,0 +1,98 @@
# Hey Emacs, this is a -*- makefile -*-
#
# tawaki_common.makefile
#
# based on STM32F7
# only compatible with ChibiOS
#
BOARD_DIR=$(BOARD)/chibios/v$(BOARD_VERSION)
BOARD_COMMON=$(BOARD)/chibios/common
BOARD_CFG=\"boards/$(BOARD_COMMON)/$(BOARD).h\"
ARCH=chibios
$(TARGET).ARCHDIR = $(ARCH)
RTOS=chibios
MCU=cortex-m7
## FPU on F7
USE_FPU=softfp
USE_FPU_OPT= -mfpu=fpv5-d16
USE_LTO=yes
$(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD -DUSE_HARD_FAULT_RECOVERY
##############################################################################
# Architecture or project specific options
#
# Define project name here (target)
PROJECT = $(TARGET)
# Project specific files and paths (see Makefile.chibios for details)
CHIBIOS_BOARD_PLATFORM = STM32F7xx/platform.mk
CHIBIOS_BOARD_PORT = ARMCMx/STM32F7xx/port.mk
CHIBIOS_BOARD_LINKER = STM32F76xxI.ld
CHIBIOS_BOARD_STARTUP = startup_stm32f7xx.mk
# ITCM flash is a special flash that allow faster operations
# At the moment it is not possible to flash the code in this mode using dfu-util
# but it should work with the BlackMagicProbe or STLINK
# By default, normal flash is used
ifeq ($(USE_ITCM),1)
$(TARGET).CFLAGS += -DUSE_ITCM=1
DFU_ADDR = 0x00200000
else
$(TARGET).CFLAGS += -DUSE_ITCM=0
DFU_ADDR = 0x08000000
endif
##############################################################################
# Compiler settings
#
# default flash mode is via usb dfu bootloader
# possibilities: DFU-UTIL, SWD, STLINK
FLASH_MODE ?= DFU-UTIL
HAS_LUFTBOOT = FALSE
#
# default LED configuration
#
RADIO_CONTROL_LED ?= 4
BARO_LED ?= none
AHRS_ALIGNER_LED ?= 2
GPS_LED ?= 3
SYS_TIME_LED ?= 1
#
# default UART configuration (modem, gps, spektrum)
#
MODEM_PORT ?= UART2
MODEM_BAUD ?= B57600
GPS_PORT ?= UART7
GPS_BAUD ?= B57600
RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT ?= UART6
RADIO_CONTROL_SPEKTRUM_SECONDARY_PORT ?= UART8
# single mode
SBUS_PORT ?= UART8
# dual mode
SBUS1_PORT ?= UART8
SBUS2_PORT ?= UART6
#
# default actuator configuration
#
# you can use different actuators by adding a configure option to your firmware section
# e.g. <configure name="ACTUATORS" value="actuators_ppm/>
# and by setting the correct "driver" attribute in servo section
# e.g. <servo driver="Ppm">
#
ACTUATORS ?= actuators_pwm
@@ -269,19 +269,19 @@ void boardInit(void) {
*/
void mcu_periph_energy_save(void)
{
palSetLineMode(LINE_D15_LED1, PAL_MODE_INPUT);
palSetLineMode(LINE_A10_LED2, PAL_MODE_INPUT);
palSetLineMode(LINE_C07_LED3, PAL_MODE_INPUT);
palSetLineMode(LINE_D10_LED4, PAL_MODE_INPUT);
palSetLineMode(LINE_E04_SPI4_CS_INTERNAL, PAL_MODE_INPUT);
palSetLineMode(LINE_B12_SPI2_CS_EXTERNAL, PAL_MODE_INPUT);
palSetLineMode(LINE_A00_AUX_A1, PAL_MODE_INPUT);
palSetLineMode(LINE_A01_AUX_A2, PAL_MODE_INPUT);
palSetLineMode(LINE_A02_AUX_A3, PAL_MODE_INPUT);
palSetLineMode(LINE_A06_AUX_A4, PAL_MODE_INPUT);
palSetLineMode(LINE_A03_AUX_B1, PAL_MODE_INPUT);
palSetLineMode(LINE_A07_AUX_B2, PAL_MODE_INPUT);
palSetLineMode(LINE_B00_AUX_B3, PAL_MODE_INPUT);
palSetLineMode(LINE_B01_AUX_B4, PAL_MODE_INPUT);
palSetLineMode(LINE_LED1, PAL_MODE_INPUT);
palSetLineMode(LINE_LED2, PAL_MODE_INPUT);
palSetLineMode(LINE_LED3, PAL_MODE_INPUT);
palSetLineMode(LINE_LED4, PAL_MODE_INPUT);
palSetLineMode(LINE_SPI4_INTERNAL_CS, PAL_MODE_INPUT);
palSetLineMode(LINE_SPI2_EXTERNAL_CS, PAL_MODE_INPUT);
palSetLineMode(LINE_AUX_A1, PAL_MODE_INPUT);
palSetLineMode(LINE_AUX_A2, PAL_MODE_INPUT);
palSetLineMode(LINE_AUX_A3, PAL_MODE_INPUT);
palSetLineMode(LINE_AUX_A4, PAL_MODE_INPUT);
palSetLineMode(LINE_AUX_B1, PAL_MODE_INPUT);
palSetLineMode(LINE_AUX_B2, PAL_MODE_INPUT);
palSetLineMode(LINE_AUX_B3, PAL_MODE_INPUT);
palSetLineMode(LINE_AUX_B4, PAL_MODE_INPUT);
}
@@ -4,6 +4,6 @@
# documentation is here :
# https://github.com/alex31/chibios_enac_various_common/blob/master/TOOLS/DOC/boardGen.pdf
board.h: board.cfg Makefile
board.h: tawaki_1.0.cfg Makefile
boardGen.pl --no-pp-pin --no-pp-line $< $@
File diff suppressed because it is too large Load Diff
@@ -14,7 +14,8 @@
# limitations under the License.
#
# Required include directories
BOARDINC = $(CHIBIOS_BOARD_DIR)
BOARDCOMMON = $(CHIBIOS_BOARD_DIR)/../common
BOARDINC = $(CHIBIOS_BOARD_DIR) $(BOARDCOMMON)
# List of all the board related files.
BOARDSRC = ${BOARDINC}/board.c
BOARDSRC = ${BOARDCOMMON}/board.c
@@ -97,7 +97,7 @@ PB08 SRVB3 PWM AF:TIM4_CH3
PB09 SRVB4 PWM AF:TIM4_CH4
PB10 I2C2_SCL_EXTERNAL I2C AF:I2C2_SCL
PB11 I2C2_SDA_EXTERNAL I2C AF:I2C2_SDA
PB12 SPI2_CS_EXTERNAL OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH
PB12 SPI2_EXTERNAL_CS OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH
PB14 SPI2_EXTERNAL_MISO SPI AF:SPI2_MISO
PB15 SPI2_EXTERNAL_MOSI SPI AF:SPI2_MOSI
@@ -116,10 +116,10 @@ PD00 CAN_RX CAN AF:CAN1_RX
PD01 CAN_TX CAN AF:CAN1_TX
PD02 SDMMC1_CMD SDIO AF:SDMMC1_CMD
PD03 SPI2_EXTERNAL_CLK SPI AF:SPI2_SCK
PD05 UART_TX2 UART AF:USART2_TX
PD06 UART_RX2 UART AF:USART2_RX
PD08 UART_TX3 UART AF:USART3_TX
PD09 UART_RX3 UART AF:USART3_RX
PD05 UART2_TX UART AF:USART2_TX
PD06 UART2_RX UART AF:USART2_RX
PD08 UART3_TX UART AF:USART3_TX
PD09 UART3_RX UART AF:USART3_RX
PD10 LED4 LED
PD12 I2C4_SCL_EXTERNAL I2C AF:I2C4_SCL
PD13 I2C4_SDA_EXTERNAL I2C AF:I2C4_SDA
@@ -127,7 +127,7 @@ PD15 LED1 LED
PE00 RC1 UART AF:UART8_RX
PE02 SPI4_INTERNAL_CLK SPI AF:SPI4_SCK
PE04 SPI4_CS_INTERNAL OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH
PE04 SPI4_INTERNAL_CS OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH
PE05 SPI4_INTERNAL_MISO SPI AF:SPI4_MISO
PE06 SPI4_INTERNAL_MOSI SPI AF:SPI4_MOSI
PE09 SRVA1 PWM AF:TIM1_CH1
@@ -0,0 +1,9 @@
# file board.h is generated from file board.cfg by a script which is hosted here :
# https://github.com/alex31/chibios_enac_various_common/blob/master/TOOLS/boardGen.pl
# documentation is here :
# https://github.com/alex31/chibios_enac_various_common/blob/master/TOOLS/DOC/boardGen.pdf
board.h: tawaki_v1.1.cfg Makefile
boardGen.pl --no-pp-pin --no-pp-line $< $@
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,21 @@
#
# ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Required include directories
BOARDCOMMON = $(CHIBIOS_BOARD_DIR)/../common
BOARDINC = $(CHIBIOS_BOARD_DIR) $(BOARDCOMMON)
# List of all the board related files.
BOARDSRC = ${BOARDCOMMON}/board.c
@@ -0,0 +1,139 @@
MCU_MODEL = STM32F777VIHx
CHIBIOS_VERSION = 3.0
HEADER
/*
* Board identifier.
*/
#define BOARD_TAWAKI
#define BOARD_NAME "Tawaki Autopilot"
/*
* Board oscillators-related settings.
*/
#if !defined(STM32_LSECLK)
#define STM32_LSECLK 32768U
#endif
#define STM32_LSEDRV (3U << 3U)
#if !defined(STM32_HSECLK)
#define STM32_HSECLK 16000000U
#endif
/*
* Board voltages.
* Required for performance limits calculation.
*/
#define STM32_VDD 300U
/*
* MCU type as defined in the ST header.
*/
#define STM32F777xx
CONFIG
# PIN NAME PERIPH_TYPE AF_NUMBER or
# PIN NAME FUNCTION PP_or_OPENDRAIN PIN_SPEED PULL_RESISTOR INITIAL_LEVEL AF_NUMBER
# SPEED : SPEED_VERYLOW, SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH
#
# DEFAULT AND SYS
#
# 'SYS' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
# 'ADC' => ['ANALOG', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_LOW'],
# 'PWM' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_LOW'],
# 'ICU' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
# 'I2C' => ['ALTERNATE', 'OPENDRAIN', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
# 'SPI' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
# 'UART' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
# 'OTG' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
# 'ETH' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
# 'FSMC' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
# 'SDIO' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
# 'SDIOCK' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
# 'CAN' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
# 'DCMI' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
# 'LED' => ['OUTPUT', 'PUSHPULL', 'SPEED_VERYLOW', 'FLOATING', 'LEVEL_LOW'],
# 'PASSIVE' => ['INPUT', 'PUSHPULL', 'SPEED_VERYLOW', 'FLOATING', 'LEVEL_LOW']);
#
# SYSTEM
A13 SWDIO SYS AF:SYS_JTMS-SWDIO
A14 SWCLK SYS AF:SYS_JTCK-SWCLK
C14 OSC32_IN SYS AF0
C15 OSC32_OUT SYS AF0
H00 OSC_IN SYS AF0
H01 OSC_OUT SYS AF0
#DEFAULT
DEFAULT INPUT PUSHPULL SPEED_VERYLOW PULLDOWN LEVEL_LOW AF0
# ACTIVE PINS
PA00 AUX_A1 PASSIVE #AF:USART2_CTS
PA01 AUX_A2 PASSIVE #AF:USART2_RTS
PA02 AUX_A3 PASSIVE #AF:TIM9_CH1
PA03 AUX_A4 PASSIVE #AF:TIM9_CH2
PA06 AUX_B1 PASSIVE #AF:TIM13_CH1
PA07 AUX_B2 PASSIVE #AF:TIM14_CH1
PA09 USB_VBUS INPUT PULLDOWN
PA10 LED2 LED
PA11 OTG_FS_DM OTG AF:USB_OTG_FS_DM
PA12 OTG_FS_DP OTG AF:USB_OTG_FS_DP
PA15 UART7_TX UART AF:UART7_TX
PB00 AUX_B3 PASSIVE
PB01 AUX_B4 PASSIVE
PB03 UART7_RX UART AF:UART7_RX
PB05 DSHOT_RX UART AF:UART5_RX
PB06 SRVB1 PWM AF:TIM4_CH1
PB07 SRVB2 PWM AF:TIM4_CH2
PB08 SRVB3 PWM AF:TIM4_CH3
PB09 SRVB4 PWM AF:TIM4_CH4
PB10 I2C2_SCL_EXTERNAL I2C AF:I2C2_SCL
PB11 I2C2_SDA_EXTERNAL I2C AF:I2C2_SDA
PB12 SPI2_EXTERNAL_CS OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH
PB14 SPI2_EXTERNAL_MISO SPI AF:SPI2_MISO
PB15 SPI2_EXTERNAL_MOSI SPI AF:SPI2_MOSI
PC00 VBAT_MEAS ADC ADC1_IN10
PC06 RC2 PASSIVE #TLMF_TX6 UART AF:USART6_TX
PC07 LED3 LED
PC08 SDMMC1_D0 SDIO AF:SDMMC1_D0
PC09 SDMMC1_D1 SDIO AF:SDMMC1_D1
PC10 SDMMC1_D2 SDIO AF:SDMMC1_D2
PC11 SDMMC1_D3 SDIO AF:SDMMC1_D3
PC12 SDMMC1_CK SDIO AF:SDMMC1_CK
PC13 APSW OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_HIGH
PD00 CAN_RX CAN AF:CAN1_RX
PD01 CAN_TX CAN AF:CAN1_TX
PD02 SDMMC1_CMD SDIO AF:SDMMC1_CMD
PD03 SPI2_EXTERNAL_CLK SPI AF:SPI2_SCK
PD05 UART2_TX UART AF:USART2_TX
PD06 UART2_RX UART AF:USART2_RX
PD08 UART3_TX UART AF:USART3_TX
PD09 UART3_RX UART AF:USART3_RX
PD10 LED4 LED
PD12 I2C4_SCL_EXTERNAL I2C AF:I2C4_SCL
PD13 I2C4_SDA_EXTERNAL I2C AF:I2C4_SDA
PD15 LED1 LED
PE00 RC1 UART AF:UART8_RX
PE02 SPI4_INTERNAL_CLK SPI AF:SPI4_SCK
PE04 SPI4_INTERNAL_CS OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH
PE05 SPI4_INTERNAL_MISO SPI AF:SPI4_MISO
PE06 SPI4_INTERNAL_MOSI SPI AF:SPI4_MOSI
PE09 SRVA1 PWM AF:TIM1_CH1
PE11 SRVA2 PWM AF:TIM1_CH2
PE13 SRVA3 PWM AF:TIM1_CH3
PE14 SRVA4 PWM AF:TIM1_CH4