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.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

View File

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

View File

@ -187,11 +187,10 @@ void startBoostPin() {
return;
}
startSimplePwmExt(
startSimplePwm(
&boostPwmControl,
"Boost",
&engine->executor,
CONFIG(boostControlPin),
&enginePins.boostPin,
engineConfiguration->boostPwmFrequency,
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: open question why do we pass 'OutputPin' into 'startSimplePwmExt' if we have custom applyIdleSolenoidPinState listener anyway?
if (!CONFIG(isDoubleSolenoidIdle)) {
startSimplePwmExt(&idleSolenoidOpen, "Idle Valve",
startSimplePwm(&idleSolenoidOpen, "Idle Valve",
&engine->executor,
CONFIG(idle).solenoidPin, &enginePins.idleSolenoidPin,
&enginePins.idleSolenoidPin,
CONFIG(idle).solenoidFrequency, PERCENT_TO_DUTY(CONFIG(manIdlePosition)),
(pwm_gen_callback*)applyIdleSolenoidPinState);
} else {
startSimplePwmExt(&idleSolenoidOpen, "Idle Valve Open",
startSimplePwm(&idleSolenoidOpen, "Idle Valve Open",
&engine->executor,
CONFIG(idle).solenoidPin, &enginePins.idleSolenoidPin,
&enginePins.idleSolenoidPin,
CONFIG(idle).solenoidFrequency, PERCENT_TO_DUTY(CONFIG(manIdlePosition)),
(pwm_gen_callback*)applyIdleSolenoidPinState);
startSimplePwmExt(&idleSolenoidClose, "Idle Valve Close",
startSimplePwm(&idleSolenoidClose, "Idle Valve Close",
&engine->executor,
CONFIG(secondSolenoidPin), &enginePins.secondIdleSolenoidPin,
&enginePins.secondIdleSolenoidPin,
CONFIG(idle).solenoidFrequency, PERCENT_TO_DUTY(CONFIG(manIdlePosition)),
(pwm_gen_callback*)applyIdleSolenoidPinState);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -83,7 +83,7 @@ void RegisteredOutputPin::unregister() {
EnginePins::EnginePins() :
mainRelay("mainRelay", CONFIG_OFFSET(mainRelayPin), CONFIG_OFFSET(mainRelayPinMode)),
mainRelay("mainRelay", CONFIG_PIN_OFFSETS(mainRelay)),
starterControl("starterControl", CONFIG_PIN_OFFSETS(starterControl)),
starterRelayDisable("starterRelayDisable", CONFIG_PIN_OFFSETS(starterRelayDisable)),
fanRelay("fanRelay", CONFIG_PIN_OFFSETS(fan)),
@ -170,6 +170,9 @@ bool EnginePins::stopPins() {
}
void EnginePins::unregisterPins() {
stopInjectionPins();
stopIgnitionPins();
#if EFI_ELECTRONIC_THROTTLE_BODY
unregisterEtbPins();
#endif /* EFI_ELECTRONIC_THROTTLE_BODY */
@ -194,9 +197,30 @@ void EnginePins::unregisterPins() {
}
void EnginePins::startPins() {
#if EFI_ENGINE_CONTROL
startInjectionPins();
startIgnitionPins();
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() {
@ -423,45 +447,13 @@ void initOutputPins(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
enginePins.sdCsPin.initPin("SD CS", CONFIG(sdCardCsPin));
#endif /* HAL_USE_SPI */
// todo: should we move this code closer to the fuel pump logic?
enginePins.fuelPumpRelay.initPin("Fuel pump", CONFIG(fuelPumpPin), &CONFIG(fuelPumpPinMode));
#if EFI_SHAFT_POSITION_INPUT
// 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.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 */
}

View File

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

View File

@ -313,8 +313,6 @@ void applyNewHardwareSettings(void) {
stopJoystickPins();
#endif /* HAL_USE_PAL && EFI_JOYSTICK */
enginePins.stopInjectionPins();
enginePins.stopIgnitionPins();
#if EFI_CAN_SUPPORT
stopCanPins();
#endif /* EFI_CAN_SUPPORT */
@ -377,6 +375,8 @@ void applyNewHardwareSettings(void) {
ButtonDebounce::startConfigurationList();
#if EFI_SHAFT_POSITION_INPUT
startTriggerInputPins();
#endif /* EFI_SHAFT_POSITION_INPUT */
@ -389,8 +389,7 @@ void applyNewHardwareSettings(void) {
startHD44780_pins();
#endif /* #if EFI_HD44780_LCD */
enginePins.startInjectionPins();
enginePins.startIgnitionPins();
enginePins.startPins();
#if EFI_CAN_SUPPORT
startCanPins();
@ -535,6 +534,11 @@ void initHardware(Logging *l) {
// output pins potentially depend on 'initSmartGpio'
initOutputPins(PASS_ENGINE_PARAMETER_SIGNATURE);
#if EFI_PROD_CODE && EFI_ENGINE_CONTROL
enginePins.startPins();
#endif /* EFI_PROD_CODE && EFI_ENGINE_CONTROL */
#if EFI_MC33816
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
EXTERNC void efiSetPadMode(const char *msg, brain_pin_e pin, iomode_t mode);
EXTERNC void efiSetPadUnused(brain_pin_e brainPin);