From 486674a652b6d9b7de8b51799c258455fa20ebca Mon Sep 17 00:00:00 2001 From: alexklimaj Date: Thu, 10 Nov 2022 12:23:25 -0700 Subject: [PATCH] Add ARK PAB Carrier Add ARK_FMU_V6X to RCS netman Remove arkv6x rc single wire Fix arkv6x mtd arkv6x bootloader init all pins to prevent power cycling peripherals on boot arkv6x don't power cycle sd card on boot arkv6x add UART4 Telem 4 --- ROMFS/px4fmu_common/init.d/rcS | 2 +- boards/ark/fmu-v6x/default.px4board | 2 ++ boards/ark/fmu-v6x/init/rc.board_defaults | 7 +++++++ boards/ark/fmu-v6x/src/board_config.h | 1 - boards/ark/fmu-v6x/src/bootloader_main.c | 10 ++++++++++ boards/ark/fmu-v6x/src/init.c | 3 ++- boards/ark/fmu-v6x/src/mtd.cpp | 1 - 7 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index cc114cc635..a20f7c70b7 100644 --- a/ROMFS/px4fmu_common/init.d/rcS +++ b/ROMFS/px4fmu_common/init.d/rcS @@ -171,7 +171,7 @@ else param select-backup /fs/microsd/parameters_backup.bson fi - if ver hwcmp PX4_FMU_V5X PX4_FMU_V6X + if ver hwcmp PX4_FMU_V5X PX4_FMU_V6X ARK_FMU_V6X then netman update -i eth0 fi diff --git a/boards/ark/fmu-v6x/default.px4board b/boards/ark/fmu-v6x/default.px4board index f57fd7df13..8efe48b07e 100644 --- a/boards/ark/fmu-v6x/default.px4board +++ b/boards/ark/fmu-v6x/default.px4board @@ -6,6 +6,7 @@ CONFIG_BOARD_SERIAL_GPS2="/dev/ttyS7" CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS6" CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS4" CONFIG_BOARD_SERIAL_TEL3="/dev/ttyS1" +CONFIG_BOARD_SERIAL_TEL4="/dev/ttyS3" CONFIG_DRIVERS_ADC_BOARD_ADC=y CONFIG_DRIVERS_BAROMETER_BMP388=y CONFIG_DRIVERS_BAROMETER_MS5611=y @@ -85,6 +86,7 @@ CONFIG_SYSTEMCMDS_PERF=y CONFIG_SYSTEMCMDS_PWM=y CONFIG_SYSTEMCMDS_REBOOT=y CONFIG_SYSTEMCMDS_SD_BENCH=y +CONFIG_SYSTEMCMDS_SD_STRESS=y CONFIG_SYSTEMCMDS_SYSTEM_TIME=y CONFIG_SYSTEMCMDS_TOP=y CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y diff --git a/boards/ark/fmu-v6x/init/rc.board_defaults b/boards/ark/fmu-v6x/init/rc.board_defaults index a7d844a366..870ac1af0a 100644 --- a/boards/ark/fmu-v6x/init/rc.board_defaults +++ b/boards/ark/fmu-v6x/init/rc.board_defaults @@ -16,4 +16,11 @@ param set-default SENS_EN_INA238 0 param set-default SENS_EN_INA228 0 param set-default SENS_EN_INA226 1 +if ver hwtypecmp ARKV6X001000 ARKV6X001001 ARKV6X001002 ARKV6X001003 ARKV6X001004 ARKV6X001005 ARKV6X001006 ARKV6X001007 +then + param set-default SYS_USE_IO 0 +else + param set-default SYS_USE_IO 1 +fi + safety_button start diff --git a/boards/ark/fmu-v6x/src/board_config.h b/boards/ark/fmu-v6x/src/board_config.h index 3db9c72883..8ea22d7af2 100644 --- a/boards/ark/fmu-v6x/src/board_config.h +++ b/boards/ark/fmu-v6x/src/board_config.h @@ -326,7 +326,6 @@ /* RC Serial port */ #define RC_SERIAL_PORT "/dev/ttyS5" -#define RC_SERIAL_SINGLEWIRE /* Input Capture Channels. */ #define INPUT_CAP1_TIMER 1 diff --git a/boards/ark/fmu-v6x/src/bootloader_main.c b/boards/ark/fmu-v6x/src/bootloader_main.c index 915b7f3d29..f05dc1b9f0 100644 --- a/boards/ark/fmu-v6x/src/bootloader_main.c +++ b/boards/ark/fmu-v6x/src/bootloader_main.c @@ -46,6 +46,7 @@ #include #include #include "arm_internal.h" +#include #include extern int sercon_main(int c, char **argv); @@ -54,6 +55,15 @@ __EXPORT void board_on_reset(int status) {} __EXPORT void stm32_boardinitialize(void) { + /* configure pins */ + const uint32_t list[] = PX4_GPIO_INIT_LIST; + + for (size_t gpio = 0; gpio < arraySize(list); gpio++) { + if (list[gpio] != 0) { + px4_arch_configgpio(list[gpio]); + } + } + /* configure USB interfaces */ stm32_usbinitialize(); } diff --git a/boards/ark/fmu-v6x/src/init.c b/boards/ark/fmu-v6x/src/init.c index a96a406496..f7be1bea79 100644 --- a/boards/ark/fmu-v6x/src/init.c +++ b/boards/ark/fmu-v6x/src/init.c @@ -105,6 +105,7 @@ __EXPORT void board_peripheral_reset(int ms) { /* set the peripheral rails off */ + VDD_5V_HIPOWER_EN(false); VDD_5V_PERIPH_EN(false); board_control_spi_sensors_power(false, 0xffff); VDD_3V3_SENSORS4_EN(false); @@ -123,6 +124,7 @@ __EXPORT void board_peripheral_reset(int ms) VDD_3V3_SPEKTRUM_POWER_EN(last); board_control_spi_sensors_power(true, 0xffff); VDD_3V3_SENSORS4_EN(true); + VDD_5V_HIPOWER_EN(true); VDD_5V_PERIPH_EN(true); } @@ -209,7 +211,6 @@ stm32_boardinitialize(void) __EXPORT int board_app_initialize(uintptr_t arg) { /* Power on Interfaces */ - VDD_3V3_SD_CARD_EN(true); VDD_5V_PERIPH_EN(true); VDD_5V_HIPOWER_EN(true); VDD_3V3_SENSORS4_EN(true); diff --git a/boards/ark/fmu-v6x/src/mtd.cpp b/boards/ark/fmu-v6x/src/mtd.cpp index 0d32267f31..e0b3c47f81 100644 --- a/boards/ark/fmu-v6x/src/mtd.cpp +++ b/boards/ark/fmu-v6x/src/mtd.cpp @@ -43,7 +43,6 @@ static const px4_mft_device_t i2c3 = { // 24LC64T on Base 8K 32 X 2 .devid = PX4_MK_I2C_DEVID(3, 0x51) }; - static const px4_mtd_entry_t fmum_fram = { .device = &spi5, .npart = 2,