From d40af98b59bcd3ee3b1733735dbcae339af51222 Mon Sep 17 00:00:00 2001 From: Fabrizio Monti <fabrizio.monti@skywarder.eu> Date: Wed, 2 Apr 2025 09:37:10 +0200 Subject: [PATCH] [BSP][ENGINE] Added new sensors. --- .../interfaces-impl/bsp.cpp | 13 +++--- .../interfaces-impl/hwmapping.h | 44 ++++++++++++++++--- 2 files changed, 46 insertions(+), 11 deletions(-) diff --git a/src/bsps/stm32f767zi_orion_engine/interfaces-impl/bsp.cpp b/src/bsps/stm32f767zi_orion_engine/interfaces-impl/bsp.cpp index d189aa253..74de72857 100644 --- a/src/bsps/stm32f767zi_orion_engine/interfaces-impl/bsp.cpp +++ b/src/bsps/stm32f767zi_orion_engine/interfaces-impl/bsp.cpp @@ -1,5 +1,5 @@ -/* Copyright (c) 2023 Skyward Experimental Rocketry - * Authors: Alberto Nidasio, Davide Mor +/* Copyright (c) 2025 Skyward Experimental Rocketry + * Authors: Alberto Nidasio, Davide Mor, Fabrizio Monti * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -314,9 +314,12 @@ void IRQbspInit() sensors::LIS2MDL::cs::high(); sensors::H3LIS331DL::cs::mode(Mode::OUTPUT); sensors::H3LIS331DL::cs::high(); - sensors::LSM6DSRX::cs::mode(Mode::OUTPUT); - sensors::LSM6DSRX::cs::high(); - // TODO: are there other sensors? + sensors::LSM6DSRX0::cs::mode(Mode::OUTPUT); + sensors::LSM6DSRX0::cs::high(); + sensors::LSM6DSRX1::cs::mode(Mode::OUTPUT); + sensors::LSM6DSRX1::cs::high(); + sensors::thermocouple::cs::mode(Mode::OUTPUT); + sensors::thermocouple::cs::high(); gpios::boardLed::mode(Mode::OUTPUT); gpios::boardLed::low(); diff --git a/src/bsps/stm32f767zi_orion_engine/interfaces-impl/hwmapping.h b/src/bsps/stm32f767zi_orion_engine/interfaces-impl/hwmapping.h index 0a4b7bb93..086228108 100644 --- a/src/bsps/stm32f767zi_orion_engine/interfaces-impl/hwmapping.h +++ b/src/bsps/stm32f767zi_orion_engine/interfaces-impl/hwmapping.h @@ -30,11 +30,6 @@ #define MIOSIX_SENSOR_LIS2MDL_SPI SPI3 #define MIOSIX_SENSOR_ADS131M08_SPI SPI4 -#define MIOSIX_SERVOS_1_TIM TIM3 -#define MIOSIX_SERVOS_1_CHANNEL CHANNEL_1 -#define MIOSIX_SERVOS_2_TIM TIM1 -#define MIOSIX_SERVOS_2_CHANNEL CHANNEL_1 - namespace miosix { @@ -127,11 +122,21 @@ namespace H3LIS331DL using cs = Gpio<GPIOB_BASE, 7>; } -namespace LSM6DSRX +namespace LSM6DSRX0 { using cs = Gpio<GPIOG_BASE, 12>; } +namespace LSM6DSRX1 +{ +using cs = Gpio<GPIOG_BASE, 11>; +} + +namespace thermocouple +{ +using cs = Gpio<GPIOD_BASE, 11>; +} + } // namespace sensors namespace adcs @@ -140,6 +145,33 @@ using vbat = miosix::interfaces::adcs::adc12in14; using servoCur = miosix::interfaces::adcs::adc12in9; } // namespace adcs +namespace servos +{ +#define MIOSIX_SERVOS_0_TIM TIM3 +#define MIOSIX_SERVOS_0_CHANNEL CHANNEL_1 +using servo0 = miosix::interfaces::timers::tim3ch1; + +#define MIOSIX_SERVOS_1_TIM TIM1 +#define MIOSIX_SERVOS_1_CHANNEL CHANNEL_1 +using servo1 = miosix::interfaces::timers::tim1ch1; + +#define MIOSIX_SERVOS_2_TIM TIM8 +#define MIOSIX_SERVOS_2_CHANNEL CHANNEL_2 +using servo2 = miosix::interfaces::timers::tim8ch2; + +#define MIOSIX_SERVOS_3_TIM TIM9 +#define MIOSIX_SERVOS_3_CHANNEL CHANNEL_1 +using servo3 = miosix::interfaces::timers::tim9ch1; + +#define MIOSIX_SERVOS_4_TIM TIM11 +#define MIOSIX_SERVOS_4_CHANNEL CHANNEL_1 +using servo4 = miosix::interfaces::timers::tim11ch1; + +#define MIOSIX_SERVOS_5_TIM TIM4 +#define MIOSIX_SERVOS_5_CHANNEL CHANNEL_1 +using servo5 = miosix::interfaces::timers::tim4ch1; +} // namespace servos + namespace gpios { using boardLed = Gpio<GPIOC_BASE, 5>; -- GitLab