diff --git a/bsp_linux_board/ObjectFactory.cpp b/bsp_linux_board/ObjectFactory.cpp index 01471812..372fbf25 100644 --- a/bsp_linux_board/ObjectFactory.cpp +++ b/bsp_linux_board/ObjectFactory.cpp @@ -112,6 +112,7 @@ void ObjectFactory::produce(void* args){ if(gpioCookie == nullptr) { gpioCookie = new GpioCookie(); } + // TODO: Missing pin for Gyro 2 gpio::createRpiGpioConfig(gpioCookie, gpioIds::MGM_0_LIS3_CS, gpio::MGM_0_BCM_PIN, "MGM_0_LIS3", gpio::Direction::OUT, 1); gpio::createRpiGpioConfig(gpioCookie, gpioIds::MGM_1_RM3100_CS, gpio::MGM_1_BCM_PIN, diff --git a/bsp_q7s/boardconfig/busConf.h b/bsp_q7s/boardconfig/busConf.h index a5cbcf19..7385fe59 100644 --- a/bsp_q7s/boardconfig/busConf.h +++ b/bsp_q7s/boardconfig/busConf.h @@ -10,36 +10,58 @@ static constexpr char I2C_DEFAULT_DEV[] = "/dev/i2c-1"; static constexpr char UART_PLOC_MPSOC_DEV[] = "/dev/ttyUL3"; static constexpr char UART_PLOC_SUPERVSIOR_DEV[] = "/dev/ttyUL4"; +static constexpr char UART_SYRLINKS_DEV[] = "/dev/ttyUL5"; static constexpr char UART_STAR_TRACKER_DEV[] = "/dev/ttyUL8"; static constexpr char UART_GNSS_0_DEV[] = "/dev/ttyUL0"; static constexpr char UART_GNSS_1_DEV[] = "/dev/ttyUL2"; -static constexpr char GPIO_GYRO_ADIS_CHIP[] = "gpiochip4"; -static constexpr char GPIO_ACS_BOARD_DEFAULT_CHIP[] = "gpiochip5"; -static constexpr char GPIO_MGM2_LIS3_CHIP[] = "gpiochip6"; +/**************************************************************/ +/** OBC1E */ +/**************************************************************/ +static constexpr char GPIO_MULTIPURPOSE_1V8_OBC1D = "gpiochip4"; +static const char* const GPIO_GYRO_ADIS_CHIP = GPIO_MULTIPURPOSE_1V8_OBC1D; +static constexpr uint32_t GPIO_GYRO_0_ADIS_CS = 0; // Package Pin: W20 +static constexpr uint32_t GPIO_GYRO_2_ADIS_CS = 2; // AA22 -// TODO: Determine new pins, additional ADIS gyro device -static constexpr uint32_t GPIO_GYRO_0_ADIS_CS = 0; -static constexpr uint32_t GPIO_GYRO_1_L3G_CS = 18; -static constexpr uint32_t GPIO_GYRO_2_ADIS_CS = 2; -static constexpr uint32_t GPIO_GYRO_3_L3G_CS = 1; +/**************************************************************/ +/** OBC1F B0 */ +/**************************************************************/ +static constexpr char GPIO_FLEX_OBC1F_B0[] = "gpiochip5"; +static const char* const GPIO_ACS_BOARD_DEFAULT_CHIP = GPIO_FLEX_OBC1F_B0; +static const char* const GPIO_RW_DEFAULT_CHIP = GPIO_FLEX_OBC1F_B0; +static const char* const GPIO_RAD_SENSOR_CHIP = GPIO_FLEX_OBC1F_B0; -static constexpr uint32_t GPIO_MGM_0_LIS3_CS = 5; -static constexpr uint32_t GPIO_MGM_1_RM3100_CS = 16; -static constexpr uint32_t GPIO_MGM_2_LIS3_CS = 0; -static constexpr uint32_t GPIO_MGM_3_RM3100_CS = 10; - -static constexpr char GPIO_RW_DEFAULT_CHIP[] = "gpiochip5"; -static constexpr uint32_t GPIO_RW_0_CS = 7; +static constexpr uint32_t GPIO_RW_0_CS = 7; // B20 static constexpr uint32_t GPIO_RW_1_CS = 3; static constexpr uint32_t GPIO_RW_2_CS = 11; static constexpr uint32_t GPIO_RW_3_CS = 6; -static constexpr char GPIO_RW_SPI_MUX_CHIP[] = "gpiochip11"; -static constexpr uint32_t GPIO_RW_SPI_MUX_CS = 57; +static constexpr uint32_t GPIO_GYRO_1_L3G_CS = 18; +static constexpr uint32_t GPIO_GYRO_3_L3G_CS = 1; +static constexpr uint32_t GPIO_MGM_0_LIS3_CS = 5; +static constexpr uint32_t GPIO_MGM_1_RM3100_CS = 16; -static constexpr char GPIO_HEATER_CHIP[] = "gpiochip7"; +static constexpr uint32_t GPIO_MGM_3_RM3100_CS = 10; +// Active low reset pin +static constexpr uint32_t GPIO_RESET_GNSS_0 = 8; // D22 +static constexpr uint32_t GPIO_RESET_GNSS_1 = 12; // B21 + +static constexpr uint32_t GPIO_RAD_SENSOR_CS = 19; // R18 + +/**************************************************************/ +/** OBC1F B1 */ +/**************************************************************/ +static constexpr char GPIO_FLEX_OBC1F_B1[] = "gpiochip6"; +static const char* const GPIO_MGM2_LIS3_CHIP = GPIO_FLEX_OBC1F_B1; +static constexpr uint32_t GPIO_MGM_2_LIS3_CS = 0; + +/**************************************************************/ +/** OBC1C */ +/**************************************************************/ +static constexpr char GPIO_3V3_OBC1C[] = "gpiochip7"; +static const char* const GPIO_HEATER_CHIP = GPIO_3V3_OBC1C; +static const char* const GPIO_SOLAR_ARR_DEPL_CHIP = GPIO_3V3_OBC1C; static constexpr uint32_t GPIO_HEATER_0_PIN = 6; static constexpr uint32_t GPIO_HEATER_1_PIN = 12; static constexpr uint32_t GPIO_HEATER_2_PIN = 7; @@ -49,12 +71,12 @@ static constexpr uint32_t GPIO_HEATER_5_PIN = 0; static constexpr uint32_t GPIO_HEATER_6_PIN = 1; static constexpr uint32_t GPIO_HEATER_7_PIN = 11; -static constexpr char GPIO_SOLAR_ARR_DEPL_CHIP[] = "gpiochip7"; static constexpr uint32_t GPIO_SOL_DEPL_SA_0_PIN = 4; static constexpr uint32_t GPIO_SOL_DEPL_SA_1_PIN = 2; -static constexpr char GPIO_RAD_SENSOR_CHIP[] = "gpiochip5"; -static constexpr uint32_t GPIO_RAD_SENSOR_CS = 19; +static constexpr char GPIO_RW_SPI_MUX_CHIP[] = "gpiochip11"; +static constexpr uint32_t GPIO_RW_SPI_MUX_CS = 57; + } #endif /* BSP_Q7S_BOARDCONFIG_BUSCONF_H_ */ diff --git a/bsp_q7s/core/ObjectFactory.cpp b/bsp_q7s/core/ObjectFactory.cpp index 5be7163a..1b122b93 100644 --- a/bsp_q7s/core/ObjectFactory.cpp +++ b/bsp_q7s/core/ObjectFactory.cpp @@ -1,4 +1,3 @@ -#include #include "ObjectFactory.h" #include "OBSWConfig.h" #include "devConf.h" @@ -32,6 +31,7 @@ #include "mission/devices/P60DockHandler.h" #include "mission/devices/Tmp1075Handler.h" #include "mission/devices/Max31865PT1000Handler.h" +#include "mission/devices/GyroADIS16507Handler.h" #include "mission/devices/IMTQHandler.h" #include "mission/devices/SyrlinksHkHandler.h" #include "mission/devices/MGMHandlerLIS3MDL.h" @@ -169,7 +169,8 @@ void ObjectFactory::produce(void* args){ sif::info << "Created UDP server for TMTC commanding with listener port " << udpBridge->getUdpPort() << std::endl; #else - new TcpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR); + auto tmtcBridge = new TcpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR); + tmtcBridge->setMaxNumberOfPacketsStored(50); auto tcpServer = new TcpTmTcServer(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE); sif::info << "Created TCP server for TMTC commanding with listener port " << tcpServer->getTcpPort() << std::endl; @@ -474,11 +475,11 @@ void ObjectFactory::createAcsBoardComponents(LinuxLibgpioIF *gpioComIF, UartComI gyroL3gHandler->setStartUpImmediately(); auto uartCookieGps0 = new UartCookie(objects::GPS0_HANDLER, q7s::UART_GNSS_0_DEV, - UartModes::CANONICAL, 9600, uart::HYPERION_GPS_REPLY_MAX_BUFFER); + UartModes::CANONICAL, uart::GNSS_BAUD, uart::HYPERION_GPS_REPLY_MAX_BUFFER); uartCookieGps0->setToFlushInput(true); uartCookieGps0->setReadCycles(6); auto uartCookieGps1 = new UartCookie(objects::GPS1_HANDLER, q7s::UART_GNSS_1_DEV, - UartModes::CANONICAL, 9600, uart::HYPERION_GPS_REPLY_MAX_BUFFER); + UartModes::CANONICAL, uart::GNSS_BAUD, uart::HYPERION_GPS_REPLY_MAX_BUFFER); uartCookieGps1->setToFlushInput(true); uartCookieGps1->setReadCycles(6); auto gpsHandler0 = new GPSHyperionHandler(objects::GPS0_HANDLER, objects::UART_COM_IF, @@ -550,7 +551,8 @@ void ObjectFactory::createSolarArrayDeploymentComponents() { void ObjectFactory::createSyrlinksComponents() { UartCookie* syrlinksUartCookie = new UartCookie(objects::SYRLINKS_HK_HANDLER, - std::string("/dev/ttyUL5"), UartModes::NON_CANONICAL, 38400, SYRLINKS::MAX_REPLY_SIZE); + q7s::UART_SYRLINKS_DEV, UartModes::NON_CANONICAL, uart::SYRLINKS_BAUD, + SYRLINKS::MAX_REPLY_SIZE); syrlinksUartCookie->setParityEven(); new SyrlinksHkHandler(objects::SYRLINKS_HK_HANDLER, objects::UART_COM_IF, syrlinksUartCookie); diff --git a/common/config/devConf.h b/common/config/devConf.h index dc04d5b4..7f3094fa 100644 --- a/common/config/devConf.h +++ b/common/config/devConf.h @@ -36,6 +36,8 @@ static constexpr uint32_t RTD_SPEED = 2000000; namespace uart { static constexpr size_t HYPERION_GPS_REPLY_MAX_BUFFER = 1024; +static constexpr uint32_t SYRLINKS_BAUD = 38400; +static constexpr uint32_t GNSS_BAUD = 9600; static constexpr uint32_t PLOC_MPSOC_BAUD = 115200; static constexpr uint32_t PLOC_SUPERVISOR_BAUD = 115200; static constexpr uint32_t STAR_TRACKER_BAUD = 115200;