5V-compatible adcVcc + trigger_input_comp + Kinetis COMP driver impr. (#1036)

* adcVcc is not only for 3V STM32

* update ini files

* Kinetis: improve COMP driver

* Improve trigger_input_comp.cpp (hysteresis)
This commit is contained in:
andreika-git 2019-12-01 19:08:55 +02:00 committed by rusefi
parent 1d817e9768
commit 3b352f6a3a
9 changed files with 64 additions and 36 deletions

View File

@ -112,8 +112,12 @@ void comp_lld_init(void) {
static void comp_lld_irq_handler(COMPDriver *compp) {
if (compp->config->cb != NULL)
compp->config->cb(compp);
// clear flags to continue
ACMP_ClearStatusFlags(compp->reg, kACMP_OutputRisingEventFlag | kACMP_OutputFallingEventFlag);
/* Add for ARM errata 838869, affects Cortex-M4, Cortex-M4F Store immediate overlapping
exception return operation might vector to incorrect interrupt */
#if defined __CORTEX_M && (__CORTEX_M == 4U)
__DSB();
#endif
}
/**
@ -156,9 +160,10 @@ OSAL_IRQ_HANDLER(KINETIS_COMP2_IRQ_VECTOR) {
void comp_lld_channel_enable(COMPDriver *compp, uint32_t channel) {
osalDbgAssert(channel <= 7, "invalid channel number");
memset(&compp->acmpChannelCfg, 0, sizeof(compp->acmpChannelCfg));
compp->acmpChannelCfg.positivePortInput = kACMP_PortInputFromDAC;
compp->acmpChannelCfg.negativePortInput = kACMP_PortInputFromMux;
compp->acmpChannelCfg.minusMuxInput = channel;
compp->acmpChannelCfg.positivePortInput = kACMP_PortInputFromMux;
compp->acmpChannelCfg.plusMuxInput = channel;
compp->acmpChannelCfg.negativePortInput = kACMP_PortInputFromDAC;
compp->acmpChannelCfg.minusMuxInput = 0U;
ACMP_SetChannelConfig(compp->reg, &compp->acmpChannelCfg);
}
@ -183,8 +188,6 @@ void comp_lld_channel_disable(COMPDriver *compp, uint32_t channel) {
* @notapi
*/
void comp_lld_set_dac_value(COMPDriver *compp, uint32_t value) {
memset(&compp->acmpDacCfg, 0, sizeof(compp->acmpDacCfg));
compp->acmpDacCfg.referenceVoltageSource = kACMP_VrefSourceVin1; // connected to VDDA on KE1xF
compp->acmpDacCfg.DACValue = value;
ACMP_SetDACConfig(compp->reg, &compp->acmpDacCfg);
}
@ -200,8 +203,23 @@ void comp_lld_start(COMPDriver *compp) {
ACMP_GetDefaultConfig(&compp->acmpCfg);
if (compp->config->output_mode == COMP_OUTPUT_INVERTED)
compp->acmpCfg.enableInvertOutput = true;
compp->acmpCfg.enableHighSpeed = true;
compp->acmpCfg.useUnfilteredOutput = true; //false;
compp->acmpCfg.hysteresisMode = kACMP_HysteresisLevel2; // L1=~16mV, L2=~32mV
ACMP_Init(compp->reg, &compp->acmpCfg);
compp->irq_mask = 0;
#if 0
acmp_filter_config_t filterCfg = { 0 };
filterCfg.filterCount = 2U;
filterCfg.filterPeriod = 2U;
filterCfg.enableSample = false;
ACMP_SetFilterConfig(compp->reg, &filterCfg);
#endif
memset(&compp->acmpDacCfg, 0, sizeof(compp->acmpDacCfg));
compp->acmpDacCfg.referenceVoltageSource = kACMP_VrefSourceVin1; // connected to VDDA on KE1xF
}
/**
@ -249,7 +267,10 @@ void comp_lld_disable(COMPDriver *compp) {
}
uint32_t comp_lld_get_status(COMPDriver *compp) {
return ACMP_GetStatusFlags(compp->reg);
uint32_t status = ACMP_GetStatusFlags(compp->reg);
// clear flags to continue
ACMP_ClearStatusFlags(compp->reg, status);
return status;
}
#endif /* HAL_USE_COMP */

View File

@ -23,25 +23,36 @@ EXTERN_ENGINE
;
static Logging *logger;
static int centeredDacValue = 127;
static const int dacNoiseDeltaMin = 1; // = 5V * 1/256 (8-bit DAC) = ~20mV
static const int dacNoiseDeltaMax = 15; // = ~300mV
// todo: interpolate between min and max depending on the signal level (adaptive hysteresis)
static const int dacNoiseDelta = dacNoiseDeltaMax;
static void comp_shaft_callback(COMPDriver *comp) {
bool isRising = (comp_lld_get_status(comp) & COMP_IRQ_RISING) != 0;
uint32_t status = comp_lld_get_status(comp);
int isPrimary = (comp == EFI_COMP_PRIMARY_DEVICE);
if (!isPrimary && !TRIGGER_SHAPE(needSecondTriggerInput)) {
return;
}
trigger_event_e signal;
if (isRising) {
if (status & COMP_IRQ_RISING) {
signal = isPrimary ? (engineConfiguration->invertPrimaryTriggerSignal ? SHAFT_PRIMARY_FALLING : SHAFT_PRIMARY_RISING) :
(engineConfiguration->invertSecondaryTriggerSignal ? SHAFT_SECONDARY_FALLING : SHAFT_SECONDARY_RISING);
} else {
hwHandleShaftSignal(signal);
// shift the threshold down a little bit to avoid false-triggering (threshold hysteresis)
comp_lld_set_dac_value(comp, centeredDacValue - dacNoiseDelta);
}
if (status & COMP_IRQ_FALLING) {
signal = isPrimary ? (engineConfiguration->invertPrimaryTriggerSignal ? SHAFT_PRIMARY_RISING : SHAFT_PRIMARY_FALLING) :
(engineConfiguration->invertSecondaryTriggerSignal ? SHAFT_SECONDARY_RISING : SHAFT_SECONDARY_FALLING);
hwHandleShaftSignal(signal);
// shift the threshold up a little bit to avoid false-triggering (threshold hysteresis)
comp_lld_set_dac_value(comp, centeredDacValue + dacNoiseDelta);
}
hwHandleShaftSignal(signal);
#ifdef EFI_TRIGGER_DEBUG_BLINK
__blink(1);
#endif
}
// todo: add cam support?
@ -74,13 +85,9 @@ void turnOnTriggerInputPins(Logging *sharedLogger) {
void startTriggerInputPins(void) {
//efiAssertVoid(CUSTOM_ERR_, !isCompEnabled, "isCompEnabled");
const float vRef = 5.0f;
const float vSensorRef = 2.5f; // 2.5V resistor divider
// when VR sensor is silent, there's still some noise around vRef, so we need a small threshold to avoid false triggering
const float noSignalThreshold = 0.05f;
const int maxDacValue = 255;
const int vDac = (int)(int)efiRound(maxDacValue * (vSensorRef - noSignalThreshold) / vRef, 1.0f);
constexpr float vSensorRef = 2.5f; // 2.5V resistor divider; todo: migrate to settings?
constexpr float maxDacValue = 255.0f;
centeredDacValue = (int)efiRound(maxDacValue / engineConfiguration->adcVcc * vSensorRef, 1.0f);
int channel = EFI_COMP_TRIGGER_CHANNEL; // todo: use getInputCaptureChannel(hwPin);
@ -89,7 +96,7 @@ void startTriggerInputPins(void) {
// no generic hal support for extended COMP configuration, so we use hal_lld layer...
osalSysLock();
comp_lld_set_dac_value(EFI_COMP_PRIMARY_DEVICE, vDac);
comp_lld_set_dac_value(EFI_COMP_PRIMARY_DEVICE, centeredDacValue);
comp_lld_channel_enable(EFI_COMP_PRIMARY_DEVICE, channel);
osalSysUnlock();

View File

@ -460,7 +460,7 @@ custom spi_device_e 1 bits,U32, @OFFSET@, [0:2], "Off", "SPI1", "SPI2", "SPI3"
float globalFuelCorrection;set global_fuel_correction X;"coef", 1, 0.0, 0, 1000.0, 2
float adcVcc;; "volts", 1, 0.0, 0, 4.0, 3
float adcVcc;; "volts", 1, 0.0, 0, 6.0, 3
float maxKnockSubDeg;maximum total number of degrees to subtract from ignition advance\nwhen knocking
brain_input_pin_e[CAM_INPUTS_COUNT iterate] camInputs;+Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660

View File

@ -214,7 +214,7 @@ page = 1
high_fuel_pressure_sensor_2 = bits, U08, 542, [0:4] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "Disabled", "PB12", "PB13", "PC14", "PC15", "PC16", "PC17", "PD3", "PD4", "PE2", "PE6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
mafAdcChannel = bits, U08, 543, [0:4] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "Disabled", "PB12", "PB13", "PC14", "PC15", "PC16", "PC17", "PD3", "PD4", "PE2", "PE6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
globalFuelCorrection = scalar, F32, 544, "coef", 1, 0.0, 0, 1000.0, 2
adcVcc = scalar, F32, 548, "volts", 1, 0.0, 0, 4.0, 3
adcVcc = scalar, F32, 548, "volts", 1, 0.0, 0, 6.0, 3
;no TS info - skipping maxKnockSubDeg offset 552
camInputs1 = bits, U08, 556, [0:7], "NONE", "INVALID", "INVALID", "PA1", "PA2", "PA3", "INVALID", "PA5", "PA6", "PA7", "PA8", "PA9", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PA15", "INVALID", "INVALID", "INVALID", "PB3", "PB4", "PB5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "PC7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "PE6", "INVALID", "INVALID", "PE9", "INVALID", "PE11", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
camInputs2 = bits, U08, 557, [0:7], "NONE", "INVALID", "INVALID", "PA1", "PA2", "PA3", "INVALID", "PA5", "PA6", "PA7", "PA8", "PA9", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PA15", "INVALID", "INVALID", "INVALID", "PB3", "PB4", "PB5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "PC7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "PE6", "INVALID", "INVALID", "PE9", "INVALID", "PE11", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
@ -3229,7 +3229,7 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Reinit", cmd_tle8888_init
dialog = connection, "", yAxis
field = "STM32 vRef voltage", adcVcc
field = "ADC vRef voltage", adcVcc
panel = tsPort
panel = canBus
panel = sdCard

View File

@ -2214,7 +2214,7 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Reinit", cmd_tle8888_init
dialog = connection, "", yAxis
field = "STM32 vRef voltage", adcVcc
field = "ADC vRef voltage", adcVcc
panel = tsPort
panel = canBus
panel = sdCard

View File

@ -214,7 +214,7 @@ page = 1
high_fuel_pressure_sensor_2 = bits, U08, 542, [0:4] "Analog 3O","Analog 3L","Analog 3M","Analog 3J","Analog 3I","INVALID","Analog 3H","Analog 3G","INVALID","INVALID","INVALID","Analog 3P","Analog 3Q","Analog 3N","Analog VBatt","Analog 3E","NONE","INVALID","INVALID","INVALID"
mafAdcChannel = bits, U08, 543, [0:4] "Analog 3O","Analog 3L","Analog 3M","Analog 3J","Analog 3I","INVALID","Analog 3H","Analog 3G","INVALID","INVALID","INVALID","Analog 3P","Analog 3Q","Analog 3N","Analog VBatt","Analog 3E","NONE","INVALID","INVALID","INVALID"
globalFuelCorrection = scalar, F32, 544, "coef", 1, 0.0, 0, 1000.0, 2
adcVcc = scalar, F32, 548, "volts", 1, 0.0, 0, 4.0, 3
adcVcc = scalar, F32, 548, "volts", 1, 0.0, 0, 6.0, 3
;no TS info - skipping maxKnockSubDeg offset 552
camInputs1 = bits, U08, 556, [0:7], "NONE", "INVALID", "INVALID", "PA1", "PA2", "PA3", "INVALID", "PA5", "PA6", "PA7", "PA8", "PA9", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PA15", "INVALID", "INVALID", "INVALID", "PB3", "PB4", "PB5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "PC7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "PE6", "INVALID", "INVALID", "PE9", "INVALID", "PE11", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
camInputs2 = bits, U08, 557, [0:7], "NONE", "INVALID", "INVALID", "PA1", "PA2", "PA3", "INVALID", "PA5", "PA6", "PA7", "PA8", "PA9", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PA15", "INVALID", "INVALID", "INVALID", "PB3", "PB4", "PB5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "PC7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "PE6", "INVALID", "INVALID", "PE9", "INVALID", "PE11", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
@ -3229,7 +3229,7 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Reinit", cmd_tle8888_init
dialog = connection, "", yAxis
field = "STM32 vRef voltage", adcVcc
field = "ADC vRef voltage", adcVcc
panel = tsPort
panel = canBus
panel = sdCard

View File

@ -214,7 +214,7 @@ page = 1
high_fuel_pressure_sensor_2 = bits, U08, 542, [0:4] "PA2", "PA3", "INVALID", "PD3", "INVALID", "INVALID", "INVALID", "PB12", "PB13", "INVALID", "PE2", "INVALID", "PC14", "PC15", "PC16", "PC17", "Disabled", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
mafAdcChannel = bits, U08, 543, [0:4] "PA2", "PA3", "INVALID", "PD3", "INVALID", "INVALID", "INVALID", "PB12", "PB13", "INVALID", "PE2", "INVALID", "PC14", "PC15", "PC16", "PC17", "Disabled", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
globalFuelCorrection = scalar, F32, 544, "coef", 1, 0.0, 0, 1000.0, 2
adcVcc = scalar, F32, 548, "volts", 1, 0.0, 0, 4.0, 3
adcVcc = scalar, F32, 548, "volts", 1, 0.0, 0, 6.0, 3
;no TS info - skipping maxKnockSubDeg offset 552
camInputs1 = bits, U08, 556, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "N/A", "N/A", "PA10", "PA11", "PA12", "PA13", "N/A", "N/A", "N/A", "N/A", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "N/A", "N/A", "N/A", "N/A", "PB12", "PB13", "N/A", "N/A", "N/A", "N/A", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "N/A", "N/A", "N/A", "N/A", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "PD15", "PD16", "N/A", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A"
camInputs2 = bits, U08, 557, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "N/A", "N/A", "PA10", "PA11", "PA12", "PA13", "N/A", "N/A", "N/A", "N/A", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "N/A", "N/A", "N/A", "N/A", "PB12", "PB13", "N/A", "N/A", "N/A", "N/A", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "N/A", "N/A", "N/A", "N/A", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "PD15", "PD16", "N/A", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A"
@ -3229,7 +3229,7 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Reinit", cmd_tle8888_init
dialog = connection, "", yAxis
field = "STM32 vRef voltage", adcVcc
field = "ADC vRef voltage", adcVcc
panel = tsPort
panel = canBus
panel = sdCard

View File

@ -214,7 +214,7 @@ page = 1
high_fuel_pressure_sensor_2 = bits, U08, 542, [0:4] "18 - AN temp 1","23 - AN temp 2","24 - AN temp 3","22 - AN temp 4","28 - AN volt 10","INVALID","26 - AN volt 2","31 - AN volt 3","36 - AN volt 8","40 - AN volt 9","27 - AN volt 1","Battery Sense","19 - AN volt 4","20 - AN volt 5","32 - AN volt 6","30 - AN volt 7","NONE","INVALID","INVALID","INVALID"
mafAdcChannel = bits, U08, 543, [0:4] "18 - AN temp 1","23 - AN temp 2","24 - AN temp 3","22 - AN temp 4","28 - AN volt 10","INVALID","26 - AN volt 2","31 - AN volt 3","36 - AN volt 8","40 - AN volt 9","27 - AN volt 1","Battery Sense","19 - AN volt 4","20 - AN volt 5","32 - AN volt 6","30 - AN volt 7","NONE","INVALID","INVALID","INVALID"
globalFuelCorrection = scalar, F32, 544, "coef", 1, 0.0, 0, 1000.0, 2
adcVcc = scalar, F32, 548, "volts", 1, 0.0, 0, 4.0, 3
adcVcc = scalar, F32, 548, "volts", 1, 0.0, 0, 6.0, 3
;no TS info - skipping maxKnockSubDeg offset 552
camInputs1 = bits, U08, 556, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","25 - Hall Cam","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","45 - VR/Hall Crank","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"
camInputs2 = bits, U08, 557, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","25 - Hall Cam","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","45 - VR/Hall Crank","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"
@ -3213,7 +3213,7 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Reinit", cmd_tle8888_init
dialog = connection, "", yAxis
field = "STM32 vRef voltage", adcVcc
field = "ADC vRef voltage", adcVcc
panel = tsPort
panel = canBus
panel = sdCard

View File

@ -214,7 +214,7 @@ page = 1
high_fuel_pressure_sensor_2 = bits, U08, 542, [0:4] "Analog 3O","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","NONE","INVALID","INVALID","INVALID"
mafAdcChannel = bits, U08, 543, [0:4] "Analog 3O","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","NONE","INVALID","INVALID","INVALID"
globalFuelCorrection = scalar, F32, 544, "coef", 1, 0.0, 0, 1000.0, 2
adcVcc = scalar, F32, 548, "volts", 1, 0.0, 0, 4.0, 3
adcVcc = scalar, F32, 548, "volts", 1, 0.0, 0, 6.0, 3
;no TS info - skipping maxKnockSubDeg offset 552
camInputs1 = bits, U08, 556, [0:7], "NONE", "INVALID", "INVALID", "PA1", "PA2", "PA3", "INVALID", "PA5", "PA6", "PA7", "PA8", "PA9", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PA15", "INVALID", "INVALID", "INVALID", "PB3", "PB4", "PB5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "PC7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "PE6", "INVALID", "INVALID", "PE9", "INVALID", "PE11", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
camInputs2 = bits, U08, 557, [0:7], "NONE", "INVALID", "INVALID", "PA1", "PA2", "PA3", "INVALID", "PA5", "PA6", "PA7", "PA8", "PA9", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PA15", "INVALID", "INVALID", "INVALID", "PB3", "PB4", "PB5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "PC7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "PE6", "INVALID", "INVALID", "PE9", "INVALID", "PE11", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
@ -3225,7 +3225,7 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Reinit", cmd_tle8888_init
dialog = connection, "", yAxis
field = "STM32 vRef voltage", adcVcc
field = "ADC vRef voltage", adcVcc
panel = tsPort
panel = canBus
panel = sdCard