cypress_usb_print_test

cypress trying to start TS

TS connect success!

blind code ready for GPT,ADC,SPI

SPI basic test works on 9201 and 8860

Timer is working

ADC fix?

Flash kinda works... in debug mode

DRV8860 driver works! ADC partially works! Flash works!

adc 1 channel works

fix for ADC channels>16 & fastADC problem

ADC works!

EXTINT first attempt... no IRQ?

Led3 blinks

EXTINT works!

trigger_adc EXTINT part works!

trigger_ADC analog preparations... not working yet

ADC now 100% works! But fast is NOT 10kHz!

Fast ADC works... Almost - strange adcToVoltage values...

fastADC working only first 22secs + fatal error after 33secs + USB not connecting

fastADC is working again, problems solved!

triggerADC - It works! (Still no timeshift compensation)

Forgot drv8860

ADC->EXTI trigger switching works! (but not seamlessly)

ADC->EXTI trigger switching now seamless? Needs more testing

ADC->EXTI trigger switching works!

trigger+RPM works but still trgerrors...

trying to impl. adaptive threshold... No luck so far :(

trigger detector almost works - trgerr=0 but no rpm<200?

triggerADC finally works!!! For now...

backup_ram for cypress

main_relay, stepper

better main_relay+stepper

USB VBus detection

CAN driver draft

CAN update

CAN interrupts fix

update

update

update

update

update

main.cpp clean-up

rusefi.ini clean-up

compilation fix

compilation fix

compilation fix
This commit is contained in:
Andrei 2020-04-07 18:12:22 +03:00
parent 4463253a6d
commit 48ab85d636
11 changed files with 155 additions and 92 deletions

View File

@ -6,6 +6,8 @@ echo Entering %script_name%
rem Needed for board overrides
IF "%BOOTLOADER_CODE_DESTINATION_PATH%"=="" (SET BOOTLOADER_CODE_DESTINATION_PATH="..")
set EXTRA_PARAMS=-DCH_DBG_ENABLE_STACK_CHECK=FALSE
set BOOTLOADER_CODE_DESTINATION_FILE=%BOOTLOADER_CODE_DESTINATION_PATH%/bootloader_generated.hxx
rm -f %BOOTLOADER_CODE_DESTINATION_FILE%

View File

@ -2,14 +2,14 @@
echo Starting compilation for Prometheus-405
set PROJECT_BOARD=Prometheus
set PROJECT_BOARD=Prometheus/f405
set PROMETHEUS_BOARD=405
set EXTRA_PARAMS=-DDUMMY -DEFI_BOOTLOADER -DSTM32F405xx -DEFI_ENABLE_ASSERTS=FALSE -DCH_DBG_ENABLE_CHECKS=FALSE -DCH_DBG_ENABLE_ASSERTS=FALSE -DCH_DBG_ENABLE_STACK_CHECK=FALSE -DCH_DBG_FILL_THREADS=FALSE ^
-DBOARD_TLE8888_COUNT=0 ^
-DBOARD_TLE6240_COUNT=0 ^
-DBOARD_MC33972_COUNT=0 ^
-DCH_DBG_THREADS_PROFILING=FALSE
set BOOTLOADER_CODE_DESTINATION_PATH="../Prometheus/405"
set BOOTLOADER_CODE_DESTINATION_PATH="../prometheus/405"
set DEBUG_LEVEL_OPT="-O2"
call !compile_bootloader.bat -r

View File

@ -1,6 +1,6 @@
// this https://en.wikipedia.org/wiki/Reverse_Polish_notation is generated automatically
// from controllers/system_fsio.txt
// on 2019-09-08_16_41_20_788
// on 2020-07-07_19_02_00_108
//
//
// in this file we define system FSIO expressions
@ -16,8 +16,8 @@
// Human-readable: (fan and (coolant > cfg_fanOffTemperature)) | (coolant > cfg_fanOnTemperature) | is_clt_broken
#define FAN_CONTROL_LOGIC "fan coolant cfg_fanOffTemperature > and coolant cfg_fanOnTemperature > | is_clt_broken |"
// Human-readable: (time_since_boot < startup_fuel_pump_duration) | (rpm > 0)
#define FUEL_PUMP_LOGIC "time_since_boot startup_fuel_pump_duration < rpm 0 > |"
// Human-readable: (time_since_boot >= 0 & time_since_boot < startup_fuel_pump_duration) | (rpm > 0)
#define FUEL_PUMP_LOGIC "time_since_boot 0 time_since_boot & >= startup_fuel_pump_duration < rpm 0 > |"
// Human-readable: vbatt < 14.5
#define ALTERNATOR_LOGIC "vbatt 14.5 <"
@ -25,8 +25,7 @@
// Human-readable: coolant > 120
#define TOO_HOT_LOGIC "coolant 120 >"
// Human-readable: ac_on_switch & rpm > 850 & time_since_ac_on_switch > 0.3
// ac_on_switch rpm & 850 time_since_ac_on_switch & > 0.3 >
// Human-readable: ac_on_switch & rpm > 850
#define AC_RELAY_LOGIC "ac_on_switch rpm & 850 >"
// Combined RPM, CLT and VBATT warning light
@ -34,8 +33,9 @@
#define COMBINED_WARNING_LIGHT "rpm 2 fsio_setting > coolant 3 fsio_setting > vbatt 4 fsio_setting < | |"
//needed by EFI_MAIN_RELAY_CONTROL
// Human-readable: (time_since_boot < 2) | (vbatt > 5) | in_shutdown
#define MAIN_RELAY_LOGIC "time_since_boot 2 < vbatt 5 > | in_shutdown |"
//MAIN_RELAY_LOGIC=(time_since_boot >= 0 & time_since_boot < 2) | (vbatt > 5) | in_shutdown
// Human-readable: (vbatt > 5) | in_shutdown
#define MAIN_RELAY_LOGIC "vbatt 5 > in_shutdown |"
// could be used for simple variable intake geometry setups or warning light or starter block
// Human-readable: rpm > fsio_setting(1)
@ -73,5 +73,5 @@
// Human-readable: fsio_table (3, rpm, map) / 100
#define BOOST_CONTROLLER "3 rpm map fsio_table 100 /"
// Human-readable: if (fsio_setting (0) > 20, 0, 10)
#define ANALOG_CONDITION "0 fsio_setting 20 > 0 10 if"
// Human-readable: if(fsio_input (0) > 20, 0, 10)
#define ANALOG_CONDITION "0 fsio_input 20 > 0 10 if"

View File

@ -38,10 +38,6 @@
#include "maf.h"
#include "perf_trace.h"
/* Depth of the conversion buffer, channels are sampled X times each.*/
#define ADC_BUF_DEPTH_SLOW 8
#define ADC_BUF_DEPTH_FAST 4
//static Biquad biq[ADC_MAX_CHANNELS_COUNT];
static adc_channel_mode_e adcHwChannelEnabled[HW_MAX_ADC_INDEX];
@ -68,20 +64,24 @@ AdcDevice::AdcDevice(ADCConversionGroup* hwConfig) {
hwConfig->sqr1 = 0;
hwConfig->sqr2 = 0;
hwConfig->sqr3 = 0;
#if ADC_MAX_CHANNELS_COUNT > 16
hwConfig->sqr4 = 0;
hwConfig->sqr5 = 0;
#endif /* ADC_MAX_CHANNELS_COUNT */
memset(hardwareIndexByIndernalAdcIndex, 0, sizeof(hardwareIndexByIndernalAdcIndex));
memset(internalAdcIndexByHardwareIndex, 0xFFFFFFFF, sizeof(internalAdcIndexByHardwareIndex));
}
#if !defined(PWM_FREQ_FAST) || !defined(PWM_PERIOD_FAST)
#if !defined(GPT_FREQ_FAST) || !defined(GPT_PERIOD_FAST)
/**
* 8000 RPM is 133Hz
* If we want to sample MAP once per 5 degrees we need 133Hz * (360 / 5) = 9576Hz of fast ADC
*/
// todo: migrate to continues ADC mode? probably not - we cannot afford the callback in
// todo: continues mode. todo: look into our options
#define PWM_FREQ_FAST 100000 /* PWM clock frequency. I wonder what does this setting mean? */
#define PWM_PERIOD_FAST 10 /* PWM period (in PWM ticks). */
#endif /* PWM_FREQ_FAST PWM_PERIOD_FAST */
#define GPT_FREQ_FAST 100000 /* GPT clock frequency. I wonder what does this setting mean? */
#define GPT_PERIOD_FAST 10 /* GPT period (in GPT ticks). */
#endif /* GPT_FREQ_FAST GPT_PERIOD_FAST */
// is there a reason to have this configurable at runtime?
#ifndef ADC_SLOW_DEVICE
@ -153,7 +153,11 @@ ADC_TwoSamplingDelay_20Cycles, // cr1
0, // Conversion group sequence 13...16 + sequence length
0, // Conversion group sequence 7...12
0 // Conversion group sequence 1...6
0, // Conversion group sequence 1...6
#if ADC_MAX_CHANNELS_COUNT > 16
0, // Conversion group sequence 19...24
0 // Conversion group sequence 25...30
#endif /* ADC_MAX_CHANNELS_COUNT */
};
AdcDevice slowAdc(&adcgrpcfgSlow);
@ -194,20 +198,20 @@ ADC_TwoSamplingDelay_5Cycles, // cr1
0, // Conversion group sequence 13...16 + sequence length
0, // Conversion group sequence 7...12
0
// Conversion group sequence 1...6
0, // Conversion group sequence 1...6
#if ADC_MAX_CHANNELS_COUNT > 16
0, // Conversion group sequence 19...24
0 // Conversion group sequence 25...30
#endif /* ADC_MAX_CHANNELS_COUNT */
};
AdcDevice fastAdc(&adcgrpcfg_fast);
#if HAL_USE_PWM
#if HAL_USE_GPT
static void fast_adc_callback(GPTDriver *) {
static void pwmpcb_fast(PWMDriver *pwmp) {
efiAssertVoid(CUSTOM_ERR_6659, getCurrentRemainingStack()> 32, "lwStAdcFast");
#if EFI_INTERNAL_ADC
(void) pwmp;
/*
* Starts an asynchronous ADC conversion operation, the conversion
* will be executed in parallel to the current PWM cycle and will
@ -218,10 +222,16 @@ static void pwmpcb_fast(PWMDriver *pwmp) {
if (ADC_FAST_DEVICE.state != ADC_READY &&
ADC_FAST_DEVICE.state != ADC_COMPLETE &&
ADC_FAST_DEVICE.state != ADC_ERROR) {
fastAdc.errorsCount++;
// todo: when? why? firmwareError(OBD_PCM_Processor_Fault, "ADC fast not ready?");
#if 0
// otherwise the ADC driver may be stuck in 'ADC_ACTIVE' state
adcStopConversionI(&ADC_FAST_DEVICE);
#endif
chSysUnlockFromISR()
;
return;
}
@ -229,9 +239,10 @@ static void pwmpcb_fast(PWMDriver *pwmp) {
chSysUnlockFromISR()
;
fastAdc.conversionCount++;
#endif /* EFI_INTERNAL_ADC */
}
#endif /* HAL_USE_PWM */
#endif /* HAL_USE_GPT */
float getMCUInternalTemperature(void) {
#if defined(ADC_CHANNEL_SENSOR)
@ -272,12 +283,12 @@ int getInternalAdcValue(const char *msg, adc_channel_e hwChannel) {
return slowAdc.getAdcValueByHwChannel(hwChannel);
}
#if HAL_USE_PWM
static PWMConfig pwmcfg_fast = { PWM_FREQ_FAST, PWM_PERIOD_FAST, pwmpcb_fast, { {
PWM_OUTPUT_DISABLED, NULL }, { PWM_OUTPUT_DISABLED, NULL }, {
PWM_OUTPUT_DISABLED, NULL }, { PWM_OUTPUT_DISABLED, NULL } },
/* HW dependent part.*/
0, 0 };
#if HAL_USE_GPT
static GPTConfig fast_adc_config = {
GPT_FREQ_FAST,
fast_adc_callback,
0, 0
};
#endif /* HAL_USE_PWM */
static void initAdcPin(brain_pin_e pin, const char *msg) {
@ -350,10 +361,17 @@ void AdcDevice::enableChannel(adc_channel_e hwChannel) {
hwConfig->sqr3 += (hwChannel) << (5 * logicChannel);
} else if (logicChannel < 12) {
hwConfig->sqr2 += (hwChannel) << (5 * (logicChannel - 6));
} else {
} else if (logicChannel < 18) {
hwConfig->sqr1 += (hwChannel) << (5 * (logicChannel - 12));
}
// todo: support for more then 12 channels? not sure how needed it would be
#if ADC_MAX_CHANNELS_COUNT > 16
else if (logicChannel < 24) {
hwConfig->sqr4 += (hwChannel) << (5 * (logicChannel - 18));
}
else if (logicChannel < 30) {
hwConfig->sqr5 += (hwChannel) << (5 * (logicChannel - 24));
}
#endif /* ADC_MAX_CHANNELS_COUNT */
}
void AdcDevice::enableChannelAndPin(adc_channel_e hwChannel) {
@ -402,6 +420,10 @@ static void setAdcDebugReporting(int value) {
}
void waitForSlowAdc(int lastAdcCounter) {
// don't halt the firmware if there are no slow channels assigned
if (slowAdc.size() < 1)
return;
// we use slowAdcCounter instead of slowAdc.conversionCount because we need ADC_COMPLETE state
// todo: use sync.objects?
while (slowAdcCounter <= lastAdcCounter) {
@ -546,7 +568,7 @@ static void configureInputs(void) {
static SlowAdcController slowAdcController;
void initAdcInputs() {
printMsg(&logger, "initAdcInputs()");
scheduleMsg(&logger, "initAdcInputs()");
if (ADC_BUF_DEPTH_FAST > MAX_ADC_GRP_BUF_DEPTH)
firmwareError(CUSTOM_ERR_ADC_DEPTH_FAST, "ADC_BUF_DEPTH_FAST too high");
if (ADC_BUF_DEPTH_SLOW > MAX_ADC_GRP_BUF_DEPTH)
@ -593,15 +615,17 @@ void initAdcInputs() {
/*
* Initializes the PWM driver.
*/
#if HAL_USE_PWM
pwmStart(EFI_INTERNAL_FAST_ADC_PWM, &pwmcfg_fast);
pwmEnablePeriodicNotification(EFI_INTERNAL_FAST_ADC_PWM);
#endif /* HAL_USE_PWM */
#if HAL_USE_GPT
gptStart(EFI_INTERNAL_FAST_ADC_GPT, &fast_adc_config);
gptStartContinuous(EFI_INTERNAL_FAST_ADC_GPT, GPT_PERIOD_FAST);
#endif /* HAL_USE_GPT */
}
scheduleMsg(&logger, "ADC enabled: (%d slow) (%d fast)", slowAdc.size(), fastAdc.size());
addConsoleActionI("adc", (VoidInt) printAdcValue);
#else
printMsg(&logger, "ADC disabled");
scheduleMsg(&logger, "ADC disabled");
#endif
}

View File

@ -43,6 +43,15 @@ void removeChannel(const char *name, adc_channel_e setting);
// max(ADC_BUF_DEPTH_SLOW, ADC_BUF_DEPTH_FAST)
#define MAX_ADC_GRP_BUF_DEPTH 8
/* Depth of the conversion buffer, channels are sampled X times each.*/
#ifndef ADC_BUF_DEPTH_SLOW
#define ADC_BUF_DEPTH_SLOW 8
#endif /* ADC_BUF_DEPTH_SLOW */
#ifndef ADC_BUF_DEPTH_FAST
#define ADC_BUF_DEPTH_FAST 4
#endif /* ADC_BUF_DEPTH_FAST */
#define getAdcValue(msg, hwChannel) getInternalAdcValue(msg, hwChannel)
// todo: migrate to adcToVoltageInputDividerCoefficient

View File

@ -62,6 +62,7 @@
#include "flash_main.h"
#endif /* EFI_INTERNAL_FLASH */
EXTERN_ENGINE
;
extern bool hasFirmwareErrorFlag;
@ -190,10 +191,56 @@ static Logging *sharedLogger;
static int fastMapSampleIndex;
static int hipSampleIndex;
static int tpsSampleIndex;
static int triggerSampleIndex;
#if HAL_USE_ADC
extern AdcDevice fastAdc;
#if EFI_FASTER_UNIFORM_ADC
static int adcCallbackCounter = 0;
static volatile int averagedSamples[ADC_MAX_CHANNELS_COUNT];
static adcsample_t avgBuf[ADC_MAX_CHANNELS_COUNT];
void adc_callback_fast_internal(ADCDriver *adcp, adcsample_t *buffer, size_t n);
void adc_callback_fast(ADCDriver *adcp, adcsample_t *buffer, size_t n) {
if (adcp->state == ADC_COMPLETE) {
fastAdc.invalidateSamplesCache();
#if HAL_TRIGGER_USE_ADC
// we need to call this ASAP, because trigger processing is time-critical
if (triggerSampleIndex >= 0)
triggerAdcCallback(buffer[triggerSampleIndex]);
#endif /* HAL_TRIGGER_USE_ADC */
// store the values for averaging
for (int i = fastAdc.size() - 1; i >= 0; i--) {
averagedSamples[i] += fastAdc.samples[i];
}
// if it's time to process the data
if (++adcCallbackCounter >= ADC_BUF_NUM_AVG) {
// get an average
for (int i = fastAdc.size() - 1; i >= 0; i--) {
avgBuf[i] = (adcsample_t)(averagedSamples[i] / ADC_BUF_NUM_AVG); // todo: rounding?
}
// call the real callback (see below)
adc_callback_fast_internal(adcp, avgBuf, fastAdc.size());
// reset the avg buffer & counter
for (int i = fastAdc.size() - 1; i >= 0; i--) {
averagedSamples[i] = 0;
}
adcCallbackCounter = 0;
}
}
}
#define adc_callback_fast adc_callback_fast_internal
#endif /* EFI_FASTER_UNIFORM_ADC */
/**
* This method is not in the adc* lower-level file because it is more business logic then hardware.
*/
@ -225,15 +272,15 @@ void adc_callback_fast(ADCDriver *adcp, adcsample_t *buffer, size_t n) {
#endif /* EFI_SENSOR_CHART */
#if EFI_MAP_AVERAGING
mapAveragingAdcCallback(fastAdc.samples[fastMapSampleIndex]);
mapAveragingAdcCallback(buffer[fastMapSampleIndex]);
#endif /* EFI_MAP_AVERAGING */
#if EFI_HIP_9011
if (CONFIG(isHip9011Enabled)) {
hipAdcCallback(fastAdc.samples[hipSampleIndex]);
hipAdcCallback(buffer[hipSampleIndex]);
}
#endif /* EFI_HIP_9011 */
// if (tpsSampleIndex != TPS_IS_SLOW) {
// tpsFastAdc = fastAdc.samples[tpsSampleIndex];
// tpsFastAdc = buffer[tpsSampleIndex];
// }
}
}
@ -250,6 +297,11 @@ static void calcFastAdcIndexes(void) {
} else {
tpsSampleIndex = TPS_IS_SLOW;
}
#if HAL_TRIGGER_USE_ADC
adc_channel_e triggerChannel = getAdcChannelForTrigger();
triggerSampleIndex = (triggerChannel == EFI_ADC_NONE) ?
-1 : fastAdc.internalAdcIndexByHardwareIndex[triggerChannel];
#endif /* HAL_TRIGGER_USE_ADC */
#endif/* HAL_USE_ADC */
}
@ -261,6 +313,13 @@ static void adcConfigListener(Engine *engine) {
}
void turnOnHardware(Logging *sharedLogger) {
#if EFI_FASTER_UNIFORM_ADC
for (int i = 0; i < ADC_MAX_CHANNELS_COUNT; i++) {
averagedSamples[i] = 0;
}
adcCallbackCounter = 0;
#endif /* EFI_FASTER_UNIFORM_ADC */
#if EFI_SHAFT_POSITION_INPUT
turnOnTriggerInputPins(sharedLogger);
#endif /* EFI_SHAFT_POSITION_INPUT */
@ -317,7 +376,7 @@ void applyNewHardwareSettings(void) {
}
#endif /* EFI_ELECTRONIC_THROTTLE_BODY */
#if (BOARD_TLE6240_COUNT > 0)
#if (BOARD_TLE6240_COUNT > 0) || (BOARD_DRV8860_COUNT > 0)
stopSmartCsPins();
#endif /* (BOARD_MC33972_COUNT > 0) */
@ -485,6 +544,7 @@ void initHardware(Logging *l) {
#if HAL_USE_ADC
initAdcInputs();
// wait for first set of ADC values so that we do not produce invalid sensor data
waitForSlowAdc(1);
#endif /* HAL_USE_ADC */

View File

@ -468,7 +468,7 @@ end_struct
trigger_config_s trigger;
custom spi_device_e 1 bits,U32, @OFFSET@, [0:7], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
custom spi_device_e 1 bits,U32, @OFFSET@, [0:7], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
spi_device_e hip9011SpiDevice;
adc_channel_e high_fuel_pressure_sensor_1;
adc_channel_e high_fuel_pressure_sensor_2;
@ -1097,12 +1097,13 @@ tChargeMode_e tChargeMode;
int16_t idlerpmpid_iTermMin;iTerm min value;"", 1, 0, -30000, 30000.0, 0
spi_device_e tle6240spiDevice;
uint8_t[1] unusedSpiPadding7;
spi_device_e drv8860spiDevice;
int16_t idlerpmpid_iTermMax;iTerm max value;"", 1, 0, -30000, 30000.0, 0
spi_device_e mc33972spiDevice;
uint8_t[3] unusedSpiPadding8;
brain_pin_e drv8860_cs;
pin_output_mode_e drv8860_csPinMode;
brain_pin_e drv8860_miso;
float etbIdleThrottleRange; ETB idle authority; "%", 1, 0, 0, 15, 0

View File

@ -27,4 +27,3 @@ int main(void) {
runRusEfi();
return 0;
}

View File

@ -1,4 +1,4 @@
update=3/19/2017 9:02:32 PM
update=09.02.2020 17:39:33
version=1
last_client=kicad
[cvpcb]
@ -27,42 +27,6 @@ SolderMaskMinWidth=0
DrawSegmentWidth=0.381
BoardOutlineThickness=0.381
ModuleOutlineThickness=0.381
[eeschema]
version=1
LibDir=
[eeschema/libraries]
LibName1=power
LibName2=device
LibName3=transistors
LibName4=conn
LibName5=linear
LibName6=regul
LibName7=74xx
LibName8=cmos4000
LibName9=adc-dac
LibName10=memory
LibName11=xilinx
LibName12=microcontrollers
LibName13=dsp
LibName14=microchip
LibName15=analog_switches
LibName16=motorola
LibName17=texas
LibName18=intel
LibName19=audio
LibName20=interface
LibName21=digital-audio
LibName22=philips
LibName23=display
LibName24=cypress
LibName25=siliconi
LibName26=opto
LibName27=atmel
LibName28=contrib
LibName29=valves
LibName30=../rusefi_lib/1123038-2
LibName31=../rusefi_lib/logo
LibName32=../rusefi_lib/logo_flipped
[schematic_editor]
version=1
PageLayoutDescrFile=../rusefi_lib/Border.kicad_wks
@ -73,3 +37,6 @@ NetFmtName=Pcbnew
SpiceForceRefPrefix=0
SpiceUseNetNumbers=0
LabSize=60
[eeschema]
version=1
LibDir=

View File

@ -1,8 +1,9 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Launcher COM10" type="Application" factoryName="Application" folderName="1x">
<configuration default="false" name="Launcher COM45" type="Application" factoryName="Application" folderName="1x">
<option name="MAIN_CLASS_NAME" value="com.rusefi.Launcher" />
<module name="ui" />
<option name="PROGRAM_PARAMETERS" value="COM10" />
<option name="PROGRAM_PARAMETERS" value="COM45" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/../../../../../bin/rusefi_console" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="" />
<option name="TRANSPORT" value="0" />

View File

@ -6,7 +6,7 @@ package com.rusefi;
public interface Timeouts {
int SECOND = 1000;
int COMMAND_TIMEOUT_SEC = 10; // seconds
int BINARY_IO_TIMEOUT = 5 * SECOND;
int BINARY_IO_TIMEOUT = 10/*5*/ * SECOND;
int CMD_TIMEOUT = 20;
int READ_IMAGE_TIMEOUT = 60 * SECOND;