Merge remote-tracking branch 'origin/master' into master

This commit is contained in:
rusefillc 2020-11-03 07:59:20 -05:00
commit e6e211ffcf
16 changed files with 75 additions and 120 deletions

View File

@ -330,12 +330,6 @@ static void initStatusLeds(void) {
enginePins.warningLedPin.initPin("led: warning status", engineConfiguration->warningLedPin); enginePins.warningLedPin.initPin("led: warning status", engineConfiguration->warningLedPin);
enginePins.runningLedPin.initPin("led: running status", engineConfiguration->runningLedPin); enginePins.runningLedPin.initPin("led: running status", engineConfiguration->runningLedPin);
enginePins.debugTriggerSync.initPin("debug: sync", CONFIG(debugTriggerSync));
#if EFI_GPIO_HARDWARE && EFI_SHAFT_POSITION_INPUT
enginePins.triggerDecoderErrorPin.initPin("led: trigger debug", CONFIG(triggerErrorPin),
&CONFIG(triggerErrorPinMode));
#endif /* EFI_GPIO_HARDWARE */
} }
#if EFI_PROD_CODE #if EFI_PROD_CODE

View File

@ -161,13 +161,10 @@ void initAlternatorCtrl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
if (CONFIG(alternatorControlPin) == GPIO_UNASSIGNED) if (CONFIG(alternatorControlPin) == GPIO_UNASSIGNED)
return; return;
if (CONFIG(onOffAlternatorLogic)) { if (!CONFIG(onOffAlternatorLogic)) {
enginePins.alternatorPin.initPin("Alternator control", CONFIG(alternatorControlPin)); startSimplePwm(&alternatorControl,
} else {
startSimplePwmExt(&alternatorControl,
"Alternator control", "Alternator control",
&engine->executor, &engine->executor,
CONFIG(alternatorControlPin),
&enginePins.alternatorPin, &enginePins.alternatorPin,
engineConfiguration->alternatorPwmFrequency, 0.1, (pwm_gen_callback*)applyAlternatorPinState); engineConfiguration->alternatorPwmFrequency, 0.1, (pwm_gen_callback*)applyAlternatorPinState);
} }

View File

@ -187,11 +187,10 @@ void startBoostPin() {
return; return;
} }
startSimplePwmExt( startSimplePwm(
&boostPwmControl, &boostPwmControl,
"Boost", "Boost",
&engine->executor, &engine->executor,
CONFIG(boostControlPin),
&enginePins.boostPin, &enginePins.boostPin,
engineConfiguration->boostPwmFrequency, engineConfiguration->boostPwmFrequency,
0.5f 0.5f

View File

@ -735,21 +735,21 @@ void initIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
// todo: even for double-solenoid mode we can probably use same single SimplePWM // todo: even for double-solenoid mode we can probably use same single SimplePWM
// todo: open question why do we pass 'OutputPin' into 'startSimplePwmExt' if we have custom applyIdleSolenoidPinState listener anyway? // todo: open question why do we pass 'OutputPin' into 'startSimplePwmExt' if we have custom applyIdleSolenoidPinState listener anyway?
if (!CONFIG(isDoubleSolenoidIdle)) { if (!CONFIG(isDoubleSolenoidIdle)) {
startSimplePwmExt(&idleSolenoidOpen, "Idle Valve", startSimplePwm(&idleSolenoidOpen, "Idle Valve",
&engine->executor, &engine->executor,
CONFIG(idle).solenoidPin, &enginePins.idleSolenoidPin, &enginePins.idleSolenoidPin,
CONFIG(idle).solenoidFrequency, PERCENT_TO_DUTY(CONFIG(manIdlePosition)), CONFIG(idle).solenoidFrequency, PERCENT_TO_DUTY(CONFIG(manIdlePosition)),
(pwm_gen_callback*)applyIdleSolenoidPinState); (pwm_gen_callback*)applyIdleSolenoidPinState);
} else { } else {
startSimplePwmExt(&idleSolenoidOpen, "Idle Valve Open", startSimplePwm(&idleSolenoidOpen, "Idle Valve Open",
&engine->executor, &engine->executor,
CONFIG(idle).solenoidPin, &enginePins.idleSolenoidPin, &enginePins.idleSolenoidPin,
CONFIG(idle).solenoidFrequency, PERCENT_TO_DUTY(CONFIG(manIdlePosition)), CONFIG(idle).solenoidFrequency, PERCENT_TO_DUTY(CONFIG(manIdlePosition)),
(pwm_gen_callback*)applyIdleSolenoidPinState); (pwm_gen_callback*)applyIdleSolenoidPinState);
startSimplePwmExt(&idleSolenoidClose, "Idle Valve Close", startSimplePwm(&idleSolenoidClose, "Idle Valve Close",
&engine->executor, &engine->executor,
CONFIG(secondSolenoidPin), &enginePins.secondIdleSolenoidPin, &enginePins.secondIdleSolenoidPin,
CONFIG(idle).solenoidFrequency, PERCENT_TO_DUTY(CONFIG(manIdlePosition)), CONFIG(idle).solenoidFrequency, PERCENT_TO_DUTY(CONFIG(manIdlePosition)),
(pwm_gen_callback*)applyIdleSolenoidPinState); (pwm_gen_callback*)applyIdleSolenoidPinState);
} }

View File

@ -635,8 +635,6 @@ void initEngineContoller(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX)
addConsoleAction("analoginfo", printAnalogInfo); addConsoleAction("analoginfo", printAnalogInfo);
#if EFI_PROD_CODE && EFI_ENGINE_CONTROL #if EFI_PROD_CODE && EFI_ENGINE_CONTROL
enginePins.startPins();
initBenchTest(sharedLogger); initBenchTest(sharedLogger);
#endif /* EFI_PROD_CODE && EFI_ENGINE_CONTROL */ #endif /* EFI_PROD_CODE && EFI_ENGINE_CONTROL */

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD frankenso_na6 #define SIGNATURE_BOARD frankenso_na6
#define SIGNATURE_DATE 2020.11.02 #define SIGNATURE_DATE 2020.11.03
#define SIGNATURE_HASH 1266301096 #define SIGNATURE_HASH 3637298954
#define TS_SIGNATURE "rusEFI 2020.11.02.frankenso_na6.1266301096" #define TS_SIGNATURE "rusEFI 2020.11.03.frankenso_na6.3637298954"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD mre_f4 #define SIGNATURE_BOARD mre_f4
#define SIGNATURE_DATE 2020.11.02 #define SIGNATURE_DATE 2020.11.03
#define SIGNATURE_HASH 351842662 #define SIGNATURE_HASH 647487135
#define TS_SIGNATURE "rusEFI 2020.11.02.mre_f4.351842662" #define TS_SIGNATURE "rusEFI 2020.11.03.mre_f4.647487135"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD mre_f7 #define SIGNATURE_BOARD mre_f7
#define SIGNATURE_DATE 2020.11.02 #define SIGNATURE_DATE 2020.11.03
#define SIGNATURE_HASH 351842662 #define SIGNATURE_HASH 647487135
#define TS_SIGNATURE "rusEFI 2020.11.02.mre_f7.351842662" #define TS_SIGNATURE "rusEFI 2020.11.03.mre_f7.647487135"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD prometheus_405 #define SIGNATURE_BOARD prometheus_405
#define SIGNATURE_DATE 2020.11.02 #define SIGNATURE_DATE 2020.11.03
#define SIGNATURE_HASH 3895698543 #define SIGNATURE_HASH 207909024
#define TS_SIGNATURE "rusEFI 2020.11.02.prometheus_405.3895698543" #define TS_SIGNATURE "rusEFI 2020.11.03.prometheus_405.207909024"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD prometheus_469 #define SIGNATURE_BOARD prometheus_469
#define SIGNATURE_DATE 2020.11.02 #define SIGNATURE_DATE 2020.11.03
#define SIGNATURE_HASH 3895698543 #define SIGNATURE_HASH 207909024
#define TS_SIGNATURE "rusEFI 2020.11.02.prometheus_469.3895698543" #define TS_SIGNATURE "rusEFI 2020.11.03.prometheus_469.207909024"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD proteus_f4 #define SIGNATURE_BOARD proteus_f4
#define SIGNATURE_DATE 2020.11.02 #define SIGNATURE_DATE 2020.11.03
#define SIGNATURE_HASH 3794303224 #define SIGNATURE_HASH 2266381359
#define TS_SIGNATURE "rusEFI 2020.11.02.proteus_f4.3794303224" #define TS_SIGNATURE "rusEFI 2020.11.03.proteus_f4.2266381359"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD proteus_f7 #define SIGNATURE_BOARD proteus_f7
#define SIGNATURE_DATE 2020.11.02 #define SIGNATURE_DATE 2020.11.03
#define SIGNATURE_HASH 3794303224 #define SIGNATURE_HASH 2266381359
#define TS_SIGNATURE "rusEFI 2020.11.02.proteus_f7.3794303224" #define TS_SIGNATURE "rusEFI 2020.11.03.proteus_f7.2266381359"

View File

@ -83,7 +83,7 @@ void RegisteredOutputPin::unregister() {
EnginePins::EnginePins() : EnginePins::EnginePins() :
mainRelay("mainRelay", CONFIG_OFFSET(mainRelayPin), CONFIG_OFFSET(mainRelayPinMode)), mainRelay("mainRelay", CONFIG_PIN_OFFSETS(mainRelay)),
starterControl("starterControl", CONFIG_PIN_OFFSETS(starterControl)), starterControl("starterControl", CONFIG_PIN_OFFSETS(starterControl)),
starterRelayDisable("starterRelayDisable", CONFIG_PIN_OFFSETS(starterRelayDisable)), starterRelayDisable("starterRelayDisable", CONFIG_PIN_OFFSETS(starterRelayDisable)),
fanRelay("fanRelay", CONFIG_PIN_OFFSETS(fan)), fanRelay("fanRelay", CONFIG_PIN_OFFSETS(fan)),
@ -170,6 +170,9 @@ bool EnginePins::stopPins() {
} }
void EnginePins::unregisterPins() { void EnginePins::unregisterPins() {
stopInjectionPins();
stopIgnitionPins();
#if EFI_ELECTRONIC_THROTTLE_BODY #if EFI_ELECTRONIC_THROTTLE_BODY
unregisterEtbPins(); unregisterEtbPins();
#endif /* EFI_ELECTRONIC_THROTTLE_BODY */ #endif /* EFI_ELECTRONIC_THROTTLE_BODY */
@ -194,9 +197,30 @@ void EnginePins::unregisterPins() {
} }
void EnginePins::startPins() { void EnginePins::startPins() {
#if EFI_ENGINE_CONTROL
startInjectionPins(); startInjectionPins();
startIgnitionPins(); startIgnitionPins();
startAuxValves(); startAuxValves();
starterRelayDisable.initPin("Starter disable", CONFIG(starterRelayDisablePin), &CONFIG(starterRelayDisablePinMode));
starterControl.initPin("Starter control", CONFIG(starterControlPin));
#endif /* EFI_ENGINE_CONTROL */
mainRelay.initPin("Main relay", CONFIG(mainRelayPin), &CONFIG(mainRelayPinMode));
fanRelay.initPin("Fan", CONFIG(fanPin), &CONFIG(fanPinMode));
acRelay.initPin("A/C relay", CONFIG(acRelayPin), &CONFIG(acRelayPinMode));
// todo: should we move this code closer to the fuel pump logic?
fuelPumpRelay.initPin("Fuel pump", CONFIG(fuelPumpPin), &CONFIG(fuelPumpPinMode));
boostPin.initPin("Boost", CONFIG(boostControlPin));
idleSolenoidPin.initPin("Idle Valve", CONFIG(idle).solenoidPin);
secondIdleSolenoidPin.initPin("Idle Valve#2", CONFIG(secondSolenoidPin));
alternatorPin.initPin("Alternator control", CONFIG(alternatorControlPin));
triggerDecoderErrorPin.initPin("led: trigger debug", CONFIG(triggerErrorPin),
&CONFIG(triggerErrorPinMode));
} }
void EnginePins::reset() { void EnginePins::reset() {
@ -423,45 +447,13 @@ void initOutputPins(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
enginePins.sdCsPin.initPin("SD CS", CONFIG(sdCardCsPin)); enginePins.sdCsPin.initPin("SD CS", CONFIG(sdCardCsPin));
#endif /* HAL_USE_SPI */ #endif /* HAL_USE_SPI */
// todo: should we move this code closer to the fuel pump logic? #if EFI_SHAFT_POSITION_INPUT
enginePins.fuelPumpRelay.initPin("Fuel pump", CONFIG(fuelPumpPin), &CONFIG(fuelPumpPinMode)); // todo: migrate remaining OutputPin to RegisteredOutputPin in order to get consistent dynamic pin init/deinit
enginePins.debugTriggerSync.initPin("debug: sync", CONFIG(debugTriggerSync));
#endif // EFI_SHAFT_POSITION_INPUT
enginePins.mainRelay.initPin("Main relay", CONFIG(mainRelayPin), &CONFIG(mainRelayPinMode));
enginePins.starterRelayDisable.initPin("Starter disable", CONFIG(starterRelayDisablePin), &CONFIG(starterRelayDisablePinMode));
enginePins.starterControl.initPin("Starter control", CONFIG(starterControlPin));
enginePins.fanRelay.initPin("Fan", CONFIG(fanPin), &CONFIG(fanPinMode));
enginePins.o2heater.initPin("O2 heater", CONFIG(o2heaterPin)); enginePins.o2heater.initPin("O2 heater", CONFIG(o2heaterPin));
enginePins.acRelay.initPin("A/C relay", CONFIG(acRelayPin), &CONFIG(acRelayPinMode));
// digit 1
/*
ledRegister(LED_HUGE_0, GPIOB, 2);
ledRegister(LED_HUGE_1, GPIOE, 7);
ledRegister(LED_HUGE_2, GPIOE, 8);
ledRegister(LED_HUGE_3, GPIOE, 9);
ledRegister(LED_HUGE_4, GPIOE, 10);
ledRegister(LED_HUGE_5, GPIOE, 11);
ledRegister(LED_HUGE_6, GPIOE, 12);
// digit 2
ledRegister(LED_HUGE_7, GPIOE, 13);
ledRegister(LED_HUGE_8, GPIOE, 14);
ledRegister(LED_HUGE_9, GPIOE, 15);
ledRegister(LED_HUGE_10, GPIOB, 10);
ledRegister(LED_HUGE_11, GPIOB, 11);
ledRegister(LED_HUGE_12, GPIOB, 12);
ledRegister(LED_HUGE_13, GPIOB, 13);
// digit 3
ledRegister(LED_HUGE_14, GPIOE, 0);
ledRegister(LED_HUGE_15, GPIOE, 2);
ledRegister(LED_HUGE_16, GPIOE, 4);
ledRegister(LED_HUGE_17, GPIOE, 6);
ledRegister(LED_HUGE_18, GPIOE, 5);
ledRegister(LED_HUGE_19, GPIOE, 3);
ledRegister(LED_HUGE_20, GPIOE, 1);
*/
#endif /* EFI_GPIO_HARDWARE */ #endif /* EFI_GPIO_HARDWARE */
} }

View File

@ -147,15 +147,10 @@ public:
void reset(); void reset();
bool stopPins(); bool stopPins();
void unregisterPins(); void unregisterPins();
void startInjectionPins();
void startIgnitionPins();
void startAuxValves();
void stopInjectionPins();
void stopIgnitionPins();
RegisteredOutputPin mainRelay; RegisteredOutputPin mainRelay;
// this one cranks engine // this one cranks engine
RegisteredOutputPin starterControl; RegisteredOutputPin starterControl;
// this one prevents driver from cranknig engine // this one prevents driver from cranking engine
RegisteredOutputPin starterRelayDisable; RegisteredOutputPin starterRelayDisable;
RegisteredOutputPin fanRelay; RegisteredOutputPin fanRelay;
@ -192,6 +187,13 @@ public:
InjectorOutputPin injectors[INJECTION_PIN_COUNT]; InjectorOutputPin injectors[INJECTION_PIN_COUNT];
IgnitionOutputPin coils[IGNITION_PIN_COUNT]; IgnitionOutputPin coils[IGNITION_PIN_COUNT];
NamedOutputPin auxValve[AUX_DIGITAL_VALVE_COUNT]; NamedOutputPin auxValve[AUX_DIGITAL_VALVE_COUNT];
private:
void startInjectionPins();
void startIgnitionPins();
void startAuxValves();
void stopInjectionPins();
void stopIgnitionPins();
}; };
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@ -313,8 +313,6 @@ void applyNewHardwareSettings(void) {
stopJoystickPins(); stopJoystickPins();
#endif /* HAL_USE_PAL && EFI_JOYSTICK */ #endif /* HAL_USE_PAL && EFI_JOYSTICK */
enginePins.stopInjectionPins();
enginePins.stopIgnitionPins();
#if EFI_CAN_SUPPORT #if EFI_CAN_SUPPORT
stopCanPins(); stopCanPins();
#endif /* EFI_CAN_SUPPORT */ #endif /* EFI_CAN_SUPPORT */
@ -377,6 +375,8 @@ void applyNewHardwareSettings(void) {
ButtonDebounce::startConfigurationList(); ButtonDebounce::startConfigurationList();
#if EFI_SHAFT_POSITION_INPUT #if EFI_SHAFT_POSITION_INPUT
startTriggerInputPins(); startTriggerInputPins();
#endif /* EFI_SHAFT_POSITION_INPUT */ #endif /* EFI_SHAFT_POSITION_INPUT */
@ -389,8 +389,7 @@ void applyNewHardwareSettings(void) {
startHD44780_pins(); startHD44780_pins();
#endif /* #if EFI_HD44780_LCD */ #endif /* #if EFI_HD44780_LCD */
enginePins.startInjectionPins(); enginePins.startPins();
enginePins.startIgnitionPins();
#if EFI_CAN_SUPPORT #if EFI_CAN_SUPPORT
startCanPins(); startCanPins();
@ -535,6 +534,11 @@ void initHardware(Logging *l) {
// output pins potentially depend on 'initSmartGpio' // output pins potentially depend on 'initSmartGpio'
initOutputPins(PASS_ENGINE_PARAMETER_SIGNATURE); initOutputPins(PASS_ENGINE_PARAMETER_SIGNATURE);
#if EFI_PROD_CODE && EFI_ENGINE_CONTROL
enginePins.startPins();
#endif /* EFI_PROD_CODE && EFI_ENGINE_CONTROL */
#if EFI_MC33816 #if EFI_MC33816
initMc33816(sharedLogger); initMc33816(sharedLogger);

View File

@ -19,37 +19,6 @@
} }
/**
* these seven segment display pins are related to unused external tachometer code
* I still have the hardware so maybe one day I will fix it, but for now it's just dead code
* See https://www.youtube.com/watch?v=YYiHoN6MBqE
* todo: this should be re-implemented in a smarter way with some sort of multiplexing anyway
*/
/* digit 1 */
// LED_HUGE_0, // B2
// LED_HUGE_1,
// LED_HUGE_2,
// LED_HUGE_3,
// LED_HUGE_4,
// LED_HUGE_5,
// LED_HUGE_6,
// /* digit 2 */
// LED_HUGE_7,
// LED_HUGE_8,
// LED_HUGE_9, // E15
// LED_HUGE_10,
// LED_HUGE_11,
// LED_HUGE_12,
// LED_HUGE_13,
// /* digit 3 */
// LED_HUGE_14,
// LED_HUGE_15,
// LED_HUGE_16,
// LED_HUGE_17,
// LED_HUGE_18,
// LED_HUGE_19,
// LED_HUGE_20,
#if EFI_GPIO_HARDWARE #if EFI_GPIO_HARDWARE
EXTERNC void efiSetPadMode(const char *msg, brain_pin_e pin, iomode_t mode); EXTERNC void efiSetPadMode(const char *msg, brain_pin_e pin, iomode_t mode);
EXTERNC void efiSetPadUnused(brain_pin_e brainPin); EXTERNC void efiSetPadUnused(brain_pin_e brainPin);