From c6a280713705e74097ab4c8734999f2c8d44ef9e Mon Sep 17 00:00:00 2001 From: rusEfi Date: Mon, 29 Dec 2014 22:03:34 -0600 Subject: [PATCH] auto-sync --- firmware/config/engines/dodge_neon.cpp | 2 ++ firmware/controllers/algo/engine_configuration.cpp | 2 ++ firmware/controllers/algo/engine_configuration.h | 1 + firmware/controllers/core/fsio_impl.cpp | 6 ++++++ firmware/hw_layer/io_pins.c | 4 ++++ 5 files changed, 15 insertions(+) diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index 79ebb70d17..3371a31fb1 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -367,6 +367,8 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat engineConfiguration->fanOnTemperature = 85; engineConfiguration->fanOffTemperature = 80; + boardConfiguration->tunerStudioSerialSpeed = 9600; + // todo: ALGO = SD // engineConfiguration->isCanEnabled = true; boardConfiguration->canTxPin = GPIOB_6; diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 14867e4648..c527ec319c 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -379,6 +379,8 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_ boardConfiguration->joystickPins[i] = GPIO_UNASSIGNED; } + boardConfiguration->mainRelayPin = GPIO_UNASSIGNED; + boardConfiguration->mainRelayPinMode = OM_DEFAULT; boardConfiguration->idleValvePin = GPIOE_2; boardConfiguration->idleValvePinMode = OM_DEFAULT; boardConfiguration->fuelPumpPin = GPIOC_13; diff --git a/firmware/controllers/algo/engine_configuration.h b/firmware/controllers/algo/engine_configuration.h index ead6294abe..54580e81f3 100644 --- a/firmware/controllers/algo/engine_configuration.h +++ b/firmware/controllers/algo/engine_configuration.h @@ -184,6 +184,7 @@ typedef struct { int tunerStudioThreadPeriod; int generalPeriodicThreadPeriod; + // offset 5796 uint32_t tunerStudioSerialSpeed; brain_pin_e boardTestModeJumperPin; diff --git a/firmware/controllers/core/fsio_impl.cpp b/firmware/controllers/core/fsio_impl.cpp index 941db70c67..29e75576e0 100644 --- a/firmware/controllers/core/fsio_impl.cpp +++ b/firmware/controllers/core/fsio_impl.cpp @@ -290,6 +290,12 @@ void runFsio(void) { } #endif + /** + * main relay is always on if ECU is on, that's a good enough initial implementation + */ + if (boardConfiguration->mainRelayPin != GPIO_UNASSIGNED) + setOutputPinValue(MAIN_RELAY, 1); + if (boardConfiguration->acRelayPin != GPIO_UNASSIGNED) { setPinState(AC_RELAY, acRelayLogic, engine); } diff --git a/firmware/hw_layer/io_pins.c b/firmware/hw_layer/io_pins.c index f99b27c25d..b804bfe76c 100644 --- a/firmware/hw_layer/io_pins.c +++ b/firmware/hw_layer/io_pins.c @@ -92,6 +92,8 @@ ioportmask_t getHwPin(brain_pin_e brainPin) { } void outputPinRegisterExt2(const char *msg, io_pin_e ioPin, brain_pin_e brainPin, pin_output_mode_e *outputMode) { + if (brainPin == GPIO_UNASSIGNED) + return; GPIO_TypeDef *hwPort = getHwPort(brainPin); int hwPin = getHwPin(brainPin); @@ -150,6 +152,8 @@ void initOutputPins(void) { // todo: should we move this code closer to the fuel pump logic? outputPinRegisterExt2("fuel pump relay", FUEL_PUMP_RELAY, boardConfiguration->fuelPumpPin, &DEFAULT_OUTPUT); + outputPinRegisterExt2("main relay", MAIN_RELAY, boardConfiguration->mainRelayPin, &boardConfiguration->mainRelayPinMode); + outputPinRegisterExt2("fan relay", FAN_RELAY, boardConfiguration->fanPin, &DEFAULT_OUTPUT); outputPinRegisterExt2("o2 heater", O2_HEATER, boardConfiguration->o2heaterPin, &DEFAULT_OUTPUT); outputPinRegisterExt2("trg_err", LED_TRIGGER_ERROR, boardConfiguration->triggerErrorPin, &boardConfiguration->triggerErrorPinMode);