mirror of https://github.com/rusefi/rusefi.git
small-can FW is not well #5787
seems to be about EFI_ENGINE_CONTROL guarding too much of default settings only:small-can-board
This commit is contained in:
parent
030728fea3
commit
c7b155d97f
|
@ -22,7 +22,7 @@ DDEFS += -DEFI_TCU=FALSE
|
|||
DDEFS += -DEFI_ENGINE_EMULATOR=FALSE
|
||||
DDEFS += -DEFI_SHAFT_POSITION_INPUT=FALSE
|
||||
DDEFS += -DEFI_ALTERNATOR_CONTROL=FALSE
|
||||
DDEFS += -DEFI_ENGINE_CONTROL=FALSE
|
||||
# temp DDEFS += -DEFI_ENGINE_CONTROL=FALSE
|
||||
DDEFS += -DEFI_VVT_PID=FALSE
|
||||
DDEFS += -DEFI_EMULATE_POSITION_SENSORS=FALSE
|
||||
DDEFS += -DEFI_MAP_AVERAGING=FALSE
|
||||
|
|
|
@ -108,7 +108,6 @@ void startIdleBench(void) {
|
|||
|
||||
#if EFI_IDLE_CONTROL
|
||||
|
||||
|
||||
void setDefaultIdleParameters() {
|
||||
engineConfiguration->idleRpmPid.pFactor = 0.01f;
|
||||
engineConfiguration->idleRpmPid.iFactor = 0.05f;
|
||||
|
|
|
@ -206,7 +206,7 @@ public:
|
|||
SoftSparkLimiter ALSsoftSparkLimiter;
|
||||
#endif /* EFI_ANTILAG_SYSTEM */
|
||||
|
||||
#if EFI_ENGINE_CONTROL
|
||||
#if EFI_SHAFT_POSITION_INPUT
|
||||
LambdaMonitor lambdaMonitor;
|
||||
#endif // EFI_ENGINE_CONTROL
|
||||
|
||||
|
|
|
@ -319,7 +319,7 @@ void setTargetRpmCurve(int rpm) {
|
|||
setLinearCurve(config->cltIdleRpm, rpm, rpm, 10);
|
||||
}
|
||||
|
||||
void setDefaultGppwmParameters() {
|
||||
static void setDefaultGppwmParameters() {
|
||||
// Same config for all channels
|
||||
for (size_t i = 0; i < efi::size(engineConfiguration->gppwm); i++) {
|
||||
auto& cfg = engineConfiguration->gppwm[i];
|
||||
|
@ -362,6 +362,31 @@ static void setDefaultEngineNoiseTable() {
|
|||
}
|
||||
#endif // EFI_ENGINE_CONTROL
|
||||
|
||||
static void setDefaultCanSettings() {
|
||||
// OBD-II default rate is 500kbps
|
||||
engineConfiguration->canBaudRate = B500KBPS;
|
||||
engineConfiguration->can2BaudRate = B500KBPS;
|
||||
|
||||
engineConfiguration->canSleepPeriodMs = 50;
|
||||
engineConfiguration->canReadEnabled = true;
|
||||
engineConfiguration->canWriteEnabled = true;
|
||||
engineConfiguration->canVssScaling = 1.0f;
|
||||
|
||||
// Don't enable, but set default address
|
||||
engineConfiguration->verboseCanBaseAddress = CAN_DEFAULT_BASE;
|
||||
}
|
||||
|
||||
static void setDefaultScriptParameters() {
|
||||
setLinearCurve(config->scriptTable1LoadBins, 20, 120, 10);
|
||||
setRpmTableBin(config->scriptTable1RpmBins);
|
||||
setLinearCurve(config->scriptTable2LoadBins, 20, 120, 10);
|
||||
setRpmTableBin(config->scriptTable2RpmBins);
|
||||
setLinearCurve(config->scriptTable3LoadBins, 20, 120, 10);
|
||||
setRpmTableBin(config->scriptTable3RpmBins);
|
||||
setLinearCurve(config->scriptTable4LoadBins, 20, 120, 10);
|
||||
setRpmTableBin(config->scriptTable4RpmBins);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Global default engine configuration
|
||||
* This method sets the global engine configuration defaults. These default values are then
|
||||
|
@ -379,12 +404,23 @@ static void setDefaultEngineNoiseTable() {
|
|||
* This method should NOT be setting any default pinout
|
||||
*/
|
||||
static void setDefaultEngineConfiguration() {
|
||||
#if EFI_ENGINE_CONTROL
|
||||
#if (! EFI_UNIT_TEST)
|
||||
efi::clear(persistentState.persistentConfiguration);
|
||||
#endif
|
||||
prepareVoidConfiguration(engineConfiguration);
|
||||
|
||||
#if EFI_BOOST_CONTROL
|
||||
setDefaultBoostParameters();
|
||||
#endif
|
||||
|
||||
setDefaultCanSettings();
|
||||
|
||||
engineConfiguration->sdCardLogFrequency = 50;
|
||||
|
||||
setDefaultGppwmParameters();
|
||||
setDefaultScriptParameters();
|
||||
|
||||
#if EFI_ENGINE_CONTROL
|
||||
setDefaultBaseEngine();
|
||||
setDefaultFuel();
|
||||
setDefaultIgnition();
|
||||
|
@ -402,6 +438,8 @@ static void setDefaultEngineConfiguration() {
|
|||
|
||||
engineConfiguration->isCylinderCleanupEnabled = true;
|
||||
|
||||
engineConfiguration->auxPid[0].minValue = 10;
|
||||
engineConfiguration->auxPid[0].maxValue = 90;
|
||||
engineConfiguration->auxPid[1].minValue = 10;
|
||||
engineConfiguration->auxPid[1].maxValue = 90;
|
||||
|
||||
|
@ -415,30 +453,13 @@ static void setDefaultEngineConfiguration() {
|
|||
setDefaultEtbParameters();
|
||||
setDefaultEtbBiasCurve();
|
||||
#endif /* EFI_ELECTRONIC_THROTTLE_BODY */
|
||||
#if EFI_BOOST_CONTROL
|
||||
setDefaultBoostParameters();
|
||||
#endif
|
||||
|
||||
// OBD-II default rate is 500kbps
|
||||
engineConfiguration->canBaudRate = B500KBPS;
|
||||
engineConfiguration->can2BaudRate = B500KBPS;
|
||||
|
||||
engineConfiguration->mafSensorType = Bosch0280218037;
|
||||
setBosch0280218037();
|
||||
|
||||
engineConfiguration->canSleepPeriodMs = 50;
|
||||
engineConfiguration->canReadEnabled = true;
|
||||
engineConfiguration->canWriteEnabled = true;
|
||||
engineConfiguration->canVssScaling = 1.0f;
|
||||
|
||||
// Don't enable, but set default address
|
||||
engineConfiguration->verboseCanBaseAddress = CAN_DEFAULT_BASE;
|
||||
|
||||
engineConfiguration->sdCardLogFrequency = 50;
|
||||
|
||||
engineConfiguration->mapMinBufferLength = 1;
|
||||
engineConfiguration->vvtActivationDelayMs = 6000;
|
||||
|
||||
|
||||
engineConfiguration->startCrankingDuration = 3;
|
||||
|
||||
engineConfiguration->maxAcRpm = 5000;
|
||||
|
@ -447,9 +468,6 @@ static void setDefaultEngineConfiguration() {
|
|||
|
||||
initTemperatureCurve(IAT_FUEL_CORRECTION_CURVE, 1);
|
||||
|
||||
engineConfiguration->auxPid[0].minValue = 10;
|
||||
engineConfiguration->auxPid[0].maxValue = 90;
|
||||
|
||||
engineConfiguration->alternatorControl.minValue = 0;
|
||||
engineConfiguration->alternatorControl.maxValue = 90;
|
||||
|
||||
|
@ -481,14 +499,6 @@ static void setDefaultEngineConfiguration() {
|
|||
setRpmTableBin(config->vvtTable1RpmBins);
|
||||
setLinearCurve(config->vvtTable2LoadBins, 20, 120, 10);
|
||||
setRpmTableBin(config->vvtTable2RpmBins);
|
||||
setLinearCurve(config->scriptTable1LoadBins, 20, 120, 10);
|
||||
setRpmTableBin(config->scriptTable1RpmBins);
|
||||
setLinearCurve(config->scriptTable2LoadBins, 20, 120, 10);
|
||||
setRpmTableBin(config->scriptTable2RpmBins);
|
||||
setLinearCurve(config->scriptTable3LoadBins, 20, 120, 10);
|
||||
setRpmTableBin(config->scriptTable3RpmBins);
|
||||
setLinearCurve(config->scriptTable4LoadBins, 20, 120, 10);
|
||||
setRpmTableBin(config->scriptTable4RpmBins);
|
||||
|
||||
setDefaultEngineNoiseTable();
|
||||
|
||||
|
@ -536,8 +546,6 @@ static void setDefaultEngineConfiguration() {
|
|||
|
||||
setLinearCurve(config->iacCoastingRpmBins, 0, 8000, 1);
|
||||
|
||||
setDefaultGppwmParameters();
|
||||
|
||||
#if !EFI_UNIT_TEST
|
||||
engineConfiguration->analogInputDividerCoefficient = 2;
|
||||
#endif
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*
|
||||
* If you edit this file, please update rusEFI_CAN_verbose.dbc!
|
||||
* Kvaser Database Editor works well for this task, and is free.
|
||||
*
|
||||
*
|
||||
* @author Matthew Kennedy, (c) 2020
|
||||
*/
|
||||
|
||||
|
@ -46,9 +46,9 @@ static void populateFrame(Status& msg) {
|
|||
msg.fuelPump = enginePins.fuelPumpRelay.getLogicValue();
|
||||
msg.checkEngine = enginePins.checkEnginePin.getLogicValue();
|
||||
msg.o2Heater = enginePins.o2heater.getLogicValue();
|
||||
#if EFI_ENGINE_CONTROL
|
||||
#if EFI_SHAFT_POSITION_INPUT
|
||||
msg.lambdaProtectActive = engine->lambdaMonitor.isCut();
|
||||
#endif // EFI_ENGINE_CONTROL
|
||||
#endif // EFI_SHAFT_POSITION_INPUT
|
||||
msg.fan = enginePins.fanRelay.getLogicValue();
|
||||
msg.fan2 = enginePins.fanRelay2.getLogicValue();
|
||||
|
||||
|
|
|
@ -526,6 +526,7 @@ bool validateConfig() {
|
|||
|
||||
ensureArrayIsAscending("Batt Lag", engineConfiguration->injector.battLagCorrBins);
|
||||
|
||||
#if EFI_ENGINE_CONTROL
|
||||
// Fueling
|
||||
{
|
||||
ensureArrayIsAscending("VE load", config->veLoadBins);
|
||||
|
@ -567,6 +568,7 @@ bool validateConfig() {
|
|||
|
||||
ensureArrayIsAscendingOrDefault("Map estimate TPS", config->mapEstimateTpsBins);
|
||||
ensureArrayIsAscendingOrDefault("Map estimate RPM", config->mapEstimateRpmBins);
|
||||
#endif // EFI_ENGINE_CONTROL
|
||||
|
||||
ensureArrayIsAscendingOrDefault("Script Curve 1", config->scriptCurve1Bins);
|
||||
ensureArrayIsAscendingOrDefault("Script Curve 2", config->scriptCurve2Bins);
|
||||
|
@ -615,9 +617,11 @@ bool validateConfig() {
|
|||
ensureArrayIsAscendingOrDefault("fuel ALS RPM", config->alsFuelAdjustmentrpmBins);
|
||||
#endif // EFI_ANTILAG_SYSTEM
|
||||
|
||||
#if EFI_ELECTRONIC_THROTTLE_BODY
|
||||
// ETB
|
||||
ensureArrayIsAscending("Pedal map pedal", config->pedalToTpsPedalBins);
|
||||
ensureArrayIsAscending("Pedal map RPM", config->pedalToTpsRpmBins);
|
||||
#endif // EFI_ELECTRONIC_THROTTLE_BODY
|
||||
|
||||
if (isGdiEngine()) {
|
||||
ensureArrayIsAscending("HPFP compensation", engineConfiguration->hpfpCompensationRpmBins);
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#define CLEANUP_MODE_TPS 90
|
||||
|
||||
#if EFI_SHAFT_POSITION_INPUT
|
||||
static bool noFiringUntilVvtSync(vvt_mode_e vvtMode) {
|
||||
auto operationMode = getEngineRotationState()->getOperationMode();
|
||||
|
||||
|
@ -40,6 +41,7 @@ static bool noFiringUntilVvtSync(vvt_mode_e vvtMode) {
|
|||
operationMode == FOUR_STROKE_THREE_TIMES_CRANK_SENSOR ||
|
||||
operationMode == FOUR_STROKE_TWELVE_TIMES_CRANK_SENSOR;
|
||||
}
|
||||
#endif // EFI_SHAFT_POSITION_INPUT
|
||||
|
||||
void LimpManager::onFastCallback() {
|
||||
updateState(Sensor::getOrZero(SensorType::Rpm), getTimeNowNt());
|
||||
|
@ -64,7 +66,7 @@ void LimpManager::updateState(int rpm, efitick_t nowNt) {
|
|||
Clearable allowFuel = engineConfiguration->isInjectionEnabled;
|
||||
Clearable allowSpark = engineConfiguration->isIgnitionEnabled;
|
||||
|
||||
#if !EFI_UNIT_TEST
|
||||
#if EFI_SHAFT_POSITION_INPUT && !EFI_UNIT_TEST
|
||||
if (!m_ignitionOn
|
||||
&& !engine->triggerCentral.directSelfStimulation // useful to try things on real ECU even without ignition voltage
|
||||
) {
|
||||
|
@ -101,6 +103,7 @@ void LimpManager::updateState(int rpm, efitick_t nowNt) {
|
|||
}
|
||||
}
|
||||
|
||||
#if EFI_SHAFT_POSITION_INPUT
|
||||
if (engine->lambdaMonitor.isCut()) {
|
||||
allowFuel.clear(ClearReason::LambdaProtection);
|
||||
}
|
||||
|
@ -181,6 +184,7 @@ void LimpManager::updateState(int rpm, efitick_t nowNt) {
|
|||
Sensor::getOrZero(SensorType::DriverThrottleIntent) > CLEANUP_MODE_TPS) {
|
||||
allowFuel.clear(ClearReason::FloodClear);
|
||||
}
|
||||
#endif // EFI_SHAFT_POSITION_INPUT
|
||||
|
||||
if (!engine->isMainRelayEnabled()) {
|
||||
/*
|
||||
|
@ -189,7 +193,7 @@ todo AndreiKA this change breaks 22 unit tests?
|
|||
allowSpark.clear();
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
#if EFI_LAUNCH_CONTROL
|
||||
// Fuel cut if launch control engaged
|
||||
if (engine->launchController.isLaunchFuelRpmRetardCondition()) {
|
||||
|
|
|
@ -124,9 +124,6 @@ void adc_in_out(McpAdcState *state) {
|
|||
}
|
||||
|
||||
void init_adc_mcp3208(McpAdcState *state, SPIDriver *driver) {
|
||||
|
||||
// initSpiModules();
|
||||
|
||||
state->driver = driver;
|
||||
state->tx_buff[2] = 0;
|
||||
|
||||
|
|
|
@ -194,4 +194,4 @@ Usages:
|
|||
java: LambdaMonitor.java
|
||||
folder: controllers/math
|
||||
constexpr: "___engine.lambdaMonitor"
|
||||
conditional_compilation: "EFI_ENGINE_CONTROL"
|
||||
conditional_compilation: "EFI_SHAFT_POSITION_INPUT"
|
||||
|
|
|
@ -3685,6 +3685,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1}
|
||||
field = "SPI3sck mode", spi3SckMode, {is_enabled_spi_3 == 1}
|
||||
field = "LIS302DLCsPin", LIS302DLCsPin
|
||||
field = "SPI4 enable", is_enabled_spi_4
|
||||
|
||||
dialog = stftPartitioning, "Region Configuration"
|
||||
field = "Idle region RPM", stft_maxIdleRegionRpm
|
||||
|
|
Loading…
Reference in New Issue