This commit is contained in:
rusefi 2019-12-28 15:14:15 -05:00
commit 0384cc26a8
266 changed files with 9370 additions and 5747 deletions

1
.gitignore vendored
View File

@ -3,6 +3,7 @@
build/
build_kinetis/
out/
logs/
blbuild/
Debug_EMS/
Release_EMS/

View File

@ -26,8 +26,8 @@ void setBoardConfigurationOverrides(void) {
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2;
engineConfiguration->useOnlyRisingEdgeForTrigger = true;
boardConfiguration->isFasterEngineSpinUpEnabled = true;
boardConfiguration->useNoiselessTriggerDecoder = true;
engineConfiguration->isFasterEngineSpinUpEnabled = true;
engineConfiguration->useNoiselessTriggerDecoder = true;
setAlgorithm(LM_SPEED_DENSITY PASS_CONFIG_PARAMETER_SUFFIX);
@ -72,7 +72,7 @@ void setBoardConfigurationOverrides(void) {
engineConfiguration->tpsErrorDetectionTooLow = -10; // -10% open
engineConfiguration->tpsErrorDetectionTooHigh = 110; // 110% open
boardConfiguration->mapMinBufferLength = 4;
engineConfiguration->mapMinBufferLength = 4;
// todo:
engineConfiguration->map.sensor.hwChannel = EFI_ADC_NONE;
@ -90,9 +90,9 @@ void setBoardConfigurationOverrides(void) {
engineConfiguration->clt.adcChannel = EFI_ADC_14;
boardConfiguration->triggerInputPins[0] = GPIOE_7;
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
boardConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[0] = GPIOE_7;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED;
engineConfiguration->tle6240spiDevice = SPI_DEVICE_1;
engineConfiguration->tle6240_cs = GPIOB_0;
@ -100,14 +100,14 @@ void setBoardConfigurationOverrides(void) {
// todo:
int i;
for (i = 0; i < INJECTION_PIN_COUNT; i++)
boardConfiguration->injectionPins[i] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[i] = GPIO_UNASSIGNED;
for (i = 0; i < IGNITION_PIN_COUNT; i++)
boardConfiguration->ignitionPins[i] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[i] = GPIO_UNASSIGNED;
engineConfiguration->adcVcc = 5.0f;
engineConfiguration->analogInputDividerCoefficient = 1;
//boardConfiguration->isFastAdcEnabled = false;
//engineConfiguration->isFastAdcEnabled = false;
// we call it here because setDefaultBoardConfiguration() is not called for DEFAULT_ENGINE_TYPE=MINIMAL_PINS
setSerialConfigurationOverrides();
@ -117,12 +117,12 @@ void setPinConfigurationOverrides(void) {
}
void setSerialConfigurationOverrides(void) {
boardConfiguration->useSerialPort = true;
engineConfiguration->useSerialPort = true;
engineConfiguration->binarySerialTxPin = GPIOC_7;
engineConfiguration->binarySerialRxPin = GPIOC_6;
engineConfiguration->consoleSerialTxPin = GPIOA_10;
engineConfiguration->consoleSerialRxPin = GPIOA_11;
boardConfiguration->tunerStudioSerialSpeed = SERIAL_SPEED;
engineConfiguration->tunerStudioSerialSpeed = SERIAL_SPEED;
engineConfiguration->uartConsoleSerialSpeed = SERIAL_SPEED;
}

View File

@ -44,12 +44,11 @@
*
*/
#define PORT_IDLE_THREAD_STACK_SIZE 64/*768*//*1024*/
#define PORT_IDLE_THREAD_STACK_SIZE 32
// rusEfi main processing happens on IRQ so PORT_INT_REQUIRED_STACK has to be pretty large.
// see also a strange comment about PORT_INT_REQUIRED_STACK in global_shared.h
// See global_shared.h notes about stack requirements
// see also http://www.chibios.org/dokuwiki/doku.php?id=chibios:kb:stacks
#define PORT_INT_REQUIRED_STACK 512/*768*/
#define PORT_INT_REQUIRED_STACK 128
#define CHPRINTF_USE_FLOAT TRUE

View File

@ -587,8 +587,8 @@ case HONDA_ACCORD_CD_TWO_WIRES:
return "HONDA_ACCORD_CD_TWO_WIRES";
case LADA_KALINA:
return "LADA_KALINA";
case MAZDA_323:
return "MAZDA_323";
case MRE_MIATA_NB2_MTB:
return "MRE_MIATA_NB2_MTB";
case MAZDA_626:
return "MAZDA_626";
case MAZDA_MIATA_2003:
@ -659,6 +659,8 @@ case TOYOTA_JZS147:
return "TOYOTA_JZS147";
case VAG_18_TURBO:
return "VAG_18_TURBO";
case VW_B6:
return "VW_B6";
case VW_ABA:
return "VW_ABA";
case ZIL_130:

View File

@ -246,8 +246,6 @@
#define baroSensor_offset_hex 248
#define baroSensor_type_offset 592
#define baroSensor_type_offset_hex 250
#define bc_offset 600
#define bc_offset_hex 258
#define binarySerialRxPin_offset 1815
#define binarySerialRxPin_offset_hex 717
#define binarySerialTxPin_offset 1814
@ -377,9 +375,11 @@
#define CMD_ENABLE "enable"
#define CMD_ENGINE_TYPE "engine_type"
#define CMD_ETB_DUTY "set_etb_duty"
#define CMD_FUNCTIONAL_TEST_MODE "test_mode"
#define CMD_PINS "pins"
#define CMD_REBOOT "reboot"
#define CMD_REBOOT_DFU "reboot_dfu"
#define CMD_RESET_ENGINE_SNIFFER "reset_engine_chart"
#define CMD_TRIGGER_HW_INPUT "trigger_hw_input"
#define CMD_TRIGGERINFO "triggerinfo"
#define CMD_WRITECONFIG "writeconfig"
@ -1552,6 +1552,13 @@
#define overrideCrankingIacSetting_offset_hex 5c4
#define overrideCrankingIgnition_offset 516
#define overrideCrankingIgnition_offset_hex 204
#define PACK_MULT_AFR 1000
#define PACK_MULT_ANGLE 50
#define PACK_MULT_MS 300
#define PACK_MULT_PERCENT 100
#define PACK_MULT_PRESSURE 30
#define PACK_MULT_TEMPERATURE 100
#define PACK_MULT_VOLTAGE 1000
#define pauseEtbControl_offset 744
#define pauseEtbControl_offset_hex 2e8
#define PEDAL_TO_TPS_SIZE 8
@ -1851,6 +1858,64 @@
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "trg44", "trg45", "INVALID"
#define trigger_type_offset 524
#define trigger_type_offset_hex 20c
#define trigger_unusedBit_4_10_offset 528
#define trigger_unusedBit_4_10_offset_hex 210
#define trigger_unusedBit_4_11_offset 528
#define trigger_unusedBit_4_11_offset_hex 210
#define trigger_unusedBit_4_12_offset 528
#define trigger_unusedBit_4_12_offset_hex 210
#define trigger_unusedBit_4_13_offset 528
#define trigger_unusedBit_4_13_offset_hex 210
#define trigger_unusedBit_4_14_offset 528
#define trigger_unusedBit_4_14_offset_hex 210
#define trigger_unusedBit_4_15_offset 528
#define trigger_unusedBit_4_15_offset_hex 210
#define trigger_unusedBit_4_16_offset 528
#define trigger_unusedBit_4_16_offset_hex 210
#define trigger_unusedBit_4_17_offset 528
#define trigger_unusedBit_4_17_offset_hex 210
#define trigger_unusedBit_4_18_offset 528
#define trigger_unusedBit_4_18_offset_hex 210
#define trigger_unusedBit_4_19_offset 528
#define trigger_unusedBit_4_19_offset_hex 210
#define trigger_unusedBit_4_20_offset 528
#define trigger_unusedBit_4_20_offset_hex 210
#define trigger_unusedBit_4_21_offset 528
#define trigger_unusedBit_4_21_offset_hex 210
#define trigger_unusedBit_4_22_offset 528
#define trigger_unusedBit_4_22_offset_hex 210
#define trigger_unusedBit_4_23_offset 528
#define trigger_unusedBit_4_23_offset_hex 210
#define trigger_unusedBit_4_24_offset 528
#define trigger_unusedBit_4_24_offset_hex 210
#define trigger_unusedBit_4_25_offset 528
#define trigger_unusedBit_4_25_offset_hex 210
#define trigger_unusedBit_4_26_offset 528
#define trigger_unusedBit_4_26_offset_hex 210
#define trigger_unusedBit_4_27_offset 528
#define trigger_unusedBit_4_27_offset_hex 210
#define trigger_unusedBit_4_28_offset 528
#define trigger_unusedBit_4_28_offset_hex 210
#define trigger_unusedBit_4_29_offset 528
#define trigger_unusedBit_4_29_offset_hex 210
#define trigger_unusedBit_4_30_offset 528
#define trigger_unusedBit_4_30_offset_hex 210
#define trigger_unusedBit_4_31_offset 528
#define trigger_unusedBit_4_31_offset_hex 210
#define trigger_unusedBit_4_3_offset 528
#define trigger_unusedBit_4_3_offset_hex 210
#define trigger_unusedBit_4_4_offset 528
#define trigger_unusedBit_4_4_offset_hex 210
#define trigger_unusedBit_4_5_offset 528
#define trigger_unusedBit_4_5_offset_hex 210
#define trigger_unusedBit_4_6_offset 528
#define trigger_unusedBit_4_6_offset_hex 210
#define trigger_unusedBit_4_7_offset 528
#define trigger_unusedBit_4_7_offset_hex 210
#define trigger_unusedBit_4_8_offset 528
#define trigger_unusedBit_4_8_offset_hex 210
#define trigger_unusedBit_4_9_offset 528
#define trigger_unusedBit_4_9_offset_hex 210
#define trigger_unusedCustomIsSynchronizationNeeded_offset 528
#define trigger_unusedCustomIsSynchronizationNeeded_offset_hex 210
#define trigger_unusedCustomNeedSecondTriggerInput_offset 528
@ -1889,8 +1954,8 @@
#define triggerSimulatorPins2_offset_hex 2e1
#define triggerSimulatorPins3_offset 738
#define triggerSimulatorPins3_offset_hex 2e2
#define TS_FILE_VERSION 20190701
#define TS_OUTPUT_SIZE 356
#define TS_FILE_VERSION 20191221
#define TS_OUTPUT_SIZE 220
#define ts_show_cj125 true
#define ts_show_egt true
#define ts_show_etb true
@ -1900,7 +1965,7 @@
#define ts_show_hip9011 true
#define ts_show_joystick true
#define ts_show_lcd true
#define TS_SIGNATURE "rusEFI v1.07"
#define TS_SIGNATURE "rusEFI v1.08"
#define tunerStudioSerialSpeed_offset 728
#define tunerStudioSerialSpeed_offset_hex 2d8
#define twoWireBatchIgnition_offset 1476
@ -1947,6 +2012,68 @@
#define unusedAnotherOne_offset_hex 2e8
#define unusedAtOldBoardConfigurationEnd_offset 988
#define unusedAtOldBoardConfigurationEnd_offset_hex 3dc
#define unusedBit_247_10_offset 976
#define unusedBit_247_10_offset_hex 3d0
#define unusedBit_247_11_offset 976
#define unusedBit_247_11_offset_hex 3d0
#define unusedBit_247_12_offset 976
#define unusedBit_247_12_offset_hex 3d0
#define unusedBit_247_13_offset 976
#define unusedBit_247_13_offset_hex 3d0
#define unusedBit_247_14_offset 976
#define unusedBit_247_14_offset_hex 3d0
#define unusedBit_247_15_offset 976
#define unusedBit_247_15_offset_hex 3d0
#define unusedBit_247_16_offset 976
#define unusedBit_247_16_offset_hex 3d0
#define unusedBit_247_17_offset 976
#define unusedBit_247_17_offset_hex 3d0
#define unusedBit_247_18_offset 976
#define unusedBit_247_18_offset_hex 3d0
#define unusedBit_247_19_offset 976
#define unusedBit_247_19_offset_hex 3d0
#define unusedBit_247_20_offset 976
#define unusedBit_247_20_offset_hex 3d0
#define unusedBit_247_21_offset 976
#define unusedBit_247_21_offset_hex 3d0
#define unusedBit_247_22_offset 976
#define unusedBit_247_22_offset_hex 3d0
#define unusedBit_247_23_offset 976
#define unusedBit_247_23_offset_hex 3d0
#define unusedBit_247_24_offset 976
#define unusedBit_247_24_offset_hex 3d0
#define unusedBit_247_25_offset 976
#define unusedBit_247_25_offset_hex 3d0
#define unusedBit_247_26_offset 976
#define unusedBit_247_26_offset_hex 3d0
#define unusedBit_247_27_offset 976
#define unusedBit_247_27_offset_hex 3d0
#define unusedBit_247_28_offset 976
#define unusedBit_247_28_offset_hex 3d0
#define unusedBit_247_29_offset 976
#define unusedBit_247_29_offset_hex 3d0
#define unusedBit_247_2_offset 976
#define unusedBit_247_2_offset_hex 3d0
#define unusedBit_247_30_offset 976
#define unusedBit_247_30_offset_hex 3d0
#define unusedBit_247_31_offset 976
#define unusedBit_247_31_offset_hex 3d0
#define unusedBit_247_3_offset 976
#define unusedBit_247_3_offset_hex 3d0
#define unusedBit_247_4_offset 976
#define unusedBit_247_4_offset_hex 3d0
#define unusedBit_247_5_offset 976
#define unusedBit_247_5_offset_hex 3d0
#define unusedBit_247_6_offset 976
#define unusedBit_247_6_offset_hex 3d0
#define unusedBit_247_7_offset 976
#define unusedBit_247_7_offset_hex 3d0
#define unusedBit_247_8_offset 976
#define unusedBit_247_8_offset_hex 3d0
#define unusedBit_247_9_offset 976
#define unusedBit_247_9_offset_hex 3d0
#define unusedBit_34_31_offset 76
#define unusedBit_34_31_offset_hex 4c
#define unusedErrorPin_offset 2040
#define unusedErrorPin_offset_hex 7f8
#define unusedFlexFuelSensor_offset 3100

View File

@ -264,7 +264,6 @@
// todo: switch to continues ADC conversion for slow ADC?
// https://github.com/rusefi/rusefi/issues/630
#define EFI_INTERNAL_SLOW_ADC_PWM &PWMD1
// todo: switch to continues ADC conversion for fast ADC?
#define EFI_INTERNAL_FAST_ADC_PWM &PWMD2

View File

@ -19,7 +19,7 @@ EXTERN_ENGINE
static void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
}
void setSerialConfigurationOverrides(void) {
boardConfiguration->useSerialPort = true;
engineConfiguration->useSerialPort = true;
//UART
@ -36,11 +36,11 @@ void setPinConfigurationOverrides(void) {
engineConfiguration->baroSensor.hwChannel = EFI_ADC_NONE;
engineConfiguration->afr.hwChannel = EFI_ADC_NONE;
boardConfiguration->ignitionPins[8] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[9] = GPIO_UNASSIGNED;
boardConfiguration->mainRelayPin = GPIO_UNASSIGNED;
boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
boardConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[8] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[9] = GPIO_UNASSIGNED;
engineConfiguration->mainRelayPin = GPIO_UNASSIGNED;
engineConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
}
void setBoardConfigurationOverrides(void) {
@ -49,33 +49,33 @@ void setBoardConfigurationOverrides(void) {
engineConfiguration->dizzySparkOutputPin = GPIO_UNASSIGNED;
engineConfiguration->externalKnockSenseAdc = EFI_ADC_NONE;
engineConfiguration->displayMode = DM_NONE;
boardConfiguration->HD44780_rs = GPIO_UNASSIGNED;
boardConfiguration->HD44780_e = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_rs = GPIO_UNASSIGNED;
engineConfiguration->HD44780_e = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
for (int i = 0; i < DIGIPOT_COUNT; i++) {
boardConfiguration->digitalPotentiometerChipSelect[i] = GPIO_UNASSIGNED;
engineConfiguration->digitalPotentiometerChipSelect[i] = GPIO_UNASSIGNED;
}
boardConfiguration->triggerSimulatorPins[1] = GPIO_UNASSIGNED;
boardConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
boardConfiguration->triggerSimulatorPinModes[1] = OM_DEFAULT;
boardConfiguration->triggerSimulatorPinModes[2] = OM_DEFAULT;
boardConfiguration->digitalPotentiometerSpiDevice = SPI_NONE;
boardConfiguration->max31855spiDevice = SPI_NONE;
engineConfiguration->triggerSimulatorPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerSimulatorPinModes[1] = OM_DEFAULT;
engineConfiguration->triggerSimulatorPinModes[2] = OM_DEFAULT;
engineConfiguration->digitalPotentiometerSpiDevice = SPI_NONE;
engineConfiguration->max31855spiDevice = SPI_NONE;
engineConfiguration->warningLedPin = GPIO_UNASSIGNED;
engineConfiguration->runningLedPin = GPIO_UNASSIGNED;
boardConfiguration->useStepperIdle = false;
boardConfiguration->idle.stepperDirectionPin = GPIO_UNASSIGNED;
boardConfiguration->idle.stepperStepPin = GPIO_UNASSIGNED;
engineConfiguration->useStepperIdle = false;
engineConfiguration->idle.stepperDirectionPin = GPIO_UNASSIGNED;
engineConfiguration->idle.stepperStepPin = GPIO_UNASSIGNED;
engineConfiguration->stepperEnablePin = GPIO_UNASSIGNED;
engineConfiguration->stepperEnablePinMode = OM_DEFAULT;
boardConfiguration->injectionPins[8] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[9] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[10] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[11] = GPIO_UNASSIGNED;
boardConfiguration->isHip9011Enabled = false;
engineConfiguration->injectionPins[8] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[9] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[10] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[11] = GPIO_UNASSIGNED;
engineConfiguration->isHip9011Enabled = false;
}

View File

@ -19,32 +19,32 @@
EXTERN_ENGINE;
static void setInjectorPins() {
boardConfiguration->injectionPins[0] = GPIOE_14;
boardConfiguration->injectionPins[1] = GPIOE_13;
boardConfiguration->injectionPins[2] = GPIOE_12;
boardConfiguration->injectionPins[3] = GPIOE_11;
engineConfiguration->injectionPins[0] = GPIOE_14;
engineConfiguration->injectionPins[1] = GPIOE_13;
engineConfiguration->injectionPins[2] = GPIOE_12;
engineConfiguration->injectionPins[3] = GPIOE_11;
// Disable remainder
for (int i = 4; i < INJECTION_PIN_COUNT;i++) {
boardConfiguration->injectionPins[i] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[i] = GPIO_UNASSIGNED;
}
boardConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPinMode = OM_DEFAULT;
}
static void setIgnitionPins() {
// todo: I wonder if these are not right in light of the network rename and the +12 VP issue?
boardConfiguration->ignitionPins[0] = GPIOD_4;
boardConfiguration->ignitionPins[1] = GPIOD_3;
boardConfiguration->ignitionPins[2] = GPIOD_2;
boardConfiguration->ignitionPins[3] = GPIOD_1;
engineConfiguration->ignitionPins[0] = GPIOD_4;
engineConfiguration->ignitionPins[1] = GPIOD_3;
engineConfiguration->ignitionPins[2] = GPIOD_2;
engineConfiguration->ignitionPins[3] = GPIOD_1;
// disable remainder
for (int i = 4; i < IGNITION_PIN_COUNT; i++) {
boardConfiguration->ignitionPins[i] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[i] = GPIO_UNASSIGNED;
}
boardConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPinMode = OM_DEFAULT;
}
static void setLedPins() {
@ -55,7 +55,7 @@ static void setLedPins() {
engineConfiguration->communicationLedPin = GPIOE_2; // d23 = blue
#endif /* EFI_COMMUNICATION_PIN */
engineConfiguration->runningLedPin = GPIOE_4; // d22 = green
boardConfiguration->triggerErrorPin = GPIOE_1; // d27 = orange
engineConfiguration->triggerErrorPin = GPIOE_1; // d27 = orange
}
static void setupVbatt() {
@ -71,12 +71,12 @@ static void setupVbatt() {
static void setupTle8888() {
// Enable spi3
boardConfiguration->is_enabled_spi_3 = true;
engineConfiguration->is_enabled_spi_3 = true;
// Wire up spi3
boardConfiguration->spi3mosiPin = GPIOB_5;
boardConfiguration->spi3misoPin = GPIOB_4;
boardConfiguration->spi3sckPin = GPIOB_3;
engineConfiguration->spi3mosiPin = GPIOB_5;
engineConfiguration->spi3misoPin = GPIOB_4;
engineConfiguration->spi3sckPin = GPIOB_3;
// Chip select
engineConfiguration->tle8888_cs = GPIOD_5;
@ -124,9 +124,9 @@ static void setupEtb() {
static void setupDefaultSensorInputs() {
// trigger inputs
// tle8888 VR conditioner
boardConfiguration->triggerInputPins[0] = GPIOC_6;
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
boardConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[0] = GPIOC_6;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED;
// Direct hall-only cam input
engineConfiguration->camInputs[0] = GPIOA_5;
@ -157,7 +157,7 @@ void setPinConfigurationOverrides(void) {
}
void setSerialConfigurationOverrides(void) {
boardConfiguration->useSerialPort = false;
engineConfiguration->useSerialPort = false;
engineConfiguration->binarySerialTxPin = GPIO_UNASSIGNED;
engineConfiguration->binarySerialRxPin = GPIO_UNASSIGNED;
engineConfiguration->consoleSerialTxPin = GPIO_UNASSIGNED;
@ -185,16 +185,16 @@ void setBoardConfigurationOverrides(void) {
// todo: maybe even set EFI_MAIN_RELAY_CONTROL to FALSE for MRE configuration
// TLE8888 half bridges (pushpull, lowside, or high-low) TLE8888_IN11 / TLE8888_OUT21
// GPIOE_8: "35 - GP Out 1"
boardConfiguration->fuelPumpPin = GPIOE_8;
engineConfiguration->fuelPumpPin = GPIOE_8;
// TLE8888 high current low side: VVT2 IN9 / OUT5
// GPIOE_10: "3 - Lowside 2"
boardConfiguration->idle.solenoidPin = GPIOE_10;
engineConfiguration->idle.solenoidPin = GPIOE_10;
// TLE8888_PIN_22: "34 - GP Out 2"
boardConfiguration->fanPin = TLE8888_PIN_22;
engineConfiguration->fanPin = TLE8888_PIN_22;
// "required" hardware is done - set some reasonable defaults
setupDefaultSensorInputs();

View File

@ -24,12 +24,12 @@ void setPinConfigurationOverrides(void) {
}
void setSerialConfigurationOverrides(void) {
boardConfiguration->useSerialPort = true;
engineConfiguration->useSerialPort = true;
engineConfiguration->binarySerialTxPin = GPIOD_8;
engineConfiguration->binarySerialRxPin = GPIOD_9;
engineConfiguration->consoleSerialTxPin = GPIOD_8;
engineConfiguration->consoleSerialRxPin = GPIOD_9;
boardConfiguration->tunerStudioSerialSpeed = SERIAL_SPEED;
engineConfiguration->tunerStudioSerialSpeed = SERIAL_SPEED;
engineConfiguration->uartConsoleSerialSpeed = SERIAL_SPEED;
}
@ -56,28 +56,28 @@ void setBoardConfigurationOverrides(void) {
engineConfiguration->dizzySparkOutputPin = GPIO_UNASSIGNED;
engineConfiguration->externalKnockSenseAdc = EFI_ADC_NONE;
engineConfiguration->displayMode = DM_NONE;
boardConfiguration->HD44780_rs = GPIO_UNASSIGNED;
boardConfiguration->HD44780_e = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_rs = GPIO_UNASSIGNED;
engineConfiguration->HD44780_e = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
for (int i = 0; i < DIGIPOT_COUNT ; i++) {
boardConfiguration->digitalPotentiometerChipSelect[i] = GPIO_UNASSIGNED;
engineConfiguration->digitalPotentiometerChipSelect[i] = GPIO_UNASSIGNED;
}
boardConfiguration->triggerSimulatorPins[1] = GPIO_UNASSIGNED;
boardConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
boardConfiguration->triggerSimulatorPinModes[1] = OM_DEFAULT;
boardConfiguration->triggerSimulatorPinModes[2] = OM_DEFAULT;
engineConfiguration->triggerSimulatorPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerSimulatorPinModes[1] = OM_DEFAULT;
engineConfiguration->triggerSimulatorPinModes[2] = OM_DEFAULT;
engineConfiguration->vehicleSpeedSensorInputPin = GPIO_UNASSIGNED;
boardConfiguration->digitalPotentiometerSpiDevice = SPI_NONE;
boardConfiguration->max31855spiDevice = SPI_NONE;
engineConfiguration->digitalPotentiometerSpiDevice = SPI_NONE;
engineConfiguration->max31855spiDevice = SPI_NONE;
/////////////////////////////////////////////////////////
boardConfiguration->is_enabled_spi_1 = false;
boardConfiguration->is_enabled_spi_2 = false;
boardConfiguration->is_enabled_spi_3 = false;
engineConfiguration->is_enabled_spi_1 = false;
engineConfiguration->is_enabled_spi_2 = false;
engineConfiguration->is_enabled_spi_3 = false;
}
void setAdcChannelOverrides(void) {

View File

@ -36,6 +36,16 @@
#define BOARD_ST_NUCLEO144_H743ZI
#define BOARD_NAME "STMicroelectronics STM32 Nucleo144-H743ZI"
/*
* input-floating is the default pin mode. input-output boards should provision appropriate pull-ups/pull-downs.
*/
#define EFI_PIN_MODE_DEFAULT PIN_MODE_INPUT
#define EFI_DR_DEFAULT PIN_PUPDR_FLOATING
// See https://github.com/rusefi/rusefi/issues/397
#define DEFAULT_GPIO_SPEED PIN_OSPEED_HIGH
/*
* Ethernet PHY type.
*/
@ -572,13 +582,13 @@
* PA14 - SWCLK (alternate 0).
* PA15 - ZIO_D20 I2S3_WS (input pullup).
*/
#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_ZIO_D32) | \
#define VAL_GPIOA_MODER (EFI_PIN_MODE_DEFAULT(GPIOA_ZIO_D32) | \
PIN_MODE_ALTERNATE(GPIOA_RMII_REF_CLK) |\
PIN_MODE_ALTERNATE(GPIOA_RMII_MDIO) | \
PIN_MODE_INPUT(GPIOA_ARD_A0) | \
PIN_MODE_INPUT(GPIOA_ZIO_D24) | \
PIN_MODE_INPUT(GPIOA_ARD_D13) | \
PIN_MODE_INPUT(GPIOA_ARD_D12) | \
EFI_PIN_MODE_DEFAULT(GPIOA_ARD_A0) | \
EFI_PIN_MODE_DEFAULT(GPIOA_ZIO_D24) | \
EFI_PIN_MODE_DEFAULT(GPIOA_ARD_D13) | \
EFI_PIN_MODE_DEFAULT(GPIOA_ARD_D12) | \
PIN_MODE_ALTERNATE(GPIOA_ARD_D11) | \
PIN_MODE_ALTERNATE(GPIOA_USB_SOF) | \
PIN_MODE_ANALOG(GPIOA_USB_VBUS) | \
@ -587,7 +597,7 @@
PIN_MODE_ALTERNATE(GPIOA_USB_DP) | \
PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \
PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \
PIN_MODE_INPUT(GPIOA_ZIO_D20))
EFI_PIN_MODE_DEFAULT(GPIOA_ZIO_D20))
#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_ZIO_D32) | \
PIN_OTYPE_PUSHPULL(GPIOA_RMII_REF_CLK) |\
PIN_OTYPE_PUSHPULL(GPIOA_RMII_MDIO) | \
@ -604,37 +614,37 @@
PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \
PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \
PIN_OTYPE_PUSHPULL(GPIOA_ZIO_D20))
#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_HIGH(GPIOA_ZIO_D32) | \
PIN_OSPEED_HIGH(GPIOA_RMII_REF_CLK) | \
PIN_OSPEED_HIGH(GPIOA_RMII_MDIO) | \
PIN_OSPEED_HIGH(GPIOA_ARD_A0) | \
PIN_OSPEED_HIGH(GPIOA_ZIO_D24) | \
PIN_OSPEED_HIGH(GPIOA_ARD_D13) | \
PIN_OSPEED_HIGH(GPIOA_ARD_D12) | \
PIN_OSPEED_HIGH(GPIOA_ARD_D11) | \
PIN_OSPEED_HIGH(GPIOA_USB_SOF) | \
PIN_OSPEED_HIGH(GPIOA_USB_VBUS) | \
PIN_OSPEED_HIGH(GPIOA_USB_ID) | \
PIN_OSPEED_HIGH(GPIOA_USB_DM) | \
PIN_OSPEED_HIGH(GPIOA_USB_DP) | \
PIN_OSPEED_HIGH(GPIOA_SWDIO) | \
PIN_OSPEED_HIGH(GPIOA_SWCLK) | \
PIN_OSPEED_HIGH(GPIOA_ZIO_D20))
#define VAL_GPIOA_OSPEEDR (DEFAULT_GPIO_SPEED(GPIOA_ZIO_D32) | \
DEFAULT_GPIO_SPEED(GPIOA_RMII_REF_CLK) | \
DEFAULT_GPIO_SPEED(GPIOA_RMII_MDIO) | \
DEFAULT_GPIO_SPEED(GPIOA_ARD_A0) | \
DEFAULT_GPIO_SPEED(GPIOA_ZIO_D24) | \
DEFAULT_GPIO_SPEED(GPIOA_ARD_D13) | \
DEFAULT_GPIO_SPEED(GPIOA_ARD_D12) | \
DEFAULT_GPIO_SPEED(GPIOA_ARD_D11) | \
DEFAULT_GPIO_SPEED(GPIOA_USB_SOF) | \
DEFAULT_GPIO_SPEED(GPIOA_USB_VBUS) | \
DEFAULT_GPIO_SPEED(GPIOA_USB_ID) | \
DEFAULT_GPIO_SPEED(GPIOA_USB_DM) | \
DEFAULT_GPIO_SPEED(GPIOA_USB_DP) | \
DEFAULT_GPIO_SPEED(GPIOA_SWDIO) | \
DEFAULT_GPIO_SPEED(GPIOA_SWCLK) | \
DEFAULT_GPIO_SPEED(GPIOA_ZIO_D20))
#define VAL_GPIOA_PUPDR (PIN_PUPDR_PULLUP(GPIOA_ZIO_D32) | \
PIN_PUPDR_FLOATING(GPIOA_RMII_REF_CLK) |\
EFI_DR_DEFAULT(GPIOA_RMII_REF_CLK) |\
PIN_PUPDR_PULLUP(GPIOA_RMII_MDIO) | \
PIN_PUPDR_PULLUP(GPIOA_ARD_A0) | \
PIN_PUPDR_PULLUP(GPIOA_ZIO_D24) | \
PIN_PUPDR_PULLUP(GPIOA_ARD_D13) | \
PIN_PUPDR_PULLUP(GPIOA_ARD_D12) | \
PIN_PUPDR_PULLUP(GPIOA_ARD_D11) | \
PIN_PUPDR_FLOATING(GPIOA_USB_SOF) | \
PIN_PUPDR_FLOATING(GPIOA_USB_VBUS) | \
PIN_PUPDR_FLOATING(GPIOA_USB_ID) | \
PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \
PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \
PIN_PUPDR_FLOATING(GPIOA_SWDIO) | \
PIN_PUPDR_FLOATING(GPIOA_SWCLK) | \
EFI_DR_DEFAULT(GPIOA_USB_SOF) | \
EFI_DR_DEFAULT(GPIOA_USB_VBUS) | \
EFI_DR_DEFAULT(GPIOA_USB_ID) | \
EFI_DR_DEFAULT(GPIOA_USB_DM) | \
EFI_DR_DEFAULT(GPIOA_USB_DP) | \
EFI_DR_DEFAULT(GPIOA_SWDIO) | \
EFI_DR_DEFAULT(GPIOA_SWCLK) | \
PIN_PUPDR_PULLUP(GPIOA_ZIO_D20))
#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_ZIO_D32) | \
PIN_ODR_HIGH(GPIOA_RMII_REF_CLK) | \
@ -690,21 +700,21 @@
* PB15 - ZIO_D17 I2S2_SD (input pullup).
*/
#define VAL_GPIOB_MODER (PIN_MODE_OUTPUT(GPIOB_ZIO_D33) | \
PIN_MODE_INPUT(GPIOB_ZIO_A6) | \
PIN_MODE_INPUT(GPIOB_ZIO_D27) | \
PIN_MODE_INPUT(GPIOB_ZIO_D23) | \
PIN_MODE_INPUT(GPIOB_ZIO_D25) | \
PIN_MODE_INPUT(GPIOB_ZIO_D22) | \
PIN_MODE_INPUT(GPIOB_ZIO_D26) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ZIO_A6) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ZIO_D27) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ZIO_D23) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ZIO_D25) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ZIO_D22) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ZIO_D26) | \
PIN_MODE_OUTPUT(GPIOB_LED2) | \
PIN_MODE_INPUT(GPIOB_ARD_D15) | \
PIN_MODE_INPUT(GPIOB_ARD_D14) | \
PIN_MODE_INPUT(GPIOB_ZIO_D36) | \
PIN_MODE_INPUT(GPIOB_ZIO_D35) | \
PIN_MODE_INPUT(GPIOB_ZIO_D19) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ARD_D15) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ARD_D14) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ZIO_D36) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ZIO_D35) | \
EFI_PIN_MODE_DEFAULT(GPIOB_ZIO_D19) | \
PIN_MODE_ALTERNATE(GPIOB_ZIO_D18) | \
PIN_MODE_OUTPUT(GPIOB_LED3) | \
PIN_MODE_INPUT(GPIOB_ZIO_D17))
EFI_PIN_MODE_DEFAULT(GPIOB_ZIO_D17))
#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_ZIO_D33) | \
PIN_OTYPE_PUSHPULL(GPIOB_ZIO_A6) | \
PIN_OTYPE_PUSHPULL(GPIOB_ZIO_D27) | \
@ -721,37 +731,37 @@
PIN_OTYPE_PUSHPULL(GPIOB_ZIO_D18) | \
PIN_OTYPE_PUSHPULL(GPIOB_LED3) | \
PIN_OTYPE_PUSHPULL(GPIOB_ZIO_D17))
#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_HIGH(GPIOB_ZIO_D33) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_A6) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_D27) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_D23) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_D25) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_D22) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_D26) | \
PIN_OSPEED_HIGH(GPIOB_LED2) | \
PIN_OSPEED_HIGH(GPIOB_ARD_D15) | \
PIN_OSPEED_HIGH(GPIOB_ARD_D14) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_D36) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_D35) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_D19) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_D18) | \
PIN_OSPEED_HIGH(GPIOB_LED3) | \
PIN_OSPEED_HIGH(GPIOB_ZIO_D17))
#define VAL_GPIOB_PUPDR (PIN_PUPDR_FLOATING(GPIOB_ZIO_D33) | \
#define VAL_GPIOB_OSPEEDR (DEFAULT_GPIO_SPEED(GPIOB_ZIO_D33) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_A6) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_D27) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_D23) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_D25) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_D22) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_D26) | \
DEFAULT_GPIO_SPEED(GPIOB_LED2) | \
DEFAULT_GPIO_SPEED(GPIOB_ARD_D15) | \
DEFAULT_GPIO_SPEED(GPIOB_ARD_D14) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_D36) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_D35) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_D19) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_D18) | \
DEFAULT_GPIO_SPEED(GPIOB_LED3) | \
DEFAULT_GPIO_SPEED(GPIOB_ZIO_D17))
#define VAL_GPIOB_PUPDR (EFI_DR_DEFAULT(GPIOB_ZIO_D33) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_A6) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_D27) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_D23) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_D25) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_D22) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_D26) | \
PIN_PUPDR_FLOATING(GPIOB_LED2) | \
EFI_DR_DEFAULT(GPIOB_LED2) | \
PIN_PUPDR_PULLUP(GPIOB_ARD_D15) | \
PIN_PUPDR_PULLUP(GPIOB_ARD_D14) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_D36) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_D35) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_D19) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_D18) | \
PIN_PUPDR_FLOATING(GPIOB_LED3) | \
EFI_DR_DEFAULT(GPIOB_LED3) | \
PIN_PUPDR_PULLUP(GPIOB_ZIO_D17))
#define VAL_GPIOB_ODR (PIN_ODR_LOW(GPIOB_ZIO_D33) | \
PIN_ODR_HIGH(GPIOB_ZIO_A6) | \
@ -806,22 +816,22 @@
* PC14 - OSC32_IN (input floating).
* PC15 - OSC32_OUT (input floating).
*/
#define VAL_GPIOC_MODER (PIN_MODE_INPUT(GPIOC_ARD_A1) | \
#define VAL_GPIOC_MODER (EFI_PIN_MODE_DEFAULT(GPIOC_ARD_A1) | \
PIN_MODE_ALTERNATE(GPIOC_RMII_MDC) | \
PIN_MODE_INPUT(GPIOC_ZIO_A7) | \
PIN_MODE_INPUT(GPIOC_ARD_A2) | \
EFI_PIN_MODE_DEFAULT(GPIOC_ZIO_A7) | \
EFI_PIN_MODE_DEFAULT(GPIOC_ARD_A2) | \
PIN_MODE_ALTERNATE(GPIOC_RMII_RXD0) | \
PIN_MODE_ALTERNATE(GPIOC_RMII_RXD1) | \
PIN_MODE_INPUT(GPIOC_ZIO_D16) | \
PIN_MODE_INPUT(GPIOC_ZIO_D21) | \
PIN_MODE_INPUT(GPIOC_ZIO_D43) | \
PIN_MODE_INPUT(GPIOC_ZIO_D44) | \
PIN_MODE_INPUT(GPIOC_ZIO_D45) | \
PIN_MODE_INPUT(GPIOC_ZIO_D46) | \
PIN_MODE_INPUT(GPIOC_ZIO_D47) | \
PIN_MODE_INPUT(GPIOC_BUTTON) | \
PIN_MODE_INPUT(GPIOC_OSC32_IN) | \
PIN_MODE_INPUT(GPIOC_OSC32_OUT))
EFI_PIN_MODE_DEFAULT(GPIOC_ZIO_D16) | \
EFI_PIN_MODE_DEFAULT(GPIOC_ZIO_D21) | \
EFI_PIN_MODE_DEFAULT(GPIOC_ZIO_D43) | \
EFI_PIN_MODE_DEFAULT(GPIOC_ZIO_D44) | \
EFI_PIN_MODE_DEFAULT(GPIOC_ZIO_D45) | \
EFI_PIN_MODE_DEFAULT(GPIOC_ZIO_D46) | \
EFI_PIN_MODE_DEFAULT(GPIOC_ZIO_D47) | \
EFI_PIN_MODE_DEFAULT(GPIOC_BUTTON) | \
EFI_PIN_MODE_DEFAULT(GPIOC_OSC32_IN) | \
EFI_PIN_MODE_DEFAULT(GPIOC_OSC32_OUT))
#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_ARD_A1) | \
PIN_OTYPE_PUSHPULL(GPIOC_RMII_MDC) | \
PIN_OTYPE_PUSHPULL(GPIOC_ZIO_A7) | \
@ -838,28 +848,28 @@
PIN_OTYPE_PUSHPULL(GPIOC_BUTTON) | \
PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \
PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_ARD_A1) | \
PIN_OSPEED_HIGH(GPIOC_RMII_MDC) | \
PIN_OSPEED_HIGH(GPIOC_ZIO_A7) | \
PIN_OSPEED_HIGH(GPIOC_ARD_A2) | \
PIN_OSPEED_HIGH(GPIOC_RMII_RXD0) | \
PIN_OSPEED_HIGH(GPIOC_RMII_RXD1) | \
PIN_OSPEED_HIGH(GPIOC_ZIO_D16) | \
PIN_OSPEED_HIGH(GPIOC_ZIO_D21) | \
PIN_OSPEED_HIGH(GPIOC_ZIO_D43) | \
PIN_OSPEED_HIGH(GPIOC_ZIO_D44) | \
PIN_OSPEED_HIGH(GPIOC_ZIO_D45) | \
PIN_OSPEED_HIGH(GPIOC_ZIO_D46) | \
PIN_OSPEED_HIGH(GPIOC_ZIO_D47) | \
PIN_OSPEED_HIGH(GPIOC_BUTTON) | \
#define VAL_GPIOC_OSPEEDR (DEFAULT_GPIO_SPEED(GPIOC_ARD_A1) | \
DEFAULT_GPIO_SPEED(GPIOC_RMII_MDC) | \
DEFAULT_GPIO_SPEED(GPIOC_ZIO_A7) | \
DEFAULT_GPIO_SPEED(GPIOC_ARD_A2) | \
DEFAULT_GPIO_SPEED(GPIOC_RMII_RXD0) | \
DEFAULT_GPIO_SPEED(GPIOC_RMII_RXD1) | \
DEFAULT_GPIO_SPEED(GPIOC_ZIO_D16) | \
DEFAULT_GPIO_SPEED(GPIOC_ZIO_D21) | \
DEFAULT_GPIO_SPEED(GPIOC_ZIO_D43) | \
DEFAULT_GPIO_SPEED(GPIOC_ZIO_D44) | \
DEFAULT_GPIO_SPEED(GPIOC_ZIO_D45) | \
DEFAULT_GPIO_SPEED(GPIOC_ZIO_D46) | \
DEFAULT_GPIO_SPEED(GPIOC_ZIO_D47) | \
DEFAULT_GPIO_SPEED(GPIOC_BUTTON) | \
PIN_OSPEED_VERYLOW(GPIOC_OSC32_IN) | \
PIN_OSPEED_VERYLOW(GPIOC_OSC32_OUT))
#define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLUP(GPIOC_ARD_A1) | \
PIN_PUPDR_FLOATING(GPIOC_RMII_MDC) | \
EFI_DR_DEFAULT(GPIOC_RMII_MDC) | \
PIN_PUPDR_PULLUP(GPIOC_ZIO_A7) | \
PIN_PUPDR_PULLUP(GPIOC_ARD_A2) | \
PIN_PUPDR_FLOATING(GPIOC_RMII_RXD0) | \
PIN_PUPDR_FLOATING(GPIOC_RMII_RXD1) | \
EFI_DR_DEFAULT(GPIOC_RMII_RXD0) | \
EFI_DR_DEFAULT(GPIOC_RMII_RXD1) | \
PIN_PUPDR_PULLUP(GPIOC_ZIO_D16) | \
PIN_PUPDR_PULLUP(GPIOC_ZIO_D21) | \
PIN_PUPDR_PULLUP(GPIOC_ZIO_D43) | \
@ -867,9 +877,9 @@
PIN_PUPDR_PULLUP(GPIOC_ZIO_D45) | \
PIN_PUPDR_PULLUP(GPIOC_ZIO_D46) | \
PIN_PUPDR_PULLUP(GPIOC_ZIO_D47) | \
PIN_PUPDR_FLOATING(GPIOC_BUTTON) | \
PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \
PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
EFI_DR_DEFAULT(GPIOC_BUTTON) | \
EFI_DR_DEFAULT(GPIOC_OSC32_IN) | \
EFI_DR_DEFAULT(GPIOC_OSC32_OUT))
#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_ARD_A1) | \
PIN_ODR_HIGH(GPIOC_RMII_MDC) | \
PIN_ODR_HIGH(GPIOC_ZIO_A7) | \
@ -923,22 +933,22 @@
* PD14 - ARD_D10 SPI1_NSS (input pullup).
* PD15 - ARD_D9 TIM4_CH4 (input pullup).
*/
#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_ZIO_D67) | \
PIN_MODE_INPUT(GPIOD_ZIO_D66) | \
PIN_MODE_INPUT(GPIOD_ZIO_D48) | \
PIN_MODE_INPUT(GPIOD_ZIO_D55) | \
PIN_MODE_INPUT(GPIOD_ZIO_D54) | \
PIN_MODE_INPUT(GPIOD_ZIO_D53) | \
PIN_MODE_INPUT(GPIOD_ZIO_D52) | \
PIN_MODE_INPUT(GPIOD_ZIO_D51) | \
#define VAL_GPIOD_MODER (EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D67) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D66) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D48) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D55) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D54) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D53) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D52) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D51) | \
PIN_MODE_ALTERNATE(GPIOD_USART3_RX) | \
PIN_MODE_ALTERNATE(GPIOD_USART3_TX) | \
PIN_MODE_INPUT(GPIOD_PIN10) | \
PIN_MODE_INPUT(GPIOD_ZIO_D30) | \
PIN_MODE_INPUT(GPIOD_ZIO_D29) | \
PIN_MODE_INPUT(GPIOD_ZIO_D28) | \
PIN_MODE_INPUT(GPIOD_ARD_D10) | \
PIN_MODE_INPUT(GPIOD_ARD_D9))
EFI_PIN_MODE_DEFAULT(GPIOD_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D30) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D29) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ZIO_D28) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ARD_D10) | \
EFI_PIN_MODE_DEFAULT(GPIOD_ARD_D9))
#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_ZIO_D67) | \
PIN_OTYPE_PUSHPULL(GPIOD_ZIO_D66) | \
PIN_OTYPE_PUSHPULL(GPIOD_ZIO_D48) | \
@ -955,22 +965,22 @@
PIN_OTYPE_PUSHPULL(GPIOD_ZIO_D28) | \
PIN_OTYPE_PUSHPULL(GPIOD_ARD_D10) | \
PIN_OTYPE_PUSHPULL(GPIOD_ARD_D9))
#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_HIGH(GPIOD_ZIO_D67) | \
PIN_OSPEED_HIGH(GPIOD_ZIO_D66) | \
PIN_OSPEED_HIGH(GPIOD_ZIO_D48) | \
PIN_OSPEED_HIGH(GPIOD_ZIO_D55) | \
PIN_OSPEED_HIGH(GPIOD_ZIO_D54) | \
PIN_OSPEED_HIGH(GPIOD_ZIO_D53) | \
PIN_OSPEED_HIGH(GPIOD_ZIO_D52) | \
PIN_OSPEED_HIGH(GPIOD_ZIO_D51) | \
PIN_OSPEED_HIGH(GPIOD_USART3_RX) | \
PIN_OSPEED_HIGH(GPIOD_USART3_TX) | \
#define VAL_GPIOD_OSPEEDR (DEFAULT_GPIO_SPEED(GPIOD_ZIO_D67) | \
DEFAULT_GPIO_SPEED(GPIOD_ZIO_D66) | \
DEFAULT_GPIO_SPEED(GPIOD_ZIO_D48) | \
DEFAULT_GPIO_SPEED(GPIOD_ZIO_D55) | \
DEFAULT_GPIO_SPEED(GPIOD_ZIO_D54) | \
DEFAULT_GPIO_SPEED(GPIOD_ZIO_D53) | \
DEFAULT_GPIO_SPEED(GPIOD_ZIO_D52) | \
DEFAULT_GPIO_SPEED(GPIOD_ZIO_D51) | \
DEFAULT_GPIO_SPEED(GPIOD_USART3_RX) | \
DEFAULT_GPIO_SPEED(GPIOD_USART3_TX) | \
PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \
PIN_OSPEED_HIGH(GPIOD_ZIO_D30) | \
PIN_OSPEED_HIGH(GPIOD_ZIO_D29) | \
PIN_OSPEED_HIGH(GPIOD_ZIO_D28) | \
PIN_OSPEED_HIGH(GPIOD_ARD_D10) | \
PIN_OSPEED_HIGH(GPIOD_ARD_D9))
DEFAULT_GPIO_SPEED(GPIOD_ZIO_D30) | \
DEFAULT_GPIO_SPEED(GPIOD_ZIO_D29) | \
DEFAULT_GPIO_SPEED(GPIOD_ZIO_D28) | \
DEFAULT_GPIO_SPEED(GPIOD_ARD_D10) | \
DEFAULT_GPIO_SPEED(GPIOD_ARD_D9))
#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_ZIO_D67) | \
PIN_PUPDR_PULLUP(GPIOD_ZIO_D66) | \
PIN_PUPDR_PULLUP(GPIOD_ZIO_D48) | \
@ -979,8 +989,8 @@
PIN_PUPDR_PULLUP(GPIOD_ZIO_D53) | \
PIN_PUPDR_PULLUP(GPIOD_ZIO_D52) | \
PIN_PUPDR_PULLUP(GPIOD_ZIO_D51) | \
PIN_PUPDR_FLOATING(GPIOD_USART3_RX) | \
PIN_PUPDR_FLOATING(GPIOD_USART3_TX) | \
EFI_DR_DEFAULT(GPIOD_USART3_RX) | \
EFI_DR_DEFAULT(GPIOD_USART3_TX) | \
PIN_PUPDR_PULLUP(GPIOD_PIN10) | \
PIN_PUPDR_PULLUP(GPIOD_ZIO_D30) | \
PIN_PUPDR_PULLUP(GPIOD_ZIO_D29) | \
@ -1040,22 +1050,22 @@
* PE14 - ZIO_D38 (input pullup).
* PE15 - ZIO_D37 TIM1_BKIN1 (input pullup).
*/
#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_ZIO_D34) | \
PIN_MODE_INPUT(GPIOE_PIN1) | \
PIN_MODE_INPUT(GPIOE_ZIO_D31) | \
PIN_MODE_INPUT(GPIOE_ZIO_D60) | \
PIN_MODE_INPUT(GPIOE_ZIO_D57) | \
PIN_MODE_INPUT(GPIOE_ZIO_D58) | \
PIN_MODE_INPUT(GPIOE_ZIO_D59) | \
PIN_MODE_INPUT(GPIOE_ZIO_D41) | \
PIN_MODE_INPUT(GPIOE_ZIO_D42) | \
PIN_MODE_INPUT(GPIOE_ARD_D6) | \
PIN_MODE_INPUT(GPIOE_ZIO_D40) | \
PIN_MODE_INPUT(GPIOE_ARD_D5) | \
PIN_MODE_INPUT(GPIOE_ZIO_D39) | \
PIN_MODE_INPUT(GPIOE_ARD_D3) | \
PIN_MODE_INPUT(GPIOE_ZIO_D38) | \
PIN_MODE_INPUT(GPIOE_ZIO_D37))
#define VAL_GPIOE_MODER (EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D34) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D31) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D60) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D57) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D58) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D59) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D41) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D42) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ARD_D6) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D40) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ARD_D5) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D39) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ARD_D3) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D38) | \
EFI_PIN_MODE_DEFAULT(GPIOE_ZIO_D37))
#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_ZIO_D34) | \
PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOE_ZIO_D31) | \
@ -1072,22 +1082,22 @@
PIN_OTYPE_PUSHPULL(GPIOE_ARD_D3) | \
PIN_OTYPE_PUSHPULL(GPIOE_ZIO_D38) | \
PIN_OTYPE_PUSHPULL(GPIOE_ZIO_D37))
#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_HIGH(GPIOE_ZIO_D34) | \
#define VAL_GPIOE_OSPEEDR (DEFAULT_GPIO_SPEED(GPIOE_ZIO_D34) | \
PIN_OSPEED_VERYLOW(GPIOE_PIN1) | \
PIN_OSPEED_HIGH(GPIOE_ZIO_D31) | \
PIN_OSPEED_HIGH(GPIOE_ZIO_D60) | \
PIN_OSPEED_HIGH(GPIOE_ZIO_D57) | \
PIN_OSPEED_HIGH(GPIOE_ZIO_D58) | \
PIN_OSPEED_HIGH(GPIOE_ZIO_D59) | \
PIN_OSPEED_HIGH(GPIOE_ZIO_D41) | \
PIN_OSPEED_HIGH(GPIOE_ZIO_D42) | \
PIN_OSPEED_HIGH(GPIOE_ARD_D6) | \
PIN_OSPEED_HIGH(GPIOE_ZIO_D40) | \
PIN_OSPEED_HIGH(GPIOE_ARD_D5) | \
PIN_OSPEED_HIGH(GPIOE_ZIO_D39) | \
PIN_OSPEED_HIGH(GPIOE_ARD_D3) | \
DEFAULT_GPIO_SPEED(GPIOE_ZIO_D31) | \
DEFAULT_GPIO_SPEED(GPIOE_ZIO_D60) | \
DEFAULT_GPIO_SPEED(GPIOE_ZIO_D57) | \
DEFAULT_GPIO_SPEED(GPIOE_ZIO_D58) | \
DEFAULT_GPIO_SPEED(GPIOE_ZIO_D59) | \
DEFAULT_GPIO_SPEED(GPIOE_ZIO_D41) | \
DEFAULT_GPIO_SPEED(GPIOE_ZIO_D42) | \
DEFAULT_GPIO_SPEED(GPIOE_ARD_D6) | \
DEFAULT_GPIO_SPEED(GPIOE_ZIO_D40) | \
DEFAULT_GPIO_SPEED(GPIOE_ARD_D5) | \
DEFAULT_GPIO_SPEED(GPIOE_ZIO_D39) | \
DEFAULT_GPIO_SPEED(GPIOE_ARD_D3) | \
PIN_OSPEED_VERYLOW(GPIOE_ZIO_D38) | \
PIN_OSPEED_HIGH(GPIOE_ZIO_D37))
DEFAULT_GPIO_SPEED(GPIOE_ZIO_D37))
#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_ZIO_D34) | \
PIN_PUPDR_PULLUP(GPIOE_PIN1) | \
PIN_PUPDR_PULLUP(GPIOE_ZIO_D31) | \
@ -1157,22 +1167,22 @@
* PF14 - ARD_D4 (input pullup).
* PF15 - ARD_D2 (input pullup).
*/
#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_ZIO_D68) | \
PIN_MODE_INPUT(GPIOF_ZIO_D69) | \
PIN_MODE_INPUT(GPIOF_ZIO_D70) | \
PIN_MODE_INPUT(GPIOF_ARD_A3) | \
PIN_MODE_INPUT(GPIOF_ZIO_A8) | \
PIN_MODE_INPUT(GPIOF_ARD_A4) | \
PIN_MODE_INPUT(GPIOF_PIN6) | \
PIN_MODE_INPUT(GPIOF_ZIO_D62) | \
PIN_MODE_INPUT(GPIOF_ZIO_D61) | \
PIN_MODE_INPUT(GPIOF_ZIO_D63) | \
PIN_MODE_INPUT(GPIOF_ARD_A5) | \
PIN_MODE_INPUT(GPIOF_PIN11) | \
PIN_MODE_INPUT(GPIOF_ARD_D8) | \
PIN_MODE_INPUT(GPIOF_ARD_D7) | \
PIN_MODE_INPUT(GPIOF_ARD_D4) | \
PIN_MODE_INPUT(GPIOF_ARD_D2))
#define VAL_GPIOF_MODER (EFI_PIN_MODE_DEFAULT(GPIOF_ZIO_D68) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ZIO_D69) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ZIO_D70) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ARD_A3) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ZIO_A8) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ARD_A4) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ZIO_D62) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ZIO_D61) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ZIO_D63) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ARD_A5) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ARD_D8) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ARD_D7) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ARD_D4) | \
EFI_PIN_MODE_DEFAULT(GPIOF_ARD_D2))
#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_ZIO_D68) | \
PIN_OTYPE_PUSHPULL(GPIOF_ZIO_D69) | \
PIN_OTYPE_PUSHPULL(GPIOF_ZIO_D70) | \
@ -1189,17 +1199,17 @@
PIN_OTYPE_PUSHPULL(GPIOF_ARD_D7) | \
PIN_OTYPE_PUSHPULL(GPIOF_ARD_D4) | \
PIN_OTYPE_PUSHPULL(GPIOF_ARD_D2))
#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_HIGH(GPIOF_ZIO_D68) | \
PIN_OSPEED_HIGH(GPIOF_ZIO_D69) | \
PIN_OSPEED_HIGH(GPIOF_ZIO_D70) | \
PIN_OSPEED_HIGH(GPIOF_ARD_A3) | \
PIN_OSPEED_HIGH(GPIOF_ZIO_A8) | \
PIN_OSPEED_HIGH(GPIOF_ARD_A4) | \
#define VAL_GPIOF_OSPEEDR (DEFAULT_GPIO_SPEED(GPIOF_ZIO_D68) | \
DEFAULT_GPIO_SPEED(GPIOF_ZIO_D69) | \
DEFAULT_GPIO_SPEED(GPIOF_ZIO_D70) | \
DEFAULT_GPIO_SPEED(GPIOF_ARD_A3) | \
DEFAULT_GPIO_SPEED(GPIOF_ZIO_A8) | \
DEFAULT_GPIO_SPEED(GPIOF_ARD_A4) | \
PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \
PIN_OSPEED_HIGH(GPIOF_ZIO_D62) | \
PIN_OSPEED_HIGH(GPIOF_ZIO_D61) | \
PIN_OSPEED_HIGH(GPIOF_ZIO_D63) | \
PIN_OSPEED_HIGH(GPIOF_ARD_A5) | \
DEFAULT_GPIO_SPEED(GPIOF_ZIO_D62) | \
DEFAULT_GPIO_SPEED(GPIOF_ZIO_D61) | \
DEFAULT_GPIO_SPEED(GPIOF_ZIO_D63) | \
DEFAULT_GPIO_SPEED(GPIOF_ARD_A5) | \
PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \
PIN_OSPEED_VERYLOW(GPIOF_ARD_D8) | \
PIN_OSPEED_VERYLOW(GPIOF_ARD_D7) | \
@ -1274,22 +1284,22 @@
* PG14 - ARD_D1 USART6_TX (input pullup).
* PG15 - PIN15 (input pullup).
*/
#define VAL_GPIOG_MODER (PIN_MODE_INPUT(GPIOG_ZIO_D65) | \
PIN_MODE_INPUT(GPIOG_ZIO_D64) | \
PIN_MODE_INPUT(GPIOG_ZIO_D49) | \
PIN_MODE_INPUT(GPIOG_ZIO_D50) | \
PIN_MODE_INPUT(GPIOG_PIN4) | \
PIN_MODE_INPUT(GPIOG_PIN5) | \
PIN_MODE_INPUT(GPIOG_USB_GPIO_OUT) | \
PIN_MODE_INPUT(GPIOG_USB_GPIO_IN) | \
PIN_MODE_INPUT(GPIOG_PIN8) | \
PIN_MODE_INPUT(GPIOG_ARD_D0) | \
PIN_MODE_INPUT(GPIOG_PIN10) | \
#define VAL_GPIOG_MODER (EFI_PIN_MODE_DEFAULT(GPIOG_ZIO_D65) | \
EFI_PIN_MODE_DEFAULT(GPIOG_ZIO_D64) | \
EFI_PIN_MODE_DEFAULT(GPIOG_ZIO_D49) | \
EFI_PIN_MODE_DEFAULT(GPIOG_ZIO_D50) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOG_USB_GPIO_OUT) | \
EFI_PIN_MODE_DEFAULT(GPIOG_USB_GPIO_IN) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOG_ARD_D0) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN10) | \
PIN_MODE_ALTERNATE(GPIOG_RMII_TX_EN) | \
PIN_MODE_INPUT(GPIOG_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN12) | \
PIN_MODE_ALTERNATE(GPIOG_RMII_TXD0) | \
PIN_MODE_INPUT(GPIOG_ARD_D1) | \
PIN_MODE_INPUT(GPIOG_PIN15))
EFI_PIN_MODE_DEFAULT(GPIOG_ARD_D1) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN15))
#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(GPIOG_ZIO_D65) | \
PIN_OTYPE_PUSHPULL(GPIOG_ZIO_D64) | \
PIN_OTYPE_PUSHPULL(GPIOG_ZIO_D49) | \
@ -1312,15 +1322,15 @@
PIN_OSPEED_VERYLOW(GPIOG_ZIO_D50) | \
PIN_OSPEED_VERYLOW(GPIOG_PIN4) | \
PIN_OSPEED_VERYLOW(GPIOG_PIN5) | \
PIN_OSPEED_HIGH(GPIOG_USB_GPIO_OUT) | \
PIN_OSPEED_HIGH(GPIOG_USB_GPIO_IN) | \
DEFAULT_GPIO_SPEED(GPIOG_USB_GPIO_OUT) | \
DEFAULT_GPIO_SPEED(GPIOG_USB_GPIO_IN) | \
PIN_OSPEED_VERYLOW(GPIOG_PIN8) | \
PIN_OSPEED_HIGH(GPIOG_ARD_D0) | \
DEFAULT_GPIO_SPEED(GPIOG_ARD_D0) | \
PIN_OSPEED_VERYLOW(GPIOG_PIN10) | \
PIN_OSPEED_HIGH(GPIOG_RMII_TX_EN) | \
DEFAULT_GPIO_SPEED(GPIOG_RMII_TX_EN) | \
PIN_OSPEED_VERYLOW(GPIOG_PIN12) | \
PIN_OSPEED_HIGH(GPIOG_RMII_TXD0) | \
PIN_OSPEED_HIGH(GPIOG_ARD_D1) | \
DEFAULT_GPIO_SPEED(GPIOG_RMII_TXD0) | \
DEFAULT_GPIO_SPEED(GPIOG_ARD_D1) | \
PIN_OSPEED_VERYLOW(GPIOG_PIN15))
#define VAL_GPIOG_PUPDR (PIN_PUPDR_PULLUP(GPIOG_ZIO_D65) | \
PIN_PUPDR_PULLUP(GPIOG_ZIO_D64) | \
@ -1333,9 +1343,9 @@
PIN_PUPDR_PULLUP(GPIOG_PIN8) | \
PIN_PUPDR_PULLUP(GPIOG_ARD_D0) | \
PIN_PUPDR_PULLUP(GPIOG_PIN10) | \
PIN_PUPDR_FLOATING(GPIOG_RMII_TX_EN) | \
EFI_DR_DEFAULT(GPIOG_RMII_TX_EN) | \
PIN_PUPDR_PULLUP(GPIOG_PIN12) | \
PIN_PUPDR_FLOATING(GPIOG_RMII_TXD0) | \
EFI_DR_DEFAULT(GPIOG_RMII_TXD0) | \
PIN_PUPDR_PULLUP(GPIOG_ARD_D1) | \
PIN_PUPDR_PULLUP(GPIOG_PIN15))
#define VAL_GPIOG_ODR (PIN_ODR_HIGH(GPIOG_ZIO_D65) | \
@ -1391,22 +1401,22 @@
* PH14 - PIN14 (input pullup).
* PH15 - PIN15 (input pullup).
*/
#define VAL_GPIOH_MODER (PIN_MODE_INPUT(GPIOH_OSC_IN) | \
PIN_MODE_INPUT(GPIOH_OSC_OUT) | \
PIN_MODE_INPUT(GPIOH_PIN2) | \
PIN_MODE_INPUT(GPIOH_PIN3) | \
PIN_MODE_INPUT(GPIOH_PIN4) | \
PIN_MODE_INPUT(GPIOH_PIN5) | \
PIN_MODE_INPUT(GPIOH_PIN6) | \
PIN_MODE_INPUT(GPIOH_PIN7) | \
PIN_MODE_INPUT(GPIOH_PIN8) | \
PIN_MODE_INPUT(GPIOH_PIN9) | \
PIN_MODE_INPUT(GPIOH_PIN10) | \
PIN_MODE_INPUT(GPIOH_PIN11) | \
PIN_MODE_INPUT(GPIOH_PIN12) | \
PIN_MODE_INPUT(GPIOH_PIN13) | \
PIN_MODE_INPUT(GPIOH_PIN14) | \
PIN_MODE_INPUT(GPIOH_PIN15))
#define VAL_GPIOH_MODER (EFI_PIN_MODE_DEFAULT(GPIOH_OSC_IN) | \
EFI_PIN_MODE_DEFAULT(GPIOH_OSC_OUT) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN15))
#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(GPIOH_OSC_IN) | \
PIN_OTYPE_PUSHPULL(GPIOH_OSC_OUT) | \
PIN_OTYPE_PUSHPULL(GPIOH_PIN2) | \
@ -1423,8 +1433,8 @@
PIN_OTYPE_PUSHPULL(GPIOH_PIN13) | \
PIN_OTYPE_PUSHPULL(GPIOH_PIN14) | \
PIN_OTYPE_PUSHPULL(GPIOH_PIN15))
#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_HIGH(GPIOH_OSC_IN) | \
PIN_OSPEED_HIGH(GPIOH_OSC_OUT) | \
#define VAL_GPIOH_OSPEEDR (DEFAULT_GPIO_SPEED(GPIOH_OSC_IN) | \
DEFAULT_GPIO_SPEED(GPIOH_OSC_OUT) | \
PIN_OSPEED_VERYLOW(GPIOH_PIN2) | \
PIN_OSPEED_VERYLOW(GPIOH_PIN3) | \
PIN_OSPEED_VERYLOW(GPIOH_PIN4) | \
@ -1439,8 +1449,8 @@
PIN_OSPEED_VERYLOW(GPIOH_PIN13) | \
PIN_OSPEED_VERYLOW(GPIOH_PIN14) | \
PIN_OSPEED_VERYLOW(GPIOH_PIN15))
#define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(GPIOH_OSC_IN) | \
PIN_PUPDR_FLOATING(GPIOH_OSC_OUT) | \
#define VAL_GPIOH_PUPDR (EFI_DR_DEFAULT(GPIOH_OSC_IN) | \
EFI_DR_DEFAULT(GPIOH_OSC_OUT) | \
PIN_PUPDR_PULLUP(GPIOH_PIN2) | \
PIN_PUPDR_PULLUP(GPIOH_PIN3) | \
PIN_PUPDR_PULLUP(GPIOH_PIN4) | \
@ -1508,22 +1518,22 @@
* PI14 - PIN14 (input pullup).
* PI15 - PIN15 (input pullup).
*/
#define VAL_GPIOI_MODER (PIN_MODE_INPUT(GPIOI_PIN0) | \
PIN_MODE_INPUT(GPIOI_PIN1) | \
PIN_MODE_INPUT(GPIOI_PIN2) | \
PIN_MODE_INPUT(GPIOI_PIN3) | \
PIN_MODE_INPUT(GPIOI_PIN4) | \
PIN_MODE_INPUT(GPIOI_PIN5) | \
PIN_MODE_INPUT(GPIOI_PIN6) | \
PIN_MODE_INPUT(GPIOI_PIN7) | \
PIN_MODE_INPUT(GPIOI_PIN8) | \
PIN_MODE_INPUT(GPIOI_PIN9) | \
PIN_MODE_INPUT(GPIOI_PIN10) | \
PIN_MODE_INPUT(GPIOI_PIN11) | \
PIN_MODE_INPUT(GPIOI_PIN12) | \
PIN_MODE_INPUT(GPIOI_PIN13) | \
PIN_MODE_INPUT(GPIOI_PIN14) | \
PIN_MODE_INPUT(GPIOI_PIN15))
#define VAL_GPIOI_MODER (EFI_PIN_MODE_DEFAULT(GPIOI_PIN0) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN15))
#define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(GPIOI_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOI_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOI_PIN2) | \
@ -1625,22 +1635,22 @@
* PJ14 - PIN14 (input pullup).
* PJ15 - PIN15 (input pullup).
*/
#define VAL_GPIOJ_MODER (PIN_MODE_INPUT(GPIOJ_PIN0) | \
PIN_MODE_INPUT(GPIOJ_PIN1) | \
PIN_MODE_INPUT(GPIOJ_PIN2) | \
PIN_MODE_INPUT(GPIOJ_PIN3) | \
PIN_MODE_INPUT(GPIOJ_PIN4) | \
PIN_MODE_INPUT(GPIOJ_PIN5) | \
PIN_MODE_INPUT(GPIOJ_PIN6) | \
PIN_MODE_INPUT(GPIOJ_PIN7) | \
PIN_MODE_INPUT(GPIOJ_PIN8) | \
PIN_MODE_INPUT(GPIOJ_PIN9) | \
PIN_MODE_INPUT(GPIOJ_PIN10) | \
PIN_MODE_INPUT(GPIOJ_PIN11) | \
PIN_MODE_INPUT(GPIOJ_PIN12) | \
PIN_MODE_INPUT(GPIOJ_PIN13) | \
PIN_MODE_INPUT(GPIOJ_PIN14) | \
PIN_MODE_INPUT(GPIOJ_PIN15))
#define VAL_GPIOJ_MODER (EFI_PIN_MODE_DEFAULT(GPIOJ_PIN0) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOJ_PIN15))
#define VAL_GPIOJ_OTYPER (PIN_OTYPE_PUSHPULL(GPIOJ_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOJ_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOJ_PIN2) | \
@ -1742,22 +1752,22 @@
* PK14 - PIN14 (input pullup).
* PK15 - PIN15 (input pullup).
*/
#define VAL_GPIOK_MODER (PIN_MODE_INPUT(GPIOK_PIN0) | \
PIN_MODE_INPUT(GPIOK_PIN1) | \
PIN_MODE_INPUT(GPIOK_PIN2) | \
PIN_MODE_INPUT(GPIOK_PIN3) | \
PIN_MODE_INPUT(GPIOK_PIN4) | \
PIN_MODE_INPUT(GPIOK_PIN5) | \
PIN_MODE_INPUT(GPIOK_PIN6) | \
PIN_MODE_INPUT(GPIOK_PIN7) | \
PIN_MODE_INPUT(GPIOK_PIN8) | \
PIN_MODE_INPUT(GPIOK_PIN9) | \
PIN_MODE_INPUT(GPIOK_PIN10) | \
PIN_MODE_INPUT(GPIOK_PIN11) | \
PIN_MODE_INPUT(GPIOK_PIN12) | \
PIN_MODE_INPUT(GPIOK_PIN13) | \
PIN_MODE_INPUT(GPIOK_PIN14) | \
PIN_MODE_INPUT(GPIOK_PIN15))
#define VAL_GPIOK_MODER (EFI_PIN_MODE_DEFAULT(GPIOK_PIN0) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOK_PIN15))
#define VAL_GPIOK_OTYPER (PIN_OTYPE_PUSHPULL(GPIOK_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOK_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOK_PIN2) | \

View File

@ -63,22 +63,22 @@ static void setPrometheusDefaults(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->tpsErrorDetectionTooLow = -10; // -10% open
engineConfiguration->tpsErrorDetectionTooHigh = 110; // 110% open
boardConfiguration->mapMinBufferLength = 4;
engineConfiguration->mapMinBufferLength = 4;
}
void setPinConfigurationOverrides(void) {
#if 0
boardConfiguration->injectionPins[0] = is469 ? GPIOD_9 : GPIOB_14; // #1
boardConfiguration->injectionPins[1] = is469 ? GPIOD_15 : GPIOC_7; // #2
boardConfiguration->injectionPins[2] = is469 ? GPIOD_10 : GPIOB_15; // #3
boardConfiguration->injectionPins[3] = is469 ? GPIOD_14 : GPIOC_6; // #4
engineConfiguration->injectionPins[0] = is469 ? GPIOD_9 : GPIOB_14; // #1
engineConfiguration->injectionPins[1] = is469 ? GPIOD_15 : GPIOC_7; // #2
engineConfiguration->injectionPins[2] = is469 ? GPIOD_10 : GPIOB_15; // #3
engineConfiguration->injectionPins[3] = is469 ? GPIOD_14 : GPIOC_6; // #4
boardConfiguration->ignitionPins[0] = GPIOA_10;
boardConfiguration->ignitionPins[1] = GPIOA_9;
boardConfiguration->ignitionPins[2] = GPIOA_8;
boardConfiguration->ignitionPins[3] = GPIOA_11;
boardConfiguration->ignitionPinMode = OM_INVERTED;
engineConfiguration->ignitionPins[0] = GPIOA_10;
engineConfiguration->ignitionPins[1] = GPIOA_9;
engineConfiguration->ignitionPins[2] = GPIOA_8;
engineConfiguration->ignitionPins[3] = GPIOA_11;
engineConfiguration->ignitionPinMode = OM_INVERTED;
enginePins.startInjectionPins();
enginePins.startIgnitionPins();
@ -109,20 +109,20 @@ void setPinConfigurationOverrides(void) {
}
void setSerialConfigurationOverrides(void) {
boardConfiguration->useSerialPort = true;
engineConfiguration->useSerialPort = true;
engineConfiguration->binarySerialTxPin = GPIOA_0;
engineConfiguration->binarySerialRxPin = GPIOA_1;
engineConfiguration->consoleSerialTxPin = GPIOA_0;
engineConfiguration->consoleSerialRxPin = GPIOA_1;
boardConfiguration->tunerStudioSerialSpeed = SERIAL_SPEED;
engineConfiguration->tunerStudioSerialSpeed = SERIAL_SPEED;
engineConfiguration->uartConsoleSerialSpeed = SERIAL_SPEED;
}
void setSdCardConfigurationOverrides(void) {
boardConfiguration->is_enabled_spi_1 = true;
engineConfiguration->is_enabled_spi_1 = true;
engineConfiguration->sdCardSpiDevice = SPI_DEVICE_1;
boardConfiguration->sdCardCsPin = GPIOA_2;
boardConfiguration->isSdCardEnabled = true;
engineConfiguration->sdCardCsPin = GPIOA_2;
engineConfiguration->isSdCardEnabled = true;
}
/**
@ -148,24 +148,24 @@ void setBoardConfigurationOverrides(void) {
engineConfiguration->baroSensor.hwChannel = EFI_ADC_NONE;
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_NONE;
boardConfiguration->injectionPins[0] = is469 ? GPIOD_9 : GPIOB_14; // #1
boardConfiguration->injectionPins[1] = is469 ? GPIOD_15 : GPIOC_7; // #2
boardConfiguration->injectionPins[2] = is469 ? GPIOD_10 : GPIOB_15; // #3
boardConfiguration->injectionPins[3] = is469 ? GPIOD_14 : GPIOC_6; // #4
engineConfiguration->injectionPins[0] = is469 ? GPIOD_9 : GPIOB_14; // #1
engineConfiguration->injectionPins[1] = is469 ? GPIOD_15 : GPIOC_7; // #2
engineConfiguration->injectionPins[2] = is469 ? GPIOD_10 : GPIOB_15; // #3
engineConfiguration->injectionPins[3] = is469 ? GPIOD_14 : GPIOC_6; // #4
boardConfiguration->ignitionPins[0] = GPIOA_10;
boardConfiguration->ignitionPins[1] = GPIOA_9;
boardConfiguration->ignitionPins[2] = GPIOA_8;
boardConfiguration->ignitionPins[3] = GPIOA_11;
boardConfiguration->ignitionPinMode = OM_INVERTED;
engineConfiguration->ignitionPins[0] = GPIOA_10;
engineConfiguration->ignitionPins[1] = GPIOA_9;
engineConfiguration->ignitionPins[2] = GPIOA_8;
engineConfiguration->ignitionPins[3] = GPIOA_11;
engineConfiguration->ignitionPinMode = OM_INVERTED;
engineConfiguration->vbattDividerCoeff = ((float) (2 + 10)) / 2;
engineConfiguration->clt.config.bias_resistor = 2700;
engineConfiguration->iat.config.bias_resistor = 2700;
boardConfiguration->useStepperIdle = true;
boardConfiguration->idle.stepperDirectionPin = is469 ? GPIOB_14 : GPIOB_12;
boardConfiguration->idle.stepperStepPin = is469 ? GPIOB_15 : GPIOB_13;
engineConfiguration->useStepperIdle = true;
engineConfiguration->idle.stepperDirectionPin = is469 ? GPIOB_14 : GPIOB_12;
engineConfiguration->idle.stepperStepPin = is469 ? GPIOB_15 : GPIOB_13;
engineConfiguration->stepperEnablePin = GPIO_UNASSIGNED;
engineConfiguration->stepperEnablePinMode = OM_DEFAULT;
@ -174,93 +174,93 @@ void setBoardConfigurationOverrides(void) {
//engineConfiguration->fatalErrorPin = GPIOA_13;
engineConfiguration->warningLedPin = GPIO_UNASSIGNED;
boardConfiguration->triggerInputPins[0] = GPIOA_5;
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
boardConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[0] = GPIOA_5;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED;
engineConfiguration->camInputs[0] = is469 ? GPIOE_9 : GPIOA_6;
boardConfiguration->tachOutputPin = GPIOC_8;
boardConfiguration->tachOutputPinMode = OM_DEFAULT;
boardConfiguration->fuelPumpPin = is469 ? GPIOD_6 : GPIOB_7;
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
boardConfiguration->mainRelayPin = is469 ? GPIOB_11 : GPIOB_2;
boardConfiguration->mainRelayPinMode = OM_DEFAULT;
boardConfiguration->fanPin = GPIOC_9;
boardConfiguration->fanPinMode = OM_DEFAULT;
boardConfiguration->malfunctionIndicatorPin = GPIOC_1;
boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
engineConfiguration->tachOutputPin = GPIOC_8;
engineConfiguration->tachOutputPinMode = OM_DEFAULT;
engineConfiguration->fuelPumpPin = is469 ? GPIOD_6 : GPIOB_7;
engineConfiguration->fuelPumpPinMode = OM_DEFAULT;
engineConfiguration->mainRelayPin = is469 ? GPIOB_11 : GPIOB_2;
engineConfiguration->mainRelayPinMode = OM_DEFAULT;
engineConfiguration->fanPin = GPIOC_9;
engineConfiguration->fanPinMode = OM_DEFAULT;
engineConfiguration->malfunctionIndicatorPin = GPIOC_1;
engineConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
// starter block
setFsio(0, (is469 ? GPIOB_10 : GPIOB_1), STARTER_RELAY_LOGIC PASS_CONFIG_PARAMETER_SUFFIX);
// debug pad
boardConfiguration->triggerSimulatorPins[0] = GPIOD_8;
boardConfiguration->triggerSimulatorPinModes[0] = OM_DEFAULT;
engineConfiguration->triggerSimulatorPins[0] = GPIOD_8;
engineConfiguration->triggerSimulatorPinModes[0] = OM_DEFAULT;
// not used
engineConfiguration->dizzySparkOutputPin = GPIO_UNASSIGNED;
engineConfiguration->externalKnockSenseAdc = EFI_ADC_NONE;
engineConfiguration->displayMode = DM_NONE;
boardConfiguration->HD44780_rs = GPIO_UNASSIGNED;
boardConfiguration->HD44780_e = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_rs = GPIO_UNASSIGNED;
engineConfiguration->HD44780_e = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
for (int i = 0; i < DIGIPOT_COUNT ; i++) {
boardConfiguration->digitalPotentiometerChipSelect[i] = GPIO_UNASSIGNED;
engineConfiguration->digitalPotentiometerChipSelect[i] = GPIO_UNASSIGNED;
}
boardConfiguration->triggerSimulatorPins[1] = GPIO_UNASSIGNED;
boardConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
boardConfiguration->triggerSimulatorPinModes[1] = OM_DEFAULT;
boardConfiguration->triggerSimulatorPinModes[2] = OM_DEFAULT;
engineConfiguration->triggerSimulatorPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerSimulatorPinModes[1] = OM_DEFAULT;
engineConfiguration->triggerSimulatorPinModes[2] = OM_DEFAULT;
engineConfiguration->vehicleSpeedSensorInputPin = GPIO_UNASSIGNED;
boardConfiguration->digitalPotentiometerSpiDevice = SPI_NONE;
boardConfiguration->max31855spiDevice = SPI_NONE;
engineConfiguration->digitalPotentiometerSpiDevice = SPI_NONE;
engineConfiguration->max31855spiDevice = SPI_NONE;
/////////////////////////////////////////////////////////
boardConfiguration->is_enabled_spi_1 = true;
boardConfiguration->is_enabled_spi_2 = false;
boardConfiguration->is_enabled_spi_3 = true;
engineConfiguration->is_enabled_spi_1 = true;
engineConfiguration->is_enabled_spi_2 = false;
engineConfiguration->is_enabled_spi_3 = true;
boardConfiguration->spi1mosiPin = GPIOB_5;
engineConfiguration->spi1mosiPin = GPIOB_5;
engineConfiguration->spi1MosiMode = PO_DEFAULT; // PAL_STM32_OTYPE_PUSHPULL
boardConfiguration->spi1misoPin = GPIOB_4;
engineConfiguration->spi1misoPin = GPIOB_4;
engineConfiguration->spi1MisoMode = PO_DEFAULT; // PAL_STM32_OTYPE_PUSHPULL
boardConfiguration->spi1sckPin = GPIOB_3;
engineConfiguration->spi1sckPin = GPIOB_3;
engineConfiguration->spi1SckMode = PO_DEFAULT; // PAL_STM32_OTYPE_PUSHPULL
boardConfiguration->spi3mosiPin = GPIOC_12;
engineConfiguration->spi3mosiPin = GPIOC_12;
engineConfiguration->spi3MosiMode = PO_OPENDRAIN; // 4
boardConfiguration->spi3misoPin = GPIOC_11;
engineConfiguration->spi3misoPin = GPIOC_11;
engineConfiguration->spi3MisoMode = PO_PULLUP; // 32
boardConfiguration->spi3sckPin = GPIOC_10;
engineConfiguration->spi3sckPin = GPIOC_10;
engineConfiguration->spi3SckMode = PO_OPENDRAIN; // 4
engineConfiguration->hip9011SpiDevice = SPI_DEVICE_3;
boardConfiguration->hip9011CsPin = is469 ? GPIOD_1 : GPIOD_2;
boardConfiguration->hip9011CsPinMode = OM_OPENDRAIN;
boardConfiguration->hip9011IntHoldPin = GPIOC_14;
boardConfiguration->hip9011IntHoldPinMode = OM_OPENDRAIN;
engineConfiguration->hip9011CsPin = is469 ? GPIOD_1 : GPIOD_2;
engineConfiguration->hip9011CsPinMode = OM_OPENDRAIN;
engineConfiguration->hip9011IntHoldPin = GPIOC_14;
engineConfiguration->hip9011IntHoldPinMode = OM_OPENDRAIN;
engineConfiguration->hipOutputChannel = EFI_ADC_10; // PC0
boardConfiguration->isHip9011Enabled = true;
engineConfiguration->isHip9011Enabled = true;
engineConfiguration->cj125SpiDevice = SPI_DEVICE_3;
engineConfiguration->cj125ua = is469 ? EFI_ADC_9 : EFI_ADC_8;
engineConfiguration->cj125ur = EFI_ADC_12;
boardConfiguration->cj125CsPin = GPIOA_15;
engineConfiguration->cj125CsPin = GPIOA_15;
engineConfiguration->cj125CsPinMode = OM_OPENDRAIN;
boardConfiguration->wboHeaterPin = GPIOC_13;
boardConfiguration->o2heaterPin = GPIOC_13;
//boardConfiguration->isCJ125Enabled = true;
boardConfiguration->isCJ125Enabled = false;
engineConfiguration->wboHeaterPin = GPIOC_13;
engineConfiguration->o2heaterPin = GPIOC_13;
//engineConfiguration->isCJ125Enabled = true;
engineConfiguration->isCJ125Enabled = false;
boardConfiguration->canDeviceMode = CD_USE_CAN1;
boardConfiguration->canTxPin = GPIOB_9;
boardConfiguration->canRxPin = GPIOB_8;
engineConfiguration->canDeviceMode = CD_USE_CAN1;
engineConfiguration->canTxPin = GPIOB_9;
engineConfiguration->canRxPin = GPIOB_8;
//!!!!!!!!!!!!!!!
#if 1

View File

@ -0,0 +1,54 @@
/**
* @file adc_hack.cpp
* @brief Hacky support for a single channel on adc3
*
* @date December 17, 2019
* @author Matthew Kennedy, (c) 2019
*/
#include "ch.h"
#include "hal.h"
#include "mpu_util.h"
#include "io_pins.h"
#include "efilib.h"
static ADCConversionGroup adcConvGroup = { FALSE, 1, nullptr, nullptr,
0,
ADC_CR2_SWSTART,
0, // sample times for channels 10...18
ADC_SMPR2_SMP_AN9(ADC_SAMPLE_56),
0, // htr
0, // ltr
0, // sqr1
0, // sqr2
ADC_SQR3_SQ1_N(ADC_CHANNEL_IN9) // sqr3 - vbatt is on pf3 = adc9
};
__ALIGNED(32) adcsample_t samples[8];
// we use this as a hook to run near the rest of ADC init...
void setAdcChannelOverrides(void) {
efiSetPadMode("adc input", GPIOF_3, PAL_MODE_INPUT_ANALOG);
adcStart(&ADCD3, nullptr);
}
adcsample_t vbattSampleProteus = 0;
void proteusAdcHack()
{
adcConvert(&ADCD3, &adcConvGroup, samples, 8);
SCB_InvalidateDCache_by_Addr(reinterpret_cast<uint32_t*>(samples), sizeof(samples));
uint32_t sum = 0;
for (int i = 0; i < 8; i++) {
sum += samples[i];
}
vbattSampleProteus = sum / efi::size(samples);
}

View File

@ -1,6 +1,7 @@
# List of all the board related files.
BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO144_F767ZI/board.c
BOARDSRC_CPP = $(PROJECT_DIR)/config/boards/proteus/board_configuration.cpp
BOARDSRC_CPP = $(PROJECT_DIR)/config/boards/proteus/board_configuration.cpp \
$(PROJECT_DIR)/config/boards/proteus/adc_hack.cpp
# Required include directories
BOARDINC = $(PROJECT_DIR)/config/boards/nucleo_f767 $(PROJECT_DIR)/config/stm32f7ems
@ -8,4 +9,4 @@ BOARDINC = $(PROJECT_DIR)/config/boards/nucleo_f767 $(PROJECT_DIR)/config/stm32f
LDSCRIPT= $(PROJECT_DIR)/config/boards/nucleo_f767/STM32F76xxI.ld
# Override DEFAULT_ENGINE_TYPE
DDEFS += -DSTM32F767xx -DEFI_USE_OSC=TRUE -DEFI_FATAL_ERROR_PIN=GPIOE_3 -DFIRMWARE_ID=\"proteus\" -DDEFAULT_ENGINE_TYPE=PROTEUS
DDEFS += -DSTM32F767xx -DEFI_USE_OSC=TRUE -DEFI_FATAL_ERROR_PIN=GPIOE_3 -DFIRMWARE_ID=\"proteus\" -DDEFAULT_ENGINE_TYPE=PROTEUS -DUSE_ADC3_VBATT_HACK -DSTM32_ADC_USE_ADC3=TRUE

View File

@ -15,49 +15,55 @@
EXTERN_ENGINE;
static void setInjectorPins() {
boardConfiguration->injectionPins[0] = GPIOD_7;
boardConfiguration->injectionPins[1] = GPIOG_9;
boardConfiguration->injectionPins[2] = GPIOG_10;
boardConfiguration->injectionPins[3] = GPIOG_11;
boardConfiguration->injectionPins[4] = GPIOG_12;
boardConfiguration->injectionPins[5] = GPIOG_13;
boardConfiguration->injectionPins[6] = GPIOG_14;
boardConfiguration->injectionPins[7] = GPIOB_4;
boardConfiguration->injectionPins[8] = GPIOB_5;
boardConfiguration->injectionPins[9] = GPIOB_6;
boardConfiguration->injectionPins[10] = GPIOB_7;
boardConfiguration->injectionPins[11] = GPIOB_8;
static const brain_pin_e injPins[] = {
GPIOD_7,
GPIOG_9,
GPIOG_10,
GPIOG_11,
GPIOG_12,
GPIOG_13,
GPIOG_14,
GPIOB_4,
GPIOB_5,
GPIOB_6,
GPIOB_7,
GPIOB_8
};
boardConfiguration->injectionPinMode = OM_DEFAULT;
static const brain_pin_e ignPins[] = {
GPIOD_4,
GPIOD_3,
GPIOC_9,
GPIOC_8,
GPIOC_7,
GPIOG_8,
GPIOG_7,
GPIOG_6,
GPIOG_5,
GPIOG_4,
GPIOG_3,
GPIOG_2,
};
static void setInjectorPins() {
copyArray(engineConfiguration->injectionPins, injPins);
engineConfiguration->injectionPinMode = OM_DEFAULT;
}
static void setIgnitionPins() {
boardConfiguration->ignitionPins[0] = GPIOD_4;
boardConfiguration->ignitionPins[1] = GPIOD_3;
boardConfiguration->ignitionPins[2] = GPIOC_9;
boardConfiguration->ignitionPins[3] = GPIOC_8;
boardConfiguration->ignitionPins[4] = GPIOC_7;
boardConfiguration->ignitionPins[5] = GPIOG_8;
boardConfiguration->ignitionPins[6] = GPIOG_7;
boardConfiguration->ignitionPins[7] = GPIOG_6;
boardConfiguration->ignitionPins[8] = GPIOG_5;
boardConfiguration->ignitionPins[9] = GPIOG_4;
boardConfiguration->ignitionPins[10] = GPIOG_3;
boardConfiguration->ignitionPins[11] = GPIOG_2;
boardConfiguration->ignitionPinMode = OM_DEFAULT;
copyArray(engineConfiguration->ignitionPins, ignPins);
engineConfiguration->ignitionPinMode = OM_DEFAULT;
}
static void setLedPins() {
engineConfiguration->communicationLedPin = GPIOE_4;
engineConfiguration->runningLedPin = GPIOE_5;
boardConfiguration->triggerErrorPin = GPIOE_6;
engineConfiguration->triggerErrorPin = GPIOE_6;
}
static void setupVbatt() {
// 6.8k high side/10k low side = 1.6667 ratio divider
engineConfiguration->analogInputDividerCoefficient = 2.5f / 1.5f;
// 5.6k high side/10k low side = 1.56 ratio divider
engineConfiguration->analogInputDividerCoefficient = 1.56f;
// 47k high side/10k low side = 4.7
engineConfiguration->vbattDividerCoeff = (57.0f / 10.0f);
@ -103,9 +109,9 @@ static void setupEtb() {
static void setupDefaultSensorInputs() {
// trigger inputs
// VR channel 1 as default - others not set
boardConfiguration->triggerInputPins[0] = GPIOC_6;
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
boardConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[0] = GPIOC_6;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED;
engineConfiguration->camInputs[0] = GPIO_UNASSIGNED;
// clt = Analog Temp 1 = PC4
@ -123,7 +129,7 @@ void setPinConfigurationOverrides(void) {
}
void setSerialConfigurationOverrides(void) {
boardConfiguration->useSerialPort = false;
engineConfiguration->useSerialPort = false;
engineConfiguration->binarySerialTxPin = GPIO_UNASSIGNED;
engineConfiguration->binarySerialRxPin = GPIO_UNASSIGNED;
engineConfiguration->consoleSerialTxPin = GPIO_UNASSIGNED;
@ -161,6 +167,3 @@ void setBoardConfigurationOverrides(void) {
engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
engineConfiguration->injectionMode = IM_SIMULTANEOUS;
}
void setAdcChannelOverrides(void) {
}

View File

@ -42,10 +42,10 @@ EXTERN_ENGINE;
// This shows a SPI connected TLE8888.
static void setupTle8888() {
// Enable the SPI channel and set up the SPI pins
boardConfiguration->is_enabled_spi_3 = true;
boardConfiguration->spi3mosiPin = GPIOB_5;
boardConfiguration->spi3misoPin = GPIOB_4;
boardConfiguration->spi3sckPin = GPIOB_3;
engineConfiguration->is_enabled_spi_3 = true;
engineConfiguration->spi3mosiPin = GPIOB_5;
engineConfiguration->spi3misoPin = GPIOB_4;
engineConfiguration->spi3sckPin = GPIOB_3;
// SPI chip select is often independent of the SPI pin limitations
engineConfiguration->tle8888_cs = GPIOD_5;
@ -81,8 +81,8 @@ static void setupDefaultSensorInputs() {
// Engine rotation position sensors
// Trigger is our primary timing signal, and usually comes from the crank.
// trigger inputs up TRIGGER_SUPPORTED_CHANNELS (2)
boardConfiguration->triggerInputPins[0] = GPIOC_6;
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[0] = GPIOC_6;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
// A secondary Cam signal up to CAM_INPUTS_COUNT (4)
engineConfiguration->camInputs[0] = GPIOA_5;
@ -121,7 +121,7 @@ void setPinConfigurationOverrides(void) {
// Future: configure USART3 for LIN bus and UART4 for console
void setSerialConfigurationOverrides(void) {
boardConfiguration->useSerialPort = false;
engineConfiguration->useSerialPort = false;
engineConfiguration->binarySerialTxPin = GPIO_UNASSIGNED;
engineConfiguration->binarySerialRxPin = GPIO_UNASSIGNED;
engineConfiguration->consoleSerialTxPin = GPIO_UNASSIGNED;
@ -140,7 +140,7 @@ void setBoardConfigurationOverrides(void) {
// Set indicator LED pins.
// This is often redundant with efifeatures.h or the run-time config
boardConfiguration->triggerErrorPin = GPIOE_1;
engineConfiguration->triggerErrorPin = GPIOE_1;
engineConfiguration->communicationLedPin = GPIOE_2;
engineConfiguration->FatalErrorPin = GPIOE_3;
engineConfiguration->runningLedPin = GPIOE_4;
@ -149,25 +149,25 @@ void setBoardConfigurationOverrides(void) {
engineConfiguration->errorLedPin = GPIOE_7;
// Set injector pins and the pin output mode
boardConfiguration->injectionPinMode = OM_DEFAULT;
boardConfiguration->injectionPins[0] = GPIOE_14;
boardConfiguration->injectionPins[1] = GPIOE_13;
boardConfiguration->injectionPins[2] = GPIOE_12;
boardConfiguration->injectionPins[3] = GPIOE_11;
engineConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPins[0] = GPIOE_14;
engineConfiguration->injectionPins[1] = GPIOE_13;
engineConfiguration->injectionPins[2] = GPIOE_12;
engineConfiguration->injectionPins[3] = GPIOE_11;
// Disable the remainder only when they may never be assigned
for (int i = 4; i < INJECTION_PIN_COUNT;i++) {
boardConfiguration->injectionPins[i] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[i] = GPIO_UNASSIGNED;
}
// Do the same for ignition outputs
boardConfiguration->ignitionPinMode = OM_DEFAULT;
boardConfiguration->ignitionPins[0] = GPIOD_4;
boardConfiguration->ignitionPins[1] = GPIOD_3;
boardConfiguration->ignitionPins[2] = GPIOD_2;
boardConfiguration->ignitionPins[3] = GPIOD_1;
engineConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPins[0] = GPIOD_4;
engineConfiguration->ignitionPins[1] = GPIOD_3;
engineConfiguration->ignitionPins[2] = GPIOD_2;
engineConfiguration->ignitionPins[3] = GPIOD_1;
// Disable remainder
for (int i = 4; i < IGNITION_PIN_COUNT; i++) {
boardConfiguration->ignitionPins[i] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[i] = GPIO_UNASSIGNED;
}
// Board-specific scaling values to convert ADC fraction to Volts.
@ -199,16 +199,16 @@ void setBoardConfigurationOverrides(void) {
// Configure the TLE8888 half bridges (pushpull, lowside, or high-low)
// TLE8888_IN11 -> TLE8888_OUT21
// GPIOE_8: "35 - GP Out 1"
boardConfiguration->fuelPumpPin = GPIOE_8;
engineConfiguration->fuelPumpPin = GPIOE_8;
// TLE8888 high current low side: VVT2 IN9 / OUT5
// GPIOE_10: "3 - Lowside 2"
boardConfiguration->idle.solenoidPin = GPIOE_10;
engineConfiguration->idle.solenoidPin = GPIOE_10;
// TLE8888_PIN_22: "34 - GP Out 2"
boardConfiguration->fanPin = TLE8888_PIN_22;
engineConfiguration->fanPin = TLE8888_PIN_22;
// The "required" hardware is done - set some reasonable input defaults
setupDefaultSensorInputs();

View File

@ -267,7 +267,6 @@
// todo: switch to continuous ADC conversion for slow ADC?
// https://github.com/rusefi/rusefi/issues/630
#define EFI_INTERNAL_SLOW_ADC_PWM &PWMD8
// todo: switch to continues ADC conversion for fast ADC?
#define EFI_INTERNAL_FAST_ADC_PWM &PWMD4

View File

@ -39,6 +39,13 @@
#define EFI_USB_SERIAL_DP GPIOA_12
/*
* input-floating is the default pin mode. input-output boards should provision appropriate pull-ups/pull-downs.
*/
#define EFI_PIN_MODE_DEFAULT PIN_MODE_INPUT
#define EFI_DR_DEFAULT PIN_PUPDR_FLOATING
/*
* Board oscillators-related settings.
* NOTE: LSE not fitted.
@ -70,7 +77,7 @@
/*
* IO pins assignments.
*/
#define GPIOA_BUTTON 0
#define GPIOA_PIN0 0
#define GPIOA_PIN1 1
#define GPIOA_PIN2 2
#define GPIOA_PIN3 3
@ -79,7 +86,7 @@
#define GPIOA_PIN6 6
#define GPIOA_PIN7 7
#define GPIOA_PIN8 8
#define GPIOA_VBUS_FS 9
#define GPIOA_PIN9 9
#define GPIOA_PIN10 10
#define GPIOA_PIN11 11
#define GPIOA_PIN12 12
@ -93,7 +100,7 @@
#define GPIOB_SWO 3
#define GPIOB_PIN4 4
#define GPIOB_PIN5 5
#define GPIOB_SCL 6
#define GPIOB_PIN6 6
#define GPIOB_PIN7 7
#define GPIOB_PIN8 8
#define GPIOB_PIN9 9
@ -226,12 +233,7 @@
/*
* IO lines assignments.
*/
#define LINE_BUTTON PAL_LINE(GPIOA, 0U)
#define LINE_LRCK PAL_LINE(GPIOA, 4U)
#define LINE_SPC PAL_LINE(GPIOA, 5U)
#define LINE_SDO PAL_LINE(GPIOA, 6U)
#define LINE_SDI PAL_LINE(GPIOA, 7U)
#define LINE_VBUS_FS PAL_LINE(GPIOA, 9U)
#define LINE_OTG_FS_ID PAL_LINE(GPIOA, 10U)
#define LINE_OTG_FS_DM PAL_LINE(GPIOA, 11U)
#define LINE_OTG_FS_DP PAL_LINE(GPIOA, 12U)
@ -294,40 +296,30 @@
/*
* GPIOA setup:
*
* PA0 - BUTTON (input floating).
* PA1 - PIN1 (input pullup).
* PA2 - PIN2 (input pullup).
* PA3 - PIN3 (input pullup).
* PA4 - LRCK (alternate 6).
* PA5 - SPC (alternate 5).
* PA6 - SDO (alternate 5).
* PA7 - SDI (alternate 5).
* PA8 - PIN8 (input pullup).
* PA9 - VBUS_FS (input floating).
* PA10 - OTG_FS_ID (alternate 10).
* PA11 - OTG_FS_DM (alternate 10).
* PA12 - OTG_FS_DP (alternate 10).
* PA13 - SWDIO (alternate 0).
* PA14 - SWCLK (alternate 0).
* PA15 - PIN15 (input pullup).
*/
#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \
PIN_MODE_INPUT(GPIOA_PIN1) | \
PIN_MODE_INPUT(GPIOA_PIN2) | \
PIN_MODE_INPUT(GPIOA_PIN3) | \
PIN_MODE_INPUT(GPIOA_LRCK) | \
PIN_MODE_INPUT(GPIOA_PIN5) | \
PIN_MODE_INPUT(GPIOA_PIN6) | \
PIN_MODE_INPUT(GPIOA_PIN7) | \
PIN_MODE_INPUT(GPIOA_PIN8) | \
PIN_MODE_INPUT(GPIOA_VBUS_FS) | \
#define VAL_GPIOA_MODER (EFI_PIN_MODE_DEFAULT(GPIOA_PIN0) | \
EFI_PIN_MODE_DEFAULT(GPIOA_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOA_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOA_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOA_LRCK) | \
EFI_PIN_MODE_DEFAULT(GPIOA_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOA_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOA_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOA_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOA_PIN9) | \
PIN_MODE_ALTERNATE(GPIOA_PIN10) | \
PIN_MODE_ALTERNATE(GPIOA_PIN11) | \
PIN_MODE_ALTERNATE(GPIOA_PIN12) | \
PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \
PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \
PIN_MODE_INPUT(GPIOA_PIN15))
#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \
EFI_PIN_MODE_DEFAULT(GPIOA_PIN15))
#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \
@ -336,46 +328,46 @@
PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \
PIN_OTYPE_PUSHPULL(GPIOA_VBUS_FS) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN11) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN12) | \
PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \
PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \
PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
#define VAL_GPIOA_OSPEEDR (DEFAULT_GPIO_SPEED(GPIOA_BUTTON) | \
#define VAL_GPIOA_OSPEEDR (DEFAULT_GPIO_SPEED(GPIOA_PIN0) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN1) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN2) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN3) | \
DEFAULT_GPIO_SPEED(GPIOA_LRCK) | \
PIN_OSPEED_MEDIUM(GPIOA_PIN5) | \
PIN_OSPEED_MEDIUM(GPIOA_PIN6) | \
PIN_OSPEED_MEDIUM(GPIOA_PIN7) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN5) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN6) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN7) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN8) | \
DEFAULT_GPIO_SPEED(GPIOA_VBUS_FS) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN9) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN10) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN11) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN12) | \
DEFAULT_GPIO_SPEED(GPIOA_SWDIO) | \
DEFAULT_GPIO_SPEED(GPIOA_SWCLK) | \
DEFAULT_GPIO_SPEED(GPIOA_PIN15))
#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \
PIN_PUPDR_PULLUP(GPIOA_PIN1) | \
PIN_PUPDR_PULLUP(GPIOA_PIN2) | \
PIN_PUPDR_PULLUP(GPIOA_PIN3) | \
PIN_PUPDR_FLOATING(GPIOA_LRCK) | \
PIN_PUPDR_FLOATING(GPIOA_PIN5) | \
PIN_PUPDR_FLOATING(GPIOA_PIN6) | \
PIN_PUPDR_FLOATING(GPIOA_PIN7) | \
PIN_PUPDR_PULLUP(GPIOA_PIN8) | \
PIN_PUPDR_FLOATING(GPIOA_VBUS_FS) | \
PIN_PUPDR_FLOATING(GPIOA_PIN10) | \
PIN_PUPDR_FLOATING(GPIOA_PIN11) | \
PIN_PUPDR_FLOATING(GPIOA_PIN12) | \
PIN_PUPDR_FLOATING(GPIOA_SWDIO) | \
PIN_PUPDR_FLOATING(GPIOA_SWCLK) | \
#define VAL_GPIOA_PUPDR (EFI_DR_DEFAULT(GPIOA_PIN0) | \
EFI_DR_DEFAULT(GPIOA_PIN1) | \
EFI_DR_DEFAULT(GPIOA_PIN2) | \
EFI_DR_DEFAULT(GPIOA_PIN3) | \
EFI_DR_DEFAULT(GPIOA_LRCK) | \
EFI_DR_DEFAULT(GPIOA_PIN5) | \
EFI_DR_DEFAULT(GPIOA_PIN6) | \
EFI_DR_DEFAULT(GPIOA_PIN7) | \
EFI_DR_DEFAULT(GPIOA_PIN8) | \
EFI_DR_DEFAULT(GPIOA_PIN9) | \
EFI_DR_DEFAULT(GPIOA_PIN10) | \
EFI_DR_DEFAULT(GPIOA_PIN11) | \
EFI_DR_DEFAULT(GPIOA_PIN12) | \
EFI_DR_DEFAULT(GPIOA_SWDIO) | \
EFI_DR_DEFAULT(GPIOA_SWCLK) | \
PIN_PUPDR_PULLUP(GPIOA_PIN15))
#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \
#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_PIN0) | \
PIN_ODR_HIGH(GPIOA_PIN1) | \
PIN_ODR_HIGH(GPIOA_PIN2) | \
PIN_ODR_HIGH(GPIOA_PIN3) | \
@ -384,14 +376,14 @@
PIN_ODR_HIGH(GPIOA_PIN6) | \
PIN_ODR_HIGH(GPIOA_PIN7) | \
PIN_ODR_HIGH(GPIOA_PIN8) | \
PIN_ODR_HIGH(GPIOA_VBUS_FS) | \
PIN_ODR_HIGH(GPIOA_PIN9) | \
PIN_ODR_HIGH(GPIOA_PIN10) | \
PIN_ODR_HIGH(GPIOA_PIN11) | \
PIN_ODR_HIGH(GPIOA_PIN12) | \
PIN_ODR_HIGH(GPIOA_SWDIO) | \
PIN_ODR_HIGH(GPIOA_SWCLK) | \
PIN_ODR_HIGH(GPIOA_PIN15))
#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \
#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_PIN0, 0U) | \
PIN_AFIO_AF(GPIOA_PIN1, 0U) | \
PIN_AFIO_AF(GPIOA_PIN2, 0U) | \
PIN_AFIO_AF(GPIOA_PIN3, 0U) | \
@ -400,7 +392,7 @@
PIN_AFIO_AF(GPIOA_PIN6, 5U) | \
PIN_AFIO_AF(GPIOA_PIN7, 5U))
#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | \
PIN_AFIO_AF(GPIOA_VBUS_FS, 0U) | \
PIN_AFIO_AF(GPIOA_PIN9, 0U) | \
PIN_AFIO_AF(GPIOA_PIN10, 0U) | \
PIN_AFIO_AF(GPIOA_PIN11, 0U) | \
PIN_AFIO_AF(GPIOA_PIN12, 0U) | \
@ -421,36 +413,36 @@
* PB7 - PIN7 (input pullup).
* PB8 - PIN8 (input pullup).
* PB9 - SDA (alternate 4).
* PB10 - CLK_IN (input pullup).
* PB10 - PIN10 (input pullup).
* PB11 - PIN11 (input pullup).
* PB12 - PIN12 (input pullup).
* PB13 - PIN13 (input pullup).
* PB14 - PIN14 (input pullup).
* PB15 - PIN15 (input pullup).
*/
#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
PIN_MODE_INPUT(GPIOB_PIN1) | \
PIN_MODE_INPUT(GPIOB_PIN2) | \
#define VAL_GPIOB_MODER (EFI_PIN_MODE_DEFAULT(GPIOB_PIN0) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN2) | \
PIN_MODE_ALTERNATE(GPIOB_SWO) | \
PIN_MODE_INPUT(GPIOB_PIN4) | \
PIN_MODE_INPUT(GPIOB_PIN5) | \
PIN_MODE_ALTERNATE(GPIOB_SCL) | \
PIN_MODE_INPUT(GPIOB_PIN7) | \
PIN_MODE_INPUT(GPIOB_PIN8) | \
PIN_MODE_INPUT(GPIOB_PIN9) | \
PIN_MODE_INPUT(GPIOB_PIN10) | \
PIN_MODE_INPUT(GPIOB_PIN11) | \
PIN_MODE_INPUT(GPIOB_PIN12) | \
PIN_MODE_INPUT(GPIOB_PIN13) | \
PIN_MODE_INPUT(GPIOB_PIN14) | \
PIN_MODE_INPUT(GPIOB_PIN15))
EFI_PIN_MODE_DEFAULT(GPIOB_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN5) | \
PIN_MODE_ALTERNATE(GPIOB_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOB_PIN15))
#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \
PIN_OTYPE_PUSHPULL(GPIOB_SWO) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \
PIN_OTYPE_OPENDRAIN(GPIOB_SCL) | \
PIN_OTYPE_OPENDRAIN(GPIOB_PIN6) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \
PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \
@ -466,7 +458,7 @@
DEFAULT_GPIO_SPEED(GPIOB_SWO) | \
DEFAULT_GPIO_SPEED(GPIOB_PIN4) | \
DEFAULT_GPIO_SPEED(GPIOB_PIN5) | \
DEFAULT_GPIO_SPEED(GPIOB_SCL) | \
DEFAULT_GPIO_SPEED(GPIOB_PIN6) | \
DEFAULT_GPIO_SPEED(GPIOB_PIN7) | \
DEFAULT_GPIO_SPEED(GPIOB_PIN8) | \
DEFAULT_GPIO_SPEED(GPIOB_PIN9) | \
@ -479,10 +471,10 @@
#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
PIN_PUPDR_FLOATING(GPIOB_SWO) | \
EFI_DR_DEFAULT(GPIOB_SWO) | \
PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
PIN_PUPDR_FLOATING(GPIOB_SCL) | \
EFI_DR_DEFAULT(GPIOB_PIN6) | \
PIN_PUPDR_PULLDOWN(GPIOB_PIN7) | \
PIN_PUPDR_PULLDOWN(GPIOB_PIN8) | \
PIN_PUPDR_PULLDOWN(GPIOB_PIN9) | \
@ -498,7 +490,7 @@
PIN_ODR_HIGH(GPIOB_SWO) | \
PIN_ODR_HIGH(GPIOB_PIN4) | \
PIN_ODR_HIGH(GPIOB_PIN5) | \
PIN_ODR_HIGH(GPIOB_SCL) | \
PIN_ODR_HIGH(GPIOB_PIN6) | \
PIN_ODR_HIGH(GPIOB_PIN7) | \
PIN_ODR_HIGH(GPIOB_PIN8) | \
PIN_ODR_HIGH(GPIOB_PIN9) | \
@ -514,7 +506,7 @@
PIN_AFIO_AF(GPIOB_SWO, 0U) | \
PIN_AFIO_AF(GPIOB_PIN4, 0U) | \
PIN_AFIO_AF(GPIOB_PIN5, 0U) | \
PIN_AFIO_AF(GPIOB_SCL, 4U) | \
PIN_AFIO_AF(GPIOB_PIN6, 4U) | \
PIN_AFIO_AF(GPIOB_PIN7, 0U))
#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \
PIN_AFIO_AF(GPIOB_PIN9, 0U) | \
@ -546,21 +538,21 @@
* PC15 - PIN15 (input pullup).
*/
#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_OTG_FS_POWER_ON) |\
PIN_MODE_INPUT(GPIOC_PIN1) | \
PIN_MODE_INPUT(GPIOC_PIN2) | \
PIN_MODE_INPUT(GPIOC_PIN3) | \
PIN_MODE_INPUT(GPIOC_PIN4) | \
PIN_MODE_INPUT(GPIOC_PIN5) | \
PIN_MODE_INPUT(GPIOC_PIN6) | \
PIN_MODE_INPUT(GPIOC_PIN7) | \
PIN_MODE_INPUT(GPIOC_PIN8) | \
PIN_MODE_INPUT(GPIOC_PIN9) | \
PIN_MODE_INPUT(GPIOC_PIN10) | \
PIN_MODE_INPUT(GPIOC_PIN11) | \
PIN_MODE_INPUT(GPIOC_PIN12) | \
PIN_MODE_INPUT(GPIOC_PIN13) | \
PIN_MODE_INPUT(GPIOC_PIN14) | \
PIN_MODE_INPUT(GPIOC_PIN15))
EFI_PIN_MODE_DEFAULT(GPIOC_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOC_PIN15))
#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_OTG_FS_POWER_ON) |\
PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \
@ -593,7 +585,7 @@
DEFAULT_GPIO_SPEED(GPIOC_PIN13) | \
DEFAULT_GPIO_SPEED(GPIOC_PIN14) | \
DEFAULT_GPIO_SPEED(GPIOC_PIN15))
#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_OTG_FS_POWER_ON) |\
#define VAL_GPIOC_PUPDR (EFI_DR_DEFAULT(GPIOC_OTG_FS_POWER_ON) |\
PIN_PUPDR_PULLDOWN(GPIOC_PIN1) | \
PIN_PUPDR_PULLDOWN(GPIOC_PIN2) | \
PIN_PUPDR_PULLDOWN(GPIOC_PIN3) | \
@ -662,18 +654,18 @@
* PD14 - LED5 (output pushpull maximum).
* PD15 - LED6 (output pushpull maximum).
*/
#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \
PIN_MODE_INPUT(GPIOD_PIN1) | \
PIN_MODE_INPUT(GPIOD_PIN2) | \
PIN_MODE_INPUT(GPIOD_PIN3) | \
#define VAL_GPIOD_MODER (EFI_PIN_MODE_DEFAULT(GPIOD_PIN0) | \
EFI_PIN_MODE_DEFAULT(GPIOD_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOD_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOD_PIN3) | \
PIN_MODE_OUTPUT(GPIOD_RESET) | \
PIN_MODE_INPUT(GPIOD_OVER_CURRENT) | \
PIN_MODE_INPUT(GPIOD_PIN6) | \
PIN_MODE_INPUT(GPIOD_PIN7) | \
PIN_MODE_INPUT(GPIOD_PIN8) | \
PIN_MODE_INPUT(GPIOD_PIN9) | \
PIN_MODE_INPUT(GPIOD_PIN10) | \
PIN_MODE_INPUT(GPIOD_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOD_OVER_CURRENT) | \
EFI_PIN_MODE_DEFAULT(GPIOD_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOD_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOD_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOD_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOD_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOD_PIN11) | \
PIN_MODE_OUTPUT(GPIOD_LED4) | \
PIN_MODE_OUTPUT(GPIOD_LED3) | \
PIN_MODE_OUTPUT(GPIOD_LED5) | \
@ -714,18 +706,18 @@
PIN_PUPDR_PULLUP(GPIOD_PIN1) | \
PIN_PUPDR_PULLUP(GPIOD_PIN2) | \
PIN_PUPDR_PULLUP(GPIOD_PIN3) | \
PIN_PUPDR_FLOATING(GPIOD_RESET) | \
PIN_PUPDR_FLOATING(GPIOD_OVER_CURRENT) |\
EFI_DR_DEFAULT(GPIOD_RESET) | \
EFI_DR_DEFAULT(GPIOD_OVER_CURRENT) |\
PIN_PUPDR_PULLUP(GPIOD_PIN6) | \
PIN_PUPDR_PULLUP(GPIOD_PIN7) | \
PIN_PUPDR_PULLUP(GPIOD_PIN8) | \
PIN_PUPDR_PULLUP(GPIOD_PIN9) | \
PIN_PUPDR_PULLUP(GPIOD_PIN10) | \
PIN_PUPDR_PULLUP(GPIOD_PIN11) | \
PIN_PUPDR_FLOATING(GPIOD_LED4) | \
PIN_PUPDR_FLOATING(GPIOD_LED3) | \
PIN_PUPDR_FLOATING(GPIOD_LED5) | \
PIN_PUPDR_FLOATING(GPIOD_LED6))
EFI_DR_DEFAULT(GPIOD_LED4) | \
EFI_DR_DEFAULT(GPIOD_LED3) | \
EFI_DR_DEFAULT(GPIOD_LED5) | \
EFI_DR_DEFAULT(GPIOD_LED6))
#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \
PIN_ODR_HIGH(GPIOD_PIN1) | \
PIN_ODR_HIGH(GPIOD_PIN2) | \
@ -779,22 +771,22 @@
* PE14 - PIN14 (input floating).
* PE15 - PIN15 (input floating).
*/
#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \
PIN_MODE_INPUT(GPIOE_PIN1) | \
PIN_MODE_INPUT(GPIOE_PIN2) | \
PIN_MODE_INPUT(GPIOE_PIN3) | \
PIN_MODE_INPUT(GPIOE_PIN4) | \
PIN_MODE_INPUT(GPIOE_PIN5) | \
PIN_MODE_INPUT(GPIOE_PIN6) | \
PIN_MODE_INPUT(GPIOE_PIN7) | \
PIN_MODE_INPUT(GPIOE_PIN8) | \
PIN_MODE_INPUT(GPIOE_PIN9) | \
PIN_MODE_INPUT(GPIOE_PIN10) | \
PIN_MODE_INPUT(GPIOE_PIN11) | \
PIN_MODE_INPUT(GPIOE_PIN12) | \
PIN_MODE_INPUT(GPIOE_PIN13) | \
PIN_MODE_INPUT(GPIOE_PIN14) | \
PIN_MODE_INPUT(GPIOE_PIN15))
#define VAL_GPIOE_MODER (EFI_PIN_MODE_DEFAULT(GPIOE_PIN0) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOE_PIN15))
#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \
@ -827,22 +819,22 @@
DEFAULT_GPIO_SPEED(GPIOE_PIN13) | \
DEFAULT_GPIO_SPEED(GPIOE_PIN14) | \
DEFAULT_GPIO_SPEED(GPIOE_PIN15))
#define VAL_GPIOE_PUPDR (PIN_PUPDR_FLOATING(GPIOE_PIN0) | \
PIN_PUPDR_FLOATING(GPIOE_PIN1) | \
PIN_PUPDR_FLOATING(GPIOE_PIN2) | \
PIN_PUPDR_FLOATING(GPIOE_PIN3) | \
PIN_PUPDR_FLOATING(GPIOE_PIN4) | \
PIN_PUPDR_FLOATING(GPIOE_PIN5) | \
PIN_PUPDR_FLOATING(GPIOE_PIN6) | \
PIN_PUPDR_FLOATING(GPIOE_PIN7) | \
PIN_PUPDR_FLOATING(GPIOE_PIN8) | \
PIN_PUPDR_FLOATING(GPIOE_PIN9) | \
PIN_PUPDR_FLOATING(GPIOE_PIN10) | \
PIN_PUPDR_FLOATING(GPIOE_PIN11) | \
PIN_PUPDR_FLOATING(GPIOE_PIN12) | \
PIN_PUPDR_FLOATING(GPIOE_PIN13) | \
PIN_PUPDR_FLOATING(GPIOE_PIN14) | \
PIN_PUPDR_FLOATING(GPIOE_PIN15))
#define VAL_GPIOE_PUPDR (EFI_DR_DEFAULT(GPIOE_PIN0) | \
EFI_DR_DEFAULT(GPIOE_PIN1) | \
EFI_DR_DEFAULT(GPIOE_PIN2) | \
EFI_DR_DEFAULT(GPIOE_PIN3) | \
EFI_DR_DEFAULT(GPIOE_PIN4) | \
EFI_DR_DEFAULT(GPIOE_PIN5) | \
EFI_DR_DEFAULT(GPIOE_PIN6) | \
EFI_DR_DEFAULT(GPIOE_PIN7) | \
EFI_DR_DEFAULT(GPIOE_PIN8) | \
EFI_DR_DEFAULT(GPIOE_PIN9) | \
EFI_DR_DEFAULT(GPIOE_PIN10) | \
EFI_DR_DEFAULT(GPIOE_PIN11) | \
EFI_DR_DEFAULT(GPIOE_PIN12) | \
EFI_DR_DEFAULT(GPIOE_PIN13) | \
EFI_DR_DEFAULT(GPIOE_PIN14) | \
EFI_DR_DEFAULT(GPIOE_PIN15))
#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \
PIN_ODR_HIGH(GPIOE_PIN1) | \
PIN_ODR_HIGH(GPIOE_PIN2) | \
@ -896,22 +888,22 @@
* PF14 - PIN14 (input floating).
* PF15 - PIN15 (input floating).
*/
#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_PIN0) | \
PIN_MODE_INPUT(GPIOF_PIN1) | \
PIN_MODE_INPUT(GPIOF_PIN2) | \
PIN_MODE_INPUT(GPIOF_PIN3) | \
PIN_MODE_INPUT(GPIOF_PIN4) | \
PIN_MODE_INPUT(GPIOF_PIN5) | \
PIN_MODE_INPUT(GPIOF_PIN6) | \
PIN_MODE_INPUT(GPIOF_PIN7) | \
PIN_MODE_INPUT(GPIOF_PIN8) | \
PIN_MODE_INPUT(GPIOF_PIN9) | \
PIN_MODE_INPUT(GPIOF_PIN10) | \
PIN_MODE_INPUT(GPIOF_PIN11) | \
PIN_MODE_INPUT(GPIOF_PIN12) | \
PIN_MODE_INPUT(GPIOF_PIN13) | \
PIN_MODE_INPUT(GPIOF_PIN14) | \
PIN_MODE_INPUT(GPIOF_PIN15))
#define VAL_GPIOF_MODER (EFI_PIN_MODE_DEFAULT(GPIOF_PIN0) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOF_PIN15))
#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOF_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \
@ -944,22 +936,22 @@
DEFAULT_GPIO_SPEED(GPIOF_PIN13) | \
DEFAULT_GPIO_SPEED(GPIOF_PIN14) | \
DEFAULT_GPIO_SPEED(GPIOF_PIN15))
#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_PIN0) | \
PIN_PUPDR_FLOATING(GPIOF_PIN1) | \
PIN_PUPDR_FLOATING(GPIOF_PIN2) | \
PIN_PUPDR_FLOATING(GPIOF_PIN3) | \
PIN_PUPDR_FLOATING(GPIOF_PIN4) | \
PIN_PUPDR_FLOATING(GPIOF_PIN5) | \
PIN_PUPDR_FLOATING(GPIOF_PIN6) | \
PIN_PUPDR_FLOATING(GPIOF_PIN7) | \
PIN_PUPDR_FLOATING(GPIOF_PIN8) | \
PIN_PUPDR_FLOATING(GPIOF_PIN9) | \
PIN_PUPDR_FLOATING(GPIOF_PIN10) | \
PIN_PUPDR_FLOATING(GPIOF_PIN11) | \
PIN_PUPDR_FLOATING(GPIOF_PIN12) | \
PIN_PUPDR_FLOATING(GPIOF_PIN13) | \
PIN_PUPDR_FLOATING(GPIOF_PIN14) | \
PIN_PUPDR_FLOATING(GPIOF_PIN15))
#define VAL_GPIOF_PUPDR (EFI_DR_DEFAULT(GPIOF_PIN0) | \
EFI_DR_DEFAULT(GPIOF_PIN1) | \
EFI_DR_DEFAULT(GPIOF_PIN2) | \
EFI_DR_DEFAULT(GPIOF_PIN3) | \
EFI_DR_DEFAULT(GPIOF_PIN4) | \
EFI_DR_DEFAULT(GPIOF_PIN5) | \
EFI_DR_DEFAULT(GPIOF_PIN6) | \
EFI_DR_DEFAULT(GPIOF_PIN7) | \
EFI_DR_DEFAULT(GPIOF_PIN8) | \
EFI_DR_DEFAULT(GPIOF_PIN9) | \
EFI_DR_DEFAULT(GPIOF_PIN10) | \
EFI_DR_DEFAULT(GPIOF_PIN11) | \
EFI_DR_DEFAULT(GPIOF_PIN12) | \
EFI_DR_DEFAULT(GPIOF_PIN13) | \
EFI_DR_DEFAULT(GPIOF_PIN14) | \
EFI_DR_DEFAULT(GPIOF_PIN15))
#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_PIN0) | \
PIN_ODR_HIGH(GPIOF_PIN1) | \
PIN_ODR_HIGH(GPIOF_PIN2) | \
@ -1013,22 +1005,22 @@
* PG14 - PIN14 (input floating).
* PG15 - PIN15 (input floating).
*/
#define VAL_GPIOG_MODER (PIN_MODE_INPUT(GPIOG_PIN0) | \
PIN_MODE_INPUT(GPIOG_PIN1) | \
PIN_MODE_INPUT(GPIOG_PIN2) | \
PIN_MODE_INPUT(GPIOG_PIN3) | \
PIN_MODE_INPUT(GPIOG_PIN4) | \
PIN_MODE_INPUT(GPIOG_PIN5) | \
PIN_MODE_INPUT(GPIOG_PIN6) | \
PIN_MODE_INPUT(GPIOG_PIN7) | \
PIN_MODE_INPUT(GPIOG_PIN8) | \
PIN_MODE_INPUT(GPIOG_PIN9) | \
PIN_MODE_INPUT(GPIOG_PIN10) | \
PIN_MODE_INPUT(GPIOG_PIN11) | \
PIN_MODE_INPUT(GPIOG_PIN12) | \
PIN_MODE_INPUT(GPIOG_PIN13) | \
PIN_MODE_INPUT(GPIOG_PIN14) | \
PIN_MODE_INPUT(GPIOG_PIN15))
#define VAL_GPIOG_MODER (EFI_PIN_MODE_DEFAULT(GPIOG_PIN0) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOG_PIN15))
#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(GPIOG_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOG_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOG_PIN2) | \
@ -1061,22 +1053,22 @@
DEFAULT_GPIO_SPEED(GPIOG_PIN13) | \
DEFAULT_GPIO_SPEED(GPIOG_PIN14) | \
DEFAULT_GPIO_SPEED(GPIOG_PIN15))
#define VAL_GPIOG_PUPDR (PIN_PUPDR_FLOATING(GPIOG_PIN0) | \
PIN_PUPDR_FLOATING(GPIOG_PIN1) | \
PIN_PUPDR_FLOATING(GPIOG_PIN2) | \
PIN_PUPDR_FLOATING(GPIOG_PIN3) | \
PIN_PUPDR_FLOATING(GPIOG_PIN4) | \
PIN_PUPDR_FLOATING(GPIOG_PIN5) | \
PIN_PUPDR_FLOATING(GPIOG_PIN6) | \
PIN_PUPDR_FLOATING(GPIOG_PIN7) | \
PIN_PUPDR_FLOATING(GPIOG_PIN8) | \
PIN_PUPDR_FLOATING(GPIOG_PIN9) | \
PIN_PUPDR_FLOATING(GPIOG_PIN10) | \
PIN_PUPDR_FLOATING(GPIOG_PIN11) | \
PIN_PUPDR_FLOATING(GPIOG_PIN12) | \
PIN_PUPDR_FLOATING(GPIOG_PIN13) | \
PIN_PUPDR_FLOATING(GPIOG_PIN14) | \
PIN_PUPDR_FLOATING(GPIOG_PIN15))
#define VAL_GPIOG_PUPDR (EFI_DR_DEFAULT(GPIOG_PIN0) | \
EFI_DR_DEFAULT(GPIOG_PIN1) | \
EFI_DR_DEFAULT(GPIOG_PIN2) | \
EFI_DR_DEFAULT(GPIOG_PIN3) | \
EFI_DR_DEFAULT(GPIOG_PIN4) | \
EFI_DR_DEFAULT(GPIOG_PIN5) | \
EFI_DR_DEFAULT(GPIOG_PIN6) | \
EFI_DR_DEFAULT(GPIOG_PIN7) | \
EFI_DR_DEFAULT(GPIOG_PIN8) | \
EFI_DR_DEFAULT(GPIOG_PIN9) | \
EFI_DR_DEFAULT(GPIOG_PIN10) | \
EFI_DR_DEFAULT(GPIOG_PIN11) | \
EFI_DR_DEFAULT(GPIOG_PIN12) | \
EFI_DR_DEFAULT(GPIOG_PIN13) | \
EFI_DR_DEFAULT(GPIOG_PIN14) | \
EFI_DR_DEFAULT(GPIOG_PIN15))
#define VAL_GPIOG_ODR (PIN_ODR_HIGH(GPIOG_PIN0) | \
PIN_ODR_HIGH(GPIOG_PIN1) | \
PIN_ODR_HIGH(GPIOG_PIN2) | \
@ -1130,22 +1122,22 @@
* PH14 - PIN14 (input floating).
* PH15 - PIN15 (input floating).
*/
#define VAL_GPIOH_MODER (PIN_MODE_INPUT(GPIOH_OSC_IN) | \
PIN_MODE_INPUT(GPIOH_OSC_OUT) | \
PIN_MODE_INPUT(GPIOH_PIN2) | \
PIN_MODE_INPUT(GPIOH_PIN3) | \
PIN_MODE_INPUT(GPIOH_PIN4) | \
PIN_MODE_INPUT(GPIOH_PIN5) | \
PIN_MODE_INPUT(GPIOH_PIN6) | \
PIN_MODE_INPUT(GPIOH_PIN7) | \
PIN_MODE_INPUT(GPIOH_PIN8) | \
PIN_MODE_INPUT(GPIOH_PIN9) | \
PIN_MODE_INPUT(GPIOH_PIN10) | \
PIN_MODE_INPUT(GPIOH_PIN11) | \
PIN_MODE_INPUT(GPIOH_PIN12) | \
PIN_MODE_INPUT(GPIOH_PIN13) | \
PIN_MODE_INPUT(GPIOH_PIN14) | \
PIN_MODE_INPUT(GPIOH_PIN15))
#define VAL_GPIOH_MODER (EFI_PIN_MODE_DEFAULT(GPIOH_OSC_IN) | \
EFI_PIN_MODE_DEFAULT(GPIOH_OSC_OUT) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOH_PIN15))
#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(GPIOH_OSC_IN) | \
PIN_OTYPE_PUSHPULL(GPIOH_OSC_OUT) | \
PIN_OTYPE_PUSHPULL(GPIOH_PIN2) | \
@ -1178,22 +1170,22 @@
DEFAULT_GPIO_SPEED(GPIOH_PIN13) | \
DEFAULT_GPIO_SPEED(GPIOH_PIN14) | \
DEFAULT_GPIO_SPEED(GPIOH_PIN15))
#define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING(GPIOH_OSC_IN) | \
PIN_PUPDR_FLOATING(GPIOH_OSC_OUT) | \
PIN_PUPDR_FLOATING(GPIOH_PIN2) | \
PIN_PUPDR_FLOATING(GPIOH_PIN3) | \
PIN_PUPDR_FLOATING(GPIOH_PIN4) | \
PIN_PUPDR_FLOATING(GPIOH_PIN5) | \
PIN_PUPDR_FLOATING(GPIOH_PIN6) | \
PIN_PUPDR_FLOATING(GPIOH_PIN7) | \
PIN_PUPDR_FLOATING(GPIOH_PIN8) | \
PIN_PUPDR_FLOATING(GPIOH_PIN9) | \
PIN_PUPDR_FLOATING(GPIOH_PIN10) | \
PIN_PUPDR_FLOATING(GPIOH_PIN11) | \
PIN_PUPDR_FLOATING(GPIOH_PIN12) | \
PIN_PUPDR_FLOATING(GPIOH_PIN13) | \
PIN_PUPDR_FLOATING(GPIOH_PIN14) | \
PIN_PUPDR_FLOATING(GPIOH_PIN15))
#define VAL_GPIOH_PUPDR (EFI_DR_DEFAULT(GPIOH_OSC_IN) | \
EFI_DR_DEFAULT(GPIOH_OSC_OUT) | \
EFI_DR_DEFAULT(GPIOH_PIN2) | \
EFI_DR_DEFAULT(GPIOH_PIN3) | \
EFI_DR_DEFAULT(GPIOH_PIN4) | \
EFI_DR_DEFAULT(GPIOH_PIN5) | \
EFI_DR_DEFAULT(GPIOH_PIN6) | \
EFI_DR_DEFAULT(GPIOH_PIN7) | \
EFI_DR_DEFAULT(GPIOH_PIN8) | \
EFI_DR_DEFAULT(GPIOH_PIN9) | \
EFI_DR_DEFAULT(GPIOH_PIN10) | \
EFI_DR_DEFAULT(GPIOH_PIN11) | \
EFI_DR_DEFAULT(GPIOH_PIN12) | \
EFI_DR_DEFAULT(GPIOH_PIN13) | \
EFI_DR_DEFAULT(GPIOH_PIN14) | \
EFI_DR_DEFAULT(GPIOH_PIN15))
#define VAL_GPIOH_ODR (PIN_ODR_HIGH(GPIOH_OSC_IN) | \
PIN_ODR_HIGH(GPIOH_OSC_OUT) | \
PIN_ODR_HIGH(GPIOH_PIN2) | \
@ -1247,22 +1239,22 @@
* PI14 - PIN14 (input floating).
* PI15 - PIN15 (input floating).
*/
#define VAL_GPIOI_MODER (PIN_MODE_INPUT(GPIOI_PIN0) | \
PIN_MODE_INPUT(GPIOI_PIN1) | \
PIN_MODE_INPUT(GPIOI_PIN2) | \
PIN_MODE_INPUT(GPIOI_PIN3) | \
PIN_MODE_INPUT(GPIOI_PIN4) | \
PIN_MODE_INPUT(GPIOI_PIN5) | \
PIN_MODE_INPUT(GPIOI_PIN6) | \
PIN_MODE_INPUT(GPIOI_PIN7) | \
PIN_MODE_INPUT(GPIOI_PIN8) | \
PIN_MODE_INPUT(GPIOI_PIN9) | \
PIN_MODE_INPUT(GPIOI_PIN10) | \
PIN_MODE_INPUT(GPIOI_PIN11) | \
PIN_MODE_INPUT(GPIOI_PIN12) | \
PIN_MODE_INPUT(GPIOI_PIN13) | \
PIN_MODE_INPUT(GPIOI_PIN14) | \
PIN_MODE_INPUT(GPIOI_PIN15))
#define VAL_GPIOI_MODER (EFI_PIN_MODE_DEFAULT(GPIOI_PIN0) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN1) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN2) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN3) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN4) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN5) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN6) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN7) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN8) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN9) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN10) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN11) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN12) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN13) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN14) | \
EFI_PIN_MODE_DEFAULT(GPIOI_PIN15))
#define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL(GPIOI_PIN0) | \
PIN_OTYPE_PUSHPULL(GPIOI_PIN1) | \
PIN_OTYPE_PUSHPULL(GPIOI_PIN2) | \
@ -1295,22 +1287,22 @@
DEFAULT_GPIO_SPEED(GPIOI_PIN13) | \
DEFAULT_GPIO_SPEED(GPIOI_PIN14) | \
DEFAULT_GPIO_SPEED(GPIOI_PIN15))
#define VAL_GPIOI_PUPDR (PIN_PUPDR_FLOATING(GPIOI_PIN0) | \
PIN_PUPDR_FLOATING(GPIOI_PIN1) | \
PIN_PUPDR_FLOATING(GPIOI_PIN2) | \
PIN_PUPDR_FLOATING(GPIOI_PIN3) | \
PIN_PUPDR_FLOATING(GPIOI_PIN4) | \
PIN_PUPDR_FLOATING(GPIOI_PIN5) | \
PIN_PUPDR_FLOATING(GPIOI_PIN6) | \
PIN_PUPDR_FLOATING(GPIOI_PIN7) | \
PIN_PUPDR_FLOATING(GPIOI_PIN8) | \
PIN_PUPDR_FLOATING(GPIOI_PIN9) | \
PIN_PUPDR_FLOATING(GPIOI_PIN10) | \
PIN_PUPDR_FLOATING(GPIOI_PIN11) | \
PIN_PUPDR_FLOATING(GPIOI_PIN12) | \
PIN_PUPDR_FLOATING(GPIOI_PIN13) | \
PIN_PUPDR_FLOATING(GPIOI_PIN14) | \
PIN_PUPDR_FLOATING(GPIOI_PIN15))
#define VAL_GPIOI_PUPDR (EFI_DR_DEFAULT(GPIOI_PIN0) | \
EFI_DR_DEFAULT(GPIOI_PIN1) | \
EFI_DR_DEFAULT(GPIOI_PIN2) | \
EFI_DR_DEFAULT(GPIOI_PIN3) | \
EFI_DR_DEFAULT(GPIOI_PIN4) | \
EFI_DR_DEFAULT(GPIOI_PIN5) | \
EFI_DR_DEFAULT(GPIOI_PIN6) | \
EFI_DR_DEFAULT(GPIOI_PIN7) | \
EFI_DR_DEFAULT(GPIOI_PIN8) | \
EFI_DR_DEFAULT(GPIOI_PIN9) | \
EFI_DR_DEFAULT(GPIOI_PIN10) | \
EFI_DR_DEFAULT(GPIOI_PIN11) | \
EFI_DR_DEFAULT(GPIOI_PIN12) | \
EFI_DR_DEFAULT(GPIOI_PIN13) | \
EFI_DR_DEFAULT(GPIOI_PIN14) | \
EFI_DR_DEFAULT(GPIOI_PIN15))
#define VAL_GPIOI_ODR (PIN_ODR_HIGH(GPIOI_PIN0) | \
PIN_ODR_HIGH(GPIOI_PIN1) | \
PIN_ODR_HIGH(GPIOI_PIN2) | \

View File

@ -57,7 +57,7 @@ static void setSubaruEJ20GDefaults(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->tpsErrorDetectionTooLow = -10; // -10% open
engineConfiguration->tpsErrorDetectionTooHigh = 110; // 110% open
boardConfiguration->mapMinBufferLength = 4;
engineConfiguration->mapMinBufferLength = 4;
}
void setPinConfigurationOverrides(void) {
@ -65,20 +65,20 @@ void setPinConfigurationOverrides(void) {
}
void setSerialConfigurationOverrides(void) {
boardConfiguration->useSerialPort = false;
engineConfiguration->useSerialPort = false;
engineConfiguration->binarySerialTxPin = GPIOE_1;
engineConfiguration->binarySerialRxPin = GPIOE_0;
engineConfiguration->consoleSerialTxPin = GPIOA_9;
engineConfiguration->consoleSerialRxPin = GPIOA_10;
boardConfiguration->tunerStudioSerialSpeed = SERIAL_SPEED;
engineConfiguration->tunerStudioSerialSpeed = SERIAL_SPEED;
engineConfiguration->uartConsoleSerialSpeed = SERIAL_SPEED;
}
void setSdCardConfigurationOverrides(void) {
boardConfiguration->is_enabled_spi_1 = false;
engineConfiguration->is_enabled_spi_1 = false;
engineConfiguration->sdCardSpiDevice = SPI_DEVICE_1;
boardConfiguration->sdCardCsPin = GPIOA_2;
boardConfiguration->isSdCardEnabled = false;
engineConfiguration->sdCardCsPin = GPIOA_2;
engineConfiguration->isSdCardEnabled = false;
}
/**
@ -103,19 +103,19 @@ void setBoardConfigurationOverrides(void) {
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_NONE;
/* Injectors */
boardConfiguration->injectionPins[0] = GPIOB_11;
boardConfiguration->injectionPins[1] = GPIOA_0;
boardConfiguration->injectionPins[2] = GPIOA_1;
boardConfiguration->injectionPins[3] = GPIOB_10;
engineConfiguration->injectionPins[0] = GPIOB_11;
engineConfiguration->injectionPins[1] = GPIOA_0;
engineConfiguration->injectionPins[2] = GPIOA_1;
engineConfiguration->injectionPins[3] = GPIOB_10;
/* 5th injector */
//boardConfiguration->injectionPins[4] = GPIOD_15;
//engineConfiguration->injectionPins[4] = GPIOD_15;
/* Ignition */
boardConfiguration->ignitionPins[0] = GPIOB_8;
boardConfiguration->ignitionPins[1] = GPIOB_9;
boardConfiguration->ignitionPins[2] = GPIOF_8;
boardConfiguration->ignitionPins[3] = GPIOF_9;
//boardConfiguration->ignitionPinMode = OM_INVERTED;
engineConfiguration->ignitionPins[0] = GPIOB_8;
engineConfiguration->ignitionPins[1] = GPIOB_9;
engineConfiguration->ignitionPins[2] = GPIOF_8;
engineConfiguration->ignitionPins[3] = GPIOF_9;
//engineConfiguration->ignitionPinMode = OM_INVERTED;
//?
//engineConfiguration->vbattDividerCoeff = ((float) (2 + 10)) / 2;
@ -123,9 +123,9 @@ void setBoardConfigurationOverrides(void) {
//sengineConfiguration->iat.config.bias_resistor = 2700;
//?
//boardConfiguration->useStepperIdle = true;
//boardConfiguration->idle.stepperDirectionPin = GPIOB_12;
//boardConfiguration->idle.stepperStepPin = GPIOB_13;
//engineConfiguration->useStepperIdle = true;
//engineConfiguration->idle.stepperDirectionPin = GPIOB_12;
//engineConfiguration->idle.stepperStepPin = GPIOB_13;
//engineConfiguration->stepperEnablePin = GPIO_UNASSIGNED;
//engineConfiguration->stepperEnablePinMode = OM_DEFAULT;
@ -136,27 +136,27 @@ void setBoardConfigurationOverrides(void) {
/* IF you have BOTH camshaft position sensor and crankshaft position sensor
* camshaft is always trigger#1 input and then crankshaft is trigger#2. */
boardConfiguration->triggerInputPins[0] = GPIOC_8;
boardConfiguration->triggerInputPins[1] = GPIOC_9;
boardConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[0] = GPIOC_8;
engineConfiguration->triggerInputPins[1] = GPIOC_9;
engineConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED;
engineConfiguration->camInputs[0] = GPIO_UNASSIGNED;
/* spi driven - TLE6240 - OUT8, also direct driven by GPIOG_2 */
boardConfiguration->tachOutputPin = TLE6240_PIN(0);
boardConfiguration->tachOutputPinMode = OM_DEFAULT;
engineConfiguration->tachOutputPin = TLE6240_PIN(0);
engineConfiguration->tachOutputPinMode = OM_DEFAULT;
/* spi driven - TLE6240 - OUT5 */
boardConfiguration->fuelPumpPin = TLE6240_PIN(5);
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
engineConfiguration->fuelPumpPin = TLE6240_PIN(5);
engineConfiguration->fuelPumpPinMode = OM_DEFAULT;
/* self shutdownd? */
boardConfiguration->mainRelayPin = GPIOG_4;
boardConfiguration->mainRelayPinMode = OM_DEFAULT;
engineConfiguration->mainRelayPin = GPIOG_4;
engineConfiguration->mainRelayPinMode = OM_DEFAULT;
/* spi driven - TLE6240 - OUT3, OUT4
* TODO: second fan */
boardConfiguration->fanPin = TLE6240_PIN(2);
boardConfiguration->fanPinMode = OM_DEFAULT;
engineConfiguration->fanPin = TLE6240_PIN(2);
engineConfiguration->fanPinMode = OM_DEFAULT;
/* spi driven - TLE6240 - OUT8 */
boardConfiguration->malfunctionIndicatorPin = TLE6240_PIN(7);
boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
engineConfiguration->malfunctionIndicatorPin = TLE6240_PIN(7);
engineConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
// starter block
/* Starter signal connected through MC33972 - SG11 */
@ -167,84 +167,84 @@ void setBoardConfigurationOverrides(void) {
engineConfiguration->dizzySparkOutputPin = GPIO_UNASSIGNED;
engineConfiguration->externalKnockSenseAdc = EFI_ADC_NONE;
engineConfiguration->displayMode = DM_NONE;
boardConfiguration->HD44780_rs = GPIO_UNASSIGNED;
boardConfiguration->HD44780_e = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
boardConfiguration->digitalPotentiometerChipSelect[0] = GPIO_UNASSIGNED;
boardConfiguration->digitalPotentiometerChipSelect[1] = GPIO_UNASSIGNED;
boardConfiguration->digitalPotentiometerChipSelect[2] = GPIO_UNASSIGNED;
boardConfiguration->digitalPotentiometerChipSelect[3] = GPIO_UNASSIGNED;
engineConfiguration->HD44780_rs = GPIO_UNASSIGNED;
engineConfiguration->HD44780_e = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
engineConfiguration->digitalPotentiometerChipSelect[0] = GPIO_UNASSIGNED;
engineConfiguration->digitalPotentiometerChipSelect[1] = GPIO_UNASSIGNED;
engineConfiguration->digitalPotentiometerChipSelect[2] = GPIO_UNASSIGNED;
engineConfiguration->digitalPotentiometerChipSelect[3] = GPIO_UNASSIGNED;
engineConfiguration->vehicleSpeedSensorInputPin = GPIO_UNASSIGNED;
boardConfiguration->digitalPotentiometerSpiDevice = SPI_NONE;
boardConfiguration->max31855spiDevice = SPI_NONE;
engineConfiguration->digitalPotentiometerSpiDevice = SPI_NONE;
engineConfiguration->max31855spiDevice = SPI_NONE;
/////////////////////////////////////////////////////////
boardConfiguration->is_enabled_spi_1 = true;
boardConfiguration->is_enabled_spi_2 = false;
boardConfiguration->is_enabled_spi_3 = true;
engineConfiguration->is_enabled_spi_1 = true;
engineConfiguration->is_enabled_spi_2 = false;
engineConfiguration->is_enabled_spi_3 = true;
boardConfiguration->spi1mosiPin = GPIO_UNASSIGNED;
engineConfiguration->spi1mosiPin = GPIO_UNASSIGNED;
engineConfiguration->spi1MosiMode = PO_DEFAULT;
boardConfiguration->spi1misoPin = GPIO_UNASSIGNED;
engineConfiguration->spi1misoPin = GPIO_UNASSIGNED;
engineConfiguration->spi1MisoMode = PO_DEFAULT;
boardConfiguration->spi1sckPin = GPIO_UNASSIGNED;
engineConfiguration->spi1sckPin = GPIO_UNASSIGNED;
engineConfiguration->spi1SckMode = PO_DEFAULT;
boardConfiguration->spi3mosiPin = GPIOC_12;
engineConfiguration->spi3mosiPin = GPIOC_12;
engineConfiguration->spi3MosiMode = PO_DEFAULT;
boardConfiguration->spi3misoPin = GPIOC_11;
engineConfiguration->spi3misoPin = GPIOC_11;
engineConfiguration->spi3MisoMode = PO_DEFAULT;
boardConfiguration->spi3sckPin = GPIOC_10;
engineConfiguration->spi3sckPin = GPIOC_10;
engineConfiguration->spi3SckMode = PO_DEFAULT;
engineConfiguration->hip9011SpiDevice = SPI_DEVICE_4;
boardConfiguration->hip9011CsPin = GPIOF_1;
boardConfiguration->hip9011CsPinMode = OM_OPENDRAIN;
boardConfiguration->hip9011IntHoldPin = GPIOC_15;
boardConfiguration->hip9011IntHoldPinMode = OM_OPENDRAIN;
engineConfiguration->hip9011CsPin = GPIOF_1;
engineConfiguration->hip9011CsPinMode = OM_OPENDRAIN;
engineConfiguration->hip9011IntHoldPin = GPIOC_15;
engineConfiguration->hip9011IntHoldPinMode = OM_OPENDRAIN;
engineConfiguration->hipOutputChannel = EFI_ADC_7; // PA7
boardConfiguration->isHip9011Enabled = true;
engineConfiguration->isHip9011Enabled = true;
#if 0
engineConfiguration->cj125SpiDevice = SPI_DEVICE_3;
engineConfiguration->cj125ua = EFI_ADC_9;
engineConfiguration->cj125ur = EFI_ADC_12;
boardConfiguration->cj125CsPin = GPIOA_15;
engineConfiguration->cj125CsPin = GPIOA_15;
engineConfiguration->cj125CsPinMode = OM_OPENDRAIN;
boardConfiguration->wboHeaterPin = GPIOC_13;
boardConfiguration->o2heaterPin = GPIOC_13;
engineConfiguration->wboHeaterPin = GPIOC_13;
engineConfiguration->o2heaterPin = GPIOC_13;
#endif
boardConfiguration->isCJ125Enabled = false;
engineConfiguration->isCJ125Enabled = false;
boardConfiguration->canDeviceMode = CD_USE_CAN1;
boardConfiguration->canTxPin = GPIOD_0;
boardConfiguration->canRxPin = GPIOD_1;
engineConfiguration->canDeviceMode = CD_USE_CAN1;
engineConfiguration->canTxPin = GPIOD_0;
engineConfiguration->canRxPin = GPIOD_1;
//!!!!!!!!!!!!!!!
#if 1
setSubaruEJ20GDefaults(PASS_ENGINE_PARAMETER_SIGNATURE);
#endif
/* actually i2c extension connector */
boardConfiguration->triggerSimulatorPins[0] = GPIOF_14;
boardConfiguration->triggerSimulatorPins[1] = GPIOF_15;
boardConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
boardConfiguration->triggerSimulatorPinModes[0] = OM_DEFAULT;
boardConfiguration->triggerSimulatorPinModes[1] = OM_DEFAULT;
boardConfiguration->triggerSimulatorPinModes[2] = OM_DEFAULT;
engineConfiguration->triggerSimulatorPins[0] = GPIOF_14;
engineConfiguration->triggerSimulatorPins[1] = GPIOF_15;
engineConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerSimulatorPinModes[0] = OM_DEFAULT;
engineConfiguration->triggerSimulatorPinModes[1] = OM_DEFAULT;
engineConfiguration->triggerSimulatorPinModes[2] = OM_DEFAULT;
boardConfiguration->logicAnalyzerPins[0] = GPIO_UNASSIGNED;
boardConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED;
boardConfiguration->logicAnalyzerPins[2] = GPIO_UNASSIGNED;
boardConfiguration->logicAnalyzerPins[3] = GPIO_UNASSIGNED;
boardConfiguration->logicAnalyzerMode[0] = OM_DEFAULT;
boardConfiguration->logicAnalyzerMode[1] = OM_DEFAULT;
boardConfiguration->logicAnalyzerMode[2] = OM_DEFAULT;
boardConfiguration->logicAnalyzerMode[3] = OM_DEFAULT;
engineConfiguration->logicAnalyzerPins[0] = GPIO_UNASSIGNED;
engineConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED;
engineConfiguration->logicAnalyzerPins[2] = GPIO_UNASSIGNED;
engineConfiguration->logicAnalyzerPins[3] = GPIO_UNASSIGNED;
engineConfiguration->logicAnalyzerMode[0] = OM_DEFAULT;
engineConfiguration->logicAnalyzerMode[1] = OM_DEFAULT;
engineConfiguration->logicAnalyzerMode[2] = OM_DEFAULT;
engineConfiguration->logicAnalyzerMode[3] = OM_DEFAULT;
//!!!!!!!!!!!!!!!!!!!
//engineConfiguration->silentTriggerError = true;

View File

@ -89,7 +89,7 @@ void setGy6139qmbDefaultEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE)
engineConfiguration->analogInputDividerCoefficient = 1;
engineConfiguration->fuelAlgorithm = LM_MAP;
engineConfiguration->globalTriggerAngleOffset = 45;
boardConfiguration->sensorChartMode = SC_MAP;
engineConfiguration->sensorChartMode = SC_MAP;
engineConfiguration->specs.displacement = 0.072; // 72cc
engineConfiguration->specs.cylindersCount = 1;
setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR);
@ -103,8 +103,8 @@ void setGy6139qmbDefaultEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE)
engineConfiguration->trigger.customTotalToothCount = 8;
engineConfiguration->trigger.customSkippedToothCount = 1;
boardConfiguration->injectionPins[0] = GPIOC_9;
boardConfiguration->ignitionPins[0] = GPIOC_8;
engineConfiguration->injectionPins[0] = GPIOC_9;
engineConfiguration->ignitionPins[0] = GPIOC_8;
// set injection_mode 1
engineConfiguration->injectionMode = IM_SEQUENTIAL;

View File

@ -27,8 +27,8 @@ void setBmwE34(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR);
// engineConfiguration->trigger.type = TT_ONE_PLUS_TOOTHED_WHEEL_60_2;
// engineConfiguration->injectionMode = IM_SEQUENTIAL;
// boardConfiguration->triggerInputPins[0] = GPIOC_6;
// boardConfiguration->triggerInputPins[1] = GPIOA_5;
// engineConfiguration->triggerInputPins[0] = GPIOC_6;
// engineConfiguration->triggerInputPins[1] = GPIOA_5;
//Base engine setting
engineConfiguration->specs.cylindersCount = 6;
@ -39,7 +39,7 @@ void setBmwE34(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->ignitionMode = IM_WASTED_SPARK;
engineConfiguration->useOnlyRisingEdgeForTrigger = true;
boardConfiguration->tachOutputPin = GPIOC_8;
engineConfiguration->tachOutputPin = GPIOC_8;
// Trigger configuration
// engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2;
@ -58,12 +58,12 @@ void setBmwE34(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->injector.flow = 750;
// General settings
boardConfiguration->tunerStudioSerialSpeed = 57600;
engineConfiguration->tunerStudioSerialSpeed = 57600;
engineConfiguration->rpmHardLimit = 7000;
setAlgorithm(LM_SPEED_DENSITY PASS_CONFIG_PARAMETER_SUFFIX);
// for best performance at high RPM, we need to turn off 'Engine Sniffer' and 'Sensor Sniffer'
boardConfiguration->sensorChartMode = SC_OFF;
engineConfiguration->sensorChartMode = SC_OFF;
engineConfiguration->isEngineChartEnabled = false;
engineConfiguration->isCylinderCleanupEnabled = false;
@ -90,52 +90,52 @@ void setBmwE34(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->tps1_1AdcChannel = EFI_ADC_3;
boardConfiguration->triggerInputPins[0] = GPIOA_5;
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[0] = GPIOA_5;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
setWholeTimingTable(25);
boardConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED;
engineConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED;
// bc->isFastAdcEnabled = true;
boardConfiguration->injectionPinMode = OM_INVERTED;
boardConfiguration->injectionPins[0] = GPIOB_8; // #1
boardConfiguration->injectionPins[1] = GPIOE_2; // #2
boardConfiguration->injectionPins[2] = GPIOE_3; // #3
boardConfiguration->injectionPins[3] = GPIOE_4; // #4
boardConfiguration->injectionPins[4] = GPIOE_5; // #5
boardConfiguration->injectionPins[5] = GPIOE_6; // #6
engineConfiguration->injectionPinMode = OM_INVERTED;
engineConfiguration->injectionPins[0] = GPIOB_8; // #1
engineConfiguration->injectionPins[1] = GPIOE_2; // #2
engineConfiguration->injectionPins[2] = GPIOE_3; // #3
engineConfiguration->injectionPins[3] = GPIOE_4; // #4
engineConfiguration->injectionPins[4] = GPIOE_5; // #5
engineConfiguration->injectionPins[5] = GPIOE_6; // #6
boardConfiguration->ignitionPinMode = OM_INVERTED;
engineConfiguration->ignitionPinMode = OM_INVERTED;
boardConfiguration->ignitionPins[0] = GPIOB_5; // #1
boardConfiguration->ignitionPins[2] = GPIOB_6; // #3
boardConfiguration->ignitionPins[4] = GPIOB_7; // #5
engineConfiguration->ignitionPins[0] = GPIOB_5; // #1
engineConfiguration->ignitionPins[2] = GPIOB_6; // #3
engineConfiguration->ignitionPins[4] = GPIOB_7; // #5
boardConfiguration->canRxPin = GPIO_UNASSIGNED;
boardConfiguration->canTxPin = GPIO_UNASSIGNED;
engineConfiguration->canRxPin = GPIO_UNASSIGNED;
engineConfiguration->canTxPin = GPIO_UNASSIGNED;
boardConfiguration->triggerErrorPin = GPIO_UNASSIGNED;
engineConfiguration->triggerErrorPin = GPIO_UNASSIGNED;
// clutch up
engineConfiguration->clutchUpPin = GPIOD_3;
engineConfiguration->clutchUpPinMode = PI_PULLUP;
// fuel pump
boardConfiguration->fuelPumpPin = GPIOD_4;
engineConfiguration->fuelPumpPin = GPIOD_4;
// idle
boardConfiguration->idle.solenoidPin = GPIOC_14;
boardConfiguration->idle.solenoidPinMode = OM_INVERTED;
boardConfiguration->idle.solenoidFrequency = 300;
boardConfiguration->manIdlePosition = 50; // set_idle_pwm 50
engineConfiguration->idle.solenoidPin = GPIOC_14;
engineConfiguration->idle.solenoidPinMode = OM_INVERTED;
engineConfiguration->idle.solenoidFrequency = 300;
engineConfiguration->manIdlePosition = 50; // set_idle_pwm 50
// disable sd_card
boardConfiguration->sdCardCsPin = GPIO_UNASSIGNED;
boardConfiguration->is_enabled_spi_2 = false;
boardConfiguration->is_enabled_spi_3 = false;
boardConfiguration->max31855spiDevice = SPI_NONE;
engineConfiguration->sdCardCsPin = GPIO_UNASSIGNED;
engineConfiguration->is_enabled_spi_2 = false;
engineConfiguration->is_enabled_spi_3 = false;
engineConfiguration->max31855spiDevice = SPI_NONE;
// turbocharger boost control solenoid: TODO output: GPIOE_6
// water injection #1 TODO GPIOD_7
@ -145,7 +145,7 @@ void setBmwE34(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
* emulating the 60-0 trigger takes some resources, let's keep it slow by default
* rpm 200
*/
boardConfiguration->triggerSimulatorFrequency = 200;
engineConfiguration->triggerSimulatorFrequency = 200;
// Configurating sensors:
@ -163,7 +163,7 @@ void setBmwE34(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// */
// bc->triggerSimulatorPins[1] = GPIO_UNASSIGNED;
boardConfiguration->triggerSimulatorPins[0] = GPIOD_1;
boardConfiguration->triggerSimulatorPins[1] = GPIOD_2;
boardConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerSimulatorPins[0] = GPIOD_1;
engineConfiguration->triggerSimulatorPins[1] = GPIOD_2;
engineConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
}

View File

@ -98,36 +98,36 @@ void setEngineBMW_M73_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
m73engine(PASS_CONFIG_PARAMETER_SIGNATURE);
boardConfiguration->triggerInputPins[0] = GPIOA_5;
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[0] = GPIOA_5;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->camInputs[0] = GPIOC_6;
CONFIGB(idle).solenoidPin = GPIO_UNASSIGNED;
CONFIGB(mainRelayPin) = GPIO_UNASSIGNED;
CONFIGB(fanPin) = GPIO_UNASSIGNED;
CONFIGB(fuelPumpPin) = GPIO_UNASSIGNED;
CONFIG(idle).solenoidPin = GPIO_UNASSIGNED;
CONFIG(mainRelayPin) = GPIO_UNASSIGNED;
CONFIG(fanPin) = GPIO_UNASSIGNED;
CONFIG(fuelPumpPin) = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[ID2INDEX(1)] = GPIOE_14; // Frankenso high side - pin 1G - GREEN wire
boardConfiguration->ignitionPins[ID2INDEX(2)] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[ID2INDEX(3)] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[ID2INDEX(4)] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[ID2INDEX(7)] = GPIOC_7; // Frankenso high side - pin 1H - ORANGE wire
engineConfiguration->ignitionPins[ID2INDEX(1)] = GPIOE_14; // Frankenso high side - pin 1G - GREEN wire
engineConfiguration->ignitionPins[ID2INDEX(2)] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[ID2INDEX(3)] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[ID2INDEX(4)] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[ID2INDEX(7)] = GPIOC_7; // Frankenso high side - pin 1H - ORANGE wire
boardConfiguration->injectionPins[0] = GPIOB_8; // BLU
boardConfiguration->injectionPins[1] = GPIOB_7; // BLK
boardConfiguration->injectionPins[2] = GPIOB_9; // GRN
boardConfiguration->injectionPins[3] = GPIOD_5; // WHT
boardConfiguration->injectionPins[4] = GPIOD_3; // RED
boardConfiguration->injectionPins[5] = GPIOE_2; // ORG
engineConfiguration->injectionPins[0] = GPIOB_8; // BLU
engineConfiguration->injectionPins[1] = GPIOB_7; // BLK
engineConfiguration->injectionPins[2] = GPIOB_9; // GRN
engineConfiguration->injectionPins[3] = GPIOD_5; // WHT
engineConfiguration->injectionPins[4] = GPIOD_3; // RED
engineConfiguration->injectionPins[5] = GPIOE_2; // ORG
boardConfiguration->injectionPins[6] = GPIOE_3; // BLU
boardConfiguration->injectionPins[7] = GPIOE_4; // BLK
boardConfiguration->injectionPins[8] = GPIOE_5; // GRN
boardConfiguration->injectionPins[9] = GPIOE_6; // WHT
boardConfiguration->injectionPins[10] = GPIOC_13;//RED
boardConfiguration->injectionPins[11] = GPIOD_7;// ORG
engineConfiguration->injectionPins[6] = GPIOE_3; // BLU
engineConfiguration->injectionPins[7] = GPIOE_4; // BLK
engineConfiguration->injectionPins[8] = GPIOE_5; // GRN
engineConfiguration->injectionPins[9] = GPIOE_6; // WHT
engineConfiguration->injectionPins[10] = GPIOC_13;//RED
engineConfiguration->injectionPins[11] = GPIOD_7;// ORG
}
// BMW_M73_M
@ -155,10 +155,10 @@ GPIOA_6
*/
CONFIGB(fsioOutputPins)[7] = GPIO_UNASSIGNED;
boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
boardConfiguration->fanPin = GPIO_UNASSIGNED;
CONFIG(fsioOutputPins)[7] = GPIO_UNASSIGNED;
engineConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
engineConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
/**
* Yellow op-amp board
@ -194,19 +194,19 @@ GPIOA_6
engineConfiguration->etbIo[1].directionPin2 = GPIOB_9;
boardConfiguration->injectionPins[0] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[0] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[6] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[7] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[8] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[9] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[10] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[11] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[6] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[7] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[8] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[9] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[10] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[11] = GPIO_UNASSIGNED;
}

View File

@ -24,8 +24,8 @@ void setCamaro4(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->specs.cylindersCount = 8;
engineConfiguration->specs.firingOrder = FO_1_8_7_2_6_5_4_3;
boardConfiguration->triggerInputPins[0] = GPIOA_5;
boardConfiguration->triggerInputPins[1] = GPIOC_6;
engineConfiguration->triggerInputPins[0] = GPIOA_5;
engineConfiguration->triggerInputPins[1] = GPIOC_6;
engineConfiguration->injectionMode = IM_BATCH;
engineConfiguration->twoWireBatchInjection = true;
@ -56,31 +56,31 @@ void setCamaro4(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->afr.hwChannel = EFI_ADC_13;
boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
engineConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
engineConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[0] = GPIOE_6;
boardConfiguration->injectionPins[1] = GPIOE_5;
boardConfiguration->injectionPins[2] = GPIOD_7;
boardConfiguration->injectionPins[3] = GPIOC_13;
boardConfiguration->injectionPins[4] = GPIOE_3;
boardConfiguration->injectionPins[5] = GPIOE_4;
boardConfiguration->injectionPins[6] = GPIOD_3;
boardConfiguration->injectionPins[7] = GPIOE_2;
engineConfiguration->injectionPins[0] = GPIOE_6;
engineConfiguration->injectionPins[1] = GPIOE_5;
engineConfiguration->injectionPins[2] = GPIOD_7;
engineConfiguration->injectionPins[3] = GPIOC_13;
engineConfiguration->injectionPins[4] = GPIOE_3;
engineConfiguration->injectionPins[5] = GPIOE_4;
engineConfiguration->injectionPins[6] = GPIOD_3;
engineConfiguration->injectionPins[7] = GPIOE_2;
boardConfiguration->ignitionPins[0] = GPIOC_9;
boardConfiguration->ignitionPins[1] = GPIOC_7;
boardConfiguration->ignitionPins[2] = GPIOE_14;
boardConfiguration->ignitionPins[3] = GPIOE_12;
boardConfiguration->ignitionPins[4] = GPIOE_10;
boardConfiguration->ignitionPins[5] = GPIOE_8;
boardConfiguration->ignitionPins[6] = GPIOD_9;
boardConfiguration->ignitionPins[7] = GPIOD_8;
engineConfiguration->ignitionPins[0] = GPIOC_9;
engineConfiguration->ignitionPins[1] = GPIOC_7;
engineConfiguration->ignitionPins[2] = GPIOE_14;
engineConfiguration->ignitionPins[3] = GPIOE_12;
engineConfiguration->ignitionPins[4] = GPIOE_10;
engineConfiguration->ignitionPins[5] = GPIOE_8;
engineConfiguration->ignitionPins[6] = GPIOD_9;
engineConfiguration->ignitionPins[7] = GPIOD_8;
boardConfiguration->fuelPumpPin = GPIOB_8;
boardConfiguration->fanPin = GPIO_UNASSIGNED;
boardConfiguration->mainRelayPin = GPIOD_5;
engineConfiguration->fuelPumpPin = GPIOB_8;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->mainRelayPin = GPIOD_5;
}

View File

@ -14,13 +14,13 @@
#include "citroenBerlingoTU3JP.h"
#include "settings.h"
void setLCD(board_configuration_s *boardConfiguration) {
boardConfiguration->HD44780_rs = GPIOE_7;
boardConfiguration->HD44780_e = GPIOE_9;
boardConfiguration->HD44780_db4 = GPIOE_11;
boardConfiguration->HD44780_db5 = GPIOE_13;
boardConfiguration->HD44780_db6 = GPIOE_15;
boardConfiguration->HD44780_db7 = GPIOB_10;
void setLCD(engine_configuration_s *engineConfiguration) {
engineConfiguration->HD44780_rs = GPIOE_7;
engineConfiguration->HD44780_e = GPIOE_9;
engineConfiguration->HD44780_db4 = GPIOE_11;
engineConfiguration->HD44780_db5 = GPIOE_13;
engineConfiguration->HD44780_db6 = GPIOE_15;
engineConfiguration->HD44780_db7 = GPIOB_10;
}
#if DEFAULT_FUEL_LOAD_COUNT == FUEL_LOAD_COUNT
@ -117,35 +117,35 @@ void setCitroenBerlingoTU3JPConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenstein lo-side output #11: PB8 Main relay
// Frankenstein lo-side output #12: PB9 Fuel pump
boardConfiguration->ignitionPins[0] = GPIOC_14;
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOC_15;
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[0] = GPIOC_14;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOC_15;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->injector.flow = 137; //SIEMENS DEKA VAZ20734
boardConfiguration->injectionPins[0] = GPIOE_6;
boardConfiguration->injectionPins[1] = GPIOC_13;
boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[0] = GPIOE_6;
engineConfiguration->injectionPins[1] = GPIOC_13;
engineConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->fanPin = GPIOE_0;
boardConfiguration->fanPinMode = OM_DEFAULT;
engineConfiguration->fanPin = GPIOE_0;
engineConfiguration->fanPinMode = OM_DEFAULT;
engineConfiguration->fanOffTemperature = 95;
engineConfiguration->fanOnTemperature = 99;
boardConfiguration->malfunctionIndicatorPin = GPIOE_1;
boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
engineConfiguration->malfunctionIndicatorPin = GPIOE_1;
engineConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
boardConfiguration->mainRelayPin = GPIOB_8;
engineConfiguration->mainRelayPin = GPIOB_8;
boardConfiguration->fuelPumpPin = GPIOB_9;
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
engineConfiguration->fuelPumpPin = GPIOB_9;
engineConfiguration->fuelPumpPinMode = OM_DEFAULT;
setLCD(boardConfiguration);
setLCD(engineConfiguration);
// boardConfiguration->o2heaterPin = GPIOC_13;
// boardConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED;
// engineConfiguration->o2heaterPin = GPIOC_13;
// engineConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED;
/**
* Inputs

View File

@ -65,22 +65,22 @@ void runSchedulingPrecisionTestIfNeeded(void) {
}
#endif /* EFI_PROD_CODE */
void setFrankenso_01_LCD(board_configuration_s *boardConfiguration) {
boardConfiguration->HD44780_rs = GPIOE_7;
boardConfiguration->HD44780_e = GPIOE_9;
boardConfiguration->HD44780_db4 = GPIOE_11;
boardConfiguration->HD44780_db5 = GPIOE_13;
boardConfiguration->HD44780_db6 = GPIOE_15;
boardConfiguration->HD44780_db7 = GPIOB_10;
void setFrankenso_01_LCD(engine_configuration_s *engineConfiguration) {
engineConfiguration->HD44780_rs = GPIOE_7;
engineConfiguration->HD44780_e = GPIOE_9;
engineConfiguration->HD44780_db4 = GPIOE_11;
engineConfiguration->HD44780_db5 = GPIOE_13;
engineConfiguration->HD44780_db6 = GPIOE_15;
engineConfiguration->HD44780_db7 = GPIOB_10;
}
void disableLCD(board_configuration_s *boardConfiguration) {
boardConfiguration->HD44780_rs = GPIO_UNASSIGNED;
boardConfiguration->HD44780_e = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
void disableLCD(engine_configuration_s *engineConfiguration) {
engineConfiguration->HD44780_rs = GPIO_UNASSIGNED;
engineConfiguration->HD44780_e = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
}
// todo: should this be part of more default configurations?
@ -88,7 +88,7 @@ void setFrankensoConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setDefaultFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
engineConfiguration->trigger.type = TT_ONE_PLUS_ONE;
setFrankenso_01_LCD(boardConfiguration);
setFrankenso_01_LCD(engineConfiguration);
engineConfiguration->displayMode = DM_HD44780;
commonFrankensoAnalogInputs(engineConfiguration);
setFrankenso0_1_joystick(engineConfiguration);
@ -135,32 +135,32 @@ void setFrankensoConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenso low out #11: PB8 injector #3
// Frankenso low out #12: PB7 injector #4
boardConfiguration->fuelPumpPin = GPIOE_4;
boardConfiguration->mainRelayPin = GPIOD_7;
boardConfiguration->idle.solenoidPin = GPIOC_13;
engineConfiguration->fuelPumpPin = GPIOE_4;
engineConfiguration->mainRelayPin = GPIOD_7;
engineConfiguration->idle.solenoidPin = GPIOC_13;
boardConfiguration->fanPin = GPIOE_5;
engineConfiguration->fanPin = GPIOE_5;
boardConfiguration->injectionPins[0] = GPIOB_9; // #1
boardConfiguration->injectionPins[1] = GPIOE_2; // #2
boardConfiguration->injectionPins[2] = GPIOB_8; // #3
engineConfiguration->injectionPins[0] = GPIOB_9; // #1
engineConfiguration->injectionPins[1] = GPIOE_2; // #2
engineConfiguration->injectionPins[2] = GPIOB_8; // #3
#ifndef EFI_INJECTOR_PIN3
boardConfiguration->injectionPins[3] = GPIOB_7; // #4
engineConfiguration->injectionPins[3] = GPIOB_7; // #4
#else /* EFI_INJECTOR_PIN3 */
boardConfiguration->injectionPins[3] = EFI_INJECTOR_PIN3; // #4
engineConfiguration->injectionPins[3] = EFI_INJECTOR_PIN3; // #4
#endif /* EFI_INJECTOR_PIN3 */
setAlgorithm(LM_SPEED_DENSITY PASS_CONFIG_PARAMETER_SUFFIX);
#if EFI_PWM_TESTER
boardConfiguration->injectionPins[4] = GPIOC_8; // #5
boardConfiguration->injectionPins[5] = GPIOD_10; // #6
boardConfiguration->injectionPins[6] = GPIOD_9;
boardConfiguration->injectionPins[7] = GPIOD_11;
boardConfiguration->injectionPins[8] = GPIOD_0;
boardConfiguration->injectionPins[9] = GPIOB_11;
boardConfiguration->injectionPins[10] = GPIOC_7;
boardConfiguration->injectionPins[11] = GPIOE_4;
engineConfiguration->injectionPins[4] = GPIOC_8; // #5
engineConfiguration->injectionPins[5] = GPIOD_10; // #6
engineConfiguration->injectionPins[6] = GPIOD_9;
engineConfiguration->injectionPins[7] = GPIOD_11;
engineConfiguration->injectionPins[8] = GPIOD_0;
engineConfiguration->injectionPins[9] = GPIOB_11;
engineConfiguration->injectionPins[10] = GPIOC_7;
engineConfiguration->injectionPins[11] = GPIOE_4;
/**
* We want to initialize all outputs for test
@ -169,20 +169,20 @@ void setFrankensoConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->displayMode = DM_NONE;
#else /* EFI_PWM_TESTER */
boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[6] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[7] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[8] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[9] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[10] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[11] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[6] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[7] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[8] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[9] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[10] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[11] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[0] = GPIOE_14;
boardConfiguration->ignitionPins[1] = GPIOC_7;
boardConfiguration->ignitionPins[2] = GPIOC_9;
engineConfiguration->ignitionPins[0] = GPIOE_14;
engineConfiguration->ignitionPins[1] = GPIOC_7;
engineConfiguration->ignitionPins[2] = GPIOC_9;
// set_ignition_pin 4 PE10
boardConfiguration->ignitionPins[3] = GPIOE_10;
engineConfiguration->ignitionPins[3] = GPIOE_10;
#endif /* EFI_PWM_TESTER */
// todo: 8.2 or 10k?
@ -198,7 +198,7 @@ void setFrankensoBoardTestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->directSelfStimulation = true; // this engine type is used for board validation
boardConfiguration->triggerSimulatorFrequency = 300;
engineConfiguration->triggerSimulatorFrequency = 300;
engineConfiguration->cranking.rpm = 100;
engineConfiguration->specs.cylindersCount = 12;
@ -207,38 +207,38 @@ void setFrankensoBoardTestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// set ignition_mode 1
engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
boardConfiguration->injectionPins[0] = GPIOB_7; // injector in default pinout
boardConfiguration->injectionPins[1] = GPIOB_8; // injector in default pinout
boardConfiguration->injectionPins[2] = GPIOB_9; // injector in default pinout
boardConfiguration->injectionPins[3] = GPIOC_13;
engineConfiguration->injectionPins[0] = GPIOB_7; // injector in default pinout
engineConfiguration->injectionPins[1] = GPIOB_8; // injector in default pinout
engineConfiguration->injectionPins[2] = GPIOB_9; // injector in default pinout
engineConfiguration->injectionPins[3] = GPIOC_13;
boardConfiguration->injectionPins[4] = GPIOD_3;
boardConfiguration->injectionPins[5] = GPIOD_5;
boardConfiguration->injectionPins[6] = GPIOD_7;
boardConfiguration->injectionPins[7] = GPIOE_2; // injector in default pinout
boardConfiguration->injectionPins[8] = GPIOE_3;
boardConfiguration->injectionPins[9] = GPIOE_4;
boardConfiguration->injectionPins[10] = GPIOE_5;
boardConfiguration->injectionPins[11] = GPIOE_6;
engineConfiguration->injectionPins[4] = GPIOD_3;
engineConfiguration->injectionPins[5] = GPIOD_5;
engineConfiguration->injectionPins[6] = GPIOD_7;
engineConfiguration->injectionPins[7] = GPIOE_2; // injector in default pinout
engineConfiguration->injectionPins[8] = GPIOE_3;
engineConfiguration->injectionPins[9] = GPIOE_4;
engineConfiguration->injectionPins[10] = GPIOE_5;
engineConfiguration->injectionPins[11] = GPIOE_6;
boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
boardConfiguration->mainRelayPin = GPIO_UNASSIGNED;
boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
boardConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
engineConfiguration->mainRelayPin = GPIO_UNASSIGNED;
engineConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[0] = GPIOC_9; // coil in default pinout
boardConfiguration->ignitionPins[1] = GPIOC_7; // coil in default pinout
boardConfiguration->ignitionPins[2] = GPIOE_10; // coil in default pinout
boardConfiguration->ignitionPins[3] = GPIOE_8; // Miata VVT tach
engineConfiguration->ignitionPins[0] = GPIOC_9; // coil in default pinout
engineConfiguration->ignitionPins[1] = GPIOC_7; // coil in default pinout
engineConfiguration->ignitionPins[2] = GPIOE_10; // coil in default pinout
engineConfiguration->ignitionPins[3] = GPIOE_8; // Miata VVT tach
boardConfiguration->ignitionPins[4] = GPIOE_14; // coil in default pinout
boardConfiguration->ignitionPins[5] = GPIOE_12;
boardConfiguration->ignitionPins[6] = GPIOD_8;
boardConfiguration->ignitionPins[7] = GPIOD_9;
engineConfiguration->ignitionPins[4] = GPIOE_14; // coil in default pinout
engineConfiguration->ignitionPins[5] = GPIOE_12;
engineConfiguration->ignitionPins[6] = GPIOD_8;
engineConfiguration->ignitionPins[7] = GPIOD_9;
boardConfiguration->ignitionPins[8] = GPIOE_0; // brain board, not discovery
boardConfiguration->ignitionPins[9] = GPIOE_1; // brain board, not discovery
engineConfiguration->ignitionPins[8] = GPIOE_0; // brain board, not discovery
engineConfiguration->ignitionPins[9] = GPIOE_1; // brain board, not discovery
}
@ -260,10 +260,10 @@ void setEtbTestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2;
boardConfiguration->ignitionPins[0] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[0] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
/**
* remember that some H-bridges require 5v control lines, not just 3v logic outputs we have on stm32
*/
@ -282,11 +282,11 @@ void setEtbTestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->debugMode = DBG_ELECTRONIC_THROTTLE_PID;
// turning off other PWMs to simplify debugging
engineConfiguration->bc.triggerSimulatorFrequency = 0;
engineConfiguration->triggerSimulatorFrequency = 0;
engineConfiguration->stepperEnablePin = GPIO_UNASSIGNED;
CONFIGB(idle).stepperStepPin = GPIO_UNASSIGNED;
CONFIGB(idle).stepperDirectionPin = GPIO_UNASSIGNED;
boardConfiguration->useStepperIdle = true;
CONFIG(idle).stepperStepPin = GPIO_UNASSIGNED;
CONFIG(idle).stepperDirectionPin = GPIO_UNASSIGNED;
engineConfiguration->useStepperIdle = true;
// no analog dividers - all sensors with 3v supply, naked discovery bench setup
engineConfiguration->analogInputDividerCoefficient = 1;
@ -313,28 +313,28 @@ void setTle8888TestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->directSelfStimulation = true;
#if defined(STM32_HAS_GPIOG) && STM32_HAS_GPIOG
boardConfiguration->ignitionPins[0] = GPIOG_3;
boardConfiguration->ignitionPins[1] = GPIOG_4;
boardConfiguration->ignitionPins[2] = GPIOG_5;
boardConfiguration->ignitionPins[3] = GPIOG_6;
boardConfiguration->ignitionPins[4] = GPIOG_7;
boardConfiguration->ignitionPins[5] = GPIOG_8;
engineConfiguration->ignitionPins[0] = GPIOG_3;
engineConfiguration->ignitionPins[1] = GPIOG_4;
engineConfiguration->ignitionPins[2] = GPIOG_5;
engineConfiguration->ignitionPins[3] = GPIOG_6;
engineConfiguration->ignitionPins[4] = GPIOG_7;
engineConfiguration->ignitionPins[5] = GPIOG_8;
#endif /* STM32_HAS_GPIOG */
boardConfiguration->ignitionPins[6] = GPIOC_6;
boardConfiguration->ignitionPins[7] = GPIOC_7;
engineConfiguration->ignitionPins[6] = GPIOC_6;
engineConfiguration->ignitionPins[7] = GPIOC_7;
#if (BOARD_TLE8888_COUNT > 0)
engineConfiguration->tle8888spiDevice = SPI_DEVICE_1;
engineConfiguration->tle8888_cs = GPIOD_5;
// PB3 is nicely both SWO and SPI1 SCK so logic analyzer could be used on SWO header
boardConfiguration->spi1mosiPin = GPIOB_5;
boardConfiguration->spi1misoPin = GPIOB_4;
boardConfiguration->spi1sckPin = GPIOB_3; // please note that this pin is also SWO/SWD - Single Wire debug Output
boardConfiguration->is_enabled_spi_1 = true;
engineConfiguration->spi1mosiPin = GPIOB_5;
engineConfiguration->spi1misoPin = GPIOB_4;
engineConfiguration->spi1sckPin = GPIOB_3; // please note that this pin is also SWO/SWD - Single Wire debug Output
engineConfiguration->is_enabled_spi_1 = true;
engineConfiguration->debugMode = DBG_TLE8888;
boardConfiguration->fuelPumpPin = TLE8888_PIN_20;
engineConfiguration->fuelPumpPin = TLE8888_PIN_20;
#endif /* BOARD_TLE8888_COUNT */
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_9; // PB1 // just any non-empty value for now
@ -353,7 +353,7 @@ void setTle8888TestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
CONFIG(etbIo[0].directionPin2) = GPIOF_14;
#endif /* STM32_HAS_GPIOF */
CONFIG(etb_use_two_wires) = true;
boardConfiguration->isHip9011Enabled = false;
engineConfiguration->isHip9011Enabled = false;
// ETB #2
// DIS PE5
@ -400,7 +400,7 @@ void mreBoardTest(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
#if (BOARD_TLE8888_COUNT > 0)
engineConfiguration->directSelfStimulation = true; // this engine type is used for board validation
boardConfiguration->triggerSimulatorFrequency = 60;
engineConfiguration->triggerSimulatorFrequency = 60;
// set cranking_rpm 500
engineConfiguration->cranking.rpm = 100;
// set cranking_dwell 200
@ -447,64 +447,64 @@ void mreBoardTest(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->specs.firingOrder = FO_1_10_9_4_3_6_5_8_7_2;
// red LED #1
boardConfiguration->ignitionPins[1 - 1] = GPIOD_4;
boardConfiguration->ignitionPins[10 - 1] = GPIOD_3;
boardConfiguration->ignitionPins[9 - 1] = GPIOD_6;
boardConfiguration->ignitionPins[4 - 1] = GPIOD_7;
boardConfiguration->ignitionPins[3 - 1] = GPIOD_1;
boardConfiguration->ignitionPins[6 - 1] = GPIOD_2;
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[4] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[6] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[7] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[1 - 1] = GPIOD_4;
engineConfiguration->ignitionPins[10 - 1] = GPIOD_3;
engineConfiguration->ignitionPins[9 - 1] = GPIOD_6;
engineConfiguration->ignitionPins[4 - 1] = GPIOD_7;
engineConfiguration->ignitionPins[3 - 1] = GPIOD_1;
engineConfiguration->ignitionPins[6 - 1] = GPIOD_2;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[4] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[6] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[7] = GPIO_UNASSIGNED;
boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
boardConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
engineConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
// fuel pump is useful to test power on/off scenario
// boardConfiguration->fuelPumpPin = TLE8888_PIN_22;
// engineConfiguration->fuelPumpPin = TLE8888_PIN_22;
// LED #1
// GPIOE_7: "34 - GP Out 2"
boardConfiguration->injectionPins[1 - 1] = TLE8888_PIN_22;//GPIOE_7;
engineConfiguration->injectionPins[1 - 1] = TLE8888_PIN_22;//GPIOE_7;
// LED #2
// TLE8888_PIN_23: "33 - GP Out 3"
boardConfiguration->injectionPins[10 - 1] = TLE8888_PIN_23;
engineConfiguration->injectionPins[10 - 1] = TLE8888_PIN_23;
// LED #3 - INJ#1
boardConfiguration->injectionPins[9 - 1] = GPIOE_13;
engineConfiguration->injectionPins[9 - 1] = GPIOE_13;
// LED #4 - INJ#2
boardConfiguration->injectionPins[4 - 1] = GPIOE_14;
engineConfiguration->injectionPins[4 - 1] = GPIOE_14;
// LED #5 - INJ#3
boardConfiguration->injectionPins[3 - 1] = GPIOE_12;
engineConfiguration->injectionPins[3 - 1] = GPIOE_12;
// LED #6 - INJ#4
boardConfiguration->injectionPins[6 - 1] = GPIOE_11;
engineConfiguration->injectionPins[6 - 1] = GPIOE_11;
// LED #7
// TLE8888_PIN_24: "43 - GP Out 4"
boardConfiguration->injectionPins[5 - 1] = TLE8888_PIN_24;
engineConfiguration->injectionPins[5 - 1] = TLE8888_PIN_24;
// LED #8
// TLE8888 half bridges (pushpull, lowside, or high-low) IN12
// GPIOE_8: "35 - GP Out 1"
boardConfiguration->injectionPins[8 - 1] = GPIOE_8;
engineConfiguration->injectionPins[8 - 1] = GPIOE_8;
// LED #9
// TLE8888 high current low side: IN10
// GPIOE_9: "7 - Lowside 1"
boardConfiguration->injectionPins[7 - 1] = GPIOE_9;
engineConfiguration->injectionPins[7 - 1] = GPIOE_9;
// LED #10
// TLE8888 high current low side: VVT2 IN9 / OUT5
// GPIOE_10: "3 - Lowside 2"
boardConfiguration->injectionPins[2 - 1] = GPIOE_10;
engineConfiguration->injectionPins[2 - 1] = GPIOE_10;
#endif /* BOARD_TLE8888_COUNT */
}

View File

@ -10,8 +10,8 @@
#include "engine_configuration.h"
void setFrankensoConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setFrankenso_01_LCD(board_configuration_s *boardConfiguration);
void disableLCD(board_configuration_s *boardConfiguration);
void setFrankenso_01_LCD(engine_configuration_s *engineConfiguration);
void disableLCD(engine_configuration_s *engineConfiguration);
void runSchedulingPrecisionTestIfNeeded(void);
void setFrankensoBoardTestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setEtbTestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE);

View File

@ -155,12 +155,12 @@ void setDodgeNeon1995EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// engineConfiguration->spi2MosiMode = PAL_STM32_OTYPE_OPENDRAIN; // 4
// engineConfiguration->spi2MisoMode = PAL_STM32_PUDR_PULLUP; // 32
// boardConfiguration->spi2mosiPin = GPIOB_15;
// boardConfiguration->spi2misoPin = GPIOB_14;
// boardConfiguration->spi2sckPin = GPIOB_13;
boardConfiguration->cj125CsPin = GPIOB_0; // rev 0.4
boardConfiguration->isCJ125Enabled = true;
boardConfiguration->is_enabled_spi_2 = true;
// engineConfiguration->spi2mosiPin = GPIOB_15;
// engineConfiguration->spi2misoPin = GPIOB_14;
// engineConfiguration->spi2sckPin = GPIOB_13;
engineConfiguration->cj125CsPin = GPIOB_0; // rev 0.4
engineConfiguration->isCJ125Enabled = true;
engineConfiguration->is_enabled_spi_2 = true;
// set_rpm_hard_limit 4000
@ -222,28 +222,28 @@ void setDodgeNeon1995EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenstein: low side - out #11: PB8
// Frankenstein: low side - out #12: PB9
boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12
boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11
boardConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - out #8
boardConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - out #6
engineConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12
engineConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11
engineConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - out #8
engineConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - out #6
boardConfiguration->fuelPumpPin = GPIOC_13; // Frankenstein: low side - out #4
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
engineConfiguration->fuelPumpPin = GPIOC_13; // Frankenstein: low side - out #4
engineConfiguration->fuelPumpPinMode = OM_DEFAULT;
engineConfiguration->mapErrorDetectionTooHigh = 120;
// set injection_pin_mode 0
boardConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPinMode = OM_DEFAULT;
// Frankenstein: high side #1: PE8
// Frankenstein: high side #2: PE10
boardConfiguration->ignitionPins[0] = GPIOE_8; // Frankenstein: high side #1
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOE_10; // // Frankenstein: high side #2
engineConfiguration->ignitionPins[0] = GPIOE_8; // Frankenstein: high side #1
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOE_10; // // Frankenstein: high side #2
// set ignition_pin_mode 0
boardConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->clt.config = {0, 30, 100, 32500, 7550, 700, 2700};
@ -253,7 +253,7 @@ void setDodgeNeon1995EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
void setDodgeNeonNGCEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setDefaultFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
engineConfiguration->trigger.type = TT_DODGE_NEON_2003_CAM;
setFrankenso_01_LCD(boardConfiguration);
setFrankenso_01_LCD(engineConfiguration);
setFrankenso0_1_joystick(engineConfiguration);
// set global_trigger_offset_angle 38
@ -316,7 +316,7 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setFuelTablesLoadBin(20, 120 PASS_CONFIG_PARAMETER_SUFFIX);
boardConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED;
engineConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED;
/**
* PA4 Wideband O2 Sensor
@ -342,29 +342,29 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenso low out #11: PB8 injector #1
// Frankenso low out #12: PB7 injector #4
boardConfiguration->fanPin = GPIOD_7;
engineConfiguration->fanPin = GPIOD_7;
boardConfiguration->injectionPins[0] = GPIOB_8;
boardConfiguration->injectionPins[1] = GPIOB_9;
boardConfiguration->injectionPins[2] = GPIOE_2;
boardConfiguration->injectionPins[3] = GPIOB_7;
engineConfiguration->injectionPins[0] = GPIOB_8;
engineConfiguration->injectionPins[1] = GPIOB_9;
engineConfiguration->injectionPins[2] = GPIOE_2;
engineConfiguration->injectionPins[3] = GPIOB_7;
boardConfiguration->ignitionPins[0] = GPIOC_9;
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOE_8;
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[0] = GPIOC_9;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOE_8;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->mainRelayPin = GPIOE_6;
engineConfiguration->mainRelayPin = GPIOE_6;
boardConfiguration->idle.solenoidPin = GPIOC_13;
boardConfiguration->idle.solenoidFrequency = 300;
boardConfiguration->manIdlePosition = 36;
engineConfiguration->idle.solenoidPin = GPIOC_13;
engineConfiguration->idle.solenoidFrequency = 300;
engineConfiguration->manIdlePosition = 36;
boardConfiguration->fuelPumpPin = GPIOE_3;
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
engineConfiguration->fuelPumpPin = GPIOE_3;
engineConfiguration->fuelPumpPinMode = OM_DEFAULT;
boardConfiguration->triggerInputPins[0] = GPIOA_5;
boardConfiguration->triggerInputPins[1] = GPIOC_6;
engineConfiguration->triggerInputPins[0] = GPIOA_5;
engineConfiguration->triggerInputPins[1] = GPIOC_6;
/**
* Frankenso analog #1 PC2 ADC12 CLT
@ -412,8 +412,8 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
*/
engineConfiguration->clt.adcChannel = EFI_ADC_12;
boardConfiguration->sensorChartMode = SC_MAP;
boardConfiguration->isFastAdcEnabled = true;
engineConfiguration->sensorChartMode = SC_MAP;
engineConfiguration->isFastAdcEnabled = true;
engineConfiguration->map.sensor.type = MT_DODGE_NEON_2003;
engineConfiguration->hip9011Gain = 0.3;
@ -432,8 +432,8 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->cylinderBore = 87.5;
boardConfiguration->clutchDownPin = GPIOC_12;
boardConfiguration->clutchDownPinMode = PI_PULLUP;
engineConfiguration->clutchDownPin = GPIOC_12;
engineConfiguration->clutchDownPinMode = PI_PULLUP;
// engineConfiguration->clutchUpPin = GPIOA_14; // note SWCLK - conflict with SWD
engineConfiguration->clutchUpPinMode = PI_PULLUP;
@ -452,7 +452,7 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// /**
// * set_fsio_setting 1 0.55
// */
// boardConfiguration->fsio_setting[0] = 0.55;
// engineConfiguration->fsio_setting[0] = 0.55;
// setFsioExt(0, GPIOE_5, "0 fsio_setting", 400 PASS_CONFIG_PARAMETER_SUFFIX);
#endif
@ -463,11 +463,11 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// engineConfiguration->fanOnTemperature = 115; // knock testing - value is a bit high
// engineConfiguration->fanOffTemperature = 100;
// boardConfiguration->tunerStudioSerialSpeed = 9600;
boardConfiguration->tunerStudioSerialSpeed = 19200;
// engineConfiguration->tunerStudioSerialSpeed = 9600;
engineConfiguration->tunerStudioSerialSpeed = 19200;
setAlgorithm(LM_SPEED_DENSITY PASS_CONFIG_PARAMETER_SUFFIX);
//temp boardConfiguration->alternatorControlPin = GPIOD_5;
//temp engineConfiguration->alternatorControlPin = GPIOD_5;
engineConfiguration->targetVBatt = 14.0;
engineConfiguration->alternatorControl.offset = 20;
engineConfiguration->alternatorControl.pFactor = 20;
@ -493,8 +493,8 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->wwaeTau = 0;
engineConfiguration->wwaeBeta = 0;
boardConfiguration->isSdCardEnabled = false;
boardConfiguration->manIdlePosition = 36; // set_idle_pwm 40
engineConfiguration->isSdCardEnabled = false;
engineConfiguration->manIdlePosition = 36; // set_idle_pwm 40
engineConfiguration->slowAdcAlpha = 0.33333;

View File

@ -35,27 +35,27 @@ void setDodgeRam1996(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->specs.firingOrder = FO_1_8_4_3_6_5_7_2;
engineConfiguration->specs.displacement = 5.2;
boardConfiguration->triggerInputPins[0] = GPIOC_6;
boardConfiguration->triggerInputPins[1] = GPIOA_5;
engineConfiguration->triggerInputPins[0] = GPIOC_6;
engineConfiguration->triggerInputPins[1] = GPIOA_5;
boardConfiguration->injectionPins[0] = GPIOE_2;
boardConfiguration->injectionPins[1] = GPIOB_9;
boardConfiguration->injectionPins[2] = GPIOD_5;
boardConfiguration->injectionPins[3] = GPIOB_8;
engineConfiguration->injectionPins[0] = GPIOE_2;
engineConfiguration->injectionPins[1] = GPIOB_9;
engineConfiguration->injectionPins[2] = GPIOD_5;
engineConfiguration->injectionPins[3] = GPIOB_8;
boardConfiguration->injectionPins[4] = GPIOB_7;
boardConfiguration->injectionPins[5] = GPIOE_3;
boardConfiguration->injectionPins[6] = GPIOE_4;
boardConfiguration->injectionPins[7] = GPIOD_3;
engineConfiguration->injectionPins[4] = GPIOB_7;
engineConfiguration->injectionPins[5] = GPIOE_3;
engineConfiguration->injectionPins[6] = GPIOE_4;
engineConfiguration->injectionPins[7] = GPIOD_3;
boardConfiguration->ignitionPins[0] = GPIOC_9;
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[0] = GPIOC_9;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->mainRelayPin = GPIOE_5;
boardConfiguration->fuelPumpPin = GPIOE_6;
boardConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->mainRelayPin = GPIOE_5;
engineConfiguration->fuelPumpPin = GPIOE_6;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->engineChartSize = 450;
@ -69,11 +69,11 @@ void setDodgeRam1996(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setWholeTimingTable_d(10 PASS_CONFIG_PARAMETER_SUFFIX);
boardConfiguration->alternatorControlPin = GPIOD_7;
engineConfiguration->alternatorControlPin = GPIOD_7;
engineConfiguration->alternatorControl.pFactor = 22;
boardConfiguration->idle.solenoidPin = GPIOC_13;
boardConfiguration->idle.solenoidFrequency = 300;
engineConfiguration->idle.solenoidPin = GPIOC_13;
engineConfiguration->idle.solenoidFrequency = 300;
engineConfiguration->vbattAdcChannel = EFI_ADC_14;
// engineConfiguration->vbattDividerCoeff = ((float) (8.93 + 41.27)) / 8.93 * 2;
@ -82,5 +82,5 @@ void setDodgeRam1996(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setDodgeSensor(&engineConfiguration->clt, 2700);
setDodgeSensor(&engineConfiguration->iat, 2700);
boardConfiguration->useStepperIdle = true;
engineConfiguration->useStepperIdle = true;
}

View File

@ -21,13 +21,13 @@ ENGINES_SRC_CPP = $(PROJECT_DIR)/config/engines/ford_aspire.cpp \
$(PROJECT_DIR)/config/engines/subaru.cpp \
$(PROJECT_DIR)/config/engines/GY6_139QMB.cpp \
$(PROJECT_DIR)/config/engines/rover_v8.cpp \
$(PROJECT_DIR)/config/engines/mazda_323.cpp \
$(PROJECT_DIR)/config/engines/mazda_626.cpp \
$(PROJECT_DIR)/config/engines/sachs.cpp \
$(PROJECT_DIR)/config/engines/test_engine.cpp \
$(PROJECT_DIR)/config/engines/mitsubishi.cpp \
$(PROJECT_DIR)/config/engines/dodge_ram.cpp \
$(PROJECT_DIR)/config/engines/vw.cpp \
$(PROJECT_DIR)/config/engines/vw_b6.cpp \
$(PROJECT_DIR)/config/engines/dodge_stratus.cpp \
$(PROJECT_DIR)/config/engines/chevrolet_camaro_4.cpp \
$(PROJECT_DIR)/config/engines/suzuki_vitara.cpp \

View File

@ -82,13 +82,13 @@ void setFordInline6(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// output 5 is PC13
// output 6 is PC15
boardConfiguration->fuelPumpPin = GPIOC_13;
boardConfiguration->injectionPins[0] = GPIOB_9;
boardConfiguration->injectionPins[1] = GPIOE_3;
boardConfiguration->ignitionPins[0] = GPIOC_15;
engineConfiguration->fuelPumpPin = GPIOC_13;
engineConfiguration->injectionPins[0] = GPIOB_9;
engineConfiguration->injectionPins[1] = GPIOE_3;
engineConfiguration->ignitionPins[0] = GPIOC_15;
boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->tpsMin = convertVoltageTo10bitADC(1.250);
engineConfiguration->tpsMax = convertVoltageTo10bitADC(4.538);
@ -96,10 +96,10 @@ void setFordInline6(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// engineConfiguration->vbattAdcChannel = 0; //
engineConfiguration->mafAdcChannel = EFI_ADC_1;
boardConfiguration->triggerInputPins[0] = GPIOA_8;
boardConfiguration->triggerInputPins[1] = GPIOA_5;
boardConfiguration->logicAnalyzerPins[0] = GPIOC_6;
boardConfiguration->logicAnalyzerPins[1] = GPIOE_5;
engineConfiguration->triggerInputPins[0] = GPIOA_8;
engineConfiguration->triggerInputPins[1] = GPIOA_5;
engineConfiguration->logicAnalyzerPins[0] = GPIOC_6;
engineConfiguration->logicAnalyzerPins[1] = GPIOE_5;
}
#endif /* EFI_SUPPORT_1995_FORD_INLINE_6 */

View File

@ -129,8 +129,8 @@ void setFordAspireEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->useOnlyRisingEdgeForTrigger = true;
engineConfiguration->trigger.type = TT_FORD_ASPIRE;
boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
engineConfiguration->HD44780width = 20;
engineConfiguration->HD44780height = 4;

View File

@ -73,7 +73,7 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->trigger.type = TT_MAZDA_DOHC_1_4;
setFrankenso_01_LCD(boardConfiguration);
setFrankenso_01_LCD(engineConfiguration);
setFrankenso0_1_joystick(engineConfiguration);
setDensoTODO(config);
@ -87,40 +87,46 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setFuelLoadBin(1.2, 4.4 PASS_CONFIG_PARAMETER_SUFFIX);
setFuelRpmBin(800, 7000 PASS_CONFIG_PARAMETER_SUFFIX);
config->veRpmBins[0] = 800;
config->veRpmBins[1] = 1200;
config->veRpmBins[2] = 1600;
config->veRpmBins[3] = 2000;
config->veRpmBins[4] = 2400;
config->veRpmBins[5] = 2800;
config->veRpmBins[6] = 3200;
config->veRpmBins[7] = 3600;
config->veRpmBins[8] = 4100;
config->veRpmBins[9] = 4500;
config->veRpmBins[10] = 4900;
config->veRpmBins[11] = 5300;
config->veRpmBins[12] = 5700;
config->veRpmBins[13] = 6100;
config->veRpmBins[14] = 6500;
config->veRpmBins[15] = 7000;
static const float veRpmBins[] =
{
800,
1200,
1600,
2000,
2400,
2800,
3200,
3600,
4100,
4500,
4900,
5300,
5700,
6100,
6500,
7000
};
copyArray(config->veRpmBins, veRpmBins);
copyFuelTable(racingFestivaVeTable, config->veTable);
// boardConfiguration->triggerInputPins[0] = GPIOC_6; // 2G YEL/BLU
// boardConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP
// engineConfiguration->triggerInputPins[0] = GPIOC_6; // 2G YEL/BLU
// engineConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP
// in case of SOHC distributor we only have one signal
// boardConfiguration->triggerInputPins[0] = GPIOA_5; // 2E White CKP
// boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
// engineConfiguration->triggerInputPins[0] = GPIOA_5; // 2E White CKP
// engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
// in case of DOHC distributor we have two signals
boardConfiguration->triggerInputPins[0] = GPIOC_6;
boardConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP
engineConfiguration->triggerInputPins[0] = GPIOC_6;
engineConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP
// Denso 195500-2180
engineConfiguration->injector.flow = 265;
boardConfiguration->isFastAdcEnabled = true;
engineConfiguration->isFastAdcEnabled = true;
engineConfiguration->map.sensor.type = MT_DENSO183;
/**
* pin PA4: jumper W47<>W47 - ecu plug 3I
@ -131,7 +137,7 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->afr.hwChannel = EFI_ADC_2; // Frankenso analog #5 // PA2
// set_idle_position 10
boardConfiguration->manIdlePosition = 10;
engineConfiguration->manIdlePosition = 10;
engineConfiguration->crankingIACposition = 65;
setWholeIatCorrTimingTable(0 PASS_CONFIG_PARAMETER_SUFFIX);
@ -158,8 +164,8 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setSingleCoilDwell(PASS_CONFIG_PARAMETER_SIGNATURE);
engineConfiguration->ignitionMode = IM_ONE_COIL;
boardConfiguration->triggerSimulatorPinModes[0] = OM_OPENDRAIN;
boardConfiguration->triggerSimulatorPinModes[1] = OM_OPENDRAIN;
engineConfiguration->triggerSimulatorPinModes[0] = OM_OPENDRAIN;
engineConfiguration->triggerSimulatorPinModes[1] = OM_OPENDRAIN;
// individual coils
// W6 PC9
@ -167,11 +173,11 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// W12 PE8
// W13 PE12
boardConfiguration->ignitionPins[0] = GPIOC_9;
boardConfiguration->ignitionPins[1] = GPIOC_7;
boardConfiguration->ignitionPins[2] = GPIOE_8;
boardConfiguration->ignitionPins[3] = GPIOE_12;
boardConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPins[0] = GPIOC_9;
engineConfiguration->ignitionPins[1] = GPIOC_7;
engineConfiguration->ignitionPins[2] = GPIOE_8;
engineConfiguration->ignitionPins[3] = GPIOE_12;
engineConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
@ -193,18 +199,18 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenso low out #11: PB8
// Frankenso low out #12: PB7
boardConfiguration->injectionPins[0] = GPIOD_3;
boardConfiguration->injectionPins[1] = GPIOE_2;
engineConfiguration->injectionPins[0] = GPIOD_3;
engineConfiguration->injectionPins[1] = GPIOE_2;
// 40% idle is good default
boardConfiguration->idle.solenoidFrequency = 300;
boardConfiguration->idle.solenoidPin = GPIOB_9;
engineConfiguration->idle.solenoidFrequency = 300;
engineConfiguration->idle.solenoidPin = GPIOB_9;
boardConfiguration->malfunctionIndicatorPin = GPIOE_5;
boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
engineConfiguration->malfunctionIndicatorPin = GPIOE_5;
engineConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
boardConfiguration->tunerStudioSerialSpeed = 19200;
engineConfiguration->tunerStudioSerialSpeed = 19200;
commonFrankensoAnalogInputs(engineConfiguration);
setCommonNTCSensor(&engineConfiguration->clt, 2700);
@ -229,7 +235,7 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
* to test
* set_fsio_setting 1 5000
*/
boardConfiguration->fsio_setting[0] = 5000;
engineConfiguration->fsio_setting[0] = 5000;
// set_fsio_expression 1 "rpm > fsio_setting(1)"
setFsioExt(0, GPIOE_3, RPM_ABOVE_USER_SETTING_1, 150 PASS_CONFIG_PARAMETER_SUFFIX);
@ -244,30 +250,36 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
* set_rpn_expression 1 "rpm 0 fsio_setting > coolant 1 fsio_setting > | vbatt 2 fsio_setting < |"
* eval "rpm 0 fsio_setting > coolant 1 fsio_setting > | vbatt 2 fsio_setting < |"
*/
boardConfiguration->fsio_setting[1] = 6200; // RPM threshold
boardConfiguration->fsio_setting[2] = 90; // CLT threshold
boardConfiguration->fsio_setting[3] = 13.5; // voltage threshold
engineConfiguration->fsio_setting[1] = 6200; // RPM threshold
engineConfiguration->fsio_setting[2] = 90; // CLT threshold
engineConfiguration->fsio_setting[3] = 13.5; // voltage threshold
// setFsio(1, GPIOC_13, "rpm 2 fsio_setting > coolant 3 fsio_setting > | vbatt 4 fsio_setting < |" PASS_CONFIG_PARAMETER_SUFFIX);
setFsio(1, GPIOD_7, RPM_ABOVE_USER_SETTING_2 PASS_CONFIG_PARAMETER_SUFFIX);
#endif /* EFI_FSIO */
config->ignitionRpmBins[0] = 800;
config->ignitionRpmBins[1] = 1200;
config->ignitionRpmBins[2] = 1600;
config->ignitionRpmBins[3] = 2000;
config->ignitionRpmBins[4] = 2400;
config->ignitionRpmBins[5] = 2800;
config->ignitionRpmBins[6] = 3200;
config->ignitionRpmBins[7] = 3600;
config->ignitionRpmBins[8] = 4100;
config->ignitionRpmBins[9] = 4500;
config->ignitionRpmBins[10] = 4900;
config->ignitionRpmBins[11] = 5300;
config->ignitionRpmBins[12] = 5700;
config->ignitionRpmBins[13] = 6100;
config->ignitionRpmBins[14] = 6500;
config->ignitionRpmBins[15] = 7000;
static const float ignitionRpmBins[] =
{
800,
1200,
1600,
2000,
2400,
2800,
3200,
3600,
4100,
4500,
4900,
5300,
5700,
6100,
6500,
7000
};
copyArray(config->ignitionRpmBins, ignitionRpmBins);
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(racingFestivaIgnitionTable, config->ignitionTable);
#endif
@ -277,7 +289,7 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->engineLoadAccelEnrichmentThreshold = 5.0;
engineConfiguration->engineLoadAccelEnrichmentMultiplier = 1;
boardConfiguration->isSdCardEnabled = true;
engineConfiguration->isSdCardEnabled = true;
// engineConfiguration->useFSIO16ForTimingAdjustment = true;
// we wanted to have a timinig table adjustment switch here

View File

@ -69,8 +69,8 @@ void setHonda600(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
// upside down wiring
boardConfiguration->triggerInputPins[0] = GPIOA_5;
boardConfiguration->triggerInputPins[1] = GPIOC_6;
engineConfiguration->triggerInputPins[0] = GPIOA_5;
engineConfiguration->triggerInputPins[1] = GPIOC_6;
// set global_trigger_offset_angle 180
@ -90,7 +90,7 @@ void setHonda600(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
//setIndividualCoilsIgnition();
setFrankenso_01_LCD(boardConfiguration);
setFrankenso_01_LCD(engineConfiguration);
commonFrankensoAnalogInputs(engineConfiguration);
setFrankenso0_1_joystick(engineConfiguration);
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
@ -138,33 +138,33 @@ void setHonda600(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenso low out #11: PB8 injector #3
// Frankenso low out #12: PB7 injector #4
boardConfiguration->fuelPumpPin = GPIOE_4;
boardConfiguration->mainRelayPin = GPIOD_7;
boardConfiguration->idle.solenoidPin = GPIOC_13;
engineConfiguration->fuelPumpPin = GPIOE_4;
engineConfiguration->mainRelayPin = GPIOD_7;
engineConfiguration->idle.solenoidPin = GPIOC_13;
boardConfiguration->fanPin = GPIOE_5;
engineConfiguration->fanPin = GPIOE_5;
boardConfiguration->injectionPins[0] = GPIOB_9; // #1
boardConfiguration->injectionPins[1] = GPIOD_5; // #2
boardConfiguration->injectionPins[2] = GPIOB_7; // #3
boardConfiguration->injectionPins[3] = GPIOB_8; // #4
engineConfiguration->injectionPins[0] = GPIOB_9; // #1
engineConfiguration->injectionPins[1] = GPIOD_5; // #2
engineConfiguration->injectionPins[2] = GPIOB_7; // #3
engineConfiguration->injectionPins[3] = GPIOB_8; // #4
setDefaultCustomMaps(PASS_CONFIG_PARAMETER_SIGNATURE);
setAlgorithm(LM_ALPHA_N PASS_CONFIG_PARAMETER_SUFFIX);
boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[6] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[7] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[8] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[9] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[10] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[11] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[6] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[7] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[8] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[9] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[10] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[11] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[0] = GPIOE_14;
boardConfiguration->ignitionPins[1] = GPIOC_7;
boardConfiguration->ignitionPins[2] = GPIOE_10;
boardConfiguration->ignitionPins[3] = GPIOC_9; // #4
engineConfiguration->ignitionPins[0] = GPIOE_14;
engineConfiguration->ignitionPins[1] = GPIOC_7;
engineConfiguration->ignitionPins[2] = GPIOE_10;
engineConfiguration->ignitionPins[3] = GPIOC_9; // #4
// todo: 8.2 or 10k?
engineConfiguration->vbattDividerCoeff = ((float) (10 + 33)) / 10 * 2;

View File

@ -39,7 +39,7 @@ EXTERN_CONFIG;
static void setHondaAccordConfigurationCommon(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->map.sensor.type = MT_DENSO183;
boardConfiguration->isFastAdcEnabled = true;
engineConfiguration->isFastAdcEnabled = true;
// set ignition_mode 0
engineConfiguration->ignitionMode = IM_ONE_COIL;
@ -148,29 +148,29 @@ static void setHondaAccordConfigurationCommon(DECLARE_CONFIG_PARAMETER_SIGNATURE
// Frankenso low out #10: PD5 Injector #3
// Frankenso low out #11: PB8 injector #1
// Frankenso low out #12: PB7 injector #4
boardConfiguration->fuelPumpPin = GPIOE_3;
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
boardConfiguration->malfunctionIndicatorPin = GPIOE_2;
boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
boardConfiguration->fanPin = GPIOE_4; // blue wire
engineConfiguration->fuelPumpPin = GPIOE_3;
engineConfiguration->fuelPumpPinMode = OM_DEFAULT;
engineConfiguration->malfunctionIndicatorPin = GPIOE_2;
engineConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
engineConfiguration->fanPin = GPIOE_4; // blue wire
boardConfiguration->idle.solenoidPin = GPIOD_3; // green wire
engineConfiguration->idle.solenoidPin = GPIOD_3; // green wire
boardConfiguration->injectionPins[0] = GPIOB_8;
boardConfiguration->injectionPins[1] = GPIOB_9;
boardConfiguration->injectionPins[2] = GPIOD_5;
boardConfiguration->injectionPins[3] = GPIOB_7;
engineConfiguration->injectionPins[0] = GPIOB_8;
engineConfiguration->injectionPins[1] = GPIOB_9;
engineConfiguration->injectionPins[2] = GPIOD_5;
engineConfiguration->injectionPins[3] = GPIOB_7;
boardConfiguration->ignitionPins[0] = GPIOE_12; // white wire
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[0] = GPIOE_12; // white wire
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
setFrankenso_01_LCD(boardConfiguration);
setFrankenso_01_LCD(engineConfiguration);
setFrankenso0_1_joystick(engineConfiguration);
boardConfiguration->idle.solenoidFrequency = 500;
engineConfiguration->idle.solenoidFrequency = 500;
}
/*

View File

@ -15,35 +15,35 @@ EXTERN_CONFIG;
void setLadaKalina(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
disableLCD(boardConfiguration);
disableLCD(engineConfiguration);
boardConfiguration->HD44780_rs = GPIO_UNASSIGNED;
boardConfiguration->HD44780_e = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
boardConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_rs = GPIO_UNASSIGNED;
engineConfiguration->HD44780_e = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db4 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db5 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db6 = GPIO_UNASSIGNED;
engineConfiguration->HD44780_db7 = GPIO_UNASSIGNED;
setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR);
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2;
boardConfiguration->triggerInputPins[0] = GPIOA_5;
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[0] = GPIOA_5;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->globalTriggerAngleOffset = 114;
boardConfiguration->ignitionPins[0] = GPIOE_14;
boardConfiguration->ignitionPins[1] = GPIOC_7;
boardConfiguration->ignitionPins[2] = GPIOC_9;
boardConfiguration->ignitionPins[3] = GPIOE_12;
engineConfiguration->ignitionPins[0] = GPIOE_14;
engineConfiguration->ignitionPins[1] = GPIOC_7;
engineConfiguration->ignitionPins[2] = GPIOC_9;
engineConfiguration->ignitionPins[3] = GPIOE_12;
boardConfiguration->useStepperIdle = true;
boardConfiguration->fuelPumpPin = GPIOC_13;
boardConfiguration->mainRelayPin = GPIOD_7;
engineConfiguration->useStepperIdle = true;
engineConfiguration->fuelPumpPin = GPIOC_13;
engineConfiguration->mainRelayPin = GPIOD_7;
boardConfiguration->idle.stepperDirectionPin = GPIOE_15;
boardConfiguration->idle.stepperStepPin = GPIOE_13;
engineConfiguration->idle.stepperDirectionPin = GPIOE_15;
engineConfiguration->idle.stepperStepPin = GPIOE_13;
engineConfiguration->stepperEnablePin = GPIOE_11;
@ -54,7 +54,7 @@ void setLadaKalina(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
* to test
* set_fsio_setting 1 5000
*/
engineConfiguration->bc.fsio_setting[0] = 500;
engineConfiguration->fsio_setting[0] = 500;
// set_rpn_expression 1 "rpm 0 fsio_setting <"
setFsioExt(0, GPIOE_3, RPM_BELOW_USER_SETTING_1, 0 PASS_CONFIG_PARAMETER_SUFFIX);
#endif /* EFI_FSIO */

View File

@ -1,22 +0,0 @@
/**
* @file mazda_323.cpp
*
* @date Mar 8, 2014
* @author Andrey Belomutskiy, (c) 2012-2018
*/
#include "mazda_323.h"
EXTERN_CONFIG;
void setMazda323EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->specs.cylindersCount = 4;
engineConfiguration->specs.displacement = 1.6;
engineConfiguration->ignitionMode = IM_ONE_COIL;
/**
* We treat the trigger as 4/0 toothed wheel
*/
// setToothedWheelConfiguration(engineConfiguration, 4, 0);
}

View File

@ -1,17 +0,0 @@
/**
* @file mazda_323.h
*
* 90-94 Mazda 323 (1.6l SOHC)
* 90-93 Ford Festiva (1.3l SOHC)
*
* http://rusefi.com/forum/viewtopic.php?f=3&t=498
*
* @date Mar 8, 2014
* @author Andrey Belomutskiy, (c) 2012-2017
*/
#pragma once
#include "engine_configuration.h"
void setMazda323EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE);

View File

@ -26,7 +26,7 @@ void setMazda626EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// engineConfiguration->trigger.type = TT_MAZDA_DOHC_1_4;
// with this complex trigger we do not need this by default
boardConfiguration->sensorChartMode = SC_OFF;
engineConfiguration->sensorChartMode = SC_OFF;
engineConfiguration->useOnlyRisingEdgeForTrigger = true;
@ -103,6 +103,6 @@ void setMazda626EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->externalKnockSenseAdc = EFI_ADC_4;
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->camInputs[0] = GPIOA_5;
}

View File

@ -135,14 +135,14 @@ static void commonMiataNa(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->trigger.type = TT_MAZDA_MIATA_NA;
engineConfiguration->engineChartSize = 100;
boardConfiguration->triggerInputPins[0] = GPIOC_6; // 2G YEL/BLU
boardConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP
engineConfiguration->triggerInputPins[0] = GPIOC_6; // 2G YEL/BLU
engineConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP
engineConfiguration->ignitionMode = IM_WASTED_SPARK;
setFuelLoadBin(1.2, 4.4 PASS_CONFIG_PARAMETER_SUFFIX);
setFuelRpmBin(800, 7000 PASS_CONFIG_PARAMETER_SUFFIX);
boardConfiguration->idle.solenoidFrequency = 160;
engineConfiguration->idle.solenoidFrequency = 160;
// Frankenstein: high side #1 is PE8
// Frankenstein: high side #2 is PE10
@ -151,16 +151,16 @@ static void commonMiataNa(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenstein: high side #5 is PC9
// Frankenstein: high side #6 is PC7
boardConfiguration->ignitionPins[0] = GPIOE_12; // Frankenstein: high side #3
boardConfiguration->ignitionPins[1] = GPIOE_14; // Frankenstein: high side #4
boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPins[0] = GPIOE_12; // Frankenstein: high side #3
engineConfiguration->ignitionPins[1] = GPIOE_14; // Frankenstein: high side #4
engineConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPinMode = OM_DEFAULT;
setDefaultCrankingFuel(engineConfiguration);
boardConfiguration->triggerSimulatorPinModes[0] = OM_OPENDRAIN;
boardConfiguration->triggerSimulatorPinModes[1] = OM_OPENDRAIN;
engineConfiguration->triggerSimulatorPinModes[0] = OM_OPENDRAIN;
engineConfiguration->triggerSimulatorPinModes[1] = OM_OPENDRAIN;
setCommonNTCSensor(&engineConfiguration->clt, 2700);
setCommonNTCSensor(&engineConfiguration->iat, 2700);
@ -174,7 +174,7 @@ void common079721_2351(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->specs.cylindersCount = 4;
engineConfiguration->specs.firingOrder = FO_1_3_4_2;
boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED; // fuel pump is not controlled by ECU on this engine
engineConfiguration->fuelPumpPin = GPIO_UNASSIGNED; // fuel pump is not controlled by ECU on this engine
// set cranking_injection_mode 0
engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
@ -221,13 +221,13 @@ void setMiata1990(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenstein: low side - out #11: PB8
// Frankenstein: low side - out #12: PB9
boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12
boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11
boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
boardConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12
engineConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11
engineConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
engineConfiguration->injectionPinMode = OM_DEFAULT;
// todo: idleValvePin
}
@ -250,17 +250,17 @@ static void setMiata1994_common(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
copyTimingTable(miataNA8_maf_advance_table, config->ignitionTable);
#endif
// boardConfiguration->triggerSimulatorPins[0] = GPIOD_2; // 2G - YEL/BLU
// boardConfiguration->triggerSimulatorPins[1] = GPIOB_3; // 2E - WHT - four times
// boardConfiguration->triggerSimulatorPinModes[0] = OM_OPENDRAIN;
// boardConfiguration->triggerSimulatorPinModes[1] = OM_OPENDRAIN;
// engineConfiguration->triggerSimulatorPins[0] = GPIOD_2; // 2G - YEL/BLU
// engineConfiguration->triggerSimulatorPins[1] = GPIOB_3; // 2E - WHT - four times
// engineConfiguration->triggerSimulatorPinModes[0] = OM_OPENDRAIN;
// engineConfiguration->triggerSimulatorPinModes[1] = OM_OPENDRAIN;
//
// boardConfiguration->triggerInputPins[0] = GPIO_UNASSIGNED;
// boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
// engineConfiguration->triggerInputPins[0] = GPIO_UNASSIGNED;
// engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
//
// boardConfiguration->is_enabled_spi_1 = false;
// boardConfiguration->is_enabled_spi_2 = false;
// boardConfiguration->is_enabled_spi_3 = false;
// engineConfiguration->is_enabled_spi_1 = false;
// engineConfiguration->is_enabled_spi_2 = false;
// engineConfiguration->is_enabled_spi_3 = false;
/**
* Outputs
@ -277,25 +277,25 @@ static void setMiata1994_common(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenso low out #10: PE0 (do not use with discovery!)
// Frankenso low out #11: PB8
// Frankenso low out #12: PB7
boardConfiguration->fanPin = GPIOE_6;
engineConfiguration->fanPin = GPIOE_6;
boardConfiguration->o2heaterPin = GPIO_UNASSIGNED;
engineConfiguration->o2heaterPin = GPIO_UNASSIGNED;
boardConfiguration->fuelPumpPin = GPIOE_4;
engineConfiguration->fuelPumpPin = GPIOE_4;
boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
boardConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
engineConfiguration->injectionPinMode = OM_DEFAULT;
boardConfiguration->idle.solenoidPin = GPIOB_9;
engineConfiguration->idle.solenoidPin = GPIOB_9;
boardConfiguration->ignitionPins[0] = GPIOE_14; // Frankenso high side - pin 1G
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOC_7; // Frankenso high side - pin 1H
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPins[0] = GPIOE_14; // Frankenso high side - pin 1G
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOC_7; // Frankenso high side - pin 1H
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPinMode = OM_DEFAULT;
setFrankenso_01_LCD(boardConfiguration);
setFrankenso_01_LCD(engineConfiguration);
commonFrankensoAnalogInputs(engineConfiguration);
@ -318,13 +318,13 @@ void setMiata1994_d(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
/**
* This board was avoiding PE0 & PE1 mosfets altogether
*/
boardConfiguration->injectionPins[0] = GPIOD_7; // avoiding PE1
boardConfiguration->injectionPins[1] = GPIOE_2;
boardConfiguration->injectionPins[2] = GPIOB_8;
boardConfiguration->injectionPins[3] = GPIOB_7;
engineConfiguration->injectionPins[0] = GPIOD_7; // avoiding PE1
engineConfiguration->injectionPins[1] = GPIOE_2;
engineConfiguration->injectionPins[2] = GPIOB_8;
engineConfiguration->injectionPins[3] = GPIOB_7;
// todo: add the diode? change idle valve logic?
boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
engineConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
}
/**
@ -342,31 +342,31 @@ void setMiata1996(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
#endif
// upside down
boardConfiguration->triggerInputPins[0] = GPIOA_5;
boardConfiguration->triggerInputPins[1] = GPIOC_6;
engineConfiguration->triggerInputPins[0] = GPIOA_5;
engineConfiguration->triggerInputPins[1] = GPIOC_6;
boardConfiguration->fuelPumpPin = GPIOE_4;
boardConfiguration->idle.solenoidPin = GPIOE_5;
engineConfiguration->fuelPumpPin = GPIOE_4;
engineConfiguration->idle.solenoidPin = GPIOE_5;
engineConfiguration->mafAdcChannel = EFI_ADC_1;
engineConfiguration->clt.adcChannel = EFI_ADC_11;
engineConfiguration->tps1_1AdcChannel = EFI_ADC_13;
boardConfiguration->ignitionPins[0] = GPIOE_12; // Frankenstein: high side #3
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOE_14; // Frankenstein: high side #4
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPins[0] = GPIOE_12; // Frankenstein: high side #3
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOE_14; // Frankenstein: high side #4
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPinMode = OM_DEFAULT;
// harness is sequential but we have a limited board
engineConfiguration->crankingInjectionMode = IM_BATCH;
engineConfiguration->injectionMode = IM_BATCH;
boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12
boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11
boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
boardConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12
engineConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11
engineConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
engineConfiguration->injectionPinMode = OM_DEFAULT;
}

View File

@ -114,7 +114,7 @@ static void miataNAcommonEngineSettings(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
copyTimingTable(mapBased16IgnitionTable, config->ignitionTable);
#endif
boardConfiguration->idle.solenoidFrequency = 160;
engineConfiguration->idle.solenoidFrequency = 160;
engineConfiguration->ignitionMode = IM_WASTED_SPARK;
}
@ -122,16 +122,16 @@ void miataNAcommon(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
miataNAcommonEngineSettings(PASS_CONFIG_PARAMETER_SIGNATURE);
boardConfiguration->idle.solenoidPin = GPIOB_9; // this W61 <> W61 jumper, pin 3W
engineConfiguration->idle.solenoidPin = GPIOB_9; // this W61 <> W61 jumper, pin 3W
boardConfiguration->ignitionPins[0] = GPIOE_14; // Frankenso high side - pin 1G
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOC_7; // Frankenso high side - pin 1H
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[0] = GPIOE_14; // Frankenso high side - pin 1G
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOC_7; // Frankenso high side - pin 1H
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
}
static void setMiataNA6_settings(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->bc.isFasterEngineSpinUpEnabled = true;
engineConfiguration->isFasterEngineSpinUpEnabled = true;
memcpy(config->veRpmBins, ve16RpmBins, sizeof(ve16RpmBins));
memcpy(config->veLoadBins, ve16LoadBins, sizeof(ve16LoadBins));
@ -202,8 +202,8 @@ void setMiataNA6_MAP_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
boardConfiguration->isHip9011Enabled = false;
boardConfiguration->isSdCardEnabled = false;
engineConfiguration->isHip9011Enabled = false;
engineConfiguration->isSdCardEnabled = false;
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
@ -217,7 +217,7 @@ void setMiataNA6_MAP_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->vbattDividerCoeff = 9.75;// ((float) (8.2 + 33)) / 8.2 * 2;
boardConfiguration->isSdCardEnabled = true;
engineConfiguration->isSdCardEnabled = true;
// /**
// * oil pressure line
@ -238,14 +238,14 @@ void setMiataNA6_MAP_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
*/
/*
//WARNING: these indeces are off
boardConfiguration->fsio_setting[0] = 6400; // RPM threshold
boardConfiguration->fsio_setting[1] = 100; // CLT threshold, fsio_setting #2
boardConfiguration->fsio_setting[2] = 13.0; // voltage threshold, fsio_setting #3
engineConfiguration->fsio_setting[0] = 6400; // RPM threshold
engineConfiguration->fsio_setting[1] = 100; // CLT threshold, fsio_setting #2
engineConfiguration->fsio_setting[2] = 13.0; // voltage threshold, fsio_setting #3
// set_fsio_setting 4 3000
boardConfiguration->fsio_setting[3] = 3000; // oil pressure RPM, fsio_setting #4
engineConfiguration->fsio_setting[3] = 3000; // oil pressure RPM, fsio_setting #4
// set_fsio_setting 5 0.52
boardConfiguration->fsio_setting[4] = 0.52; // oil pressure threshold, fsio_setting #5
engineConfiguration->fsio_setting[4] = 0.52; // oil pressure threshold, fsio_setting #5
*/
// * set_rpn_expression 1 "rpm 3 fsio_setting >"
@ -259,17 +259,17 @@ void setMiataNA6_MAP_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setFsio(0, GPIOC_13, COMBINED_WARNING_LIGHT PASS_CONFIG_PARAMETER_SUFFIX);
#endif /* EFI_FSIO */
boardConfiguration->injectionPins[0] = GPIOD_3; // #1&3 pin 3U
boardConfiguration->injectionPins[1] = GPIOE_2; // #2&4 pin 3V
boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[0] = GPIOD_3; // #1&3 pin 3U
engineConfiguration->injectionPins[1] = GPIOE_2; // #2&4 pin 3V
engineConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
// white wire from 1E - TOP of W4 to BOTTOM W62
boardConfiguration->malfunctionIndicatorPin = GPIOD_5;
engineConfiguration->malfunctionIndicatorPin = GPIOD_5;
// yellow wire from 1V/W22 to bottom of W48
boardConfiguration->clutchDownPin = GPIOA_3;
boardConfiguration->clutchDownPinMode = PI_PULLUP;
engineConfiguration->clutchDownPin = GPIOA_3;
engineConfiguration->clutchDownPinMode = PI_PULLUP;
// 110mm red wire from 1N/W14 to bottom of W45
@ -280,7 +280,7 @@ void setMiataNA6_MAP_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
#if ! EFI_UNIT_TEST
// W57 PE3 A/C compressor relay out
boardConfiguration->acRelayPin = GPIOE_3;
engineConfiguration->acRelayPin = GPIOE_3;
// W58 PE4 A/C fan relay out
#endif /* EFI_UNIT_TEST */
@ -311,17 +311,17 @@ void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// MAF/VAF: "19 - AN volt 4"
engineConfiguration->mafAdcChannel = EFI_ADC_12;
//boardConfiguration->triggerInputPins[0] = GPIOC_6;
boardConfiguration->triggerInputPins[1] = GPIOA_5;
//engineConfiguration->triggerInputPins[0] = GPIOC_6;
engineConfiguration->triggerInputPins[1] = GPIOA_5;
engineConfiguration->camInputs[0] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[0] = GPIOD_7;
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOD_6;
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[0] = GPIOD_7;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOD_6;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[3] = GPIO_UNASSIGNED;
// tps = "20 - AN volt 5"
//engineConfiguration->tps1_1AdcChannel = EFI_ADC_13;
@ -332,7 +332,7 @@ void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// TLE8888_PIN_24: "43 - GP Out 4"
// MIL check engine
// NA6 check engine light is just a normal low side driver
boardConfiguration->malfunctionIndicatorPin = TLE8888_PIN_24;
engineConfiguration->malfunctionIndicatorPin = TLE8888_PIN_24;
// IAC: GPIOE_9: "7 - Lowside 1"
@ -342,8 +342,8 @@ void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// engineConfiguration->vbattDividerCoeff = (66.0f / 10.0f) * engineConfiguration->analogInputDividerCoefficient;
boardConfiguration->isHip9011Enabled = false;
boardConfiguration->isSdCardEnabled = false;
engineConfiguration->isHip9011Enabled = false;
engineConfiguration->isSdCardEnabled = false;
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
miataNAcommonEngineSettings(PASS_CONFIG_PARAMETER_SIGNATURE);

View File

@ -122,7 +122,7 @@ void setMazdaMiata2003EngineConfigurationNaFuelRail(DECLARE_CONFIG_PARAMETER_SIG
memcpy(config->afrLoadBins, mazda_miata_nb2_targetAfrLoadBins, sizeof(mazda_miata_nb2_targetAfrLoadBins));
copyTargetAfrTable(target_AFR_hunchback, config->afrTable);
boardConfiguration->ignitionPins[2] = GPIOC_7;
engineConfiguration->ignitionPins[2] = GPIOC_7;
// Frankenso analog #7 pin 3J, W48 top <>W48 bottom jumper, not OEM
engineConfiguration->afr.hwChannel = EFI_ADC_3; // PA3
@ -145,7 +145,7 @@ void setMazdaMiata2003EngineConfigurationNaFuelRail(DECLARE_CONFIG_PARAMETER_SIG
engineConfiguration->rpmHardLimit = 7200; // we want to survive the race, but we also want some fun!
// set idle_position 30
boardConfiguration->manIdlePosition = 30;
engineConfiguration->manIdlePosition = 30;
engineConfiguration->crankingIACposition = 65;
}

View File

@ -41,10 +41,10 @@ void setMazdaMiataNA8Configuration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->vbattDividerCoeff = 9.75;// ((float) (8.2 + 33)) / 8.2 * 2;
boardConfiguration->injectionPins[0] = GPIOD_3; // #1 pin 3U
boardConfiguration->injectionPins[1] = GPIOE_2; // #2 pin 3V
boardConfiguration->injectionPins[2] = GPIOB_8; // #3 pin 3Y
boardConfiguration->injectionPins[3] = GPIOB_7; // #4 pin 3Z
engineConfiguration->injectionPins[0] = GPIOD_3; // #1 pin 3U
engineConfiguration->injectionPins[1] = GPIOE_2; // #2 pin 3V
engineConfiguration->injectionPins[2] = GPIOB_8; // #3 pin 3Y
engineConfiguration->injectionPins[3] = GPIOB_7; // #4 pin 3Z
engineConfiguration->injectionMode = IM_SEQUENTIAL;
}

View File

@ -45,33 +45,33 @@ void setMazdaMiataNb1EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->iat.adcChannel = EFI_ADC_13;
engineConfiguration->afr.hwChannel = EFI_ADC_2; // PA2
boardConfiguration->idle.solenoidPin = GPIOE_0;
boardConfiguration->idle.solenoidPinMode = OM_DEFAULT;
engineConfiguration->idle.solenoidPin = GPIOE_0;
engineConfiguration->idle.solenoidPinMode = OM_DEFAULT;
boardConfiguration->fuelPumpPin = GPIOC_14; // Frankenstein: low side - out #4
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
engineConfiguration->fuelPumpPin = GPIOC_14; // Frankenstein: low side - out #4
engineConfiguration->fuelPumpPinMode = OM_DEFAULT;
boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12
boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11
boardConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - out #8
boardConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - out #6
boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
boardConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12
engineConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11
engineConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - out #8
engineConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - out #6
engineConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
engineConfiguration->injectionPinMode = OM_DEFAULT;
boardConfiguration->ignitionPins[0] = GPIOE_10; // Frankenstein: high side #1
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOC_9; // // Frankenstein: high side #2
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPinMode = OM_INVERTED;
engineConfiguration->ignitionPins[0] = GPIOE_10; // Frankenstein: high side #1
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOC_9; // // Frankenstein: high side #2
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPinMode = OM_INVERTED;
boardConfiguration->malfunctionIndicatorPin = GPIOE_1;
boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
engineConfiguration->malfunctionIndicatorPin = GPIOE_1;
engineConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT;
boardConfiguration->fanPin = GPIOE_6;
boardConfiguration->fanPinMode = OM_DEFAULT;
engineConfiguration->fanPin = GPIOE_6;
engineConfiguration->fanPinMode = OM_DEFAULT;
boardConfiguration->clutchDownPin = GPIO_UNASSIGNED;
engineConfiguration->clutchDownPin = GPIO_UNASSIGNED;
// set_whole_fuel_map 3
setWholeFuelMap(3 PASS_CONFIG_PARAMETER_SUFFIX);
@ -84,7 +84,7 @@ void setMazdaMiataNb1EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
* to test
* set_fsio_setting 1 5000
*/
boardConfiguration->fsio_setting[0] = 5000;
engineConfiguration->fsio_setting[0] = 5000;
// (self and (rpm > 4800)) OR (rpm > 5000)
// set_rpn_expression 1 "self rpm 4800 > & rpm 5000 > OR"
// setFsioExt(0, GPIOE_3, "self rpm 4800 > & rpm 5000 > OR", 150 PASS_CONFIG_PARAMETER_SUFFIX);

View File

@ -197,14 +197,14 @@ static void setMazdaMiataEngineNB2Defaults(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// 0.1375
// 6.375
// 10.625
boardConfiguration->miataNb2VVTRatioFrom = 8.50 * 0.75;
boardConfiguration->miataNb2VVTRatioTo = 14;
engineConfiguration->miataNb2VVTRatioFrom = 8.50 * 0.75;
engineConfiguration->miataNb2VVTRatioTo = 14;
engineConfiguration->nbVvtIndex = 0;
engineConfiguration->auxPidFrequency[0] = 300; // VVT solenoid control
// set idle_position 35
boardConfiguration->manIdlePosition = 35;
engineConfiguration->manIdlePosition = 35;
engineConfiguration->specs.cylindersCount = 4;
engineConfiguration->specs.firingOrder = FO_1_3_4_2;
@ -292,29 +292,29 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMazdaMiataEngineNB2Defaults(PASS_CONFIG_PARAMETER_SIGNATURE);
// boardConfiguration->triggerInputPins[0] = GPIOA_8; // custom Frankenso wiring in order to use SPI1 for accelerometer
boardConfiguration->triggerInputPins[0] = GPIOA_5; // board still not modified
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
// engineConfiguration->triggerInputPins[0] = GPIOA_8; // custom Frankenso wiring in order to use SPI1 for accelerometer
engineConfiguration->triggerInputPins[0] = GPIOA_5; // board still not modified
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->camInputs[0] = GPIOC_6;
// boardConfiguration->is_enabled_spi_1 = true;
// engineConfiguration->is_enabled_spi_1 = true;
engineConfiguration->twoWireBatchInjection = true; // this is needed for #492 testing
boardConfiguration->alternatorControlPin = GPIOE_10;
boardConfiguration->alternatorControlPinMode = OM_OPENDRAIN;
engineConfiguration->alternatorControlPin = GPIOE_10;
engineConfiguration->alternatorControlPinMode = OM_OPENDRAIN;
// engineConfiguration->vehicleSpeedSensorInputPin = GPIOA_8;
boardConfiguration->vvtCamSensorUseRise = true;
engineConfiguration->vvtCamSensorUseRise = true;
engineConfiguration->vvtDisplayInverted = true;
engineConfiguration->auxPidPins[0] = GPIOE_3; // VVT solenoid control
// /**
// * set_fsio_setting 1 0.55
// */
boardConfiguration->fsio_setting[0] = 0.0;
engineConfiguration->fsio_setting[0] = 0.0;
// setFsioExt(0, GPIOE_3, "0 fsio_setting", 400 PASS_CONFIG_PARAMETER_SUFFIX);
@ -341,10 +341,10 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
* Miata coil on #4 PE14 - white ECU wire "1&4"
*/
boardConfiguration->ignitionPins[0] = GPIOE_14;
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOC_9;
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[0] = GPIOE_14;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOC_9;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
// set tps_min 90
engineConfiguration->tpsMin = 100; // convert 12to10 bit (ADC/4)
@ -354,11 +354,11 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
boardConfiguration->malfunctionIndicatorPin = GPIOD_5;
engineConfiguration->malfunctionIndicatorPin = GPIOD_5;
// boardConfiguration->malfunctionIndicatorPin = GPIOD_9;
// boardConfiguration->malfunctionIndicatorPinMode = OM_INVERTED;
// engineConfiguration->malfunctionIndicatorPin = GPIOD_9;
// engineConfiguration->malfunctionIndicatorPinMode = OM_INVERTED;
// todo: blue jumper wire - what is it?!
// Frankenso analog #6 pin 3R, W56 (5th lower row pin from the end) top <> W45 bottom jumper, not OEM
@ -383,9 +383,9 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
* set_fsio_setting 3 65
* set_fsio_setting 4 15
*/
boardConfiguration->fsio_setting[1] = 6500; // #2 RPM threshold
boardConfiguration->fsio_setting[2] = 105; // #3 CLT threshold
boardConfiguration->fsio_setting[3] = 12.0; // #4 voltage threshold
engineConfiguration->fsio_setting[1] = 6500; // #2 RPM threshold
engineConfiguration->fsio_setting[2] = 105; // #3 CLT threshold
engineConfiguration->fsio_setting[3] = 12.0; // #4 voltage threshold
// setFsio(1, GPIOE_6, COMBINED_WARNING_LIGHT PASS_CONFIG_PARAMETER_SUFFIX);
@ -409,22 +409,26 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->throttlePedalUpVoltage = 0.65f;
// VNH2SP30 three-wire ETB control
// TLE7209 two-wire ETB control
// PWM
engineConfiguration->etbIo[0].controlPin1 = GPIOE_6;
engineConfiguration->etbIo[0].controlPinMode = OM_INVERTED;
CONFIG(etb_use_two_wires) = true;
engineConfiguration->etbIo[0].controlPin1 = GPIO_UNASSIGNED;
//
engineConfiguration->etbIo[0].directionPin1 = GPIOE_12;
engineConfiguration->etbIo[0].directionPin1 = GPIOE_12; // orange
//
engineConfiguration->etbIo[0].directionPin2 = GPIOC_7;
engineConfiguration->etbIo[0].directionPin2 = GPIOC_7; // white/blue
// set_analog_input_pin tps PC3
engineConfiguration->tps1_1AdcChannel = EFI_ADC_13; // PC3
engineConfiguration->tps1_1AdcChannel = EFI_ADC_13; // PC3 blue
engineConfiguration->idleMode = IM_AUTO;
CONFIGB(useETBforIdleControl) = true;
CONFIG(useETBforIdleControl) = true;
// set_analog_input_pin pps PA2
/* a step back - Frankenso does not use ETB
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_2;
*/
engineConfiguration->idleRpmPid.offset = 0;
engineConfiguration->idleRpmPid.pFactor = 0.2;
@ -432,7 +436,7 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->idleRpmPid.dFactor = 5;
engineConfiguration->idleRpmPid.periodMs = 10;
engineConfiguration->bc.isFasterEngineSpinUpEnabled = true;
engineConfiguration->isFasterEngineSpinUpEnabled = true;
//set etb_p 12
engineConfiguration->etb.pFactor = 12; // a bit lower p-factor seems to work better on TLE9201? MRE?
@ -473,7 +477,7 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
void setMazdaMiata2003EngineConfigurationBoardTest(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMazdaMiata2003EngineConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
boardConfiguration->ignitionPins[2] = GPIOC_7;
engineConfiguration->ignitionPins[2] = GPIOC_7;
// Frankenso analog #7 pin 3J, W48 top <>W48 bottom jumper, not OEM. Make sure 500K pull-down on Frankenso
engineConfiguration->afr.hwChannel = EFI_ADC_3; // PA3
@ -481,11 +485,7 @@ void setMazdaMiata2003EngineConfigurationBoardTest(DECLARE_CONFIG_PARAMETER_SIGN
engineConfiguration->mafAdcChannel = EFI_ADC_4; // PA4 - W47 top <>W47
}
/**
* Pretty much OEM 2003 Miata with ETB
* set engine_type 13
*/
void setMiataNB2_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
static void setMiataNB2_MRE_common(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
#if (BOARD_TLE8888_COUNT > 0)
setMazdaMiataEngineNB2Defaults(PASS_CONFIG_PARAMETER_SIGNATURE);
@ -499,15 +499,15 @@ void setMiataNB2_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// tps1_1AdcChannel input is inherited from boards/microrusefi/board_configuration.cpp
// afr.hwChannel input is inherited from boards/microrusefi/board_configuration.cpp
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->camInputs[0] = GPIOA_5;
engineConfiguration->useOnlyRisingEdgeForTrigger = false;
engineConfiguration->useTLE8888_hall_mode = true;
// GPIOD_6: "13 - GP Out 6" - selected to +12v
boardConfiguration->alternatorControlPin = GPIOD_6;
engineConfiguration->alternatorControlPin = GPIOD_6;
// GPIOD_7: "14 - GP Out 5" - selected to +12v
engineConfiguration->dizzySparkOutputPin = GPIOD_7; // tachometer
@ -525,25 +525,9 @@ void setMiataNB2_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->auxPidPins[0] = GPIOE_9; // VVT solenoid control
// TLE8888_PIN_23: "33 - GP Out 3"
boardConfiguration->malfunctionIndicatorPin = TLE8888_PIN_23;
engineConfiguration->malfunctionIndicatorPin = TLE8888_PIN_23;
//set idle_offset 0
engineConfiguration->idleRpmPid.offset = 0;
engineConfiguration->idleRpmPid.pFactor = 0.2;
engineConfiguration->idleRpmPid.iFactor = 0.0001;
engineConfiguration->idleRpmPid.dFactor = 5;
engineConfiguration->idleRpmPid.periodMs = 10;
engineConfiguration->bc.isFasterEngineSpinUpEnabled = true;
engineConfiguration->etb.pFactor = 12; // a bit lower p-factor seems to work better on TLE9201? MRE?
engineConfiguration->etb.iFactor = 0;
engineConfiguration->etb.dFactor = 0;
engineConfiguration->etb.offset = 0;
// enable ETB
// set_rpn_expression 8 "0"
setFsio(7, GPIOC_8, "0" PASS_CONFIG_PARAMETER_SUFFIX);
engineConfiguration->isFasterEngineSpinUpEnabled = true;
// set_analog_input_pin pps PA7
// EFI_ADC_7: "31 - AN volt 3" - PA7
@ -556,10 +540,6 @@ void setMiataNB2_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->tpsMax = 870;
engineConfiguration->idleMode = IM_AUTO;
CONFIGB(useETBforIdleControl) = true;
engineConfiguration->throttlePedalUpVoltage = 1;
// WAT? that's an interesting value, how come it's above 5v?
engineConfiguration->throttlePedalWOTVoltage = 5.47;
// set vbatt_divider 11
// 0.3#4 has wrong R139 as well?
@ -567,3 +547,43 @@ void setMiataNB2_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->vbattDividerCoeff = (66.0f / 10.0f) * engineConfiguration->analogInputDividerCoefficient;
#endif /* BOARD_TLE8888_COUNT */
}
/**
* Pretty much OEM 2003 Miata with ETB
* set engine_type 13
*/
void setMiataNB2_MRE_ETB(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMiataNB2_MRE_common(PASS_CONFIG_PARAMETER_SIGNATURE);
#if EFI_FSIO
// enable ETB
// set_rpn_expression 8 "0"
setFsio(7, GPIOC_8, "0" PASS_CONFIG_PARAMETER_SUFFIX);
#endif /* EFI_FSIO */
//set idle_offset 0
engineConfiguration->idleRpmPid.offset = 0;
engineConfiguration->idleRpmPid.pFactor = 0.2;
engineConfiguration->idleRpmPid.iFactor = 0.0001;
engineConfiguration->idleRpmPid.dFactor = 5;
engineConfiguration->idleRpmPid.periodMs = 10;
CONFIG(useETBforIdleControl) = true;
engineConfiguration->throttlePedalUpVoltage = 1;
// WAT? that's an interesting value, how come it's above 5v?
engineConfiguration->throttlePedalWOTVoltage = 5.47;
engineConfiguration->etb.pFactor = 12; // a bit lower p-factor seems to work better on TLE9201? MRE?
engineConfiguration->etb.iFactor = 0;
engineConfiguration->etb.dFactor = 0;
engineConfiguration->etb.offset = 0;
}
/**
* set engine_type 11
*/
void setMiataNB2_MRE_MTB(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMiataNB2_MRE_common(PASS_CONFIG_PARAMETER_SIGNATURE);
}

View File

@ -18,4 +18,5 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setMazdaMiata2003EngineConfigurationNaFuelRail(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setMazdaMiata2003EngineConfigurationBoardTest(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setMiataNB2_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setMiataNB2_MRE_ETB(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setMiataNB2_MRE_MTB(DECLARE_CONFIG_PARAMETER_SIGNATURE);

View File

@ -35,8 +35,8 @@ void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
engineConfiguration->crankingInjectionMode = IM_SEQUENTIAL;
engineConfiguration->injectionMode = IM_SEQUENTIAL;
boardConfiguration->ignitionPinMode = OM_INVERTED;
boardConfiguration->injectionPinMode = OM_OPENDRAIN_INVERTED;
engineConfiguration->ignitionPinMode = OM_INVERTED;
engineConfiguration->injectionPinMode = OM_OPENDRAIN_INVERTED;
engineConfiguration->isCylinderCleanupEnabled = true;
engineConfiguration->rpmHardLimit = 8000;
engineConfiguration->cranking.baseFuel = 4;
@ -44,7 +44,7 @@ void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
//Analog Inputs
boardConfiguration->isFastAdcEnabled = true;
engineConfiguration->isFastAdcEnabled = true;
engineConfiguration->map.sensor.type = MT_GM_3_BAR;
setCommonNTCSensor(&engineConfiguration->clt, 2700);
setCommonNTCSensor(&engineConfiguration->iat, 2700);
@ -65,56 +65,56 @@ void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->canNbcType = CAN_BUS_NBC_VAG;
engineConfiguration->canReadEnabled = true;
engineConfiguration->canWriteEnabled = true;
boardConfiguration->canDeviceMode = CD_USE_CAN1;
boardConfiguration->canTxPin = GPIOB_6;
boardConfiguration->canRxPin = GPIOB_12;
engineConfiguration->canDeviceMode = CD_USE_CAN1;
engineConfiguration->canTxPin = GPIOB_6;
engineConfiguration->canRxPin = GPIOB_12;
// Injectors
boardConfiguration->injectionPins[0] = GPIOE_4; // #1
boardConfiguration->injectionPins[1] = GPIOE_2; // #2
boardConfiguration->injectionPins[2] = GPIOE_3; // #3
boardConfiguration->injectionPins[3] = GPIOE_1; // #4
boardConfiguration->injectionPins[4] = GPIOE_6; // #5
boardConfiguration->injectionPins[5] = GPIOE_5; // #6
boardConfiguration->injectionPins[6] = GPIOB_9; // #7
boardConfiguration->injectionPins[7] = GPIOE_0; // #8
engineConfiguration->injectionPins[0] = GPIOE_4; // #1
engineConfiguration->injectionPins[1] = GPIOE_2; // #2
engineConfiguration->injectionPins[2] = GPIOE_3; // #3
engineConfiguration->injectionPins[3] = GPIOE_1; // #4
engineConfiguration->injectionPins[4] = GPIOE_6; // #5
engineConfiguration->injectionPins[5] = GPIOE_5; // #6
engineConfiguration->injectionPins[6] = GPIOB_9; // #7
engineConfiguration->injectionPins[7] = GPIOE_0; // #8
//Ignition Outputs
boardConfiguration->ignitionPins[0] = GPIOD_1; // #1
boardConfiguration->ignitionPins[1] = GPIOD_6; // #2
boardConfiguration->ignitionPins[2] = GPIOD_3; // #3
boardConfiguration->ignitionPins[3] = GPIOD_4; // #4
boardConfiguration->ignitionPins[4] = GPIOD_0; // #5
boardConfiguration->ignitionPins[5] = GPIOD_2; // #6
boardConfiguration->ignitionPins[6] = GPIOA_15; // #7
boardConfiguration->ignitionPins[7] = GPIOC_12; // #8
engineConfiguration->ignitionPins[0] = GPIOD_1; // #1
engineConfiguration->ignitionPins[1] = GPIOD_6; // #2
engineConfiguration->ignitionPins[2] = GPIOD_3; // #3
engineConfiguration->ignitionPins[3] = GPIOD_4; // #4
engineConfiguration->ignitionPins[4] = GPIOD_0; // #5
engineConfiguration->ignitionPins[5] = GPIOD_2; // #6
engineConfiguration->ignitionPins[6] = GPIOA_15; // #7
engineConfiguration->ignitionPins[7] = GPIOC_12; // #8
//SPI Settings
boardConfiguration->is_enabled_spi_1 = true;
boardConfiguration->is_enabled_spi_2 = true;
boardConfiguration->is_enabled_spi_3 = false;
engineConfiguration->is_enabled_spi_1 = true;
engineConfiguration->is_enabled_spi_2 = true;
engineConfiguration->is_enabled_spi_3 = false;
engineConfiguration->cj125SpiDevice = SPI_DEVICE_2;
boardConfiguration->cj125CsPin = GPIOB_11;
engineConfiguration->cj125CsPin = GPIOB_11;
//Digital Inputs/Outputs
#if (BOARD_TLE8888_COUNT > 0)
engineConfiguration->tle8888spiDevice = SPI_DEVICE_1;
boardConfiguration->fuelPumpPin = TLE8888_PIN_22;
boardConfiguration->tachOutputPin = TLE8888_PIN_16;
boardConfiguration->alternatorControlPin = TLE8888_PIN_17;
engineConfiguration->fuelPumpPin = TLE8888_PIN_22;
engineConfiguration->tachOutputPin = TLE8888_PIN_16;
engineConfiguration->alternatorControlPin = TLE8888_PIN_17;
engineConfiguration->auxPidPins[0] = TLE8888_PIN_6; // VVT solenoid control
#endif /* BOARD_TLE8888_COUNT */
boardConfiguration->mainRelayPin = GPIO_UNASSIGNED;
boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
boardConfiguration->fanPin = GPIO_UNASSIGNED;
boardConfiguration->clutchDownPin = GPIOD_11;
engineConfiguration->mainRelayPin = GPIO_UNASSIGNED;
engineConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->clutchDownPin = GPIOD_11;
engineConfiguration->brakePedalPin = GPIOE_10;
engineConfiguration->camInputs[0] = GPIOA_2;
#if defined(STM32_HAS_GPIOG) && STM32_HAS_GPIOG
boardConfiguration->triggerInputPins[0] = GPIOG_7;
engineConfiguration->triggerInputPins[0] = GPIOG_7;
#endif /* STM32_HAS_GPIOF */
#if defined(STM32_HAS_GPIOF) && STM32_HAS_GPIOF
engineConfiguration->vehicleSpeedSensorInputPin = GPIOF_14;
@ -122,7 +122,7 @@ void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
//Alternator Settings
boardConfiguration->alternatorControlPinMode = OM_OPENDRAIN;
engineConfiguration->alternatorControlPinMode = OM_OPENDRAIN;
engineConfiguration->targetVBatt = 13.8;
engineConfiguration->alternatorControl.offset = 40;
engineConfiguration->alternatorControl.pFactor = 14;
@ -145,7 +145,7 @@ void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
CONFIG(etbIo[0].directionPin1) = GPIOF_15;
CONFIG(etbIo[0].directionPin2) = GPIOF_14;
#endif /* STM32_HAS_GPIOF */
boardConfiguration->isHip9011Enabled = false;
engineConfiguration->isHip9011Enabled = false;
#if EFI_FSIO
setFsio (13, GPIOE_5, "0" PASS_CONFIG_PARAMETER_SUFFIX);
@ -165,7 +165,7 @@ void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->activateAuxPid1 = true;
engineConfiguration->auxPidFrequency[0] = 300;
boardConfiguration->fsio_setting[0] = 0.0;
engineConfiguration->fsio_setting[0] = 0.0;
engineConfiguration->auxPid[0].pFactor = 2;
engineConfiguration->auxPid[0].iFactor = 0.005;
engineConfiguration->auxPid[0].dFactor = 0;
@ -173,7 +173,7 @@ void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->auxPid[0].minValue = 24;
engineConfiguration->auxPid[0].maxValue = 44;
engineConfiguration->auxPidFrequency[0] = 300;
boardConfiguration->fsio_setting[0] = 0.0;
engineConfiguration->fsio_setting[0] = 0.0;
//AC Settings
@ -181,7 +181,7 @@ void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
//Configuration 2 : Over CAN with variable Kompressor(CAN: Input=B_sacc,B_skoc Output: B_kov)
//Configuration 3 : 2 Wires
boardConfiguration->acRelayPin = GPIO_UNASSIGNED;
engineConfiguration->acRelayPin = GPIO_UNASSIGNED;
engineConfiguration->acCutoffLowRpm = 400;
engineConfiguration->acCutoffHighRpm = 4500;
engineConfiguration->acIdleRpmBump = 200;

View File

@ -65,19 +65,19 @@ void setMitsubishiConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenstein: low side - out #11: PB8
// Frankenstein: low side - out #12: PB9
boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12
boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11
boardConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - out #8
boardConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - out #6
engineConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12
engineConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11
engineConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - out #8
engineConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - out #6
// Frankenstein: high side #1: PE8
// Frankenstein: high side #2: PE10
boardConfiguration->ignitionPins[0] = GPIOE_8; // Frankenstein: high side #1
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOE_10; // // Frankenstein: high side #2
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[0] = GPIOE_8; // Frankenstein: high side #1
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOE_10; // // Frankenstein: high side #2
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->HD44780width = 20;
engineConfiguration->HD44780height = 4;

View File

@ -20,9 +20,9 @@ void setNissanPrimeraEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->trigger.type = TT_NISSAN_SR20VE;
boardConfiguration->ignitionPins[0] = GPIOD_7;
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIOD_6;
engineConfiguration->ignitionPins[0] = GPIOD_7;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOD_6;
engineConfiguration->auxValves[0] = GPIOE_14;

View File

@ -16,13 +16,13 @@
#include "engine_math.h"
#include "allsensors.h"
void setFrankenstein_01_LCD(board_configuration_s *boardConfiguration) {
boardConfiguration->HD44780_rs = GPIOE_9;
boardConfiguration->HD44780_e = GPIOE_11;
boardConfiguration->HD44780_db4 = GPIOE_13;
boardConfiguration->HD44780_db5 = GPIOE_15;
boardConfiguration->HD44780_db6 = GPIOB_11;
boardConfiguration->HD44780_db7 = GPIOB_13;
void setFrankenstein_01_LCD(engine_configuration_s *engineConfiguration) {
engineConfiguration->HD44780_rs = GPIOE_9;
engineConfiguration->HD44780_e = GPIOE_11;
engineConfiguration->HD44780_db4 = GPIOE_13;
engineConfiguration->HD44780_db5 = GPIOE_15;
engineConfiguration->HD44780_db6 = GPIOB_11;
engineConfiguration->HD44780_db7 = GPIOB_13;
}
EXTERN_CONFIG;
@ -34,10 +34,10 @@ void setRoverv8(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// set trigger_type 9
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_36_1;
boardConfiguration->is_enabled_spi_2 = false;
boardConfiguration->isHip9011Enabled = false;
CONFIGB(hip9011IntHoldPin) = GPIO_UNASSIGNED;
setFrankenstein_01_LCD(boardConfiguration);
engineConfiguration->is_enabled_spi_2 = false;
engineConfiguration->isHip9011Enabled = false;
CONFIG(hip9011IntHoldPin) = GPIO_UNASSIGNED;
setFrankenstein_01_LCD(engineConfiguration);
engineConfiguration->specs.displacement = 3.528;
engineConfiguration->specs.cylindersCount = 8;
@ -58,13 +58,13 @@ void setRoverv8(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// set ignition_mode 2
engineConfiguration->ignitionMode = IM_WASTED_SPARK;
boardConfiguration->ignitionPinMode = OM_INVERTED;
engineConfiguration->ignitionPinMode = OM_INVERTED;
// set_ignition_channels
boardConfiguration->ignitionPins[0] = GPIOE_8; // Frankenstein: low side - out #x (?)
boardConfiguration->ignitionPins[7] = GPIOE_10; // Frankenstein: low side - out #x (?)
boardConfiguration->ignitionPins[3] = GPIOE_12; // Frankenstein: low side - out #x (?)
boardConfiguration->ignitionPins[2] = GPIOE_14; // Frankenstein: low side - out #x (?)
engineConfiguration->ignitionPins[0] = GPIOE_8; // Frankenstein: low side - out #x (?)
engineConfiguration->ignitionPins[7] = GPIOE_10; // Frankenstein: low side - out #x (?)
engineConfiguration->ignitionPins[3] = GPIOE_12; // Frankenstein: low side - out #x (?)
engineConfiguration->ignitionPins[2] = GPIOE_14; // Frankenstein: low side - out #x (?)
// Frankenstein: low side - out #1: PC14
// Frankenstein: low side - out #2: PC15
@ -79,27 +79,27 @@ void setRoverv8(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenstein: low side - out #11: PB8
// Frankenstein: low side - out #12: PB9
boardConfiguration->injectionPins[0] = GPIOC_14; // Frankenstein: low side - out #1
boardConfiguration->injectionPins[1] = GPIOC_15; // Frankenstein: low side - out #2
boardConfiguration->injectionPins[2] = GPIOE_6; // Frankenstein: low side - out #3
boardConfiguration->injectionPins[3] = GPIOC_13; // Frankenstein: low side - out #4
boardConfiguration->injectionPins[4] = GPIOE_4; // Frankenstein: low side - out #5
boardConfiguration->injectionPins[5] = GPIOE_5; // Frankenstein: low side - out #6
boardConfiguration->injectionPins[6] = GPIOE_2; // Frankenstein: low side - out #7
boardConfiguration->injectionPins[7] = GPIOE_3; // Frankenstein: low side - out #8
engineConfiguration->injectionPins[0] = GPIOC_14; // Frankenstein: low side - out #1
engineConfiguration->injectionPins[1] = GPIOC_15; // Frankenstein: low side - out #2
engineConfiguration->injectionPins[2] = GPIOE_6; // Frankenstein: low side - out #3
engineConfiguration->injectionPins[3] = GPIOC_13; // Frankenstein: low side - out #4
engineConfiguration->injectionPins[4] = GPIOE_4; // Frankenstein: low side - out #5
engineConfiguration->injectionPins[5] = GPIOE_5; // Frankenstein: low side - out #6
engineConfiguration->injectionPins[6] = GPIOE_2; // Frankenstein: low side - out #7
engineConfiguration->injectionPins[7] = GPIOE_3; // Frankenstein: low side - out #8
// not valid ICU pin engineConfiguration->vehicleSpeedSensorInputPin = GPIOC_2;
//GPIOE_0 AND GPIOE_1 are bad pins since they conflict with accelerometer
//no malfunction indicator pin needed, since we use CAN_BUS_MAZDA_RX8
//boardConfiguration->fuelPumpPin = GPIOE_0; // Frankenstein: low side - out #9
//boardConfiguration->malfunctionIndicatorPin = GPIOE_1; // Frankenstein: low side - out #10
boardConfiguration->fuelPumpPin = GPIOB_8; // Frankenstein: low side - out #11
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
boardConfiguration->mainRelayPin = GPIOB_9; // Frankenstein: low side - out #12
//engineConfiguration->fuelPumpPin = GPIOE_0; // Frankenstein: low side - out #9
//engineConfiguration->malfunctionIndicatorPin = GPIOE_1; // Frankenstein: low side - out #10
engineConfiguration->fuelPumpPin = GPIOB_8; // Frankenstein: low side - out #11
engineConfiguration->fuelPumpPinMode = OM_DEFAULT;
engineConfiguration->mainRelayPin = GPIOB_9; // Frankenstein: low side - out #12
boardConfiguration->triggerInputPins[0] = GPIOC_6; // 2G YEL/BLU
boardConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP
engineConfiguration->triggerInputPins[0] = GPIOC_6; // 2G YEL/BLU
engineConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP
setCommonNTCSensor(&engineConfiguration->clt, 2700);
setCommonNTCSensor(&engineConfiguration->iat, 2700);
@ -117,19 +117,19 @@ void setRoverv8(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->tpsMax = convertVoltageTo10bitADC(4.538);
// Stepper logic:
boardConfiguration->idle.stepperDirectionPin = GPIOB_10;
boardConfiguration->idle.stepperStepPin = GPIOB_15;
engineConfiguration->idle.stepperDirectionPin = GPIOB_10;
engineConfiguration->idle.stepperStepPin = GPIOB_15;
engineConfiguration->stepperEnablePin = GPIOB_14;
engineConfiguration->idleStepperReactionTime = 10;
engineConfiguration->idleStepperTotalSteps = 150;
boardConfiguration->useStepperIdle = false;
engineConfiguration->useStepperIdle = false;
// set injection_pin_mode 0
boardConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPinMode = OM_DEFAULT;
boardConfiguration->canTxPin = GPIOB_6;
boardConfiguration->canRxPin = GPIOB_12;
engineConfiguration->canTxPin = GPIOB_6;
engineConfiguration->canRxPin = GPIOB_12;
engineConfiguration->canWriteEnabled = true;
engineConfiguration->canReadEnabled = false;
engineConfiguration->canNbcType = CAN_BUS_MAZDA_RX8;
@ -138,10 +138,10 @@ void setRoverv8(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setAlgorithm(LM_SPEED_DENSITY PASS_CONFIG_PARAMETER_SUFFIX);
// todo: make this official Frankenstein joystick?
boardConfiguration->joystickCenterPin = GPIOD_8;
boardConfiguration->joystickAPin = GPIOD_10;
boardConfiguration->joystickBPin = GPIO_UNASSIGNED;
boardConfiguration->joystickCPin = GPIO_UNASSIGNED;
boardConfiguration->joystickDPin = GPIOD_11;
engineConfiguration->joystickCenterPin = GPIOD_8;
engineConfiguration->joystickAPin = GPIOD_10;
engineConfiguration->joystickBPin = GPIO_UNASSIGNED;
engineConfiguration->joystickCPin = GPIO_UNASSIGNED;
engineConfiguration->joystickDPin = GPIOD_11;
}

View File

@ -9,7 +9,7 @@
#include "engine_configuration.h"
void setFrankenstein_01_LCD(board_configuration_s *boardConfiguration);
void setFrankenstein_01_LCD(engine_configuration_s *engineConfiguration);
void setRoverv8(DECLARE_CONFIG_PARAMETER_SIGNATURE);
#endif /* ROVER_V8_H_ */

View File

@ -36,7 +36,7 @@ void setSachs(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->trigger.customTotalToothCount = 50;
engineConfiguration->trigger.customSkippedToothCount = 2;
boardConfiguration->useSerialPort = false;
engineConfiguration->useSerialPort = false;
// Frankenstein analog input #1: PA1 adc1 MAP
// Frankenstein analog input #2: PA3 adc3 TPS
@ -75,12 +75,12 @@ void setSachs(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// Frankenstein: low side - out #11: PB8
// Frankenstein: low side - out #12: PB9
boardConfiguration->triggerInputPins[0] = GPIOA_5;
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[0] = GPIOA_5;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[0] = GPIOC_15;
engineConfiguration->injectionPins[0] = GPIOC_15;
boardConfiguration->fuelPumpPin = GPIOE_6;
engineConfiguration->fuelPumpPin = GPIOE_6;
// todo: extract a method? figure out something smarter
setFuelRpmBin(800, 15000 PASS_CONFIG_PARAMETER_SUFFIX);
@ -90,6 +90,6 @@ void setSachs(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->hasFrequencyReportingMapSensor = true;
engineConfiguration->frequencyReportingMapInputPin = GPIOC_6;
boardConfiguration->mapFrequency100Kpa = 159;
boardConfiguration->mapFrequency0Kpa = 80;
engineConfiguration->mapFrequency100Kpa = 159;
engineConfiguration->mapFrequency0Kpa = 80;
}

View File

@ -14,7 +14,7 @@
EXTERN_CONFIG;
void setSubaru2003Wrx(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setFrankenso_01_LCD(boardConfiguration);
setFrankenso_01_LCD(engineConfiguration);
setFrankenso0_1_joystick(engineConfiguration);
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL;
@ -23,16 +23,16 @@ void setSubaru2003Wrx(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->sensorChartFrequency = 2;
boardConfiguration->useStepperIdle = true;
engineConfiguration->useStepperIdle = true;
// See http://rusefi.com/forum/viewtopic.php?f=4&t=1161
boardConfiguration->idle.stepperDirectionPin = GPIOD_1; // top stepper drive pin, white wire recommended
boardConfiguration->idle.stepperStepPin = GPIOD_6; // yellow wire recommended
engineConfiguration->idle.stepperDirectionPin = GPIOD_1; // top stepper drive pin, white wire recommended
engineConfiguration->idle.stepperStepPin = GPIOD_6; // yellow wire recommended
engineConfiguration->stepperEnablePin = GPIOB_1; // bottom stepper driver board pin, blue wire recommended
boardConfiguration->triggerSimulatorPins[0] = GPIO_UNASSIGNED; // we want to avoid PD1 conflict
boardConfiguration->triggerSimulatorPins[1] = GPIO_UNASSIGNED;
boardConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
engineConfiguration->triggerSimulatorPins[0] = GPIO_UNASSIGNED; // we want to avoid PD1 conflict
engineConfiguration->triggerSimulatorPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED;
}
/*

View File

@ -19,7 +19,7 @@ void setSuzukiVitara(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->ignitionMode = IM_ONE_COIL;
engineConfiguration->injectionMode = IM_SIMULTANEOUS;
boardConfiguration->mainRelayPin = GPIOE_6;
engineConfiguration->mainRelayPin = GPIOE_6;
}

View File

@ -38,20 +38,19 @@ void setTestEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->ignitionMode = IM_ONE_COIL;
setConstantDwell(3 PASS_CONFIG_PARAMETER_SUFFIX); // 50% duty cycle @ 5000 rpm
board_configuration_s *bc = &engineConfiguration->bc;
bc->malfunctionIndicatorPin = GPIO_UNASSIGNED;
engineConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[0] = GPIOC_7; // #1
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; // #2
boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; // #3
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; // #4
boardConfiguration->ignitionPins[4] = GPIO_UNASSIGNED; // #5
boardConfiguration->ignitionPins[5] = GPIO_UNASSIGNED; // #6
engineConfiguration->ignitionPins[0] = GPIOC_7; // #1
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; // #2
engineConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; // #3
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; // #4
engineConfiguration->ignitionPins[4] = GPIO_UNASSIGNED; // #5
engineConfiguration->ignitionPins[5] = GPIO_UNASSIGNED; // #6
boardConfiguration->logicAnalyzerPins[0] = GPIO_UNASSIGNED;
boardConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED;
boardConfiguration->logicAnalyzerPins[2] = GPIO_UNASSIGNED;
boardConfiguration->logicAnalyzerPins[3] = GPIO_UNASSIGNED;
engineConfiguration->logicAnalyzerPins[0] = GPIO_UNASSIGNED;
engineConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED;
engineConfiguration->logicAnalyzerPins[2] = GPIO_UNASSIGNED;
engineConfiguration->logicAnalyzerPins[3] = GPIO_UNASSIGNED;
}
void setTestVVTEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
@ -65,7 +64,7 @@ void setTestVVTEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// set algorithm 3
setAlgorithm(LM_SPEED_DENSITY PASS_CONFIG_PARAMETER_SUFFIX);
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
engineConfiguration->camInputs[0] = GPIOA_5;
// set global_trigger_offset_angle 0

View File

@ -32,22 +32,22 @@ static void common2jz(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// set ignition_mode 1
engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
boardConfiguration->ignitionPins[0] = GPIOE_14;
boardConfiguration->ignitionPins[1] = GPIOC_7;
boardConfiguration->ignitionPins[2] = GPIOC_9;
boardConfiguration->ignitionPins[3] = GPIOE_10;
boardConfiguration->ignitionPins[4] = GPIOE_8;
boardConfiguration->ignitionPins[5] = GPIOE_12;
engineConfiguration->ignitionPins[0] = GPIOE_14;
engineConfiguration->ignitionPins[1] = GPIOC_7;
engineConfiguration->ignitionPins[2] = GPIOC_9;
engineConfiguration->ignitionPins[3] = GPIOE_10;
engineConfiguration->ignitionPins[4] = GPIOE_8;
engineConfiguration->ignitionPins[5] = GPIOE_12;
boardConfiguration->injectionPins[0] = GPIOB_9; // #1
boardConfiguration->injectionPins[1] = GPIOE_2; // #2
boardConfiguration->injectionPins[2] = GPIOB_8; // #3
boardConfiguration->injectionPins[3] = GPIOB_7; // #4
boardConfiguration->injectionPins[4] = GPIOE_3; // #5
boardConfiguration->injectionPins[5] = GPIOE_4; // #6
engineConfiguration->injectionPins[0] = GPIOB_9; // #1
engineConfiguration->injectionPins[1] = GPIOE_2; // #2
engineConfiguration->injectionPins[2] = GPIOB_8; // #3
engineConfiguration->injectionPins[3] = GPIOB_7; // #4
engineConfiguration->injectionPins[4] = GPIOE_3; // #5
engineConfiguration->injectionPins[5] = GPIOE_4; // #6
boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
engineConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
// chartsize 450
engineConfiguration->engineChartSize = 450;
@ -87,10 +87,10 @@ void setToyota_jzs147EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// engineConfiguration->injectionMode = IM_BATCH;
// engineConfiguration->twoWireBatchInjection = true;
// boardConfiguration->triggerInputPins[0] = GPIOA_5;
// boardConfiguration->triggerInputPins[1] = GPIOC_6;
// engineConfiguration->triggerInputPins[0] = GPIOA_5;
// engineConfiguration->triggerInputPins[1] = GPIOC_6;
boardConfiguration->isSdCardEnabled = false;
engineConfiguration->isSdCardEnabled = false;
}
@ -98,13 +98,13 @@ void setToyota_jzs147EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
void setToyota_2jz_vics(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
common2jz(PASS_CONFIG_PARAMETER_SIGNATURE);
boardConfiguration->isSdCardEnabled = true;
engineConfiguration->isSdCardEnabled = true;
setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR);
engineConfiguration->trigger.type = TT_2JZ_3_34;
boardConfiguration->triggerInputPins[0] = GPIOA_5; // crank sensor
boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; // cam sensor will he handled by custom vtti code
engineConfiguration->triggerInputPins[0] = GPIOA_5; // crank sensor
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; // cam sensor will he handled by custom vtti code
engineConfiguration->camInputs[0] = GPIOC_6;
engineConfiguration->vvtMode = VVT_2GZ;

View File

@ -4,7 +4,7 @@
* set engine_type 32
*
* @date May 24, 2015
* @author Andrey Belomutskiy, (c) 2012-2018
* @author Andrey Belomutskiy, (c) 2012-2019
*/
#include "global.h"
@ -48,11 +48,11 @@ void setVwAba(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->ignitionMode = IM_ONE_COIL;
boardConfiguration->ignitionPins[0] = GPIOE_14; // Frankenso high side - pin 1G
boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPins[0] = GPIOE_14; // Frankenso high side - pin 1G
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPinMode = OM_DEFAULT;
float mapRange = 110;
@ -60,7 +60,7 @@ void setVwAba(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setFuelTablesLoadBin(20, mapRange PASS_CONFIG_PARAMETER_SUFFIX);
setTimingLoadBin(20, mapRange PASS_CONFIG_PARAMETER_SUFFIX);
boardConfiguration->isSdCardEnabled = false;
engineConfiguration->isSdCardEnabled = false;
engineConfiguration->tpsMin = 740;
engineConfiguration->tpsMax = 135;
}

View File

@ -2,14 +2,11 @@
* @file vw.h
*
* @date May 24, 2015
* @author Andrey Belomutskiy, (c) 2012-2017
* @author Andrey Belomutskiy, (c) 2012-2019
*/
#ifndef CONFIG_ENGINES_VW_H_
#define CONFIG_ENGINES_VW_H_
#pragma once
#include "engine_configuration.h"
void setVwAba(DECLARE_CONFIG_PARAMETER_SIGNATURE);
#endif /* CONFIG_ENGINES_VW_H_ */

View File

@ -0,0 +1,19 @@
/*
* @file vw_b6.cpp
*
* @date Dec 26, 2019
* @author Andrey Belomutskiy, (c) 2012-2019
*/
#include "engine.h"
#include "vw_b6.h"
EXTERN_CONFIG;
/**
* set engine_type 62
*/

View File

@ -0,0 +1,10 @@
/*
* @file vw_b6.h
*
* @date Dec 26, 2019
* @author Andrey Belomutskiy, (c) 2012-2019
*/
#pragma once
void setVwPassatB6(DECLARE_CONFIG_PARAMETER_SIGNATURE);

View File

@ -31,39 +31,39 @@ void setZil130(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
boardConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED;
engineConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED;
// engineConfiguration->twoWireBatchInjection = true;
boardConfiguration->injectionPinMode = OM_INVERTED;
boardConfiguration->injectionPins[0] = GPIOB_8; // #1
boardConfiguration->injectionPins[1] = GPIOE_2; // #2
boardConfiguration->injectionPins[2] = GPIOE_3; // #3
boardConfiguration->injectionPins[3] = GPIOE_4; // #4
boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED; // #5
boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED; // #6
boardConfiguration->injectionPins[6] = GPIO_UNASSIGNED;
boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
engineConfiguration->injectionPinMode = OM_INVERTED;
engineConfiguration->injectionPins[0] = GPIOB_8; // #1
engineConfiguration->injectionPins[1] = GPIOE_2; // #2
engineConfiguration->injectionPins[2] = GPIOE_3; // #3
engineConfiguration->injectionPins[3] = GPIOE_4; // #4
engineConfiguration->injectionPins[4] = GPIO_UNASSIGNED; // #5
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED; // #6
engineConfiguration->injectionPins[6] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED;
boardConfiguration->ignitionPins[0] = GPIOB_5; // #1
boardConfiguration->ignitionPins[1] = GPIOB_6; // #2
boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; // #3
boardConfiguration->ignitionPins[3] = GPIOB_7; // #4
boardConfiguration->ignitionPins[4] = GPIOC_7; // #5
engineConfiguration->ignitionPins[0] = GPIOB_5; // #1
engineConfiguration->ignitionPins[1] = GPIOB_6; // #2
engineConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; // #3
engineConfiguration->ignitionPins[3] = GPIOB_7; // #4
engineConfiguration->ignitionPins[4] = GPIOC_7; // #5
// fuel pump
boardConfiguration->fuelPumpPin = GPIOD_4;
engineConfiguration->fuelPumpPin = GPIOD_4;
// idle
boardConfiguration->idle.solenoidPin = GPIOC_14;
boardConfiguration->idle.solenoidPinMode = OM_INVERTED;
boardConfiguration->idle.solenoidFrequency = 300;
boardConfiguration->manIdlePosition = 50; // set_idle_pwm 50
engineConfiguration->idle.solenoidPin = GPIOC_14;
engineConfiguration->idle.solenoidPinMode = OM_INVERTED;
engineConfiguration->idle.solenoidFrequency = 300;
engineConfiguration->manIdlePosition = 50; // set_idle_pwm 50
// disable sd_card
boardConfiguration->sdCardCsPin = GPIO_UNASSIGNED;
boardConfiguration->is_enabled_spi_2 = false;
boardConfiguration->is_enabled_spi_3 = false;
boardConfiguration->max31855spiDevice = SPI_NONE;
engineConfiguration->sdCardCsPin = GPIO_UNASSIGNED;
engineConfiguration->is_enabled_spi_2 = false;
engineConfiguration->is_enabled_spi_3 = false;
engineConfiguration->max31855spiDevice = SPI_NONE;
boardConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
}

View File

@ -41,12 +41,11 @@
*
*/
#define PORT_IDLE_THREAD_STACK_SIZE 1024
#define PORT_IDLE_THREAD_STACK_SIZE 32
// rusEfi main processing happens on IRQ so PORT_INT_REQUIRED_STACK has to be pretty large.
// see also a strange comment about PORT_INT_REQUIRED_STACK in global_shared.h
// See global_shared.h notes about stack requirements
// see also http://www.chibios.org/dokuwiki/doku.php?id=chibios:kb:stacks
#define PORT_INT_REQUIRED_STACK 768
#define PORT_INT_REQUIRED_STACK 128
#define CHPRINTF_USE_FLOAT TRUE
@ -605,7 +604,7 @@
* tickless mode.
*/
#if !defined(CH_DBG_THREADS_PROFILING)
#define CH_DBG_THREADS_PROFILING FALSE
#define CH_DBG_THREADS_PROFILING TRUE
#endif
/** @} */

View File

@ -293,7 +293,6 @@
// todo: switch to continues ADC conversion for slow ADC?
// https://github.com/rusefi/rusefi/issues/630
#define EFI_INTERNAL_SLOW_ADC_PWM &PWMD8
// todo: switch to continues ADC conversion for fast ADC?
#define EFI_INTERNAL_FAST_ADC_PWM &PWMD4

View File

@ -201,7 +201,7 @@
* @note Disabling this option saves both code and data space.
*/
#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define ADC_USE_MUTUAL_EXCLUSION TRUE
#define ADC_USE_MUTUAL_EXCLUSION FALSE
#endif
/*===========================================================================*/

View File

@ -244,7 +244,7 @@
#define STM32_ICU_USE_TIM3 TRUE
#define STM32_ICU_USE_TIM4 FALSE
#define STM32_ICU_USE_TIM5 FALSE
#define STM32_ICU_USE_TIM8 FALSE
#define STM32_ICU_USE_TIM8 TRUE
#define STM32_ICU_USE_TIM9 TRUE
#define STM32_ICU_TIM1_IRQ_PRIORITY ICU_PRIORITY
#define STM32_ICU_TIM2_IRQ_PRIORITY ICU_PRIORITY
@ -277,7 +277,7 @@
#define STM32_PWM_USE_TIM4 TRUE
#define STM32_PWM_USE_TIM5 FALSE
// todo: https://github.com/rusefi/rusefi/issues/630 ?
#define STM32_PWM_USE_TIM8 TRUE
#define STM32_PWM_USE_TIM8 FALSE
#define STM32_PWM_USE_TIM9 FALSE
#define STM32_PWM_TIM1_IRQ_PRIORITY 7
#define STM32_PWM_TIM2_IRQ_PRIORITY 7

View File

@ -41,12 +41,11 @@
*
*/
#define PORT_IDLE_THREAD_STACK_SIZE 1024
#define PORT_IDLE_THREAD_STACK_SIZE 32
// rusEfi main processing happens on IRQ so PORT_INT_REQUIRED_STACK has to be pretty large.
// see also a strange comment about PORT_INT_REQUIRED_STACK in global_shared.h
// See global_shared.h notes about stack requirements
// see also http://www.chibios.org/dokuwiki/doku.php?id=chibios:kb:stacks
#define PORT_INT_REQUIRED_STACK 768
#define PORT_INT_REQUIRED_STACK 128
#define CHPRINTF_USE_FLOAT TRUE

View File

@ -255,7 +255,7 @@
#define STM32_ICU_USE_TIM3 TRUE
#define STM32_ICU_USE_TIM4 FALSE
#define STM32_ICU_USE_TIM5 FALSE
#define STM32_ICU_USE_TIM8 FALSE
#define STM32_ICU_USE_TIM8 TRUE
#define STM32_ICU_USE_TIM9 TRUE
#define STM32_ICU_TIM1_IRQ_PRIORITY ICU_PRIORITY
#define STM32_ICU_TIM2_IRQ_PRIORITY ICU_PRIORITY
@ -285,7 +285,7 @@
#define STM32_PWM_USE_TIM3 FALSE
#define STM32_PWM_USE_TIM4 TRUE
#define STM32_PWM_USE_TIM5 FALSE
#define STM32_PWM_USE_TIM8 TRUE
#define STM32_PWM_USE_TIM8 FALSE
#define STM32_PWM_USE_TIM9 FALSE
#define STM32_PWM_TIM1_IRQ_PRIORITY 7
#define STM32_PWM_TIM2_IRQ_PRIORITY 7

View File

@ -49,7 +49,7 @@ static void runCommands() {
chThdSleepMilliseconds(1000); // safety
// Store current serial port speed - we're going to change it
int savedSerialSpeed = CONFIGB(tunerStudioSerialSpeed);
int savedSerialSpeed = CONFIG(tunerStudioSerialSpeed);
int prevBaudIdx = -1, baudIdx = -1, baudListIdx = 0;
int cmdIdx = 0;
@ -75,7 +75,7 @@ static void runCommands() {
}
chThdSleepMilliseconds(10); // safety
// change the port speed
CONFIGB(tunerStudioSerialSpeed) = restoreAndExit ? savedSerialSpeed : baudRates[baudIdx];
CONFIG(tunerStudioSerialSpeed) = restoreAndExit ? savedSerialSpeed : baudRates[baudIdx];
// init UART
startTsPort(tsChannel);
chThdSleepMilliseconds(10); // safety
@ -160,7 +160,7 @@ void bluetoothStart(ts_channel_s *tsChan, bluetooth_module_e moduleType, const c
tsChannel = tsChan;
// if a binary protocol uses USB, we cannot init the bluetooth module!
if (!CONFIGB(useSerialPort)) {
if (!CONFIG(useSerialPort)) {
scheduleMsg(&btLogger, "Failed! Serial Port connection is disabled!");
return;
}

View File

@ -152,7 +152,7 @@ void printTsStats(void) {
scheduleMsg(&tsLogger, "TS RX on %s", hwPortname(engineConfiguration->binarySerialRxPin));
scheduleMsg(&tsLogger, "TS TX on %s @%d", hwPortname(engineConfiguration->binarySerialTxPin),
CONFIGB(tunerStudioSerialSpeed));
CONFIG(tunerStudioSerialSpeed));
}
#endif /* EFI_PROD_CODE */
@ -164,7 +164,7 @@ void printTsStats(void) {
// int fuelMapOffset = (int) (&engineConfiguration->fuelTable) - (int) engineConfiguration;
// scheduleMsg(logger, "fuelTable %d", fuelMapOffset);
//
// int offset = (int) (&CONFIGB(hip9011Gain)) - (int) engineConfiguration;
// int offset = (int) (&CONFIG(hip9011Gain)) - (int) engineConfiguration;
// scheduleMsg(&tsLogger, "hip9011Gain %d", offset);
//
// offset = (int) (&engineConfiguration->crankingCycleBins) - (int) engineConfiguration;
@ -175,7 +175,7 @@ void printTsStats(void) {
}
static void setTsSpeed(int value) {
CONFIGB(tunerStudioSerialSpeed) = value;
CONFIG(tunerStudioSerialSpeed) = value;
printTsStats();
}
@ -257,8 +257,6 @@ static void onlineApplyWorkingCopyBytes(int currentPageId, uint32_t offset, int
}
}
extern EtbController etbController[ETB_COUNT];
static const void * getStructAddr(int structId) {
switch (structId) {
case LDS_CLT_STATE_INDEX:
@ -275,7 +273,7 @@ static const void * getStructAddr(int structId) {
return static_cast<trigger_state_s*>(&engine->triggerCentral.triggerState);
#if EFI_ELECTRONIC_THROTTLE_BODY
case LDS_ETB_PID_STATE_INDEX:
return static_cast<pid_state_s*>(&etbController[0].etbPid);
return static_cast<EtbController*>(engine->etbControllers[0])->getPidState();
#endif /* EFI_ELECTRONIC_THROTTLE_BODY */
#ifndef EFI_IDLE_CONTROL

View File

@ -12,6 +12,49 @@
#define TUNERSTUDIO_CONFIGURATION_H_
#include "rusefi_types.h"
#include "rusefi_generated.h"
#include "tunerstudio_debug_struct.h"
// This class lets us transparently store something at a ratio inside an integer type
// Just use it like a float - you can read and write to it, like this:
// scaled_channel<uint8_t, 10> myVar;
// myVar = 2.4f; // converts to an int, stores 24
// float x = myVar; // converts back to float, returns 2.4f
template <typename T, int mult = 1>
class scaled_channel {
public:
scaled_channel() : m_value(static_cast<T>(0)) { }
scaled_channel(float val)
: m_value(val * mult)
{
}
// Allow reading back out as a float (note: this may be lossy!)
operator float() const {
return m_value / (float)mult;
}
private:
T m_value;
};
// We need to guarantee that scaled values containing some type are the same size
// as that underlying type. We rely on the class only having a single member for
// this trick to work.
static_assert(sizeof(scaled_channel<uint8_t>) == 1);
static_assert(sizeof(scaled_channel<uint16_t>) == 2);
static_assert(sizeof(scaled_channel<uint32_t>) == 4);
static_assert(sizeof(scaled_channel<float>) == 4);
// Common scaling options - use these if you can!
using scaled_temperature = scaled_channel<int16_t, PACK_MULT_TEMPERATURE>; // +-327 deg C at 0.01 deg resolution
using scaled_ms = scaled_channel<int16_t, PACK_MULT_MS>; // +- 100ms at 0.003ms precision
using scaled_percent = scaled_channel<int16_t, PACK_MULT_PERCENT>; // +-327% at 0.01% resolution
using scaled_pressure = scaled_channel<uint16_t, PACK_MULT_PRESSURE>; // 0-2000kPa (~300psi) at 0.03kPa resolution
using scaled_angle = scaled_channel<int16_t, PACK_MULT_ANGLE>; // +-655 degrees at 0.02 degree resolution
using scaled_voltage = scaled_channel<uint16_t, PACK_MULT_VOLTAGE>; // 0-65v at 1mV resolution
using scaled_afr = scaled_channel<uint16_t, PACK_MULT_AFR>; // 0-65afr at 0.001 resolution
#define PAGE_COUNT 1
@ -20,40 +63,16 @@ typedef struct {
} egt_values_s;
/**
* At the moment rusEfi does NOT have any code generation around TS output channels, three locations have to be changed manually
* 1) this TunerStudioOutputChannels firmware version of the structure
* 2) '[OutputChannels]' block in rusefi.input
* 3) com.rusefi.core.Sensor enum in rusEfi console source code
*
* please be aware that 'float' (F32) type requires TunerStudio version 2.6 and later
*/
typedef struct {
/* see also [OutputChannels] in rusefi.input */
// primary instrument cluster gauges
int rpm; // size 4, offset 0
/**
* This value is in Celcius - UI would convert into F if needed
*/
float coolantTemperature; // size 4, offset 4
float intakeAirTemperature; // size 4, offset 8
float throttlePositon; // size 4, offset 12
float massAirFlowVoltage; // size 4, offset 16
float airFuelRatio; // size 4, offset 20
float engineLoad; // size 4, offset 24
float vBatt; // size 4, offset 28
short int tpsADC; // size 2, offset 32
short int alignment; // size 2, offset 34
float baroPressure; // size 4, offset 36
float manifoldAirPressure; // size 4, offset 40
float crankingFuelMs; // offset 44
/**
* This is the raw value we take from the fuel map or base fuel algorithm, before the corrections
*/
float fuelBase; // 48
float tCharge; // 52
float ignitionAdvance; // 56
float sparkDwell; // 60
/**
* this one contains total resulting fuel squirt time, per event
* With all corrections and injector lag. See also baseFuel
*/
float actualLastInjection; // 64
float debugFloatField1; // 68
/**
* Yes, I do not really enjoy packing bits into integers but we simply have too many boolean flags and I cannot
* water 4 bytes per traffic - I want gauges to work as fast as possible
@ -76,107 +95,139 @@ typedef struct {
unsigned int brakePedalState : 1; // bit 15. 0 - not pressed, 1 = pressed
unsigned int toothLogReady : 1; // bit 16
unsigned int acSwitchState : 1; // bit 17. 0 - not pressed, 1 = pressed
float vehicleSpeedKph; // 76
unsigned int isTpsError : 1; // bit 0, 80
unsigned int isCltError : 1; // bit 1
unsigned int isMapError : 1; // bit 2
unsigned int isIatError : 1; // bit 3
unsigned int isAcSwitchEngaged : 1; // bit 4
unsigned int isTriggerError : 1; // bit 5
unsigned int hasFatalError : 1; // bit 6
unsigned int isWarnNow : 1; // bit 7
unsigned int unused80b8 : 1; // bit 8
unsigned int isKnockChipOk : 1; // bit 9
int tsConfigVersion; // 84
egt_values_s egtValues; // 88
float rpmAcceleration; // 104
float massAirFlow; // 108
/**
* Current volumetric efficiency
*/
float veValue; // offset 112
/**
* TPS value delta within specified number of cycles
* See tpsAccelFuel
*/
float deltaTps; // offset 116
int triggerErrorsCounter; // offset 120
/**
* Engine load delta
*/
float engineLoadAccelExtra; // offset 124
float tpsAccelFuel; // offset 128
float baroCorrection; // 132
float pedalPosition; // 136
/**
* @see coilDutyCycle
*/
float injectorDutyCycle; // 140
int knockCount; // 144
float fuelTankLevel; // 148
float knockLevel; // 152
int totalTriggerErrorCounter; // 156
float wallFuelAmount; // 160
/**
* multiplier, 1 means no correction, 1.20 means 20% extra
*/
float iatCorrection; // 164
floatms_t wallFuelCorrection; // 168
float idlePosition; // 172
float currentTargetAfr; // 176
float chargeAirMass; // 180
/**
* multiplier, 1 means no correction, 1.20 means 20% extra
*/
float cltCorrection; // 184
/**
* Total fuel with CLT, IAT and TPS acceleration without injector lag corrections per cycle,
* as squirt duration.
*
* @see actualLastInjection
*/
float fuelRunning; // 188
int debugIntField1; // 192
float injectorLagMs; // 196
float debugFloatField2; // 200
float debugFloatField3; // 204
float debugFloatField4; // 208
float debugFloatField5; // 212
int debugIntField2; // 216
int debugIntField3; // 220
int timeSeconds; // 224
float engineLoadDelta; // 228
float speedToRpmRatio; // 232
int16_t warningCounter; // 236
int16_t unused_238;
int16_t lastErrorCode; // 240
int16_t unused_242;
/**
* Microcontroller own internal temperature, C
*/
float internalMcuTemperature; // 244
float vvtPosition; // 248
int engineMode; // 252
float debugFloatField6; // 256
float debugFloatField7; // 260
int firmwareVersion; // 264
float fuelPidCorrection; // 268
/**
* @see injectorDutyCycle
*/
float coilDutyCycle; // 272
int16_t accelerationX; // 276
int16_t accelerationY; // 278
float oilPressure; // 280
float fuelConsumptionPerHour; // 284
float injectionOffset; // 288
int16_t debugIntField4; // 292
int16_t debugIntField5; // 294
int16_t recentErrorCodes[8]; // 298
float etbTarget; // 312
float etb1DutyCycle; // 316
float etb1Error; // 320
int unused3[8];
unsigned int isTpsError : 1; // bit 18
unsigned int isCltError : 1; // bit 19
unsigned int isMapError : 1; // bit 20
unsigned int isIatError : 1; // bit 21
unsigned int isAcSwitchEngaged : 1; // bit 22
unsigned int isTriggerError : 1; // bit 23
unsigned int hasFatalError : 1; // bit 24
unsigned int isWarnNow : 1; // bit 25
unsigned int unused80b8 : 1; // bit 26
unsigned int isKnockChipOk : 1; // bit 27
// RPM, vss
scaled_channel<uint16_t> rpm; // 4
scaled_percent rpmAcceleration; // 6
scaled_percent speedToRpmRatio; // 8
scaled_channel<uint8_t> vehicleSpeedKph; // 10
// temperatures
scaled_channel<int8_t> internalMcuTemperature; // offset 11
scaled_temperature coolantTemperature; // offset 12
scaled_temperature intakeAirTemperature; // offset 14
scaled_temperature auxTemp1; // offset 16
scaled_temperature auxTemp2; // offset 18
// throttle, pedal
scaled_percent throttlePosition; // 20
scaled_percent pedalPosition; // 22
uint16_t tpsADC; // 24
// air flow/mass measurment
scaled_voltage massAirFlowVoltage; // 26
scaled_channel<uint16_t, 100> massAirFlow; // 28
scaled_pressure manifoldAirPressure; // 30
scaled_pressure baroPressure; // 32
scaled_afr airFuelRatio; // 34
scaled_channel<uint16_t, 100> engineLoad; // 36
// misc sensors
scaled_voltage vBatt; // 38
scaled_pressure oilPressure; // 40
scaled_angle vvtPosition; // 42
// Fuel math
scaled_channel<uint16_t, 1000> chargeAirMass; // 44
scaled_ms crankingFuelMs; // 46
scaled_afr currentTargetAfr; // 48
// This is the raw value we take from the fuel map or base fuel algorithm, before the corrections
scaled_ms fuelBase; // 50
// Total fuel with CLT, IAT and TPS acceleration without injector lag corrections per cycle, as pulse per cycle
scaled_ms fuelRunning; // 52
// Actual last injection time - including all compensation and injection mode
scaled_ms actualLastInjection; // 54
scaled_channel<uint8_t, 2> injectorDutyCycle; // 56
scaled_channel<uint8_t, 2> veValue; // 57
scaled_angle injectionOffset; // 58
scaled_temperature tCharge; // 60
// Corrections
scaled_ms injectorLagMs; // 62
scaled_percent iatCorrection; // 64
scaled_percent cltCorrection; // 66
scaled_percent baroCorrection; // 68
scaled_ms fuelPidCorrection; // 70
// Wall model AE
scaled_ms wallFuelAmount; // 72
scaled_channel<int16_t, 1000> wallFuelCorrection; // 74
// TPS/load AE
scaled_percent engineLoadDelta; // 76
scaled_percent deltaTps; // 78
scaled_percent engineLoadAccelExtra; // 80
scaled_ms tpsAccelFuel; // 82
// Ignition
scaled_angle ignitionAdvance; // 84
scaled_ms sparkDwell; // 86
scaled_percent coilDutyCycle; // 88
// Idle & ETB
scaled_percent idlePosition; // 90
scaled_percent etbTarget; // 92
scaled_percent etb1DutyCycle; // 94
scaled_percent etb1Error; // 96
// Fuel system
scaled_percent fuelTankLevel; // 98
float fuelConsumptionPerHour; // 100
// Knock
uint32_t knockCount; // 104
float knockLevel; // 108
// Mode, firmware, protocol, run time
uint32_t timeSeconds; // 112
uint32_t engineMode; // 116
uint32_t firmwareVersion; // 120
uint32_t tsConfigVersion; // 124
// Errors
int totalTriggerErrorCounter; // 128
int orderingErrorCounter; // 132
int16_t warningCounter; // 136
int16_t lastErrorCode; // 138
int16_t recentErrorCodes[8]; // 140
// Debug
float debugFloatField1; // 156
float debugFloatField2;
float debugFloatField3;
float debugFloatField4;
float debugFloatField5;
float debugFloatField6;
float debugFloatField7;
int debugIntField1;
int debugIntField2;
int debugIntField3;
int16_t debugIntField4;
int16_t debugIntField5; // 198
// accelerometer
int16_t accelerationX; // 200
int16_t accelerationY; // 202
// EGT
egt_values_s egtValues; // 204
// Temporary - will remove soon
TsDebugChannels* getDebugChannels() {
return reinterpret_cast<TsDebugChannels*>(&debugFloatField1);
}
/* see also [OutputChannels] in rusefi.input */
} TunerStudioOutputChannels;

View File

@ -0,0 +1,16 @@
#pragma once
typedef struct {
float debugFloatField1; // 180
float debugFloatField2;
float debugFloatField3;
float debugFloatField4;
float debugFloatField5;
float debugFloatField6;
float debugFloatField7;
int debugIntField1;
int debugIntField2;
int debugIntField3;
int16_t debugIntField4;
int16_t debugIntField5;
} TsDebugChannels;

View File

@ -99,7 +99,7 @@ void startTsPort(ts_channel_s *tsChannel) {
return;
#endif /* CONSOLE_USB_DEVICE */
#if defined(TS_UART_DEVICE) || defined(TS_SERIAL_DEVICE)
if (CONFIGB(useSerialPort)) {
if (CONFIG(useSerialPort)) {
print("TunerStudio over USART");
/**
@ -115,7 +115,7 @@ void startTsPort(ts_channel_s *tsChannel) {
iqObjectInit(&tsUartDma.fifoRxQueue, tsUartDma.buffer, sizeof(tsUartDma.buffer), NULL, NULL);
// start DMA driver
tsDmaUartConfig.speed = CONFIGB(tunerStudioSerialSpeed);
tsDmaUartConfig.speed = CONFIG(tunerStudioSerialSpeed);
uartStart(TS_UART_DEVICE, &tsDmaUartConfig);
// start continuous DMA transfer using our circular buffer
@ -124,11 +124,11 @@ void startTsPort(ts_channel_s *tsChannel) {
#elif TS_UART_MODE
print("Using UART mode");
// start DMA driver
tsUartConfig.speed = CONFIGB(tunerStudioSerialSpeed);
tsUartConfig.speed = CONFIG(tunerStudioSerialSpeed);
uartStart(TS_UART_DEVICE, &tsUartConfig);
#elif defined(TS_SERIAL_DEVICE)
print("Using Serial mode");
tsSerialConfig.speed = CONFIGB(tunerStudioSerialSpeed);
tsSerialConfig.speed = CONFIG(tunerStudioSerialSpeed);
sdStart(TS_SERIAL_DEVICE, &tsSerialConfig);
@ -148,7 +148,7 @@ bool stopTsPort(ts_channel_s *tsChannel) {
//usb_serial_stop();
return false;
#endif
if (CONFIGB(useSerialPort)) {
if (CONFIG(useSerialPort)) {
// todo: disable Rx/Tx pads?
#if (TS_UART_DMA_MODE || TS_UART_MODE)
uartStop(TS_UART_DEVICE);

View File

@ -100,15 +100,12 @@ extern int icuWidthPeriodCounter;
extern WaveChart waveChart;
#endif /* EFI_ENGINE_SNIFFER */
// this 'true' value is needed for simulator
static volatile bool fullLog = true;
int warningEnabled = true;
//int warningEnabled = FALSE;
extern bool hasFirmwareErrorFlag;
extern int maxTriggerReentraint;
extern uint32_t maxLockedDuration;
#define FULL_LOGGING_KEY "fl"
#if !defined(STATUS_LOGGING_BUFFER_SIZE)
#define STATUS_LOGGING_BUFFER_SIZE 1800
@ -406,9 +403,6 @@ void writeLogLine(void) {
#endif /* EFI_FILE_LOGGING */
}
#define INITIAL_FULL_LOG TRUE
//#define INITIAL_FULL_LOG FALSE
volatile int needToReportStatus = FALSE;
static int prevCkpEventCounter = -1;
@ -452,21 +446,21 @@ void printOverallStatus(systime_t nowSeconds) {
int seconds = getTimeNowSeconds();
printCurrentState(&logger, seconds, getConfigurationName(engineConfiguration->engineType), FIRMWARE_ID);
#if EFI_PROD_CODE
printOutPin(PROTOCOL_CRANK1, CONFIGB(triggerInputPins)[0]);
printOutPin(PROTOCOL_CRANK2, CONFIGB(triggerInputPins)[1]);
printOutPin(PROTOCOL_CRANK1, CONFIG(triggerInputPins)[0]);
printOutPin(PROTOCOL_CRANK2, CONFIG(triggerInputPins)[1]);
printOutPin(PROTOCOL_VVT_NAME, engineConfiguration->camInputs[0]);
printOutPin(PROTOCOL_HIP_NAME, CONFIGB(hip9011IntHoldPin));
printOutPin(PROTOCOL_TACH_NAME, CONFIGB(tachOutputPin));
printOutPin(PROTOCOL_HIP_NAME, CONFIG(hip9011IntHoldPin));
printOutPin(PROTOCOL_TACH_NAME, CONFIG(tachOutputPin));
printOutPin(PROTOCOL_DIZZY_NAME, engineConfiguration->dizzySparkOutputPin);
#if EFI_LOGIC_ANALYZER
printOutPin(PROTOCOL_WA_CHANNEL_1, CONFIGB(logicAnalyzerPins)[0]);
printOutPin(PROTOCOL_WA_CHANNEL_2, CONFIGB(logicAnalyzerPins)[1]);
printOutPin(PROTOCOL_WA_CHANNEL_1, CONFIG(logicAnalyzerPins)[0]);
printOutPin(PROTOCOL_WA_CHANNEL_2, CONFIG(logicAnalyzerPins)[1]);
#endif /* EFI_LOGIC_ANALYZER */
for (int i = 0; i < engineConfiguration->specs.cylindersCount; i++) {
printOutPin(enginePins.coils[i].getShortName(), CONFIGB(ignitionPins)[i]);
printOutPin(enginePins.coils[i].getShortName(), CONFIG(ignitionPins)[i]);
printOutPin(enginePins.injectors[i].getShortName(), CONFIGB(injectionPins)[i]);
printOutPin(enginePins.injectors[i].getShortName(), CONFIG(injectionPins)[i]);
}
for (int i = 0; i < AUX_DIGITAL_VALVE_COUNT;i++) {
printOutPin(enginePins.auxValve[i].getShortName(), engineConfiguration->auxValves[i]);
@ -586,14 +580,14 @@ static OutputPin *leds[] = { &enginePins.warningLedPin, &enginePins.runningLedPi
static void initStatusLeds(void) {
enginePins.communicationLedPin.initPin("led: comm status", engineConfiguration->communicationLedPin);
// we initialize this here so that we can blink it on start-up
enginePins.checkEnginePin.initPin("MalfunctionIndicator", CONFIGB(malfunctionIndicatorPin), &CONFIGB(malfunctionIndicatorPinMode));
enginePins.checkEnginePin.initPin("MalfunctionIndicator", CONFIG(malfunctionIndicatorPin), &CONFIG(malfunctionIndicatorPinMode));
enginePins.warningLedPin.initPin("led: warning status", engineConfiguration->warningLedPin);
enginePins.runningLedPin.initPin("led: running status", engineConfiguration->runningLedPin);
enginePins.debugTriggerSync.initPin("debug: sync", CONFIGB(debugTriggerSync));
enginePins.debugTimerCallback.initPin("debug: timer callback", CONFIGB(debugTimerCallback));
enginePins.debugSetTimer.initPin("debug: set timer", CONFIGB(debugSetTimer));
enginePins.debugTriggerSync.initPin("debug: sync", CONFIG(debugTriggerSync));
enginePins.debugTimerCallback.initPin("debug: timer callback", CONFIG(debugTimerCallback));
enginePins.debugSetTimer.initPin("debug: set timer", CONFIG(debugSetTimer));
}
#define BLINKING_PERIOD_MS 33
@ -602,7 +596,7 @@ static void initStatusLeds(void) {
static bool isTriggerErrorNow() {
#if EFI_ENGINE_CONTROL && EFI_SHAFT_POSITION_INPUT
bool justHadError = (getTimeNowNt() - engine->triggerCentral.triggerState.lastDecodingErrorTime) < US2NT(MS2US(200));
bool justHadError = (getTimeNowNt() - engine->triggerCentral.triggerState.lastDecodingErrorTime) < MS2NT(200);
return justHadError || isTriggerDecoderError();
#else
return false;
@ -676,12 +670,12 @@ static CommunicationBlinkingTask communicationsBlinkingTask;
#if EFI_LCD
class LcdController : public PeriodicController<UTILITY_THREAD_STACK_SIZE> {
public:
LcdController() : PeriodicController("BenchThread") { }
LcdController() : PeriodicController("LCD") { }
private:
void PeriodicTask(efitime_t nowNt) override {
void PeriodicTask(efitick_t nowNt) override {
UNUSED(nowNt);
setPeriod(NOT_TOO_OFTEN(10 /* ms */, engineConfiguration->bc.lcdThreadPeriodMs));
if (engineConfiguration->bc.useLcdScreen) {
setPeriod(NOT_TOO_OFTEN(10 /* ms */, engineConfiguration->lcdThreadPeriodMs));
if (engineConfiguration->useLcdScreen) {
#if EFI_HD44780_LCD
updateHD44780lcd();
#endif
@ -726,7 +720,7 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
// offset 8
tsOutputChannels->intakeAirTemperature = intake;
// offset 12
tsOutputChannels->throttlePositon = tps;
tsOutputChannels->throttlePosition = tps;
// offset 16
tsOutputChannels->massAirFlowVoltage = hasMafSensor() ? getMafVoltage(PASS_ENGINE_PARAMETER_SIGNATURE) : 0;
@ -760,9 +754,11 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
// offset 116
// TPS acceleration
tsOutputChannels->deltaTps = engine->tpsAccelEnrichment.getMaxDelta();
// 120
tsOutputChannels->triggerErrorsCounter = engine->triggerCentral.triggerState.totalTriggerErrorCounter;
// 128
tsOutputChannels->totalTriggerErrorCounter = engine->triggerCentral.triggerState.totalTriggerErrorCounter;
// 132
tsOutputChannels->orderingErrorCounter = engine->triggerCentral.triggerState.orderingErrorCounter;
// 68
tsOutputChannels->baroCorrection = engine->engineState.baroCorrection;
// 136
tsOutputChannels->pedalPosition = hasPedalPositionSensor(PASS_ENGINE_PARAMETER_SIGNATURE) ? getPedalPosition(PASS_ENGINE_PARAMETER_SIGNATURE) : 0;
@ -789,7 +785,7 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
tsOutputChannels->vvtPosition = engine->triggerCentral.vvtPosition;
// 252
tsOutputChannels->engineMode = packEngineMode(PASS_ENGINE_PARAMETER_SIGNATURE);
// 264
// 120
tsOutputChannels->firmwareVersion = getRusEfiVersion();
// 268
tsOutputChannels->fuelPidCorrection = ENGINE(engineState.running.pidCorrection);
@ -797,6 +793,8 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
tsOutputChannels->accelerationX = engine->sensors.accelerometer.x;
// 278
tsOutputChannels->accelerationY = engine->sensors.accelerometer.y;
// 280
tsOutputChannels->oilPressure = Sensor::get(SensorType::OilPressure).Value;
// 288
tsOutputChannels->injectionOffset = engine->engineState.injectionOffset;
@ -814,7 +812,6 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
tsOutputChannels->knockLevel = engine->knockVolts;
tsOutputChannels->hasFatalError = hasFirmwareError();
tsOutputChannels->totalTriggerErrorCounter = engine->triggerCentral.triggerState.totalTriggerErrorCounter;
tsOutputChannels->coilDutyCycle = getCoilDutyCycle(rpm PASS_ENGINE_PARAMETER_SUFFIX);
@ -1019,7 +1016,7 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
break;
case DBG_TLE8888:
#if (BOARD_TLE8888_COUNT > 0)
tle8888PostState(tsOutputChannels);
tle8888PostState(tsOutputChannels->getDebugChannels());
#endif /* BOARD_TLE8888_COUNT */
break;
default:
@ -1035,8 +1032,6 @@ void prepareTunerStudioOutputs(void) {
#endif /* EFI_TUNER_STUDIO */
void initStatusLoop(void) {
setFullLog(INITIAL_FULL_LOG);
addConsoleActionI(FULL_LOGGING_KEY, setFullLog);
addConsoleActionI("warn", setWarningEnabled);
#if EFI_ENGINE_CONTROL
@ -1061,13 +1056,3 @@ void startStatusThreads(void) {
lcdInstance.Start();
#endif /* EFI_LCD */
}
void setFullLog(int value) {
print("Setting full logging: %s\r\n", boolToString(value));
printMsg(&logger, "%s%d", FULL_LOGGING_KEY, value);
fullLog = value;
}
bool getFullLog(void) {
return fullLog;
}

View File

@ -2,11 +2,10 @@
* @file status_loop.h
*
* @date Mar 15, 2013
* @author Andrey Belomutskiy, (c) 2012-2017
* @author Andrey Belomutskiy, (c) 2012-2019
*/
#ifndef CONSOLE_LOOP_H_
#define CONSOLE_LOOP_H_
#pragma once
#include "engine.h"
@ -15,7 +14,4 @@ void prepareTunerStudioOutputs(void);
void startStatusThreads(void);
void initStatusLoop(void);
void writeLogLine(void);
void setFullLog(int value);
void printOverallStatus(systime_t nowSeconds);
#endif /* CONSOLE_LOOP_H_ */

View File

@ -86,7 +86,7 @@ class AlternatorController : public PeriodicTimerController {
float vBatt = getVBatt(PASS_ENGINE_PARAMETER_SIGNATURE);
float targetVoltage = engineConfiguration->targetVBatt;
if (CONFIGB(onOffAlternatorLogic)) {
if (CONFIG(onOffAlternatorLogic)) {
float h = 0.1;
bool newState = (vBatt < targetVoltage - h) || (currentPlainOnOffState && vBatt < targetVoltage);
enginePins.alternatorPin.setValue(newState);
@ -102,7 +102,7 @@ class AlternatorController : public PeriodicTimerController {
currentAltDuty = alternatorPid.getOutput(targetVoltage, vBatt);
if (CONFIGB(isVerboseAlternator)) {
if (CONFIG(isVerboseAlternator)) {
scheduleMsg(logger, "alt duty: %.2f/vbatt=%.2f/p=%.2f/i=%.2f/d=%.2f int=%.2f", currentAltDuty, vBatt,
alternatorPid.getP(), alternatorPid.getI(), alternatorPid.getD(), alternatorPid.getIntegration());
}
@ -116,7 +116,7 @@ static AlternatorController instance;
void showAltInfo(void) {
scheduleMsg(logger, "alt=%s @%s t=%dms", boolToString(engineConfiguration->isAlternatorControlEnabled),
hwPortname(CONFIGB(alternatorControlPin)),
hwPortname(CONFIG(alternatorControlPin)),
engineConfiguration->alternatorControl.periodMs);
scheduleMsg(logger, "p=%.2f/i=%.2f/d=%.2f offset=%.2f", engineConfiguration->alternatorControl.pFactor,
0, 0, engineConfiguration->alternatorControl.offset); // todo: i & d
@ -160,17 +160,17 @@ void onConfigurationChangeAlternatorCallback(engine_configuration_s *previousCon
void initAlternatorCtrl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
logger = sharedLogger;
addConsoleAction("altinfo", showAltInfo);
if (CONFIGB(alternatorControlPin) == GPIO_UNASSIGNED)
if (CONFIG(alternatorControlPin) == GPIO_UNASSIGNED)
return;
if (CONFIGB(onOffAlternatorLogic)) {
enginePins.alternatorPin.initPin("on/off alternator", CONFIGB(alternatorControlPin));
if (CONFIG(onOffAlternatorLogic)) {
enginePins.alternatorPin.initPin("on/off alternator", CONFIG(alternatorControlPin));
} else {
startSimplePwmExt(&alternatorControl,
"Alternator control",
&engine->executor,
CONFIGB(alternatorControlPin),
CONFIG(alternatorControlPin),
&enginePins.alternatorPin,
engineConfiguration->alternatorPwmFrequency, 0.1, (pwm_gen_callback*)applyAlternatorPinState);
}

View File

@ -180,9 +180,24 @@ static percent_t currentEtbDuty;
// this macro clamps both positive and negative percentages from about -100% to 100%
#define ETB_PERCENT_TO_DUTY(X) (maxF(minF((X * 0.01), ETB_DUTY_LIMIT - 0.01), 0.01 - ETB_DUTY_LIMIT))
void EtbController::init(DcMotor *motor, int ownIndex) {
this->m_motor = motor;
this->ownIndex = ownIndex;
void EtbController::init(DcMotor *motor, int ownIndex, pid_s *pidParameters) {
m_motor = motor;
m_myIndex = ownIndex;
m_pid.initPidClass(pidParameters);
}
void EtbController::reset() {
m_shouldResetPid = true;
}
void EtbController::onConfigurationChange(pid_s* previousConfiguration) {
if (m_pid.isSame(previousConfiguration)) {
m_shouldResetPid = true;
}
}
void EtbController::showStatus(Logging* logger) {
m_pid.showPidStatus(logger, "ETB");
}
int EtbController::getPeriodMs() {
@ -190,18 +205,19 @@ int EtbController::getPeriodMs() {
}
void EtbController::PeriodicTask() {
#if EFI_TUNER_STUDIO
// Only debug throttle #0
if (m_myIndex == 0) {
// set debug_mode 17
if (engineConfiguration->debugMode == DBG_ELECTRONIC_THROTTLE_PID) {
#if EFI_TUNER_STUDIO
etbPid.postState(&tsOutputChannels);
m_pid.postState(&tsOutputChannels);
tsOutputChannels.debugIntField5 = engine->engineState.etbFeedForward;
#endif /* EFI_TUNER_STUDIO */
} else if (engineConfiguration->debugMode == DBG_ELECTRONIC_THROTTLE_EXTRA) {
#if EFI_TUNER_STUDIO
// set debug_mode 29
tsOutputChannels.debugFloatField1 = directPwmValue;
#endif /* EFI_TUNER_STUDIO */
}
}
#endif /* EFI_TUNER_STUDIO */
if (!m_motor) {
return;
@ -212,9 +228,9 @@ void EtbController::PeriodicTask() {
return;
}
if (shouldResetPid) {
etbPid.reset();
shouldResetPid = false;
if (m_shouldResetPid) {
m_pid.reset();
m_shouldResetPid = false;
}
if (!cisnan(directPwmValue)) {
@ -222,12 +238,12 @@ void EtbController::PeriodicTask() {
return;
}
if (boardConfiguration->pauseEtbControl) {
if (engineConfiguration->pauseEtbControl) {
m_motor->set(0);
return;
}
percent_t actualThrottlePosition = getTPSWithIndex(ownIndex PASS_ENGINE_PARAMETER_SUFFIX);
percent_t actualThrottlePosition = getTPSWithIndex(m_myIndex PASS_ENGINE_PARAMETER_SUFFIX);
if (engine->etbAutoTune) {
autoTune.input = actualThrottlePosition;
@ -254,7 +270,7 @@ void EtbController::PeriodicTask() {
int rpm = GET_RPM();
engine->engineState.targetFromTable = pedal2tpsMap.getValue(rpm / RPM_1_BYTE_PACKING_MULT, pedalPosition);
percent_t etbIdleAddition = CONFIGB(useETBforIdleControl) ? engine->engineState.idle.etbIdleAddition : 0;
percent_t etbIdleAddition = CONFIG(useETBforIdleControl) ? engine->engineState.idle.etbIdleAddition : 0;
percent_t targetPosition = engine->engineState.targetFromTable + etbIdleAddition;
if (engineConfiguration->debugMode == DBG_ETB_LOGIC) {
@ -271,16 +287,16 @@ void EtbController::PeriodicTask() {
}
engine->engineState.etbFeedForward = interpolate2d("etbb", targetPosition, engineConfiguration->etbBiasBins, engineConfiguration->etbBiasValues);
etbPid.iTermMin = engineConfiguration->etb_iTermMin;
etbPid.iTermMax = engineConfiguration->etb_iTermMax;
m_pid.iTermMin = engineConfiguration->etb_iTermMin;
m_pid.iTermMax = engineConfiguration->etb_iTermMax;
currentEtbDuty = engine->engineState.etbFeedForward +
etbPid.getOutput(targetPosition, actualThrottlePosition);
m_pid.getOutput(targetPosition, actualThrottlePosition);
m_motor->set(ETB_PERCENT_TO_DUTY(currentEtbDuty));
if (engineConfiguration->isVerboseETB) {
etbPid.showPidStatus(&logger, "ETB");
m_pid.showPidStatus(&logger, "ETB");
}
DISPLAY_STATE(Engine)
@ -323,6 +339,9 @@ DISPLAY(DISPLAY_IF(hasEtbPedalPositionSensor))
/* DISPLAY_ELSE */
DISPLAY_TEXT(No_Pedal_Sensor);
/* DISPLAY_ENDIF */
// Only report the 0th throttle
if (m_myIndex == 0) {
#if EFI_TUNER_STUDIO
// 312
tsOutputChannels.etbTarget = targetPosition;
@ -332,39 +351,18 @@ DISPLAY(DISPLAY_IF(hasEtbPedalPositionSensor))
// Error is positive if the throttle needs to open further
tsOutputChannels.etb1Error = targetPosition - actualThrottlePosition;
#endif /* EFI_TUNER_STUDIO */
}
}
static EtbHardware etbHardware[ETB_COUNT];
EtbController etbController[ETB_COUNT];
/**
* At the moment there are TWO ways to use this
* set_etb_duty X
* set etb X
* manual duty cycle control without PID. Percent value from 0 to 100
*/
void setThrottleDutyCycle(percent_t level) {
scheduleMsg(&logger, "setting ETB duty=%f%%", level);
if (cisnan(level)) {
directPwmValue = NAN;
return;
}
float dc = ETB_PERCENT_TO_DUTY(level);
directPwmValue = dc;
for (int i = 0 ; i < ETB_COUNT; i++) {
etbHardware[i].dcMotor.set(dc);
}
scheduleMsg(&logger, "duty ETB duty=%f", dc);
}
static bool etbOperational = false;
// real implementation (we mock for some unit tests)
EtbController etbControllers[ETB_COUNT];
static void showEthInfo(void) {
#if EFI_PROD_CODE
static char pinNameBuffer[16];
if (!etbOperational) {
if (engine->etbActualCount == 0) {
scheduleMsg(&logger, "ETB DISABLED since no PPS");
}
@ -387,28 +385,50 @@ static void showEthInfo(void) {
scheduleMsg(&logger, "dir1=%s", hwPortname(CONFIG(etbIo[0].directionPin1)));
scheduleMsg(&logger, "dir2=%s", hwPortname(CONFIG(etbIo[0].directionPin2)));
for (int i = 0 ; i < ETB_COUNT; i++) {
for (int i = 0 ; i < engine->etbActualCount; i++) {
EtbHardware *etb = &etbHardware[i];
scheduleMsg(&logger, "%d: dir=%d DC=%f", i, etb->dcMotor.isOpenDirection(), etb->dcMotor.get());
scheduleMsg(&logger, "ETB %d", i);
scheduleMsg(&logger, "Motor: dir=%d DC=%f", etb->dcMotor.isOpenDirection(), etb->dcMotor.get());
etbControllers[i].showStatus(&logger);
}
etbController[0].etbPid.showPidStatus(&logger, "ETB");
#endif /* EFI_PROD_CODE */
}
static void etbPidReset() {
for (int i = 0 ; i < ETB_COUNT; i++) {
etbController[i].etbPid.reset();
static void etbPidReset(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
for (int i = 0 ; i < engine->etbActualCount; i++) {
engine->etbControllers[i]->reset();
}
}
#if EFI_PROD_CODE
#if !EFI_UNIT_TEST
/**
* At the moment there are TWO ways to use this
* set_etb_duty X
* set etb X
* manual duty cycle control without PID. Percent value from 0 to 100
*/
void setThrottleDutyCycle(percent_t level) {
scheduleMsg(&logger, "setting ETB duty=%f%%", level);
if (cisnan(level)) {
directPwmValue = NAN;
return;
}
float dc = ETB_PERCENT_TO_DUTY(level);
directPwmValue = dc;
for (int i = 0 ; i < engine->etbActualCount; i++) {
etbHardware[i].dcMotor.set(dc);
}
scheduleMsg(&logger, "duty ETB duty=%f", dc);
}
static void setEtbFrequency(int frequency) {
engineConfiguration->etbFreq = frequency;
for (int i = 0 ; i < ETB_COUNT; i++) {
for (int i = 0 ; i < engine->etbActualCount; i++) {
etbHardware[i].setFrequency(frequency);
}
}
@ -416,9 +436,10 @@ static void setEtbFrequency(int frequency) {
static void etbReset() {
scheduleMsg(&logger, "etbReset");
for (int i = 0 ; i < ETB_COUNT; i++) {
for (int i = 0 ; i < engine->etbActualCount; i++) {
etbHardware[i].dcMotor.set(0);
}
etbPidReset();
mockPedalPosition = MOCK_UNDEFINED;
@ -555,14 +576,16 @@ void stopETBPins(void) {
#endif /* EFI_PROD_CODE */
void onConfigurationChangeElectronicThrottleCallback(engine_configuration_s *previousConfiguration) {
bool shouldResetPid = !etbController[0].etbPid.isSame(&previousConfiguration->etb);
for (int i = 0 ; i < ETB_COUNT; i++) {
etbController[i].shouldResetPid = shouldResetPid;
for (int i = 0; i < ETB_COUNT; i++) {
etbControllers[i].onConfigurationChange(&previousConfiguration->etb);
}
}
void startETBPins(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
/**
* safer to start 2nd ETB even if 2nd TPS is not configured by mistake
*/
for (int i = 0 ; i < ETB_COUNT; i++) {
etb_io *io = &engineConfiguration->etbIo[i];
// controlPinMode is a strange feature - it's simply because I am short on 5v I/O on Frankenso with Miata NB2 test mule
@ -633,10 +656,18 @@ void setDefaultEtbBiasCurve(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
}
void unregisterEtbPins() {
// todo: we probably need an implementation here?!
}
void initElectronicThrottle(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
for (int i = 0; i < ETB_COUNT; i++) {
engine->etbControllers[i] = &etbControllers[i];
}
doInitElectronicThrottle(PASS_ENGINE_PARAMETER_SIGNATURE);
}
void doInitElectronicThrottle(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
efiAssertVoid(OBD_PCM_Processor_Fault, engine->etbControllers != NULL, "etbControllers NULL");
#if EFI_PROD_CODE
addConsoleAction("ethinfo", showEthInfo);
addConsoleAction("etbreset", etbReset);
@ -644,9 +675,8 @@ void initElectronicThrottle(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#endif /* EFI_PROD_CODE */
for (int i = 0 ; i < ETB_COUNT; i++) {
etbController[i].init(&etbHardware[i].dcMotor, i);
etbController[i].etbPid.initPidClass(&engineConfiguration->etb);
INJECT_ENGINE_REFERENCE(&etbController[i]);
engine->etbControllers[i]->init(&etbHardware[i].dcMotor, i, &engineConfiguration->etb);
INJECT_ENGINE_REFERENCE(engine->etbControllers[i]);
}
@ -656,7 +686,8 @@ void initElectronicThrottle(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
if (!engine->engineState.hasEtbPedalPositionSensor) {
return;
}
etbOperational = true;
engine->etbActualCount = hasTps2(PASS_ENGINE_PARAMETER_SIGNATURE) ? 2 : 1;
#if 0
// not alive code
autoTune.SetOutputStep(0.1);
@ -680,7 +711,7 @@ void initElectronicThrottle(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#if EFI_PROD_CODE
if (engineConfiguration->etbCalibrationOnStart) {
for (int i = 0 ; i < ETB_COUNT; i++) {
for (int i = 0 ; i < engine->etbActualCount; i++) {
EtbHardware *etb = &etbHardware[i];
etb->dcMotor.set(70);
@ -717,12 +748,13 @@ void initElectronicThrottle(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#endif /* EFI_PROD_CODE */
etbPidReset();
etbPidReset(PASS_ENGINE_PARAMETER_SIGNATURE);
for (int i = 0 ; i < ETB_COUNT; i++) {
etbController[i].Start();
for (int i = 0 ; i < engine->etbActualCount; i++) {
engine->etbControllers[i]->Start();
}
}
#endif /* EFI_ELECTRONIC_THROTTLE_BODY */

View File

@ -15,23 +15,44 @@
#include "periodic_task.h"
class DcMotor;
class Logging;
class EtbController final : public PeriodicTimerController {
class IEtbController : public PeriodicTimerController{
public:
DECLARE_ENGINE_PTR;
void init(DcMotor *motor, int ownIndex);
virtual void init(DcMotor *motor, int ownIndex, pid_s *pidParameters) = 0;
virtual void reset() = 0;
};
class EtbController final : public IEtbController {
public:
void init(DcMotor *motor, int ownIndex, pid_s *pidParameters) override;
// PeriodicTimerController implementation
int getPeriodMs() override;
void PeriodicTask() override;
Pid etbPid;
bool shouldResetPid = false;
void reset() override;
// Called when the configuration may have changed. Controller will
// reset if necessary.
void onConfigurationChange(pid_s* previousConfiguration);
// Print this throttle's status.
void showStatus(Logging* logger);
// Used to inspect the internal PID controller's state
const pid_state_s* getPidState() const { return &m_pid; };
private:
int ownIndex;
int m_myIndex;
DcMotor *m_motor;
Pid m_pid;
bool m_shouldResetPid = false;
};
void initElectronicThrottle(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void doInitElectronicThrottle(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void setDefaultEtbBiasCurve(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setDefaultEtbParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setBoschVNH2SP30Curve(DECLARE_CONFIG_PARAMETER_SIGNATURE);

View File

@ -112,18 +112,18 @@ void idleDebug(const char *msg, percent_t value) {
static void showIdleInfo(void) {
const char * idleModeStr = getIdle_mode_e(engineConfiguration->idleMode);
scheduleMsg(logger, "idleMode=%s position=%.2f isStepper=%s", idleModeStr,
getIdlePosition(), boolToString(CONFIGB(useStepperIdle)));
getIdlePosition(), boolToString(CONFIG(useStepperIdle)));
if (CONFIGB(useStepperIdle)) {
scheduleMsg(logger, "directionPin=%s reactionTime=%.2f", hwPortname(CONFIGB(idle).stepperDirectionPin),
if (CONFIG(useStepperIdle)) {
scheduleMsg(logger, "directionPin=%s reactionTime=%.2f", hwPortname(CONFIG(idle).stepperDirectionPin),
engineConfiguration->idleStepperReactionTime);
scheduleMsg(logger, "stepPin=%s steps=%d", hwPortname(CONFIGB(idle).stepperStepPin),
scheduleMsg(logger, "stepPin=%s steps=%d", hwPortname(CONFIG(idle).stepperStepPin),
engineConfiguration->idleStepperTotalSteps);
scheduleMsg(logger, "enablePin=%s/%d", hwPortname(engineConfiguration->stepperEnablePin),
engineConfiguration->stepperEnablePinMode);
} else {
scheduleMsg(logger, "idle valve freq=%d on %s", CONFIGB(idle).solenoidFrequency,
hwPortname(CONFIGB(idle).solenoidPin));
scheduleMsg(logger, "idle valve freq=%d on %s", CONFIG(idle).solenoidFrequency,
hwPortname(CONFIG(idle).solenoidPin));
}
@ -138,10 +138,10 @@ void setIdleMode(idle_mode_e value) {
}
static void applyIACposition(percent_t position) {
if (CONFIGB(useETBforIdleControl)) {
if (CONFIG(useETBforIdleControl)) {
engine->engineState.idle.etbIdleAddition = position / 100 * CONFIG(etbIdleThrottleRange);
#if ! EFI_UNIT_TEST
} if (CONFIGB(useStepperIdle)) {
} if (CONFIG(useStepperIdle)) {
iacMotor.setTargetPosition(position / 100 * engineConfiguration->idleStepperTotalSteps);
#endif /* EFI_UNIT_TEST */
} else {
@ -165,14 +165,14 @@ void setIdleValvePosition(int positionPercent) {
showIdleInfo();
#endif /* EFI_UNIT_TEST */
// todo: this is not great that we have to write into configuration here
CONFIGB(manIdlePosition) = positionPercent;
CONFIG(manIdlePosition) = positionPercent;
}
#endif /* EFI_UNIT_TEST */
static percent_t manualIdleController(float cltCorrection DECLARE_ENGINE_PARAMETER_SUFFIX) {
percent_t correctedPosition = cltCorrection * CONFIGB(manIdlePosition);
percent_t correctedPosition = cltCorrection * CONFIG(manIdlePosition);
// let's put the value into the right range
correctedPosition = maxF(correctedPosition, 0.01);
@ -223,7 +223,7 @@ static bool isOutOfAutomaticIdleCondition(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
inputPosition = getTPS(PASS_ENGINE_PARAMETER_SIGNATURE);
}
return inputPosition > CONFIGB(idlePidDeactivationTpsThreshold);
return inputPosition > CONFIG(idlePidDeactivationTpsThreshold);
}
/**
@ -287,7 +287,7 @@ static percent_t automaticIdleController(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
// Apply PID Deactivation Threshold as a smooth taper for TPS transients.
percent_t tpsPos = getTPS(PASS_ENGINE_PARAMETER_SIGNATURE);
// if tps==0 then PID just works as usual, or we completely disable it if tps>=threshold
newValue = interpolateClamped(0.0f, newValue, CONFIGB(idlePidDeactivationTpsThreshold), engine->engineState.idle.baseIdlePosition, tpsPos);
newValue = interpolateClamped(0.0f, newValue, CONFIG(idlePidDeactivationTpsThreshold), engine->engineState.idle.baseIdlePosition, tpsPos);
// Interpolate to the manual position when RPM is close to the upper RPM limit (if idlePidRpmUpperLimit is set).
// If RPM increases and the throttle is closed, then we're in coasting mode, and we should smoothly disable auto-pid.
@ -297,7 +297,7 @@ static percent_t automaticIdleController(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
int idlePidLowerRpm = targetRpm + CONFIG(idlePidRpmDeadZone);
if (CONFIG(idlePidRpmUpperLimit) > 0) {
engine->engineState.idle.idleState = PID_UPPER;
if (CONFIGB(useIacTableForCoasting) && hasCltSensor()) {
if (CONFIG(useIacTableForCoasting) && hasCltSensor()) {
percent_t iacPosForCoasting = interpolate2d("iacCoasting", getCoolantTemperature(), CONFIG(iacCoastingBins), CONFIG(iacCoasting));
newValue = interpolateClamped(idlePidLowerRpm, newValue, idlePidLowerRpm + CONFIG(idlePidRpmUpperLimit), iacPosForCoasting, rpm);
} else {
@ -341,8 +341,8 @@ static percent_t automaticIdleController(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#if EFI_GPIO_HARDWARE
// this value is not used yet
if (CONFIGB(clutchDownPin) != GPIO_UNASSIGNED) {
engine->clutchDownState = efiReadPin(CONFIGB(clutchDownPin));
if (CONFIG(clutchDownPin) != GPIO_UNASSIGNED) {
engine->clutchDownState = efiReadPin(CONFIG(clutchDownPin));
}
if (hasAcToggle(PASS_ENGINE_PARAMETER_SIGNATURE)) {
bool result = getAcToggle(PASS_ENGINE_PARAMETER_SIGNATURE);
@ -412,7 +412,7 @@ static percent_t automaticIdleController(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
percent_t tpsPos = getTPS(PASS_ENGINE_PARAMETER_SIGNATURE);
float additionalAir = (float)engineConfiguration->iacByTpsTaper;
iacPosition += interpolateClamped(0.0f, 0.0f, CONFIGB(idlePidDeactivationTpsThreshold), additionalAir, tpsPos);
iacPosition += interpolateClamped(0.0f, 0.0f, CONFIG(idlePidDeactivationTpsThreshold), additionalAir, tpsPos);
// taper transition from cranking to running (uint32_t to float conversion is safe here)
if (engineConfiguration->afterCrankingIACtaperDuration > 0)
@ -472,7 +472,7 @@ void setDefaultIdleParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
void onConfigurationChangeIdleCallback(engine_configuration_s *previousConfiguration) {
shouldResetPid = !idlePid.isSame(&previousConfiguration->idleRpmPid);
idleSolenoid.setFrequency(CONFIGB(idle).solenoidFrequency);
idleSolenoid.setFrequency(CONFIG(idle).solenoidFrequency);
}
void setTargetIdleRpm(int value) {
@ -534,31 +534,31 @@ static void applyIdleSolenoidPinState(int stateIndex, PwmConfig *state) /* pwm_g
bool isIdleHardwareRestartNeeded() {
return isConfigurationChanged(stepperEnablePin) ||
isConfigurationChanged(stepperEnablePinMode) ||
isConfigurationChanged(bc.idle.stepperStepPin) ||
isConfigurationChanged(bc.idle.solenoidFrequency) ||
isConfigurationChanged(bc.useStepperIdle) ||
isConfigurationChanged(idle.stepperStepPin) ||
isConfigurationChanged(idle.solenoidFrequency) ||
isConfigurationChanged(useStepperIdle) ||
// isConfigurationChanged() ||
isConfigurationChanged(bc.useETBforIdleControl) ||
isConfigurationChanged(bc.idle.solenoidPin);
isConfigurationChanged(useETBforIdleControl) ||
isConfigurationChanged(idle.solenoidPin);
}
void stopIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#if EFI_PROD_CODE
brain_pin_markUnused(activeConfiguration.stepperEnablePin);
brain_pin_markUnused(activeConfiguration.bc.idle.stepperStepPin);
brain_pin_markUnused(activeConfiguration.bc.idle.solenoidPin);
// brain_pin_markUnused(activeConfiguration.bc.idle.);
// brain_pin_markUnused(activeConfiguration.bc.idle.);
// brain_pin_markUnused(activeConfiguration.bc.idle.);
// brain_pin_markUnused(activeConfiguration.bc.idle.);
brain_pin_markUnused(activeConfiguration.idle.stepperStepPin);
brain_pin_markUnused(activeConfiguration.idle.solenoidPin);
// brain_pin_markUnused(activeConfiguration.idle.);
// brain_pin_markUnused(activeConfiguration.idle.);
// brain_pin_markUnused(activeConfiguration.idle.);
// brain_pin_markUnused(activeConfiguration.idle.);
#endif /* EFI_PROD_CODE */
}
void initIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
if (CONFIGB(useStepperIdle)) {
iacMotor.initialize(CONFIGB(idle).stepperStepPin,
CONFIGB(idle).stepperDirectionPin,
if (CONFIG(useStepperIdle)) {
iacMotor.initialize(CONFIG(idle).stepperStepPin,
CONFIG(idle).stepperDirectionPin,
engineConfiguration->stepperDirectionPinMode,
engineConfiguration->idleStepperReactionTime,
engineConfiguration->idleStepperTotalSteps,
@ -566,14 +566,14 @@ void initIdleHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
logger);
// This greatly improves PID accuracy for steppers with a small number of steps
idlePositionSensitivityThreshold = 1.0f / engineConfiguration->idleStepperTotalSteps;
} else if (!engineConfiguration->bc.useETBforIdleControl) {
} else if (!engineConfiguration->useETBforIdleControl) {
/**
* Start PWM for idleValvePin
*/
startSimplePwmExt(&idleSolenoid, "Idle Valve",
&engine->executor,
CONFIGB(idle).solenoidPin, &enginePins.idleSolenoidPin,
CONFIGB(idle).solenoidFrequency, CONFIGB(manIdlePosition) / 100,
CONFIG(idle).solenoidPin, &enginePins.idleSolenoidPin,
CONFIG(idle).solenoidFrequency, CONFIG(manIdlePosition) / 100,
(pwm_gen_callback*)applyIdleSolenoidPinState);
idlePositionSensitivityThreshold = 0.0f;
}
@ -642,9 +642,9 @@ void startIdleThread(Logging*sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
#if ! EFI_UNIT_TEST
// this is neutral/no gear switch input. on Miata it's wired both to clutch pedal and neutral in gearbox
// this switch is not used yet
if (CONFIGB(clutchDownPin) != GPIO_UNASSIGNED) {
efiSetPadMode("clutch down switch", CONFIGB(clutchDownPin),
getInputMode(CONFIGB(clutchDownPinMode)));
if (CONFIG(clutchDownPin) != GPIO_UNASSIGNED) {
efiSetPadMode("clutch down switch", CONFIG(clutchDownPin),
getInputMode(CONFIG(clutchDownPinMode)));
}
if (CONFIG(clutchUpPin) != GPIO_UNASSIGNED) {
@ -654,7 +654,7 @@ void startIdleThread(Logging*sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
if (CONFIG(throttlePedalUpPin) != GPIO_UNASSIGNED) {
efiSetPadMode("throttle pedal up switch", CONFIG(throttlePedalUpPin),
getInputMode(CONFIGB(throttlePedalUpPinMode)));
getInputMode(CONFIG(throttlePedalUpPinMode)));
}
if (engineConfiguration->brakePedalPin != GPIO_UNASSIGNED) {

View File

@ -35,7 +35,7 @@ static void startPwmTest(int freq) {
/**
* See custom_engine.cpp for pinout
*/
// currently this is PB9 by default - see CONFIGB(injectionPins)
// currently this is PB9 by default - see CONFIG(injectionPins)
startSimplePwm(&pwmTest[1], "tester", &enginePins.injectors[0], freq / 1.3333333333, 0.5f, applyPinState);
// currently this is PE2 by default
startSimplePwm(&pwmTest[2], "tester", &enginePins.injectors[1], freq / 1000, 0.5f, applyPinState);

View File

@ -68,7 +68,7 @@ static const ignition_table_t defaultIatTiming = {
#endif /* IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT */
bool isStep1Condition(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
return CONFIGB(enabledStep1Limiter) && rpm >= engineConfiguration->step1rpm;
return CONFIG(enabledStep1Limiter) && rpm >= engineConfiguration->step1rpm;
}
/**
@ -104,7 +104,7 @@ static angle_t getRunningAdvance(int rpm, float engineLoad DECLARE_ENGINE_PARAME
float idleAdvance = interpolate2d("idleAdvance", rpm, config->idleAdvanceBins, config->idleAdvance);
// interpolate between idle table and normal (running) table using TPS threshold
float tps = getTPS(PASS_ENGINE_PARAMETER_SIGNATURE);
advanceAngle = interpolateClamped(0.0f, idleAdvance, CONFIGB(idlePidDeactivationTpsThreshold), advanceAngle, tps);
advanceAngle = interpolateClamped(0.0f, idleAdvance, CONFIG(idlePidDeactivationTpsThreshold), advanceAngle, tps);
}
engine->m.advanceLookupTime = getTimeNowLowerNt() - engine->m.beforeAdvance;
@ -120,11 +120,11 @@ angle_t getAdvanceCorrections(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
}
// PID Ignition Advance angle correction
float pidTimingCorrection = 0.0f;
if (CONFIGB(useIdleTimingPidControl)) {
if (CONFIG(useIdleTimingPidControl)) {
int targetRpm = getTargetRpmForIdleCorrection(PASS_ENGINE_PARAMETER_SIGNATURE);
int rpmDelta = absI(rpm - targetRpm);
float tps = getTPS(PASS_ENGINE_PARAMETER_SIGNATURE);
if (tps >= CONFIGB(idlePidDeactivationTpsThreshold)) {
if (tps >= CONFIG(idlePidDeactivationTpsThreshold)) {
// we are not in the idle mode anymore, so the 'reset' flag will help us when we return to the idle.
shouldResetTimingPid = true;
}
@ -139,7 +139,7 @@ angle_t getAdvanceCorrections(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
percent_t timingRawCorr = idleTimingPid.getOutput(targetRpm, rpm,
/* is this the right dTime? this period is not exactly the period at which this code is invoked*/engineConfiguration->idleTimingPid.periodMs);
// tps idle-running falloff
pidTimingCorrection = interpolateClamped(0.0f, timingRawCorr, CONFIGB(idlePidDeactivationTpsThreshold), 0.0f, tps);
pidTimingCorrection = interpolateClamped(0.0f, timingRawCorr, CONFIG(idlePidDeactivationTpsThreshold), 0.0f, tps);
// rpm falloff
pidTimingCorrection = interpolateClamped(0.0f, pidTimingCorrection, CONFIG(idlePidFalloffDeltaRpm), 0.0f, rpmDelta - CONFIG(idleTimingPidWorkZone));
} else {

View File

@ -1,40 +0,0 @@
/*
* @file algo.cpp
*
* @date Mar 2, 2014
* @author Andrey Belomutskiy, (c) 2012-2018
*
*
* This file is part of rusEfi - see http://rusefi.com
*
* rusEfi is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* rusEfi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program.
* If not, see <http://www.gnu.org/licenses/>.
*/
#include "globalaccess.h"
#include "algo.h"
#include "advance_map.h"
#include "fuel_math.h"
#include "settings.h"
#include "speed_density.h"
#include "fsio_impl.h"
EXTERN_ENGINE;
void initDataStructures(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
initFuelMap(PASS_ENGINE_PARAMETER_SIGNATURE);
initTimingMap(PASS_ENGINE_PARAMETER_SIGNATURE);
initSpeedDensity(PASS_ENGINE_PARAMETER_SIGNATURE);
}
void initAlgo(Logging *sharedLogger) {
initInterpolation(sharedLogger);
}

View File

@ -1,13 +0,0 @@
/*
* @file algo.h
*
* @date Mar 2, 2014
* @author Andrey Belomutskiy, (c) 2012-2017
*/
#pragma once
#include "global.h"
#include "engine_configuration.h"
void initDataStructures(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void initAlgo(Logging *sharedLogger);

View File

@ -10,4 +10,3 @@ CONTROLLERS_ALGO_SRC_CPP = $(PROJECT_DIR)/controllers/algo/advance_map.cpp \
$(PROJECT_DIR)/controllers/algo/engine2.cpp \
$(PROJECT_DIR)/controllers/gauges/lcd_menu_tree.cpp \
$(PROJECT_DIR)/controllers/algo/event_registry.cpp \
$(PROJECT_DIR)/controllers/algo/algo.cpp \

View File

@ -733,8 +733,8 @@ case HONDA_ACCORD_CD_TWO_WIRES:
return "HONDA_ACCORD_CD_TWO_WIRES";
case LADA_KALINA:
return "LADA_KALINA";
case MAZDA_323:
return "MAZDA_323";
case MRE_MIATA_NB2_MTB:
return "MRE_MIATA_NB2_MTB";
case MAZDA_626:
return "MAZDA_626";
case MAZDA_MIATA_2003:
@ -803,6 +803,8 @@ case TOYOTA_JZS147:
return "TOYOTA_JZS147";
case VAG_18_TURBO:
return "VAG_18_TURBO";
case VW_B6:
return "VW_B6";
case VW_ABA:
return "VW_ABA";
case ZIL_130:

View File

@ -43,6 +43,12 @@ LoggingWithStorage engineLogger("engine");
EXTERN_ENGINE
;
#if EFI_ENGINE_SNIFFER
#include "engine_sniffer.h"
extern int waveChartUsedSize;
extern WaveChart waveChart;
#endif /* EFI_ENGINE_SNIFFER */
FsioState::FsioState() {
#if EFI_ENABLE_ENGINE_WARNING
isEngineWarning = FALSE;
@ -52,6 +58,16 @@ FsioState::FsioState() {
#endif
}
void Engine::resetEngineSnifferIfInTestMode() {
#if EFI_ENGINE_SNIFFER
if (isTestMode) {
// TODO: what is the exact reasoning for the exact engine sniffer pause time I wonder
waveChart.pauseEngineSnifferUntilNt = getTimeNowNt() + MS2NT(300);
waveChart.reset();
}
#endif /* EFI_ENGINE_SNIFFER */
}
void Engine::initializeTriggerWaveform(Logging *logger DECLARE_ENGINE_PARAMETER_SUFFIX) {
#if EFI_ENGINE_CONTROL && EFI_SHAFT_POSITION_INPUT
// we have a confusing threading model so some synchronization would not hurt
@ -130,7 +146,7 @@ void Engine::periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#if (BOARD_TLE8888_COUNT > 0)
if (CONFIG(useTLE8888_cranking_hack) && ENGINE(rpmCalculator).isCranking(PASS_ENGINE_PARAMETER_SIGNATURE)) {
efitick_t nowNt = getTimeNowNt();
if (nowNt - tle8888CrankingResetTime > US2NT(MS2US(300))) {
if (nowNt - tle8888CrankingResetTime > MS2NT(300)) {
requestTLE8888initialization();
// let's reset TLE8888 every 300ms while cranking since that's the best we can do to deal with undervoltage reset
// PS: oh yes, it's a horrible design! Please suggest something better!
@ -155,15 +171,15 @@ void Engine::updateSlowSensors(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#if EFI_ENGINE_CONTROL
int rpm = GET_RPM();
isEngineChartEnabled = CONFIG(isEngineChartEnabled) && rpm < CONFIG(engineSnifferRpmThreshold);
sensorChartMode = rpm < CONFIG(sensorSnifferRpmThreshold) ? CONFIGB(sensorChartMode) : SC_OFF;
sensorChartMode = rpm < CONFIG(sensorSnifferRpmThreshold) ? CONFIG(sensorChartMode) : SC_OFF;
engineState.updateSlowSensors(PASS_ENGINE_PARAMETER_SIGNATURE);
// todo: move this logic somewhere to sensors folder?
if (CONFIG(fuelLevelSensor) != EFI_ADC_NONE) {
float fuelLevelVoltage = getVoltageDivided("fuel", engineConfiguration->fuelLevelSensor PASS_ENGINE_PARAMETER_SUFFIX);
sensors.fuelTankLevel = interpolateMsg("fgauge", CONFIGB(fuelLevelEmptyTankVoltage), 0,
CONFIGB(fuelLevelFullTankVoltage), 100,
sensors.fuelTankLevel = interpolateMsg("fgauge", CONFIG(fuelLevelEmptyTankVoltage), 0,
CONFIG(fuelLevelFullTankVoltage), 100,
fuelLevelVoltage);
}
sensors.vBatt = hasVBatt(PASS_ENGINE_PARAMETER_SIGNATURE) ? getVBatt(PASS_ENGINE_PARAMETER_SIGNATURE) : 12;
@ -341,7 +357,7 @@ bool Engine::isInShutdownMode() const {
if (stopEngineRequestTimeNt == 0) // the shutdown procedure is not started
return false;
const efitime_t engineStopWaitTimeoutNt = 5LL * 1000000LL;
const efitick_t engineStopWaitTimeoutNt = 5LL * 1000000LL;
// The engine is still spinning! Give it some time to stop (but wait no more than 5 secs)
if (isSpinning && (getTimeNowNt() - stopEngineRequestTimeNt) < US2NT(engineStopWaitTimeoutNt))
return true;

View File

@ -47,11 +47,15 @@ class RpmCalculator;
#define CYCLE_ALTERNATION 2
class IEtbController;
class Engine : public TriggerStateListener {
public:
explicit Engine(persistent_config_s *config);
Engine();
IEtbController *etbControllers[ETB_COUNT];
void OnTriggerStateDecodingError() override;
void OnTriggerStateProperState(efitick_t nowNt) override;
@ -64,7 +68,14 @@ public:
AuxActor auxValves[AUX_DIGITAL_VALVE_COUNT][2];
#if EFI_UNIT_TEST
bool needTdcCallback = true;
#endif /* EFI_UNIT_TEST */
/**
* if 2nd TPS is not configured we do not run 2nd ETB
*/
int etbActualCount = 0;
/**
* By the way 32-bit value should hold at least 400 hours of events at 6K RPM x 12 events per revolution
@ -133,16 +144,11 @@ public:
bool isCltBroken = false;
bool slowCallBackWasInvoked = false;
// floatms_t callToPitEndTime;
/**
* remote telemetry: if not zero, time to stop flashing 'CALL FROM PIT STOP' light
* todo: looks like there is a bug here? 64 bit storage an 32 bit time logic? anyway this feature is mostly a dream at this point
*/
efitime_t callFromPitStopEndTime = 0;
// timestamp of most recent time RPM hard limit was triggered
efitime_t rpmHardLimitTimestamp = 0;
efitimems64_t callFromPitStopEndTime = 0;
/**
* This flag indicated a big enough problem that engine control would be
@ -235,6 +241,7 @@ public:
*/
bool isTestMode = false;
void resetEngineSnifferIfInTestMode();
/**
* pre-calculated offset for given sequence index within engine cycle

View File

@ -205,7 +205,7 @@ void EngineState::periodicFastCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
/**
* *0.01 because of https://sourceforge.net/p/rusefi/tickets/153/
*/
if (CONFIGB(useTPSBasedVeTable)) {
if (CONFIG(useTPSBasedVeTable)) {
// todo: should we have 'veTpsMap' fuel_Map3D_t variable here?
currentRawVE = interpolate3d<float, float>(tps, CONFIG(ignitionTpsBins), IGN_TPS_COUNT, rpm, config->veRpmBins, FUEL_RPM_COUNT, veMap.pointers);
} else {
@ -215,7 +215,7 @@ void EngineState::periodicFastCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
if (CONFIG(useSeparateVeForIdle)) {
float idleVe = interpolate2d("idleVe", rpm, config->idleVeBins, config->idleVe);
// interpolate between idle table and normal (running) table using TPS threshold
currentRawVE = interpolateClamped(0.0f, idleVe, CONFIGB(idlePidDeactivationTpsThreshold), currentRawVE, tps);
currentRawVE = interpolateClamped(0.0f, idleVe, CONFIG(idlePidDeactivationTpsThreshold), currentRawVE, tps);
}
currentBaroCorrectedVE = baroCorrection * currentRawVE * PERCENT_DIV;
targetAFR = afrMap.getValue(rpm, map);

View File

@ -57,7 +57,6 @@
#include "mazda_miata_na8.h"
#include "mazda_miata_nb.h"
#include "mazda_miata_vvt.h"
#include "mazda_323.h"
#include "mazda_626.h"
#include "citroenBerlingoTU3JP.h"
@ -67,6 +66,7 @@
#include "test_engine.h"
#include "sachs.h"
#include "vw.h"
#include "vw_b6.h"
#include "daihatsu.h"
#include "chevrolet_camaro_4.h"
#include "suzuki_vitara.h"
@ -286,7 +286,7 @@ static void initTemperatureCurve(float *bins, float *values, int size, float def
void prepareVoidConfiguration(engine_configuration_s *engineConfiguration) {
efiAssertVoid(OBD_PCM_Processor_Fault, engineConfiguration != NULL, "ec NULL");
memset(engineConfiguration, 0, sizeof(engine_configuration_s));
board_configuration_s *boardConfiguration = &engineConfiguration->bc;
// Now that GPIO_UNASSIGNED == 0 we do not really need explicit zero assignments since memset above does that
// todo: migrate 'EFI_ADC_NONE' to '0' and eliminate the need in this method altogether
@ -312,7 +312,7 @@ void prepareVoidConfiguration(engine_configuration_s *engineConfiguration) {
engineConfiguration->tps1_1AdcChannel = EFI_ADC_NONE;
*/
engineConfiguration->tps2_1AdcChannel = EFI_ADC_NONE;
engineConfiguration->bc.auxFastSensor1_adcChannel = EFI_ADC_NONE;
engineConfiguration->auxFastSensor1_adcChannel = EFI_ADC_NONE;
engineConfiguration->acSwitchAdc = EFI_ADC_NONE;
engineConfiguration->externalKnockSenseAdc = EFI_ADC_NONE;
engineConfiguration->fuelLevelSensor = EFI_ADC_NONE;
@ -321,7 +321,7 @@ void prepareVoidConfiguration(engine_configuration_s *engineConfiguration) {
engineConfiguration->high_fuel_pressure_sensor_1 = EFI_ADC_NONE;
engineConfiguration->high_fuel_pressure_sensor_2 = EFI_ADC_NONE;
boardConfiguration->clutchDownPinMode = PI_PULLUP;
engineConfiguration->clutchDownPinMode = PI_PULLUP;
engineConfiguration->clutchUpPinMode = PI_PULLUP;
engineConfiguration->brakePedalPinMode = PI_PULLUP;
}
@ -353,12 +353,12 @@ void setDefaultBasePins(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// set UART pads configuration based on the board
// needed also by bootloader code
boardConfiguration->useSerialPort = true;
engineConfiguration->useSerialPort = true;
engineConfiguration->binarySerialTxPin = GPIOC_10;
engineConfiguration->binarySerialRxPin = GPIOC_11;
engineConfiguration->consoleSerialTxPin = GPIOC_10;
engineConfiguration->consoleSerialRxPin = GPIOC_11;
boardConfiguration->tunerStudioSerialSpeed = TS_DEFAULT_SPEED;
engineConfiguration->tunerStudioSerialSpeed = TS_DEFAULT_SPEED;
engineConfiguration->uartConsoleSerialSpeed = 115200;
#if EFI_PROD_CODE
@ -370,10 +370,10 @@ void setDefaultBasePins(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// needed also by bootloader code
// at the moment bootloader does NOT really need SD card, this is a step towards future bootloader SD card usage
void setDefaultSdCardParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
boardConfiguration->is_enabled_spi_3 = true;
engineConfiguration->is_enabled_spi_3 = true;
engineConfiguration->sdCardSpiDevice = SPI_DEVICE_3;
boardConfiguration->sdCardCsPin = GPIOD_4;
boardConfiguration->isSdCardEnabled = true;
engineConfiguration->sdCardCsPin = GPIOD_4;
engineConfiguration->isSdCardEnabled = true;
#if EFI_PROD_CODE
// call overrided board-specific SD card configuration setup, if needed (for custom boards only)
@ -431,24 +431,53 @@ static void setDefaultWarmupIdleCorrection(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
}
static void setDefaultWarmupFuelEnrichment(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
initTemperatureCurve(WARMUP_CLT_EXTRA_FUEL_CURVE, 1.0);
static const float bins[] =
{
-40,
-30,
-20,
-10,
0,
10,
20,
30,
40,
50,
60,
70,
80,
90,
100,
110
};
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -40, 1.50);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -30, 1.50);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -20, 1.42);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -10, 1.36);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 0, 1.28);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 10, 1.19);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 20, 1.12);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 30, 1.10);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 40, 1.06);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 50, 1.06);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 60, 1.03);
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 70, 1.01);
copyArray(config->cltFuelCorrBins, bins);
static const float values[] =
{
1.50,
1.50,
1.42,
1.36,
1.28,
1.19,
1.12,
1.10,
1.06,
1.06,
1.03,
1.01,
1,
1,
1,
1
};
copyArray(config->cltFuelCorr, values);
}
static void setDefaultFuelCutParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
boardConfiguration->coastingFuelCutEnabled = false;
engineConfiguration->coastingFuelCutEnabled = false;
engineConfiguration->coastingFuelCutRpmLow = 1300;
engineConfiguration->coastingFuelCutRpmHigh = 1500;
engineConfiguration->coastingFuelCutTps = 2;
@ -465,54 +494,64 @@ static void setDefaultCrankingSettings(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
setLinearCurve(config->cltCrankingCorrBins, CLT_CURVE_RANGE_FROM, 100, 1);
setLinearCurve(config->cltCrankingCorr, 1.0, 1.0, 1);
config->crankingFuelCoef[0] = 2.8; // base cranking fuel adjustment coefficient
config->crankingFuelBins[0] = -20; // temperature in C
config->crankingFuelCoef[1] = 2.2;
config->crankingFuelBins[1] = -10;
config->crankingFuelCoef[2] = 1.8;
config->crankingFuelBins[2] = 5;
config->crankingFuelCoef[3] = 1.5;
config->crankingFuelBins[3] = 30;
// Cranking temperature compensation
static const float crankingCoef[] = {
2.8,
2.2,
1.8,
1.5,
1.0,
1.0,
1.0,
1.0
};
copyArray(config->crankingFuelCoef, crankingCoef);
config->crankingFuelCoef[4] = 1.0;
config->crankingFuelBins[4] = 35;
config->crankingFuelCoef[5] = 1.0;
config->crankingFuelBins[5] = 50;
config->crankingFuelCoef[6] = 1.0;
config->crankingFuelBins[6] = 65;
config->crankingFuelCoef[7] = 1.0;
config->crankingFuelBins[7] = 90;
// Deg C
static const float crankingBins[] = {
-20,
-10,
5,
30,
35,
50,
65,
90
};
copyArray(config->crankingFuelBins, crankingBins);
config->crankingCycleCoef[0] = 1.5;
config->crankingCycleBins[0] = 4;
// Cranking cycle compensation
config->crankingCycleCoef[1] = 1.35;
config->crankingCycleBins[1] = 8;
static const float crankingCycleCoef[] = {
1.5,
1.35,
1.05,
0.75,
0.5,
0.5,
0.5,
0.5
};
copyArray(config->crankingCycleCoef, crankingCycleCoef);
config->crankingCycleCoef[2] = 1.05;
config->crankingCycleBins[2] = 12;
static const float crankingCycleBins[] = {
4,
8,
12,
16,
74,
75,
76,
77
};
copyArray(config->crankingCycleBins, crankingCycleBins);
config->crankingCycleCoef[3] = 0.75;
config->crankingCycleBins[3] = 16;
config->crankingCycleCoef[4] = 0.5;
config->crankingCycleBins[4] = 74;
config->crankingCycleCoef[5] = 0.5;
config->crankingCycleBins[5] = 75;
config->crankingCycleCoef[6] = 0.5;
config->crankingCycleBins[6] = 76;
config->crankingCycleCoef[7] = 0.5;
config->crankingCycleBins[7] = 77;
engineConfiguration->crankingAdvance[0] = 0;
engineConfiguration->crankingAdvanceBins[0] = 0;
engineConfiguration->crankingAdvance[1] = 0;
engineConfiguration->crankingAdvanceBins[1] = 200;
engineConfiguration->crankingAdvance[2] = 0;
engineConfiguration->crankingAdvanceBins[2] = 400;
engineConfiguration->crankingAdvance[3] = 0;
engineConfiguration->crankingAdvanceBins[3] = 1000;
// Cranking ignition timing
static const float advanceValues[] = { 0, 0, 0, 0 };
copyArray(engineConfiguration->crankingAdvance, advanceValues);
static const float advanceBins[] = { 0, 200, 400, 1000 };
copyArray(engineConfiguration->crankingAdvanceBins, advanceBins);
}
/**
@ -536,21 +575,20 @@ static void setDefaultIdleSpeedTarget(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
setCurveValue(engineConfiguration->cltIdleRpmBins, engineConfiguration->cltIdleRpm, CLT_CURVE_SIZE, 90, 900);
setCurveValue(engineConfiguration->cltIdleRpmBins, engineConfiguration->cltIdleRpm, CLT_CURVE_SIZE, 100, 1000);
setCurveValue(engineConfiguration->cltIdleRpmBins, engineConfiguration->cltIdleRpm, CLT_CURVE_SIZE, 110, 1100);
}
static void setDefaultStepperIdleParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
boardConfiguration->idle.stepperDirectionPin = GPIOE_10;
boardConfiguration->idle.stepperStepPin = GPIOE_12;
engineConfiguration->idle.stepperDirectionPin = GPIOE_10;
engineConfiguration->idle.stepperStepPin = GPIOE_12;
engineConfiguration->stepperEnablePin = GPIOE_14;
engineConfiguration->idleStepperReactionTime = 10;
engineConfiguration->idleStepperTotalSteps = 150;
}
static void setCanFrankensoDefaults(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
boardConfiguration->canDeviceMode = CD_USE_CAN2;
boardConfiguration->canTxPin = GPIOB_6;
boardConfiguration->canRxPin = GPIOB_12;
engineConfiguration->canDeviceMode = CD_USE_CAN2;
engineConfiguration->canTxPin = GPIOB_6;
engineConfiguration->canRxPin = GPIOB_12;
}
/**
@ -619,14 +657,14 @@ static void setDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->canWriteEnabled = true;
engineConfiguration->canNbcType = CAN_BUS_MAZDA_RX8;
boardConfiguration->sdCardPeriodMs = 50;
engineConfiguration->sdCardPeriodMs = 50;
for (int i = 0; i < FSIO_COMMAND_COUNT; i++) {
config->fsioFormulas[i][0] = 0;
}
CONFIGB(mapMinBufferLength) = 1;
CONFIG(mapMinBufferLength) = 1;
engineConfiguration->idlePidRpmDeadZone = 50;
engineConfiguration->startOfCrankingPrimingPulse = 0;
@ -768,7 +806,7 @@ static void setDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->fuelClosedLoopCltThreshold = 70;
engineConfiguration->fuelClosedLoopRpmThreshold = 900;
engineConfiguration->fuelClosedLoopTpsThreshold = 80;
boardConfiguration->fuelClosedLoopAfrLowThreshold = 10.3;
engineConfiguration->fuelClosedLoopAfrLowThreshold = 10.3;
engineConfiguration->fuelClosedLoopAfrHighThreshold = 19.8;
engineConfiguration->fuelClosedLoopPid.pFactor = -0.1;
@ -783,16 +821,16 @@ static void setDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->idleRpmPid.minValue = 0.1;
engineConfiguration->idleRpmPid.maxValue = 99;
boardConfiguration->idlePidDeactivationTpsThreshold = 2;
engineConfiguration->idlePidDeactivationTpsThreshold = 2;
boardConfiguration->idle.solenoidFrequency = 200;
engineConfiguration->idle.solenoidFrequency = 200;
// set idle_position 50
boardConfiguration->manIdlePosition = 50;
engineConfiguration->manIdlePosition = 50;
engineConfiguration->crankingIACposition = 50;
// engineConfiguration->idleMode = IM_AUTO;
engineConfiguration->idleMode = IM_MANUAL;
boardConfiguration->useStepperIdle = false;
engineConfiguration->useStepperIdle = false;
setDefaultStepperIdleParameters(PASS_ENGINE_PARAMETER_SIGNATURE);
@ -812,7 +850,7 @@ static void setDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#endif
// performance optimization
boardConfiguration->sensorChartMode = SC_OFF;
engineConfiguration->sensorChartMode = SC_OFF;
engineConfiguration->storageMode = MS_AUTO;
@ -907,13 +945,13 @@ static void setDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->knockDetectionWindowStart = 35;
engineConfiguration->knockDetectionWindowEnd = 135;
boardConfiguration->fuelLevelEmptyTankVoltage = 0;
boardConfiguration->fuelLevelFullTankVoltage = 5;
engineConfiguration->fuelLevelEmptyTankVoltage = 0;
engineConfiguration->fuelLevelFullTankVoltage = 5;
/**
* this is RPM. 10000 rpm is only 166Hz, 800 rpm is 13Hz
*/
boardConfiguration->triggerSimulatorFrequency = 1200;
engineConfiguration->triggerSimulatorFrequency = 1200;
engineConfiguration->alternatorPwmFrequency = 300;
@ -926,24 +964,24 @@ static void setDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->vehicleSpeedCoef = 1.0f;
boardConfiguration->logicAnalyzerMode[0] = false;
boardConfiguration->logicAnalyzerMode[1] = false;
engineConfiguration->logicAnalyzerMode[0] = false;
engineConfiguration->logicAnalyzerMode[1] = false;
engineConfiguration->mapErrorDetectionTooLow = 5;
engineConfiguration->mapErrorDetectionTooHigh = 250;
boardConfiguration->idleThreadPeriodMs = 100;
boardConfiguration->consoleLoopPeriodMs = 200;
boardConfiguration->lcdThreadPeriodMs = 300;
boardConfiguration->generalPeriodicThreadPeriodMs = 50;
boardConfiguration->useLcdScreen = true;
engineConfiguration->idleThreadPeriodMs = 100;
engineConfiguration->consoleLoopPeriodMs = 200;
engineConfiguration->lcdThreadPeriodMs = 300;
engineConfiguration->generalPeriodicThreadPeriodMs = 50;
engineConfiguration->useLcdScreen = true;
engineConfiguration->hip9011Gain = 1;
boardConfiguration->isFastAdcEnabled = true;
boardConfiguration->isEngineControlEnabled = true;
engineConfiguration->isFastAdcEnabled = true;
engineConfiguration->isEngineControlEnabled = true;
boardConfiguration->isVerboseAlternator = false;
engineConfiguration->isVerboseAlternator = false;
engineConfiguration->engineLoadAccelLength = 6;
engineConfiguration->engineLoadAccelEnrichmentThreshold = 5; // kPa
@ -962,7 +1000,7 @@ static void setDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
* <reboot ECU>
* fsioinfo
*/
boardConfiguration->fsio_setting[0] = 5000;
engineConfiguration->fsio_setting[0] = 5000;
// simple warning light as default configuration
// set_fsio_expression 1 "rpm > fsio_setting(1)"
setFsio(0, GPIO_UNASSIGNED, RPM_ABOVE_USER_SETTING_1 PASS_CONFIG_PARAMETER_SUFFIX);
@ -985,36 +1023,36 @@ void setDefaultFrankensoConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->hip9011SpiDevice = SPI_DEVICE_2;
engineConfiguration->cj125SpiDevice = SPI_DEVICE_2;
// boardConfiguration->gps_rx_pin = GPIOB_7;
// boardConfiguration->gps_tx_pin = GPIOB_6;
// engineConfiguration->gps_rx_pin = GPIOB_7;
// engineConfiguration->gps_tx_pin = GPIOB_6;
boardConfiguration->triggerSimulatorPins[0] = GPIOD_1;
boardConfiguration->triggerSimulatorPins[1] = GPIOD_2;
engineConfiguration->triggerSimulatorPins[0] = GPIOD_1;
engineConfiguration->triggerSimulatorPins[1] = GPIOD_2;
boardConfiguration->triggerInputPins[0] = GPIOC_6;
boardConfiguration->triggerInputPins[1] = GPIOA_5;
engineConfiguration->triggerInputPins[0] = GPIOC_6;
engineConfiguration->triggerInputPins[1] = GPIOA_5;
//boardConfiguration->logicAnalyzerPins[1] = GPIOE_5; // GPIOE_5 is a popular option (if available)
//engineConfiguration->logicAnalyzerPins[1] = GPIOE_5; // GPIOE_5 is a popular option (if available)
// set this to SPI_DEVICE_3 to enable stimulation
//boardConfiguration->digitalPotentiometerSpiDevice = SPI_DEVICE_3;
boardConfiguration->digitalPotentiometerChipSelect[0] = GPIOD_7;
boardConfiguration->digitalPotentiometerChipSelect[1] = GPIO_UNASSIGNED;
boardConfiguration->digitalPotentiometerChipSelect[2] = GPIOD_5;
boardConfiguration->digitalPotentiometerChipSelect[3] = GPIO_UNASSIGNED;
//engineConfiguration->digitalPotentiometerSpiDevice = SPI_DEVICE_3;
engineConfiguration->digitalPotentiometerChipSelect[0] = GPIOD_7;
engineConfiguration->digitalPotentiometerChipSelect[1] = GPIO_UNASSIGNED;
engineConfiguration->digitalPotentiometerChipSelect[2] = GPIOD_5;
engineConfiguration->digitalPotentiometerChipSelect[3] = GPIO_UNASSIGNED;
boardConfiguration->spi1mosiPin = GPIOB_5;
boardConfiguration->spi1misoPin = GPIOB_4;
boardConfiguration->spi1sckPin = GPIOB_3; // please note that this pin is also SWO/SWD - Single Wire debug Output
engineConfiguration->spi1mosiPin = GPIOB_5;
engineConfiguration->spi1misoPin = GPIOB_4;
engineConfiguration->spi1sckPin = GPIOB_3; // please note that this pin is also SWO/SWD - Single Wire debug Output
boardConfiguration->spi2mosiPin = GPIOB_15;
boardConfiguration->spi2misoPin = GPIOB_14;
boardConfiguration->spi2sckPin = GPIOB_13;
engineConfiguration->spi2mosiPin = GPIOB_15;
engineConfiguration->spi2misoPin = GPIOB_14;
engineConfiguration->spi2sckPin = GPIOB_13;
boardConfiguration->spi3mosiPin = GPIOB_5;
boardConfiguration->spi3misoPin = GPIOB_4;
boardConfiguration->spi3sckPin = GPIOB_3;
engineConfiguration->spi3mosiPin = GPIOB_5;
engineConfiguration->spi3misoPin = GPIOB_4;
engineConfiguration->spi3sckPin = GPIOB_3;
// set optional subsystem configs
#if EFI_MEMS
@ -1030,9 +1068,9 @@ void setDefaultFrankensoConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setDefaultSdCardParameters(PASS_CONFIG_PARAMETER_SIGNATURE);
#endif /* EFI_FILE_LOGGING */
boardConfiguration->is_enabled_spi_1 = false;
boardConfiguration->is_enabled_spi_2 = false;
boardConfiguration->is_enabled_spi_3 = true;
engineConfiguration->is_enabled_spi_1 = false;
engineConfiguration->is_enabled_spi_2 = false;
engineConfiguration->is_enabled_spi_3 = true;
}
void resetConfigurationExt(Logging * logger, configuration_callback_t boardCallback, engine_type_e engineType DECLARE_ENGINE_PARAMETER_SUFFIX) {
@ -1077,8 +1115,11 @@ void resetConfigurationExt(Logging * logger, configuration_callback_t boardCallb
case ISSUE_898:
setIssue898(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
case MRE_MIATA_NB2_MTB:
setMiataNB2_MRE_MTB(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
case MRE_MIATA_NB2:
setMiataNB2_MRE(PASS_CONFIG_PARAMETER_SIGNATURE);
setMiataNB2_MRE_ETB(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
case PROMETHEUS_DEFAULTS:
case MINIMAL_PINS:
@ -1172,9 +1213,6 @@ void resetConfigurationExt(Logging * logger, configuration_callback_t boardCallb
case MAZDA_MIATA_NB1:
setMazdaMiataNb1EngineConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
case MAZDA_323:
setMazda323EngineConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
case MAZDA_626:
setMazda626EngineConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
@ -1289,7 +1327,7 @@ void validateConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
void applyNonPersistentConfiguration(Logging * logger DECLARE_ENGINE_PARAMETER_SUFFIX) {
#if EFI_PROD_CODE
efiAssertVoid(CUSTOM_APPLY_STACK, getCurrentRemainingStack() > 256, "apply c");
efiAssertVoid(CUSTOM_APPLY_STACK, getCurrentRemainingStack() > EXPECTED_REMAINING_STACK, "apply c");
scheduleMsg(logger, "applyNonPersistentConfiguration()");
#endif
@ -1335,12 +1373,12 @@ void commonFrankensoAnalogInputs(engine_configuration_s *engineConfiguration) {
}
void setFrankenso0_1_joystick(engine_configuration_s *engineConfiguration) {
board_configuration_s *boardConfiguration = &engineConfiguration->bc;
boardConfiguration->joystickCenterPin = GPIOC_8;
boardConfiguration->joystickAPin = GPIOD_10;
boardConfiguration->joystickBPin = GPIO_UNASSIGNED;
boardConfiguration->joystickCPin = GPIO_UNASSIGNED;
boardConfiguration->joystickDPin = GPIOD_11;
engineConfiguration->joystickCenterPin = GPIOC_8;
engineConfiguration->joystickAPin = GPIOD_10;
engineConfiguration->joystickBPin = GPIO_UNASSIGNED;
engineConfiguration->joystickCPin = GPIO_UNASSIGNED;
engineConfiguration->joystickDPin = GPIOD_11;
}
void copyTargetAfrTable(fuel_table_t const source, afr_table_t destination) {

View File

@ -3,11 +3,10 @@
* @brief Main engine configuration data structure.
*
* @date Oct 30, 2013
* @author Andrey Belomutskiy, (c) 2012-2017
* @author Andrey Belomutskiy, (c) 2012-2019
*/
#ifndef ENGINE_CONFIGURATION_H_
#define ENGINE_CONFIGURATION_H_
#pragma once
#include "globalaccess.h"
#include "crc.h"
@ -24,19 +23,6 @@
#define MOCK_UNDEFINED -1
// WARNING: by default, our small enums are ONE BYTE. this one is made 4-byte with the 'ENUM_32_BITS' hack
/**
* @brief Engine configuration.
* Values in this data structure are adjustable and persisted in on-board flash RAM.
*
* The offsets are tracked using
* https://docs.google.com/spreadsheet/ccc?key=0AiAmAn6tn3L_dGJXZDZOcVVhaG9SaHZKU1dyMjhEV0E
*
* todo: currently the fields here are simply in the order in which they were implemented
* todo: re-arrange this structure one we have a stable code version
*/
float getRpmMultiplier(operation_mode_e mode);
void setOperationMode(engine_configuration_s *engineConfiguration, operation_mode_e mode);
@ -89,5 +75,3 @@ typedef void (*configuration_callback_t)(engine_configuration_s*);
void resetConfigurationExt(Logging * logger, configuration_callback_t boardCallback, engine_type_e engineType DECLARE_ENGINE_PARAMETER_SUFFIX);
void resetConfigurationExt(Logging * logger, engine_type_e engineType DECLARE_ENGINE_PARAMETER_SUFFIX);
#endif /* __cplusplus */
#endif /* ENGINE_CONFIGURATION_H_ */

View File

@ -344,7 +344,7 @@ float getFuelCutOffCorrection(efitick_t nowNt, int rpm DECLARE_ENGINE_PARAMETER_
float fuelCorr = 1.0f;
// coasting fuel cut-off correction
if (CONFIGB(coastingFuelCutEnabled)) {
if (CONFIG(coastingFuelCutEnabled)) {
percent_t tpsPos = getTPS(PASS_ENGINE_PARAMETER_SIGNATURE);
float map = getMap(PASS_ENGINE_PARAMETER_SIGNATURE);

View File

@ -1927,7 +1927,7 @@ typedef enum {
CUSTOM_ERR_6575 = 6575,
CUSTOM_ERR_6576 = 6576,
CUSTOM_ERR_6577 = 6577,
CUSTOM_ERR_6578 = 6578,
CUSTOM_NULL_ENGINE_PTR = 6578,
CUSTOM_DUTY_TOO_LOW = 6579,
CUSTOM_ERR_6580 = 6580,
@ -2081,7 +2081,7 @@ typedef enum {
CUSTOM_INVALID_ADC = 6720,
CUSTOM_ERR_6721 = 6721,
CUSTOM_INVALID_MODE_SETTING = 6721,
CUSTOM_ERR_6722 = 6722,
CUSTOM_ERR_6723 = 6723,
CUSTOM_ERR_6724 = 6724,

View File

@ -16,14 +16,6 @@
// https://stackoverflow.com/questions/21593/what-is-the-difference-between-include-filename-and-include-filename
#include <rusefi_hw_enums.h>
#define ENUM_16_BITS 20000
#define DIGIPOT_COUNT 4
#define TRIGGER_SIMULATOR_PIN_COUNT 3
#define LOGIC_ANALYZER_CHANNEL_COUNT 4
// I believe that TunerStudio curve editor has a bug with F32 support
// because of that bug we cannot have '1.05' for 5% extra multiplier
/**
@ -68,7 +60,7 @@ typedef enum {
ROVER_V8 = 10,
MAZDA_323 = 11,
MRE_MIATA_NB2_MTB = 11,
MRE_MIATA_NA6 = 12,
@ -189,6 +181,8 @@ typedef enum {
PROTEUS = 61,
VW_B6 = 62,
/**
* this configuration has as few pins configured as possible
*/

View File

@ -30,7 +30,7 @@ typedef unsigned int time_t;
typedef time_t efitimesec_t;
/**
* integer time in milliseconds
* integer time in milliseconds (1/1_000 of a second)
* 32 bit 4B / 1000 = 4M seconds = 1111.11 hours = 46 days.
* Please restart your ECU every 46 days? :)
* See getTimeNowUs()
@ -51,10 +51,16 @@ typedef int pid_dt;
typedef int64_t efitime_t;
/**
* 64 bit time in microseconds, since boot
* 64 bit time in microseconds (1/1_000_000 of a second), since boot
*/
typedef efitime_t efitimeus_t;
/**
* 64 bit time in milliseconds (1/1_000 of a second), since boot
*/
typedef efitime_t efitimems64_t;
/**
* platform-dependent tick since boot
* in case of stm32f4 that's a CPU tick

View File

@ -34,12 +34,21 @@
#endif /* __cplusplus */
/**
* reference to configuration parameter
* reference to configuration parameter.
*/
#define DISPLAY_CONFIG(x) x
/**
* The main annotation of live data - reference to dynamic state variable
* See also 'TS_GET_STRUCT'
* The advantage of Live Data is that there is no need to copy data into tsOutputChannels structure - Live Data is reading exactly
* the same data as actual runtime logic. It's also important to have annotations of the View as close to actual implementation as possible
* to increase the changes of those being in sync.
*
* One day Live Data could be replace with a Domain Specific Language
* One day all Live Data could be provided to TS without data copy to tsOutputChannels - the idea is to have a virtual tsOutputChannels
* where rusEfi would pull data from different memory ranges depending on the requested offset, more or less virtual pages. This could depend
* on the TS bugfix described in https://github.com/rusefi/rusefi/issues/794?
*
*/
#define DISPLAY_FIELD(x) x
/**
@ -68,20 +77,18 @@
#define DECLARE_ENGINE_PTR \
Engine *engine = nullptr; \
engine_configuration_s *engineConfiguration = nullptr; \
persistent_config_s *config = nullptr; \
board_configuration_s *boardConfiguration = nullptr;
persistent_config_s *config = nullptr;
#define INJECT_ENGINE_REFERENCE(x) \
(x)->engine = engine; \
(x)->engineConfiguration = engineConfiguration; \
(x)->config = config; \
(x)->boardConfiguration = boardConfiguration;
(x)->config = config;
#define EXPAND_Engine \
engine_configuration_s *engineConfiguration = engine->engineConfigurationPtr; \
persistent_config_s *config = engine->config; \
board_configuration_s *boardConfiguration = &engineConfiguration->bc;
#ifndef EFI_ACTIVE_CONFIGURATION_IN_FLASH
// We store a special changeable copy of configuration is RAM, so we can just compare them

View File

@ -254,7 +254,7 @@ bool LECalculator::processElement(LEElement *element DECLARE_ENGINE_PARAMETER_SU
float humanIndex = pop(LE_METHOD_FSIO_SETTING);
int index = (int) humanIndex - 1;
if (index >= 0 && index < FSIO_COMMAND_COUNT) {
push(element->action, CONFIGB(fsio_setting)[index]);
push(element->action, CONFIG(fsio_setting)[index]);
} else {
push(element->action, NAN);
}

View File

@ -229,7 +229,7 @@ static void setFsioOutputPin(const char *indexStr, const char *pinName) {
scheduleMsg(logger, "invalid pin name [%s]", pinName);
return;
}
CONFIGB(fsioOutputPins)[index] = pin;
CONFIG(fsioOutputPins)[index] = pin;
scheduleMsg(logger, "FSIO output pin #%d [%s]", (index + 1), hwPortname(pin));
scheduleMsg(logger, "please writeconfig and reboot for pin to take effect");
showFsioInfo();
@ -242,13 +242,13 @@ static void setFsioOutputPin(const char *indexStr, const char *pinName) {
* index is between zero and LE_COMMAND_LENGTH-1
*/
void setFsioExt(int index, brain_pin_e pin, const char * formula, int pwmFrequency DECLARE_CONFIG_PARAMETER_SUFFIX) {
CONFIGB(fsioOutputPins)[index] = pin;
CONFIG(fsioOutputPins)[index] = pin;
int len = strlen(formula);
if (len >= LE_COMMAND_LENGTH) {
return;
}
strcpy(config->fsioFormulas[index], formula);
CONFIGB(fsioFrequency)[index] = pwmFrequency;
CONFIG(fsioFrequency)[index] = pwmFrequency;
}
void setFsio(int index, brain_pin_e pin, const char * exp DECLARE_CONFIG_PARAMETER_SUFFIX) {
@ -260,7 +260,7 @@ void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
for (int i = 0; i < FSIO_COMMAND_COUNT; i++) {
const char *formula = config->fsioFormulas[i];
LEElement *logic = userPool.parseExpression(formula);
brain_pin_e brainPin = CONFIGB(fsioOutputPins)[i];
brain_pin_e brainPin = CONFIG(fsioOutputPins)[i];
if (brainPin != GPIO_UNASSIGNED && logic == NULL) {
warning(CUSTOM_FSIO_PARSING, "parsing [%s]", formula);
}
@ -321,7 +321,7 @@ static const char *getGpioPinName(int index) {
float getFsioOutputValue(int index DECLARE_ENGINE_PARAMETER_SUFFIX) {
if (state.fsioLogics[index] == NULL) {
warning(CUSTOM_NO_FSIO, "no FSIO for #%d %s", index + 1, hwPortname(CONFIGB(fsioOutputPins)[index]));
warning(CUSTOM_NO_FSIO, "no FSIO for #%d %s", index + 1, hwPortname(CONFIG(fsioOutputPins)[index]));
return NAN;
} else {
return calc.getValue2(engine->fsioState.fsioLastValue[index], state.fsioLogics[index] PASS_ENGINE_PARAMETER_SUFFIX);
@ -332,12 +332,12 @@ float getFsioOutputValue(int index DECLARE_ENGINE_PARAMETER_SUFFIX) {
* @param index from zero for (FSIO_COMMAND_COUNT - 1)
*/
static void handleFsio(int index DECLARE_ENGINE_PARAMETER_SUFFIX) {
if (CONFIGB(fsioOutputPins)[index] == GPIO_UNASSIGNED) {
if (CONFIG(fsioOutputPins)[index] == GPIO_UNASSIGNED) {
engine->fsioState.fsioLastValue[index] = NAN;
return;
}
bool isPwmMode = CONFIGB(fsioFrequency)[index] != NO_PWM;
bool isPwmMode = CONFIG(fsioFrequency)[index] != NO_PWM;
float fvalue = getFsioOutputValue(index PASS_ENGINE_PARAMETER_SUFFIX);
engine->fsioState.fsioLastValue[index] = fvalue;
@ -410,11 +410,11 @@ static void setFsioFrequency(int index, int frequency) {
scheduleMsg(logger, "invalid FSIO index: %d", index);
return;
}
CONFIGB(fsioFrequency)[index] = frequency;
CONFIG(fsioFrequency)[index] = frequency;
if (frequency == 0) {
scheduleMsg(logger, "FSIO output #%d@%s set to on/off mode", index + 1, hwPortname(CONFIGB(fsioOutputPins)[index]));
scheduleMsg(logger, "FSIO output #%d@%s set to on/off mode", index + 1, hwPortname(CONFIG(fsioOutputPins)[index]));
} else {
scheduleMsg(logger, "Setting FSIO frequency %dHz on #%d@%s", frequency, index + 1, hwPortname(CONFIGB(fsioOutputPins)[index]));
scheduleMsg(logger, "Setting FSIO frequency %dHz on #%d@%s", frequency, index + 1, hwPortname(CONFIG(fsioOutputPins)[index]));
}
}
#endif /* EFI_PROD_CODE */
@ -449,23 +449,23 @@ void runFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
}
#if EFI_FUEL_PUMP
if (CONFIGB(fuelPumpPin) != GPIO_UNASSIGNED) {
if (CONFIG(fuelPumpPin) != GPIO_UNASSIGNED) {
setPinState("pump", &enginePins.fuelPumpRelay, fuelPumpLogic PASS_ENGINE_PARAMETER_SUFFIX);
}
#endif /* EFI_FUEL_PUMP */
#if EFI_MAIN_RELAY_CONTROL
if (CONFIGB(mainRelayPin) != GPIO_UNASSIGNED)
if (CONFIG(mainRelayPin) != GPIO_UNASSIGNED)
setPinState("main_relay", &enginePins.mainRelay, mainRelayLogic PASS_ENGINE_PARAMETER_SUFFIX);
#else /* EFI_MAIN_RELAY_CONTROL */
/**
* main relay is always on if ECU is on, that's a good enough initial implementation
*/
if (CONFIGB(mainRelayPin) != GPIO_UNASSIGNED)
if (CONFIG(mainRelayPin) != GPIO_UNASSIGNED)
enginePins.mainRelay.setValue(true);
#endif /* EFI_MAIN_RELAY_CONTROL */
if (CONFIGB(starterRelayPin) != GPIO_UNASSIGNED)
if (CONFIG(starterRelayPin) != GPIO_UNASSIGNED)
setPinState("starter_relay", &enginePins.starterRelay, starterRelayLogic PASS_ENGINE_PARAMETER_SUFFIX);
/**
@ -475,15 +475,15 @@ void runFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
*/
enginePins.o2heater.setValue(engine->rpmCalculator.isRunning(PASS_ENGINE_PARAMETER_SIGNATURE));
if (CONFIGB(acRelayPin) != GPIO_UNASSIGNED) {
if (CONFIG(acRelayPin) != GPIO_UNASSIGNED) {
setPinState("A/C", &enginePins.acRelay, acRelayLogic PASS_ENGINE_PARAMETER_SUFFIX);
}
// if (CONFIGB(alternatorControlPin) != GPIO_UNASSIGNED) {
// if (CONFIG(alternatorControlPin) != GPIO_UNASSIGNED) {
// setPinState("alternator", &enginePins.alternatorField, alternatorLogic, engine PASS_ENGINE_PARAMETER_SUFFIX);
// }
if (CONFIGB(fanPin) != GPIO_UNASSIGNED) {
if (CONFIG(fanPin) != GPIO_UNASSIGNED) {
setPinState("fan", &enginePins.fanRelay, radiatorFanLogic PASS_ENGINE_PARAMETER_SUFFIX);
}
@ -573,14 +573,14 @@ static void showFsioInfo(void) {
* is the fact that the target audience is more software developers
*/
scheduleMsg(logger, "FSIO #%d [%s] at %s@%dHz value=%.2f", (i + 1), exp,
hwPortname(CONFIGB(fsioOutputPins)[i]), CONFIGB(fsioFrequency)[i],
hwPortname(CONFIG(fsioOutputPins)[i]), CONFIG(fsioFrequency)[i],
engine->fsioState.fsioLastValue[i]);
// scheduleMsg(logger, "user-defined #%d value=%.2f", i, engine->engineConfigurationPtr2->fsioLastValue[i]);
showFsio(NULL, state.fsioLogics[i]);
}
}
for (int i = 0; i < FSIO_COMMAND_COUNT; i++) {
float v = CONFIGB(fsio_setting)[i];
float v = CONFIG(fsio_setting)[i];
if (!cisnan(v)) {
scheduleMsg(logger, "user property #%d: %.2f", i + 1, v);
}
@ -604,7 +604,7 @@ static void setFsioSetting(float humanIndexF, float value) {
scheduleMsg(logger, "invalid FSIO index: %d", (int)humanIndexF);
return;
}
engineConfiguration->bc.fsio_setting[index] = value;
engineConfiguration->fsio_setting[index] = value;
showFsioInfo();
#endif
}
@ -674,20 +674,20 @@ void initFsioImpl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
alternatorLogic = sysPool.parseExpression(ALTERNATOR_LOGIC);
#if EFI_MAIN_RELAY_CONTROL
if (CONFIGB(mainRelayPin) != GPIO_UNASSIGNED)
if (CONFIG(mainRelayPin) != GPIO_UNASSIGNED)
mainRelayLogic = sysPool.parseExpression(MAIN_RELAY_LOGIC);
#endif /* EFI_MAIN_RELAY_CONTROL */
if (CONFIGB(starterRelayPin) != GPIO_UNASSIGNED)
if (CONFIG(starterRelayPin) != GPIO_UNASSIGNED)
starterRelayLogic = sysPool.parseExpression(STARTER_RELAY_LOGIC);
#if EFI_PROD_CODE
for (int i = 0; i < FSIO_COMMAND_COUNT; i++) {
brain_pin_e brainPin = CONFIGB(fsioOutputPins)[i];
brain_pin_e brainPin = CONFIG(fsioOutputPins)[i];
if (brainPin != GPIO_UNASSIGNED) {
int frequency = CONFIGB(fsioFrequency)[i];
int frequency = CONFIG(fsioFrequency)[i];
if (frequency == 0) {
enginePins.fsioOutputs[i].initPin(getGpioPinName(i), CONFIGB(fsioOutputPins)[i], &DEFAULT_OUTPUT);
enginePins.fsioOutputs[i].initPin(getGpioPinName(i), CONFIG(fsioOutputPins)[i], &DEFAULT_OUTPUT);
} else {
startSimplePwmExt(&fsioPwm[i], "FSIOpwm",
&engine->executor,
@ -739,24 +739,24 @@ extern EnginePins enginePins;
// "Limp-mode" implementation for some RAM-limited configs without FSIO
void runHardcodedFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
// see MAIN_RELAY_LOGIC
if (CONFIGB(mainRelayPin) != GPIO_UNASSIGNED) {
if (CONFIG(mainRelayPin) != GPIO_UNASSIGNED) {
enginePins.mainRelay.setValue((getTimeNowSeconds() < 2) || (getVBatt(PASS_ENGINE_PARAMETER_SIGNATURE) > 5) || engine->isInShutdownMode());
}
// see STARTER_RELAY_LOGIC
if (CONFIGB(starterRelayPin) != GPIO_UNASSIGNED) {
if (CONFIG(starterRelayPin) != GPIO_UNASSIGNED) {
enginePins.starterRelay.setValue(engine->rpmCalculator.getRpm() < engineConfiguration->cranking.rpm);
}
// see FAN_CONTROL_LOGIC
if (CONFIGB(fanPin) != GPIO_UNASSIGNED) {
if (CONFIG(fanPin) != GPIO_UNASSIGNED) {
enginePins.fanRelay.setValue((enginePins.fanRelay.getLogicValue() && (getCoolantTemperature() > engineConfiguration->fanOffTemperature)) ||
(getCoolantTemperature() > engineConfiguration->fanOnTemperature) || engine->isCltBroken);
}
// see AC_RELAY_LOGIC
if (CONFIGB(acRelayPin) != GPIO_UNASSIGNED) {
if (CONFIG(acRelayPin) != GPIO_UNASSIGNED) {
enginePins.acRelay.setValue(getAcToggle(PASS_ENGINE_PARAMETER_SIGNATURE) && engine->rpmCalculator.getRpm() > 850);
}
// see FUEL_PUMP_LOGIC
if (CONFIGB(fuelPumpPin) != GPIO_UNASSIGNED) {
if (CONFIG(fuelPumpPin) != GPIO_UNASSIGNED) {
enginePins.fuelPumpRelay.setValue((getTimeNowSeconds() < engineConfiguration->startUpFuelPumpDuration) || (engine->rpmCalculator.getRpm() > 0));
}

View File

@ -3,11 +3,10 @@
* @brief FSIO as it's used for GPIO
*
* @date Oct 5, 2014
* @author Andrey Belomutskiy, (c) 2012-2017
* @author Andrey Belomutskiy, (c) 2012-2019
*/
#ifndef LE_FUNCTIONS_H_
#define LE_FUNCTIONS_H_
#pragma once
#include "fsio_core.h"
#include "engine.h"
@ -43,4 +42,3 @@ void runHardcodedFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE);
ValueProvider3D *getFSIOTable(int index);
#endif /* LE_FUNCTIONS_H_ */

View File

@ -23,44 +23,49 @@
#include "global.h"
#include "os_access.h"
#if EFI_SENSOR_CHART
#include "sensor_chart.h"
#endif
#include "engine_configuration.h"
#include "trigger_central.h"
#include "engine_controller.h"
#include "fsio_core.h"
#include "fsio_impl.h"
#include "idle_thread.h"
#include "advance_map.h"
#include "rpm_calculator.h"
#include "main_trigger_callback.h"
#include "io_pins.h"
#include "flash_main.h"
#if EFI_TUNER_STUDIO
#include "tunerstudio.h"
#endif
#include "injector_central.h"
#include "os_util.h"
#include "engine_math.h"
#if EFI_LOGIC_ANALYZER
#include "logic_analyzer.h"
#endif
#include "allsensors.h"
#include "electronic_throttle.h"
#include "map_averaging.h"
#include "malfunction_central.h"
#include "malfunction_indicator.h"
#include "engine.h"
#include "algo.h"
#include "speed_density.h"
#include "local_version_holder.h"
#include "alternator_controller.h"
#include "fuel_math.h"
#include "settings.h"
#include "aux_pid.h"
#include "spark_logic.h"
#include "aux_valves.h"
#include "accelerometer.h"
#include "counter64.h"
#include "perf_trace.h"
#if EFI_SENSOR_CHART
#include "sensor_chart.h"
#endif
#if EFI_TUNER_STUDIO
#include "tunerstudio.h"
#endif
#if EFI_LOGIC_ANALYZER
#include "logic_analyzer.h"
#endif
#if HAL_USE_ADC
#include "AdcConfiguration.h"
#endif /* HAL_USE_ADC */
@ -94,8 +99,13 @@
EXTERN_ENGINE;
// this method is used by real firmware and simulator and unit test
void mostCommonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
void initDataStructures(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
initFuelMap(PASS_ENGINE_PARAMETER_SIGNATURE);
initTimingMap(PASS_ENGINE_PARAMETER_SIGNATURE);
initSpeedDensity(PASS_ENGINE_PARAMETER_SIGNATURE);
}
static void mostCommonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
#if !EFI_UNIT_TEST
initSensors();
#endif /* EFI_UNIT_TEST */
@ -157,7 +167,7 @@ class PeriodicSlowController : public PeriodicTimerController {
int getPeriodMs() override {
// we need at least protection from zero value while resetting configuration
int periodMs = maxI(50, CONFIGB(generalPeriodicThreadPeriodMs));
int periodMs = maxI(50, CONFIG(generalPeriodicThreadPeriodMs));
return periodMs;
}
};
@ -207,7 +217,7 @@ static Overflow64Counter halTime;
*/
//todo: macro to save method invocation
efitimeus_t getTimeNowUs(void) {
ScopePerf perf(PE::ScheduleByAngle);
ScopePerf perf(PE::GetTimeNowUs);
return getTimeNowNt() / (CORE_CLOCK / 1000000);
}
@ -298,8 +308,6 @@ static void resetAccel(void) {
}
}
static int previousSecond;
#if ENABLE_PERF_TRACE
void irqEnterHook(void) {
@ -389,7 +397,7 @@ static void printAnalogChannelInfoExt(const char *name, adc_channel_e hwChannel,
}
if (fastAdc.isHwUsed(hwChannel)) {
scheduleMsg(&logger, "fast enabled=%s", boolToString(CONFIGB(isFastAdcEnabled)));
scheduleMsg(&logger, "fast enabled=%s", boolToString(CONFIG(isFastAdcEnabled)));
}
float voltage = adcVoltage * dividerCoeff;
@ -659,13 +667,29 @@ static void getKnockInfo(void) {
engine->printKnockState();
}
#endif /* EFI_UNIT_TEST */
// this method is used by real firmware and simulator but not unit tests
// this method is used by real firmware and simulator and unit test
void commonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
initInterpolation(sharedLogger);
#if EFI_SIMULATOR
printf("commonInitEngineController\n");
#endif
#if !EFI_UNIT_TEST
initConfigActions();
#endif /* EFI_UNIT_TEST */
#if EFI_ENGINE_CONTROL
/**
* This has to go after 'initInjectorCentral' in order to
* properly detect un-assigned output pins
*/
prepareShapes(PASS_ENGINE_PARAMETER_SIGNATURE);
#endif /* EFI_PROD_CODE && EFI_ENGINE_CONTROL */
#if EFI_ENABLE_MOCK_ADC
initMockVoltage();
#endif /* EFI_ENABLE_MOCK_ADC */
@ -674,10 +698,6 @@ void commonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_S
initSensorChart();
#endif /* EFI_SENSOR_CHART */
#if EFI_PROD_CODE || EFI_SIMULATOR
// todo: this is a mess, remove code duplication with simulator
initSettings();
#endif
#if EFI_TUNER_STUDIO
if (engineConfiguration->isTunerStudioEnabled) {
@ -685,25 +705,55 @@ void commonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_S
}
#endif /* EFI_TUNER_STUDIO */
#if EFI_PROD_CODE || EFI_SIMULATOR
initSettings();
if (hasFirmwareError()) {
return;
}
#endif
mostCommonInitEngineController(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
#if EFI_SHAFT_POSITION_INPUT
/**
* there is an implicit dependency on the fact that 'tachometer' listener is the 1st listener - this case
* other listeners can access current RPM value
*/
initRpmCalculator(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
#endif /* EFI_SHAFT_POSITION_INPUT */
#if (EFI_ENGINE_CONTROL && EFI_SHAFT_POSITION_INPUT) || EFI_SIMULATOR || EFI_UNIT_TEST
if (CONFIG(isEngineControlEnabled)) {
initAuxValves(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
/**
* This method adds trigger listener which actually schedules ignition
*/
initSparkLogic(sharedLogger);
initMainEventListener(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
}
#endif /* EFI_ENGINE_CONTROL */
}
#if !EFI_UNIT_TEST
void initEngineContoller(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
#if EFI_SIMULATOR
printf("initEngineContoller\n");
#endif
addConsoleAction("analoginfo", printAnalogInfo);
#if EFI_PROD_CODE && EFI_ENGINE_CONTROL
initInjectorCentral(sharedLogger);
#endif /* EFI_PROD_CODE && EFI_ENGINE_CONTROL */
commonInitEngineController(sharedLogger);
#if EFI_PROD_CODE
initPwmGenerator();
#endif
initAlgo(sharedLogger);
#if EFI_LOGIC_ANALYZER
if (engineConfiguration->isWaveAnalyzerEnabled) {
initWaveAnalyzer(sharedLogger);
@ -718,19 +768,6 @@ void initEngineContoller(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX)
#endif /* EFI_CJ125 */
#if EFI_SHAFT_POSITION_INPUT
/**
* there is an implicit dependency on the fact that 'tachometer' listener is the 1st listener - this case
* other listeners can access current RPM value
*/
initRpmCalculator(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
#endif /* EFI_SHAFT_POSITION_INPUT */
#if EFI_PROD_CODE && EFI_ENGINE_CONTROL
initInjectorCentral(sharedLogger);
#endif /* EFI_PROD_CODE && EFI_ENGINE_CONTROL */
// multiple issues with this initMapAdjusterThread();
// periodic events need to be initialized after fuel&spark pins to avoid a warning
initPeriodicEvents(PASS_ENGINE_PARAMETER_SIGNATURE);
@ -740,14 +777,6 @@ void initEngineContoller(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX)
engineStateBlinkingTask.Start();
#if EFI_PROD_CODE && EFI_ENGINE_CONTROL
/**
* This has to go after 'initInjectorCentral' and 'initInjectorCentral' in order to
* properly detect un-assigned output pins
*/
prepareShapes(PASS_ENGINE_PARAMETER_SIGNATURE);
#endif /* EFI_PROD_CODE && EFI_ENGINE_CONTROL */
#if EFI_PWM_TESTER
initPwmTester();
#endif /* EFI_PWM_TESTER */
@ -768,15 +797,6 @@ void initEngineContoller(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX)
initEgoAveraging(PASS_ENGINE_PARAMETER_SIGNATURE);
#if EFI_ENGINE_CONTROL && EFI_SHAFT_POSITION_INPUT
if (CONFIGB(isEngineControlEnabled)) {
/**
* This method initialized the main listener which actually runs injectors & ignition
*/
initMainEventListener(sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
}
#endif /* EFI_ENGINE_CONTROL */
if (engineConfiguration->externalKnockSenseAdc != EFI_ADC_NONE) {
addConsoleAction("knockinfo", getKnockInfo);
}
@ -798,7 +818,7 @@ void initEngineContoller(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX)
// help to notice when RAM usage goes up - if a code change adds to RAM usage these variables would fail
// linking process which is the way to raise the alarm
#ifndef RAM_UNUSED_SIZE
#define RAM_UNUSED_SIZE 2500
#define RAM_UNUSED_SIZE 14000
#endif
#ifndef CCM_UNUSED_SIZE
#define CCM_UNUSED_SIZE 4600
@ -819,6 +839,6 @@ int getRusEfiVersion(void) {
if (initBootloader() != 0)
return 123;
#endif /* EFI_BOOTLOADER_INCLUDE_CODE */
return 20191206;
return 20191222;
}
#endif /* EFI_UNIT_TEST */

View File

@ -3,20 +3,19 @@
* @brief Controllers package entry point header
*
* @date Feb 7, 2013
* @author Andrey Belomutskiy, (c) 2012-2017
* @author Andrey Belomutskiy, (c) 2012-2019
*/
#pragma once
#include "global.h"
#include "engine_configuration.h"
#include "engine.h"
char * getPinNameByAdcChannel(const char *msg, adc_channel_e hwChannel, char *buffer);
void initPeriodicEvents(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void initEngineContoller(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
void commonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
void mostCommonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
void initDataStructures(DECLARE_ENGINE_PARAMETER_SIGNATURE);
#if EFI_ENABLE_MOCK_ADC
void setMockVoltage(int hwChannel, float voltage DECLARE_ENGINE_PARAMETER_SUFFIX);

View File

@ -5,7 +5,7 @@
* See http://rusefi.com/docs/html/
*
* @date Feb 7, 2013
* @author Andrey Belomutskiy, (c) 2012-2018
* @author Andrey Belomutskiy, (c) 2012-2019
*
* This file is part of rusEfi - see http://rusefi.com
*
@ -40,21 +40,18 @@
#include "advance_map.h"
#include "allsensors.h"
#include "cyclic_buffer.h"
#include "histogram.h"
#include "fuel_math.h"
#include "histogram.h"
#include "cdm_ion_sense.h"
#include "engine_controller.h"
#include "efi_gpio.h"
#if EFI_PROD_CODE
#include "os_util.h"
#endif /* EFI_HISTOGRAMS */
#endif /* EFI_PROD_CODE */
#include "local_version_holder.h"
#include "event_queue.h"
#include "engine.h"
#include "perf_trace.h"
#include "aux_valves.h"
#include "backup_ram.h"
EXTERN_ENGINE
@ -342,7 +339,7 @@ static void fuelClosedLoopCorrection(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
if (GET_RPM_VALUE < CONFIG(fuelClosedLoopRpmThreshold) ||
getCoolantTemperature() < CONFIG(fuelClosedLoopCltThreshold) ||
getTPS(PASS_ENGINE_PARAMETER_SIGNATURE) > CONFIG(fuelClosedLoopTpsThreshold) ||
ENGINE(sensors.currentAfr) < CONFIGB(fuelClosedLoopAfrLowThreshold) ||
ENGINE(sensors.currentAfr) < CONFIG(fuelClosedLoopAfrLowThreshold) ||
ENGINE(sensors.currentAfr) > engineConfiguration->fuelClosedLoopAfrHighThreshold) {
engine->engineState.running.pidCorrection = 0;
fuelPid.reset();
@ -406,16 +403,6 @@ static ALWAYS_INLINE void handleFuel(const bool limitedFuel, uint32_t trgEventIn
}
}
#if EFI_HISTOGRAMS
static histogram_s mainLoopHistogram;
#endif /* EFI_HISTOGRAMS */
void showMainHistogram(void) {
#if EFI_HISTOGRAMS
printHistogram(logger, &mainLoopHistogram);
#endif /* EFI_HISTOGRAMS */
}
#if EFI_PROD_CODE
/**
* this field is used as an Expression in IAR debugger
@ -427,7 +414,7 @@ uint32_t *cyccnt = (uint32_t*) &DWT->CYCCNT;
* This is the main trigger event handler.
* Both injection and ignition are controlled from this method.
*/
void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t trgEventIndex DECLARE_ENGINE_PARAMETER_SUFFIX) {
static void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t trgEventIndex DECLARE_ENGINE_PARAMETER_SUFFIX) {
ScopePerf perf(PE::MainTriggerCallback);
(void) ckpSignalType;
@ -440,10 +427,10 @@ void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t trgEventIndex D
*/
return;
}
efiAssertVoid(CUSTOM_STACK_6629, getCurrentRemainingStack() > 128, "lowstck#2");
efiAssertVoid(CUSTOM_STACK_6629, getCurrentRemainingStack() > EXPECTED_REMAINING_STACK, "lowstck#2a");
#if EFI_CDM_INTEGRATION
if (trgEventIndex == 0 && CONFIGB(cdmInputPin) != GPIO_UNASSIGNED) {
if (trgEventIndex == 0 && CONFIG(cdmInputPin) != GPIO_UNASSIGNED) {
int cdmKnockValue = getCurrentCdmValue(engine->triggerCentral.triggerState.getTotalRevolutionCounter());
engine->knockLogic(cdmKnockValue);
}
@ -484,10 +471,6 @@ void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t trgEventIndex D
warning(CUSTOM_SKIPPING_STROKE, "skipping stroke due to rpm=%d", rpm);
}
#if EFI_HISTOGRAMS && EFI_PROD_CODE
int beforeCallback = hal_lld_get_counter_value();
#endif
if (trgEventIndex == 0) {
if (HAVE_CAM_INPUT()) {
engine->triggerCentral.validateCamVvtCounters();
@ -527,11 +510,6 @@ void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t trgEventIndex D
* For spark we schedule both start of coil charge and actual spark based on trigger angle
*/
onTriggerEventSparkLogic(limitedSpark, trgEventIndex, rpm PASS_ENGINE_PARAMETER_SUFFIX);
#if EFI_HISTOGRAMS
int diff = hal_lld_get_counter_value() - beforeCallback;
if (diff > 0)
hsAdd(&mainLoopHistogram, diff);
#endif /* EFI_HISTOGRAMS */
if (trgEventIndex == 0) {
ENGINE(m.mainTriggerCallbackTime) = getTimeNowLowerNt() - ENGINE(m.beforeMainTrigger);
@ -609,32 +587,20 @@ void updatePrimeInjectionPulseState(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#include "engine_sniffer.h"
#endif
static void showTriggerHistogram(void) {
printAllCallbacksHistogram();
showMainHistogram();
#if EFI_ENGINE_SNIFFER
showWaveChartHistogram();
#endif
}
static void showMainInfo(Engine *engine) {
#if EFI_PROD_CODE
int rpm = GET_RPM();
float el = getEngineLoadT(PASS_ENGINE_PARAMETER_SIGNATURE);
scheduleMsg(logger, "rpm %d engine_load %.2f", rpm, el);
scheduleMsg(logger, "fuel %.2fms timing %.2f", getInjectionDuration(rpm PASS_ENGINE_PARAMETER_SUFFIX), engine->engineState.timingAdvance);
#endif
#endif /* EFI_PROD_CODE */
}
void initMainEventListener(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
logger = sharedLogger;
efiAssertVoid(CUSTOM_ERR_6631, engine!=NULL, "null engine");
initSparkLogic(logger);
initAuxValves(logger PASS_ENGINE_PARAMETER_SUFFIX);
#if EFI_PROD_CODE
addConsoleAction("performanceinfo", showTriggerHistogram);
addConsoleActionP("maininfo", (VoidPtr) showMainInfo, engine);
printMsg(logger, "initMainLoop: %d", currentTimeMillis());
@ -642,10 +608,6 @@ void initMainEventListener(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX
printMsg(logger, "!!!!!!!!!!!!!!!!!!! injection disabled");
#endif
#if EFI_HISTOGRAMS
initHistogram(&mainLoopHistogram, "main callback");
#endif /* EFI_HISTOGRAMS */
addTriggerEventListener(mainTriggerCallback, "main loop", engine);
// We start prime injection pulse at the early init stage - don't wait for the engine to start spinning!

View File

@ -4,32 +4,23 @@
*
*
* @date Feb 9, 2013
* @author Andrey Belomutskiy, (c) 2012-2017
* @author Andrey Belomutskiy, (c) 2012-2019
*/
#ifndef MAIN_LOOP_H_
#define MAIN_LOOP_H_
#pragma once
#include "engine.h"
#include "event_registry.h"
void initMainEventListener(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t eventIndex DECLARE_ENGINE_PARAMETER_SUFFIX);
int isIgnitionTimingError(void);
void startPrimeInjectionPulse(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void showMainHistogram(void);
void startSimultaniousInjection(Engine *engine);
void endSimultaniousInjection(InjectionEvent *event);
void seTurnPinHigh(InjectionEvent *event);
void seTurnPinLow(InjectionEvent *event);
float getFuel(int rpm, float key);
// reset injection switch counter if the engine started spinning
void updatePrimeInjectionPulseState(DECLARE_ENGINE_PARAMETER_SIGNATURE);
#endif /* MAIN_LOOP_H_ */

Some files were not shown because too many files have changed in this diff Show More