From 15a313acede40008e4b9cce9fe8a1f76f47a2bb8 Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 17 Mar 2024 22:30:50 -0400 Subject: [PATCH] HPFP control on cam with variable timing fix #6245 --- firmware/CHANGELOG.md | 1 + .../controllers/engine_cycle/high_pressure_fuel_pump.cpp | 2 +- unit_tests/tests/test_hpfp.cpp | 9 ++++----- unit_tests/tests/test_hpfp_integrated.cpp | 3 +-- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/firmware/CHANGELOG.md b/firmware/CHANGELOG.md index c0176382e3..f6273177b5 100644 --- a/firmware/CHANGELOG.md +++ b/firmware/CHANGELOG.md @@ -39,6 +39,7 @@ Release template (copy/paste this for new release): - Disabling slow connectivity mode for now #6170 - hellen128 better ETB pin choice between rev A/B and C - Base map values for Open Loop Boost Duty should be 0% #6188 + - HPFP control on cam with variable timing #6245 ## March 2024 "Day 740" diff --git a/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp b/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp index f02450adc2..48efa5ed1b 100644 --- a/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp +++ b/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp @@ -67,7 +67,7 @@ angle_t HpfpLobe::findNextLobe() { // TODO: Is the sign correct here? + means ATDC? vvt = engine->triggerCentral.getVVTPosition( BANK_BY_INDEX(camIndex), - CAM_BY_INDEX(camIndex)) / mult * engineConfiguration->magicNumberAvailableForDevTricks; + CAM_BY_INDEX(camIndex)) / mult; } return engineConfiguration->hpfpPeakPos + vvt + next_index * 720 / lobes; diff --git a/unit_tests/tests/test_hpfp.cpp b/unit_tests/tests/test_hpfp.cpp index 68c807770b..2b02037943 100755 --- a/unit_tests/tests/test_hpfp.cpp +++ b/unit_tests/tests/test_hpfp.cpp @@ -8,16 +8,15 @@ using ::testing::StrictMock; TEST(HPFP, Lobe) { EngineTestHelper eth(engine_type_e::TEST_ENGINE); - engineConfiguration->magicNumberAvailableForDevTricks = 2; engineConfiguration->hpfpCam = HPFP_CAM_NONE; engineConfiguration->hpfpPeakPos = 123; engineConfiguration->hpfpCamLobes = 3; - engine->triggerCentral.vvtPosition[0][0] = 20; // Bank 0 - engine->triggerCentral.vvtPosition[0][1] = 40; - engine->triggerCentral.vvtPosition[1][0] = 60; // Bank 1 - engine->triggerCentral.vvtPosition[1][1] = 80; + engine->triggerCentral.vvtPosition[0][0] = 40; // Bank 0 + engine->triggerCentral.vvtPosition[0][1] = 80; + engine->triggerCentral.vvtPosition[1][0] =120; // Bank 1 + engine->triggerCentral.vvtPosition[1][1] =160; HpfpLobe lobe; diff --git a/unit_tests/tests/test_hpfp_integrated.cpp b/unit_tests/tests/test_hpfp_integrated.cpp index 0e98f75183..1e796c4e87 100644 --- a/unit_tests/tests/test_hpfp_integrated.cpp +++ b/unit_tests/tests/test_hpfp_integrated.cpp @@ -20,7 +20,6 @@ TEST(HPFP, IntegratedSchedule) { EngineTestHelper eth(engine_type_e::TEST_ENGINE, [](engine_configuration_s* engineConfiguration) { engineConfiguration->hpfpValvePin = Gpio::A2; // arbitrary }); - engineConfiguration->magicNumberAvailableForDevTricks = 2; engineConfiguration->cylindersCount = 4; engineConfiguration->hpfpCamLobes = 3; @@ -48,7 +47,7 @@ TEST(HPFP, IntegratedSchedule) { assertToggleCounterExtra(ð, 6); - engine->triggerCentral.vvtPosition[0][0] = -50; // Bank 0 + engine->triggerCentral.vvtPosition[0][0] = -100; // Bank 0 assertToggleCounterExtra(ð, 8);