mirror of https://github.com/FOME-Tech/fome-fw.git
Merge 586bc06f81
into 5105258377
This commit is contained in:
commit
af711b144f
|
@ -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,
|
||||
|
||||
MRE_BENELLI_3_CYL = 33,
|
||||
|
||||
HELLEN_NA6 = 34,
|
||||
|
||||
CAMARO_4 = 35,
|
||||
|
@ -207,7 +209,6 @@ enum class engine_type_e : uint32_t {
|
|||
ET_UNUSED_17 = 17,
|
||||
ET_UNUSED_13 = 13,
|
||||
ET_UNUSED_15 = 15,
|
||||
ET_UNUSED_33 = 33,
|
||||
ET_UNUSED_43 = 43,
|
||||
ET_UNUSED_57 = 57,
|
||||
ET_UNUSED_61 = 61,
|
||||
|
|
|
@ -29,4 +29,15 @@ public class HighRevTest extends RusefiTestBase {
|
|||
// tests bug 1873
|
||||
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