phase resolution rpm limit (#4156)

This commit is contained in:
Matthew Kennedy 2022-05-09 21:22:50 -07:00 committed by GitHub
parent 8a02d76303
commit 5eb5b7cfbb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 3 deletions

View File

@ -133,6 +133,14 @@ static void turnOffAllDebugFields(void *arg) {
}
static angle_t adjustCrankPhase(int camIndex) {
float maxSyncThreshold = engineConfiguration->maxCamPhaseResolveRpm;
if (maxSyncThreshold != 0 && Sensor::getOrZero(SensorType::Rpm) > maxSyncThreshold) {
// The user has elected to stop trying to resolve crank phase after some RPM.
// Maybe their cam sensor only works at low RPM or something.
// Anyway, don't try to change crank phase at all, and return that we made no change.
return 0;
}
TriggerCentral *tc = &engine->triggerCentral;
operation_mode_e operationMode = engine->getOperationMode();

View File

@ -1429,7 +1429,9 @@ tChargeMode_e tChargeMode;
float[GAP_TRACKING_LENGTH iterate] triggerGapOverrideFrom;;"from", 1, 0, 0, 20, 2
int8_t[12] unused4080;;"",1,0,0,0,0
uint8_t autoscale maxCamPhaseResolveRpm;Below this RPM, use camshaft information to synchronize the crank's position for full sequential operation. Use this if your cam sensor does weird things at high RPM. Set to 0 to disable, and always use cam to help sync crank.;"rpm", 50, 0, 0, 12500, 0
int8_t[11] unused4080;;"",1,0,0,0,0
float[GAP_TRACKING_LENGTH iterate] triggerGapOverrideTo;;"to", 1, 0, 0, 20, 2

View File

@ -1989,9 +1989,10 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
field = "#Set offset so VVT indicates 0 degrees in default position"
field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 }
field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 }
field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 }
field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 }
field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 }
field = "Require CAM/VVT sync for ignition", isPhaseSyncRequiredForIgnition
field = "Require CAM/VVT sync for ignition", isPhaseSyncRequiredForIgnition
field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm
field = "Print verbose VVT sync details to console",verboseVVTDecoding
field = "Print verbose trigger sync to console", verboseTriggerSynchDetails
field = "Do not print messages in case of sync error", silentTriggerError