mirror of https://github.com/FOME-Tech/fome-fw.git
Merge 586bc06f81
into 762bd50dcf
This commit is contained in:
commit
29a3f3e09b
|
@ -0,0 +1,137 @@
|
||||||
|
/*
|
||||||
|
* @file benelli.cpp
|
||||||
|
*
|
||||||
|
* set engine_type 33
|
||||||
|
*
|
||||||
|
* @date Feb 13, 2024
|
||||||
|
* @author Michael Holzer, (c) 2024
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
#include "table_helper.h"
|
||||||
|
#include "electronic_throttle.h"
|
||||||
|
#include "mre_meta.h"
|
||||||
|
#include "defaults.h"
|
||||||
|
|
||||||
|
#include "benelli.h"
|
||||||
|
#include "custom_engine.h"
|
||||||
|
|
||||||
|
void setMreConfiguration() {
|
||||||
|
engineConfiguration->afr.hwChannel = MRE_IN_ANALOG_VOLT_10;
|
||||||
|
|
||||||
|
engineConfiguration->tps1_2AdcChannel = MRE_IN_ANALOG_VOLT_9;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// EFI_ADC_7: "31 - AN volt 3" - PA7
|
||||||
|
// 36 - AN volt 8
|
||||||
|
setPPSInputs(MRE_IN_ANALOG_VOLT_3, MRE_IN_ANALOG_VOLT_8);
|
||||||
|
|
||||||
|
// "26 - AN volt 2"
|
||||||
|
engineConfiguration->highPressureFuel.hwChannel = MRE_IN_ANALOG_VOLT_2;
|
||||||
|
|
||||||
|
|
||||||
|
// "19 - AN volt 4"
|
||||||
|
engineConfiguration->lowPressureFuel.hwChannel = EFI_ADC_12;
|
||||||
|
|
||||||
|
engineConfiguration->isSdCardEnabled = false;
|
||||||
|
|
||||||
|
engineConfiguration->mc33816spiDevice = SPI_DEVICE_3;
|
||||||
|
// RED
|
||||||
|
engineConfiguration->spi3mosiPin = Gpio::C12;
|
||||||
|
// YELLOW
|
||||||
|
engineConfiguration->spi3misoPin = Gpio::C11;
|
||||||
|
// BROWN
|
||||||
|
engineConfiguration->spi3sckPin = Gpio::C10;
|
||||||
|
engineConfiguration->sdCardCsPin = Gpio::Unassigned;
|
||||||
|
engineConfiguration->is_enabled_spi_3 = true;
|
||||||
|
|
||||||
|
|
||||||
|
// J8 orange
|
||||||
|
engineConfiguration->mc33816_cs = Gpio::B8;
|
||||||
|
// J8 Grey
|
||||||
|
engineConfiguration->mc33816_rstb = Gpio::A15;
|
||||||
|
// J8 Dark BLUE
|
||||||
|
engineConfiguration->mc33816_driven = Gpio::B9;
|
||||||
|
// J9 violet
|
||||||
|
engineConfiguration->mc33816_flag0 = Gpio::C13;
|
||||||
|
|
||||||
|
// J10 Dark BLUE
|
||||||
|
engineConfiguration->injectionPins[0] = Gpio::E6;
|
||||||
|
// J11 green
|
||||||
|
engineConfiguration->injectionPins[1] = Gpio::E5;
|
||||||
|
// J18 grey
|
||||||
|
engineConfiguration->injectionPins[2] = Gpio::B7;
|
||||||
|
// J6 white
|
||||||
|
engineConfiguration->injectionPins[3] = Gpio::E0;
|
||||||
|
|
||||||
|
|
||||||
|
gppwm_channel *lowPressureFuelPumpControl = &engineConfiguration->gppwm[1];
|
||||||
|
|
||||||
|
// "42 - Injector 4", somehow GP4 did not work? not enough current? not happy with diode?
|
||||||
|
lowPressureFuelPumpControl->pin = MRE_INJ_4;
|
||||||
|
|
||||||
|
|
||||||
|
gppwm_channel *coolantControl = &engineConfiguration->gppwm[0];
|
||||||
|
|
||||||
|
coolantControl->pin = MRE_LS_2;
|
||||||
|
// "7 - Lowside 1"
|
||||||
|
//engineConfiguration->hpfpValvePin = MRE_LS_1;
|
||||||
|
engineConfiguration->hpfpValvePin = Gpio::B10; // AUX J13
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* HW_MICRO_RUSEFI */
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_Mre_Benelli_Tre() {
|
||||||
|
setMreConfiguration();
|
||||||
|
|
||||||
|
setWholeTimingTable_d(20);
|
||||||
|
// set cranking_timing_angle 10
|
||||||
|
engineConfiguration->crankingTimingAngle = 10; // ToDo:verify
|
||||||
|
|
||||||
|
// set global_trigger_offset_angle 93
|
||||||
|
engineConfiguration->globalTriggerAngleOffset = 93; // ToDo:verify
|
||||||
|
|
||||||
|
|
||||||
|
setCrankOperationMode();
|
||||||
|
engineConfiguration->trigger.type = trigger_type_e::TT_Benelli_Tre;
|
||||||
|
|
||||||
|
engineConfiguration->mafAdcChannel = EFI_ADC_1; // ToDo:verify
|
||||||
|
|
||||||
|
|
||||||
|
//Base engine setting
|
||||||
|
engineConfiguration->cylindersCount = 3;
|
||||||
|
engineConfiguration->firingOrder = FO_1_2_3; // ToDo:verify
|
||||||
|
engineConfiguration->injector.flow = 320; // 30lb/h // ToDo:verify
|
||||||
|
// set algorithm 3
|
||||||
|
setAlgorithm(LM_SPEED_DENSITY);
|
||||||
|
engineConfiguration->map.sensor.type = MT_GM_3_BAR; // ToDo:verify
|
||||||
|
|
||||||
|
engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
|
||||||
|
|
||||||
|
engineConfiguration->ignitionPins[0] = Gpio::E14; // ToDo:verify
|
||||||
|
engineConfiguration->ignitionPins[1] = Gpio::Unassigned;
|
||||||
|
engineConfiguration->ignitionPins[2] = Gpio::Unassigned;
|
||||||
|
engineConfiguration->ignitionPins[3] = Gpio::Unassigned;
|
||||||
|
|
||||||
|
engineConfiguration->wastegatePositionSensor = EFI_ADC_4; // PA4 // ToDo:verify
|
||||||
|
|
||||||
|
float mapRange = 110; // ToDo:verify
|
||||||
|
|
||||||
|
setEgoSensor(ES_PLX); // ToDo:verify
|
||||||
|
setFuelTablesLoadBin(20, mapRange); // ToDo:verify
|
||||||
|
setLinearCurve(config->ignitionLoadBins, 20, mapRange);
|
||||||
|
|
||||||
|
engineConfiguration->isSdCardEnabled = false;
|
||||||
|
engineConfiguration->tpsMin = 0;
|
||||||
|
engineConfiguration->tpsMax = 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_Benelli_3_cyl_900ccm() {
|
||||||
|
engineConfiguration->displacement = 0.9;
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_Benelli_3_cyl_1130ccm() {
|
||||||
|
engineConfiguration->displacement = 1.13;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
/*
|
||||||
|
* @file benelli.h
|
||||||
|
*
|
||||||
|
* @date Feb 13, 2024
|
||||||
|
* @author Michael Holzer, (c) 2024
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "engine_configuration.h"
|
||||||
|
|
||||||
|
void set_Mre_Benelli_Tre();
|
||||||
|
|
||||||
|
void set_Benelli_3_cyl_900ccm();
|
||||||
|
void set_Benelli_3_cyl_1130ccm();
|
|
@ -83,6 +83,8 @@ enum class engine_type_e : uint32_t {
|
||||||
|
|
||||||
VW_ABA = 32,
|
VW_ABA = 32,
|
||||||
|
|
||||||
|
MRE_BENELLI_3_CYL = 33,
|
||||||
|
|
||||||
HELLEN_NA6 = 34,
|
HELLEN_NA6 = 34,
|
||||||
|
|
||||||
CAMARO_4 = 35,
|
CAMARO_4 = 35,
|
||||||
|
@ -207,7 +209,6 @@ enum class engine_type_e : uint32_t {
|
||||||
ET_UNUSED_17 = 17,
|
ET_UNUSED_17 = 17,
|
||||||
ET_UNUSED_13 = 13,
|
ET_UNUSED_13 = 13,
|
||||||
ET_UNUSED_15 = 15,
|
ET_UNUSED_15 = 15,
|
||||||
ET_UNUSED_33 = 33,
|
|
||||||
ET_UNUSED_43 = 43,
|
ET_UNUSED_43 = 43,
|
||||||
ET_UNUSED_57 = 57,
|
ET_UNUSED_57 = 57,
|
||||||
ET_UNUSED_61 = 61,
|
ET_UNUSED_61 = 61,
|
||||||
|
|
|
@ -29,4 +29,15 @@ public class HighRevTest extends RusefiTestBase {
|
||||||
// tests bug 1873
|
// tests bug 1873
|
||||||
EcuTestHelper.assertRpmDoesNotJump(60, 5, 110, FAIL, ecu.commandQueue);
|
EcuTestHelper.assertRpmDoesNotJump(60, 5, 110, FAIL, ecu.commandQueue);
|
||||||
}
|
}
|
||||||
|
@Test
|
||||||
|
public void testBenelliR3() {
|
||||||
|
ecu.setEngineType(engine_type_e.MRE_BENELLI_3_CYL);
|
||||||
|
// set idle RPM
|
||||||
|
ecu.changeRpm(1500);
|
||||||
|
// first let's get to RPM near limit
|
||||||
|
EcuTestHelper.assertRpmDoesNotJump(11000, 5, 40, FAIL, ecu.commandQueue);
|
||||||
|
|
||||||
|
// tests RpmLimit
|
||||||
|
EcuTestHelper.assertRpmDoesNotJump(12000, 5, 110, FAIL, ecu.commandQueue);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue