From 07b7704ce36274112d6a261329127d1f6b20baa5 Mon Sep 17 00:00:00 2001 From: rusefi Date: Sat, 14 Oct 2023 21:41:43 -0400 Subject: [PATCH] 112-17 config --- digital-inputs/firmware/test_logic.cpp | 61 +++++++++++++++++--------- 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/digital-inputs/firmware/test_logic.cpp b/digital-inputs/firmware/test_logic.cpp index dc9542a..4850be6 100644 --- a/digital-inputs/firmware/test_logic.cpp +++ b/digital-inputs/firmware/test_logic.cpp @@ -17,12 +17,14 @@ // 10% for low voltage #define ANALOG_H_FOR_LOW_VOLTAGE (1.0f + 0.12f) +#define HELLEN_VBATT_MULT 5.835f #define HELLEN_R 4700 #define ALPHA2CH_R 2700 #define PROTEUS_R 2700 -#define IAT_VALUE(r) (5.0f * 1000/(1000+r)) -#define CLT_VALUE(r) (5.0f * 2000/(2000+r)) +#define Vdivider 5.0f +#define IAT_VALUE(r) (Vdivider * 1000/(1000+r)) +#define CLT_VALUE(r) (Vdivider * 2000/(2000+r)) // normal atmospheric pressure is 101.3 kPa // transfer function taken from https://www.nxp.com/docs/en/data-sheet/MPXH6400A.pdf @@ -31,14 +33,33 @@ #define VOLT_7B 0.5f #define VOLT_8B 0.6f -#define Vdivider 5.0f #define PULLED_UP_VOLTAGE(RESISTOR_DIVIDER_LOWER_SIDE, RESISTOR_DIVIDER_UPPER_SIDE, RESISTANCE) (Vdivider * RESISTOR_DIVIDER_LOWER_SIDE / (1.0f/(1.0f/RESISTOR_DIVIDER_UPPER_SIDE + 1.0f/RESISTANCE)+RESISTOR_DIVIDER_LOWER_SIDE)) #define PULLED_DOWN_VOLTAGE(RESISTOR_DIVIDER_LOWER_SIDE, RESISTOR_DIVIDER_UPPER_SIDE, RESISTANCE) (Vdivider*(1.0f/(1.0f/RESISTOR_DIVIDER_LOWER_SIDE + 1.0f/RESISTANCE))/(RESISTOR_DIVIDER_UPPER_SIDE + 1.0f/(1.0f/RESISTOR_DIVIDER_LOWER_SIDE + 1.0f/RESISTANCE))) -#define PULLED_DOWN_RANGE(RESISTOR_DIVIDER_LOWER_SIDE, RESISTOR_DIVIDER_UPPER_SIDE, RESISTANCE) (0.95f* PULLED_DOWN_VOLTAGE(RESISTOR_DIVIDER_LOWER_SIDE, RESISTOR_DIVIDER_UPPER_SIDE, RESISTANCE), 1.05f*PULLED_DOWN_VOLTAGE(RESISTOR_DIVIDER_LOWER_SIDE, RESISTOR_DIVIDER_UPPER_SIDE, RESISTANCE)) +#define PULLED_DOWN_RANGE(RESISTOR_DIVIDER_LOWER_SIDE, RESISTOR_DIVIDER_UPPER_SIDE, RESISTANCE) /* mult*/1, (0.95f* PULLED_DOWN_VOLTAGE(RESISTOR_DIVIDER_LOWER_SIDE, RESISTOR_DIVIDER_UPPER_SIDE, RESISTANCE)), 1.05f*PULLED_DOWN_VOLTAGE(RESISTOR_DIVIDER_LOWER_SIDE, RESISTOR_DIVIDER_UPPER_SIDE, RESISTANCE) +// usually TPS1 +#define UP_7B 820.0f +#define DOWN_7B 100.0f + +// usually MAP #define UP_8B 820.0f #define DOWN_8B 120.0f + +#define UP_9B 510.0f +#define DOWN_9B 100.0f + +// uses AV_1 +#define UP_10B 470.0f +#define DOWN_10B 100.0f + +// uses AV_2 +#define UP_11B 820.0f +#define DOWN_11B 220.0f + +#define UP_12B 820.0f +#define DOWN_12B 330.0f + #define MAP_R 10000.0f #define STATIC_ASSERT_EQ_FLOAT(v1, v2) (absF(v1 - v2) < 0.000001) @@ -82,7 +103,7 @@ BoardConfig boardConfigs[] = { { "MAP", 1.0f, VOLT_8B * ANALOG_L, VOLT_8B * ANALOG_H }, { "CLT", 1.0f, CLT_VALUE(HELLEN_R) * ANALOG_L, CLT_VALUE(HELLEN_R) * ANALOG_H }, { "IAT", 1.0f, IAT_VALUE(HELLEN_R) * ANALOG_L, IAT_VALUE(HELLEN_R) * ANALOG_H }, - { "BATT", 5.835f, 9.0f, 15.0f }, + { "BATT", HELLEN_VBATT_MULT, 9.0f, 15.0f }, }, .eventExpected = {true, false, true, true, false, false, true}, .buttonExpected = { @@ -117,21 +138,21 @@ BoardConfig boardConfigs[] = { .desiredEngineConfig = -1, .boardIds = { BOARD_ID_H112_17_A, 0 }, .channels = { - { "TPS1_1", 1.0f, VOLT_7B * ANALOG_L, VOLT_7B * ANALOG_H }, - { nullptr, 0, 0, 0 }, - { nullptr, 0, 0, 0 }, - { nullptr, 0, 0, 0 }, - { "MAP", 1.0f, VOLT_8B * ANALOG_L, VOLT_8B * ANALOG_H_FOR_LOW_VOLTAGE }, - { "CLT", 1.0f, CLT_VALUE(PROTEUS_R) * ANALOG_L, CLT_VALUE(PROTEUS_R) * ANALOG_H }, - { "IAT", 1.0f, IAT_VALUE(PROTEUS_R) * ANALOG_L, IAT_VALUE(PROTEUS_R) * ANALOG_H }, - { "BATT", 9.2f, 9.0f, 15.0f }, + { "TPS1_1", PULLED_DOWN_RANGE(DOWN_7B, UP_7B, 680'000) }, + { "TPS1_2", PULLED_DOWN_RANGE(DOWN_9B, UP_9B, 680'000) }, + { "PPS1", PULLED_DOWN_RANGE(DOWN_10B, UP_10B, 680'000) }, + { "PPS2", PULLED_DOWN_RANGE(DOWN_11B, UP_11B, 680'000) }, + { "MAP", PULLED_DOWN_RANGE(DOWN_8B, UP_8B, 680'000) }, + { "CLT", 1.0f, CLT_VALUE(HELLEN_R) * ANALOG_L, CLT_VALUE(HELLEN_R) * ANALOG_H }, + { "IAT", 1.0f, IAT_VALUE(HELLEN_R) * ANALOG_L, IAT_VALUE(HELLEN_R) * ANALOG_H }, + { "BATT", HELLEN_VBATT_MULT, 9.0f, 15.0f }, - { nullptr, 0, 0, 0 }, // { "TPS2_1", 1.0f, 0.5f * ANALOG_L, 0.5f * ANALOG_H }, - { nullptr, 0, 0, 0 }, // { "TPS2_2", 1.0f, 0.5f * ANALOG_L, 0.5f * ANALOG_H }, - { "AUXL1", 1.0f, 1.35f * ANALOG_L, 1.35f * ANALOG_H }, - { "AUXL2", 1.0f, 2.23f * ANALOG_L, 2.23f * ANALOG_H }, + { nullptr, 0, 0, 0 }, // "TPS2_1" + { nullptr, 0, 0, 0 }, // "TPS2_2" + { nullptr, 0, 0, 0 }, // { "AUXL1", 1.0f, 1.35f * ANALOG_L, 1.35f * ANALOG_H }, + { nullptr, 0, 0, 0 }, // { "AUXL2", 1.0f, 2.23f * ANALOG_L, 2.23f * ANALOG_H }, }, - .eventExpected = {false, false, false, false, false, false, false}, + .eventExpected = {false, false, /*cam1*/true, false, false, false, /*vss*/true}, .buttonExpected = {false, false, false}, }, { @@ -147,7 +168,7 @@ BoardConfig boardConfigs[] = { { "MAP", 1.0f, MAP_MPX6400_VALUE * ANALOG_L, MAP_MPX6400_VALUE * ANALOG_H }, // internal MAP { "CLT", 1.0f, CLT_VALUE(ALPHA2CH_R) * ANALOG_L, CLT_VALUE(ALPHA2CH_R) * ANALOG_H }, { "IAT", 1.0f, IAT_VALUE(ALPHA2CH_R) * ANALOG_L, IAT_VALUE(ALPHA2CH_R) * ANALOG_H }, - { "BATT", 5.835, 9.0f, 15.0f }, + { "BATT", HELLEN_VBATT_MULT, 9.0f, 15.0f }, }, .eventExpected = {true, true, true, true, true, true, true}, .buttonExpected = {true, true, true}, @@ -164,7 +185,7 @@ BoardConfig boardConfigs[] = { { "MAP", 1.0f, MAP_MPX6400_VALUE * ANALOG_L, MAP_MPX6400_VALUE * ANALOG_H }, // internal MAP { "CLT", 1.0f, CLT_VALUE(ALPHA2CH_R) * ANALOG_L, CLT_VALUE(ALPHA2CH_R) * ANALOG_H }, { "IAT", 1.0f, IAT_VALUE(ALPHA2CH_R) * ANALOG_L, IAT_VALUE(ALPHA2CH_R) * ANALOG_H }, - { "BATT", 5.835, 9.0f, 15.0f }, + { "BATT", HELLEN_VBATT_MULT, 9.0f, 15.0f }, }, .eventExpected = {true, true, true, true, true, true, false}, .buttonExpected = {false, false, false},