rusefi/firmware/config/engines/custom_engine.cpp

551 lines
18 KiB
C++
Raw Normal View History

2015-07-10 06:01:56 -07:00
/**
* @file custom_engine.cpp
*
2017-02-24 15:55:53 -08:00
*
2017-12-02 16:25:36 -08:00
* set engine_type 49
2017-12-03 14:26:15 -08:00
* FRANKENSO_QA_ENGINE
2017-12-02 16:25:36 -08:00
* See also DEFAULT_ENGINE_TYPE
* Frankenso QA 12 cylinder engine
2017-02-24 15:55:53 -08:00
*
2015-07-10 06:01:56 -07:00
* @date Jan 18, 2015
2020-01-07 21:02:40 -08:00
* @author Andrey Belomutskiy, (c) 2012-2020
2015-07-10 06:01:56 -07:00
*/
2019-12-28 20:22:16 -08:00
2015-07-10 06:01:56 -07:00
#include "custom_engine.h"
#include "allsensors.h"
2016-01-08 12:01:38 -08:00
#include "engine_math.h"
2019-04-11 20:21:16 -07:00
#include "fsio_impl.h"
2015-07-10 06:01:56 -07:00
#if EFI_ELECTRONIC_THROTTLE_BODY
#include "electronic_throttle.h"
#endif
2019-04-12 19:10:57 -07:00
#if EFI_PROD_CODE
2016-01-24 12:02:46 -08:00
#include "can_hw.h"
2018-01-28 11:03:58 -08:00
#include "scheduler.h"
2017-12-03 12:23:39 -08:00
#endif /* EFI_PROD_CODE */
2016-01-24 12:02:46 -08:00
2015-07-10 06:01:56 -07:00
EXTERN_ENGINE;
2018-01-28 11:03:58 -08:00
2019-04-12 19:10:57 -07:00
#if EFI_PROD_CODE
2018-01-28 11:03:58 -08:00
static int periodIndex = 0;
static OutputPin testPin;
2018-01-28 11:16:57 -08:00
scheduling_s scheduling;
2018-01-28 11:03:58 -08:00
2018-01-29 11:25:28 -08:00
static int test557[] = {5, 5, 10, 10, 20, 20, 50, 50, 100, 100, 200, 200, 500, 500, 500, 500};
#define TEST_LEN 16
2018-01-28 11:03:58 -08:00
efitimeus_t testTime;
static void toggleTestAndScheduleNext(void *) {
2018-01-28 11:03:58 -08:00
testPin.toggle();
periodIndex = (periodIndex + 1) % TEST_LEN;
testTime += test557[periodIndex];
engine->executor.scheduleByTimestamp(&scheduling, testTime, &toggleTestAndScheduleNext);
2018-01-28 11:03:58 -08:00
}
2018-03-04 14:55:46 -08:00
/**
* https://github.com/rusefi/rusefi/issues/557 common rail / direct injection scheduling control test
*/
2019-01-10 21:03:42 -08:00
void runSchedulingPrecisionTestIfNeeded(void) {
2019-05-05 13:43:07 -07:00
if (engineConfiguration->test557pin == GPIO_UNASSIGNED) {
2018-01-28 11:03:58 -08:00
return;
}
testPin.initPin("test", engineConfiguration->test557pin);
testPin.setValue(0);
testTime = getTimeNowUs();
toggleTestAndScheduleNext(/*unused*/ nullptr);
2018-01-28 11:03:58 -08:00
}
#endif /* EFI_PROD_CODE */
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;
2016-04-03 16:01:59 -07:00
}
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;
2016-04-03 16:01:59 -07:00
}
2017-01-28 12:05:25 -08:00
// todo: should this be part of more default configurations?
2019-08-06 14:12:15 -07:00
void setFrankensoConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setDefaultFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
2015-07-10 06:01:56 -07:00
engineConfiguration->trigger.type = TT_ONE_PLUS_ONE;
setFrankenso_01_LCD(engineConfiguration);
2019-08-12 21:03:31 -07:00
engineConfiguration->displayMode = DM_HD44780;
commonFrankensoAnalogInputs(engineConfiguration);
setFrankenso0_1_joystick(engineConfiguration);
2015-07-10 06:01:56 -07:00
/**
* Frankenso analog #1 PC2 ADC12 CLT
* Frankenso analog #2 PC1 ADC11 IAT
* Frankenso analog #3 PA0 ADC0 MAP
* Frankenso analog #4 PC3 ADC13 WBO / O2
* Frankenso analog #5 PA2 ADC2 TPS
* Frankenso analog #6 PA1 ADC1
* Frankenso analog #7 PA4 ADC4
* Frankenso analog #8 PA3 ADC3
* Frankenso analog #9 PA7 ADC7
* Frankenso analog #10 PA6 ADC6
* Frankenso analog #11 PC5 ADC15
* Frankenso analog #12 PC4 ADC14 VBatt
*/
engineConfiguration->tps1_1AdcChannel = EFI_ADC_2; // PA2
2015-07-10 06:01:56 -07:00
engineConfiguration->map.sensor.hwChannel = EFI_ADC_0;
engineConfiguration->clt.adcChannel = EFI_ADC_12;
engineConfiguration->iat.adcChannel = EFI_ADC_11;
engineConfiguration->afr.hwChannel = EFI_ADC_13;
setCommonNTCSensor(&engineConfiguration->clt, 2700);
setCommonNTCSensor(&engineConfiguration->iat, 2700);
2015-07-10 06:01:56 -07:00
/**
* http://rusefi.com/wiki/index.php?title=Manual:Hardware_Frankenso_board
*/
// Frankenso low out #1: PE6
// Frankenso low out #2: PE5
// Frankenso low out #3: PD7 Main Relay
// Frankenso low out #4: PC13 Idle valve solenoid
// Frankenso low out #5: PE3
// Frankenso low out #6: PE4 fuel pump relay
// Frankenso low out #7: PE1 (do not use with discovery!)
// Frankenso low out #8: PE2 injector #2
// Frankenso low out #9: PB9 injector #1
// Frankenso low out #10: PE0 (do not use with discovery!)
// Frankenso low out #11: PB8 injector #3
// Frankenso low out #12: PB7 injector #4
engineConfiguration->fuelPumpPin = GPIOE_4;
engineConfiguration->mainRelayPin = GPIOD_7;
engineConfiguration->idle.solenoidPin = GPIOC_13;
2015-07-10 06:01:56 -07:00
engineConfiguration->fanPin = GPIOE_5;
2015-07-10 06:01:56 -07:00
engineConfiguration->injectionPins[0] = GPIOB_9; // #1
engineConfiguration->injectionPins[1] = GPIOE_2; // #2
engineConfiguration->injectionPins[2] = GPIOB_8; // #3
2019-02-06 15:53:43 -08:00
#ifndef EFI_INJECTOR_PIN3
engineConfiguration->injectionPins[3] = GPIOB_7; // #4
2019-02-06 15:53:43 -08:00
#else /* EFI_INJECTOR_PIN3 */
engineConfiguration->injectionPins[3] = EFI_INJECTOR_PIN3; // #4
2019-02-06 15:53:43 -08:00
#endif /* EFI_INJECTOR_PIN3 */
2015-07-10 06:01:56 -07:00
setAlgorithm(LM_SPEED_DENSITY PASS_CONFIG_PARAMETER_SUFFIX);
2016-01-08 12:01:38 -08:00
2015-07-10 06:01:56 -07:00
#if EFI_PWM_TESTER
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;
2015-07-10 06:01:56 -07:00
/**
* We want to initialize all outputs for test
*/
engineConfiguration->specs.cylindersCount = 12;
engineConfiguration->displayMode = DM_NONE;
2017-12-03 12:37:52 -08:00
#else /* EFI_PWM_TESTER */
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;
engineConfiguration->ignitionPins[0] = GPIOE_14;
engineConfiguration->ignitionPins[1] = GPIOC_7;
engineConfiguration->ignitionPins[2] = GPIOC_9;
2017-03-21 19:45:15 -07:00
// set_ignition_pin 4 PE10
engineConfiguration->ignitionPins[3] = GPIOE_10;
2017-12-03 12:37:52 -08:00
#endif /* EFI_PWM_TESTER */
2015-07-10 06:01:56 -07:00
// todo: 8.2 or 10k?
engineConfiguration->vbattDividerCoeff = ((float) (10 + 33)) / 10 * 2;
2019-04-12 19:10:57 -07:00
#if EFI_CAN_SUPPORT
2016-01-24 12:02:46 -08:00
enableFrankensoCan();
#endif /* EFI_CAN_SUPPORT */
2015-07-10 06:01:56 -07:00
}
2020-02-18 14:53:56 -08:00
/**
* set engine_type 49
*/
void setFrankensoBoardTestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
2019-08-06 14:12:15 -07:00
setFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
2017-02-24 15:55:53 -08:00
2017-12-02 16:24:49 -08:00
engineConfiguration->directSelfStimulation = true; // this engine type is used for board validation
engineConfiguration->triggerSimulatorFrequency = 300;
2017-12-03 15:29:52 -08:00
engineConfiguration->cranking.rpm = 100;
2017-12-02 16:47:18 -08:00
2017-02-24 15:55:53 -08:00
engineConfiguration->specs.cylindersCount = 12;
2017-03-23 18:59:47 -07:00
engineConfiguration->specs.firingOrder = FO_1_7_5_11_3_9_6_12_2_8_4_10;
2017-02-24 15:55:53 -08:00
2017-03-21 19:45:15 -07:00
// set ignition_mode 1
engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
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;
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;
engineConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
engineConfiguration->mainRelayPin = GPIO_UNASSIGNED;
engineConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
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
engineConfiguration->ignitionPins[4] = GPIOE_14; // coil in default pinout
engineConfiguration->ignitionPins[5] = GPIOE_12;
engineConfiguration->ignitionPins[6] = GPIOD_8;
engineConfiguration->ignitionPins[7] = GPIOD_9;
engineConfiguration->ignitionPins[8] = GPIOE_0; // brain board, not discovery
engineConfiguration->ignitionPins[9] = GPIOE_1; // brain board, not discovery
2017-02-24 15:55:53 -08:00
}
2019-03-02 11:00:32 -08:00
// ETB_BENCH_ENGINE
2019-04-21 11:11:39 -07:00
// set engine_type 58
void setEtbTestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setDefaultFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
2019-03-02 10:21:12 -08:00
// VAG test ETB
// set tps_min 54
engineConfiguration->tpsMin = 54;
// by the way this ETB has default position of ADC=74 which is about 4%
// set tps_max 540
engineConfiguration->tpsMax = 540;
// yes, 30K - that's a test configuration
engineConfiguration->rpmHardLimit = 30000;
setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR);
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2;
engineConfiguration->ignitionPins[0] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
2019-02-27 06:57:03 -08:00
/**
* remember that some H-bridges require 5v control lines, not just 3v logic outputs we have on stm32
*/
CONFIG(etbIo[0].directionPin1) = GPIOC_7; // Frankenso high-side in order to get 5v control
CONFIG(etbIo[0].directionPin2) = GPIOC_9;
CONFIG(etbIo[0].controlPin1) = GPIOE_14;
2019-02-27 14:54:25 -08:00
2019-04-12 19:10:57 -07:00
#if EFI_ELECTRONIC_THROTTLE_BODY
setBoschVNH2SP30Curve(PASS_CONFIG_PARAMETER_SIGNATURE);
// setDefaultEtbParameters(PASS_CONFIG_PARAMETER_SIGNATURE);
#endif /* EFI_ELECTRONIC_THROTTLE_BODY */
2019-02-27 06:57:03 -08:00
engineConfiguration->tps1_1AdcChannel = EFI_ADC_2; // PA2
2019-02-27 06:57:03 -08:00
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_9; // PB1
2019-02-27 14:54:25 -08:00
engineConfiguration->debugMode = DBG_ELECTRONIC_THROTTLE_PID;
2019-03-02 19:42:11 -08:00
// turning off other PWMs to simplify debugging
engineConfiguration->triggerSimulatorFrequency = 0;
2019-03-03 12:27:49 -08:00
engineConfiguration->stepperEnablePin = GPIO_UNASSIGNED;
CONFIG(idle).stepperStepPin = GPIO_UNASSIGNED;
CONFIG(idle).stepperDirectionPin = GPIO_UNASSIGNED;
engineConfiguration->useStepperIdle = true;
2019-03-02 19:42:11 -08:00
2019-05-04 08:01:05 -07:00
// no analog dividers - all sensors with 3v supply, naked discovery bench setup
engineConfiguration->analogInputDividerCoefficient = 1;
// EFI_ADC_15 = PC5
engineConfiguration->clt.adcChannel = EFI_ADC_15;
set10K_4050K(&engineConfiguration->clt, 10000);
2019-04-21 09:24:31 -07:00
// see also setDefaultEtbBiasCurve
2019-02-27 05:55:56 -08:00
}
2019-04-04 18:34:33 -07:00
2019-12-28 20:22:16 -08:00
#if EFI_UNIT_TEST
void setIssue898(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->trigger.type = TT_MAZDA_MIATA_NA;
}
2019-12-28 20:22:16 -08:00
#endif /* EFI_UNIT_TEST */
2019-04-04 18:34:33 -07:00
// TLE8888_BENCH_ENGINE
2019-12-28 20:22:16 -08:00
// todo: remove this? this was used to play with "secret" red boards prior to MRE reality
2019-04-04 18:34:33 -07:00
// set engine_type 59
void setTle8888TestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
2019-04-04 18:34:33 -07:00
engineConfiguration->specs.cylindersCount = 8;
engineConfiguration->specs.firingOrder = FO_1_8_7_2_6_5_4_3;
engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
engineConfiguration->crankingInjectionMode = IM_SEQUENTIAL;
engineConfiguration->directSelfStimulation = true;
#if defined(STM32_HAS_GPIOG) && STM32_HAS_GPIOG
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 */
engineConfiguration->ignitionPins[6] = GPIOC_6;
engineConfiguration->ignitionPins[7] = GPIOC_7;
2019-04-04 18:34:33 -07:00
#if (BOARD_TLE8888_COUNT > 0)
2019-04-04 18:34:33 -07:00
engineConfiguration->tle8888spiDevice = SPI_DEVICE_1;
engineConfiguration->tle8888_cs = GPIOD_5;
2019-04-04 18:34:33 -07:00
2019-04-06 04:38:02 -07:00
// PB3 is nicely both SWO and SPI1 SCK so logic analyzer could be used on SWO header
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;
2019-04-04 20:03:32 -07:00
engineConfiguration->debugMode = DBG_TLE8888;
2019-04-11 20:21:16 -07:00
engineConfiguration->fuelPumpPin = TLE8888_PIN_20;
#endif /* BOARD_TLE8888_COUNT */
2019-04-12 22:03:12 -07:00
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_9; // PB1 // just any non-empty value for now
2019-04-11 20:21:16 -07:00
// ETB #1 top one - closer to 121 connector
// DIS PF12
// EN PF13
// IN1 PF15
// IN2 PF14
// SF PF11
#if defined(STM32_HAS_GPIOF) && STM32_HAS_GPIOF
#if EFI_FSIO
setFsio(14, GPIOF_13, "1" PASS_CONFIG_PARAMETER_SUFFIX);
2019-08-14 22:59:15 -07:00
#endif /* EFI_FSIO */
CONFIG(etbIo[0].directionPin1) = GPIOF_15;
CONFIG(etbIo[0].directionPin2) = GPIOF_14;
CONFIG(etbIo[0].disablePin) = GPIOF_12;
#endif /* STM32_HAS_GPIOF */
2019-11-29 13:51:51 -08:00
CONFIG(etb_use_two_wires) = true;
engineConfiguration->isHip9011Enabled = false;
2019-04-11 20:21:16 -07:00
// ETB #2
// DIS PE5
// EN PE6
// IN1 PE2
// IN2 PE4
// SF PE3
#if EFI_FSIO
setFsio(15, GPIOE_6, "1" PASS_CONFIG_PARAMETER_SUFFIX);
#endif
CONFIG(etbIo[0].directionPin1) = GPIOE_2;
CONFIG(etbIo[0].directionPin2) = GPIOE_4;
CONFIG(etbIo[0].disablePin) = GPIOE_5;
2019-04-11 20:21:16 -07:00
engineConfiguration->tps1_1AdcChannel = EFI_ADC_3; // PA3
2019-04-24 20:46:49 -07:00
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_7; // PA7
2019-05-05 09:48:04 -07:00
// engineConfiguration->etb.pFactor = 1.07;
// engineConfiguration->etb.iFactor = 0.18;
// engineConfiguration->etb.dFactor = 0.24;
// engineConfiguration->etb.offset = 80;
engineConfiguration->etb.pFactor = 22;
engineConfiguration->etb.iFactor = 0;
engineConfiguration->etb.dFactor = 0;
engineConfiguration->etb.offset = 0;
2019-04-24 20:46:49 -07:00
engineConfiguration->etb_iTermMin = -300;
engineConfiguration->etb_iTermMax = 300;
// VAG test ETB, no divider on red board - direct 3v TPS sensor
// set tps_min 332
engineConfiguration->tpsMin = 332;
// by the way this ETB has default position of ADC=74 which is about 4%
// set tps_max 540
engineConfiguration->tpsMax = 799;
2019-04-04 18:34:33 -07:00
}
2019-08-05 20:00:35 -07:00
/**
2019-12-28 20:22:16 -08:00
* This configuration is used for MRE board Quality Assurance validation
2019-08-05 20:00:35 -07:00
* set engine_type 30
* MRE_BOARD_TEST
2019-08-05 20:00:35 -07:00
*/
void mreBoardTest(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
#if (BOARD_TLE8888_COUNT > 0)
2019-08-09 16:11:15 -07:00
engineConfiguration->directSelfStimulation = true; // this engine type is used for board validation
engineConfiguration->debugMode = DBG_TLE8888;
engineConfiguration->triggerSimulatorFrequency = 60;
// set cranking_rpm 500
2019-08-09 16:11:15 -07:00
engineConfiguration->cranking.rpm = 100;
// set cranking_dwell 200
engineConfiguration->ignitionDwellForCrankingMs = 200;
// set cranking_fuel 300
engineConfiguration->cranking.baseFuel = 190;
2019-08-09 16:11:15 -07:00
engineConfiguration->injectionMode = IM_SEQUENTIAL;
engineConfiguration->crankingInjectionMode = IM_SEQUENTIAL;
2019-08-05 20:00:35 -07:00
// EFI_ADC_1: "23 - AN temp 2"
// test harness: Red/Green, 2K PD. expected 2.0v
// iat in microrusefi/board_configuration.cpp
// EFI_ADC_2: "24 - AN temp 3"
// test harness: Blue/White, 2K PD. expected 2.0v
// EFI_ADC_10: "27 - AN volt 1"
// test harness: Blue/Red, 3.84K PD / 5.3 PU. expected 1.6v
engineConfiguration->mafAdcChannel = EFI_ADC_10;
// EFI_ADC_14: "32 - AN volt 6"
// test harness: Red/White 3.6K PD / 5.2 PU. expected 1.6v
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_14;
// EFI_ADC_4: "28 - AN volt 10"
// test harness: Red/Yellow
engineConfiguration->afr.hwChannel = EFI_ADC_4;
// EFI_ADC_7: "31 - AN volt 3"
// test harness: White/Red
engineConfiguration->map.sensor.hwChannel = EFI_ADC_7;
//engineConfiguration->baroSensor.hwChannel
//engineConfiguration->oilPressure.hwChannel
//engineConfiguration->fuelLevelSensor
// TPS tps1_1AdcChannel EFI_ADC_13
2019-08-09 16:11:15 -07:00
engineConfiguration->specs.cylindersCount = 10;
engineConfiguration->specs.firingOrder = FO_1_10_9_4_3_6_5_8_7_2;
2019-08-09 20:45:35 -07:00
// red LED #1
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;
engineConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
engineConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
2019-10-10 10:32:07 -07:00
// fuel pump is useful to test power on/off scenario
// engineConfiguration->fuelPumpPin = TLE8888_PIN_22;
// LED #1
// GPIOE_7: "34 - GP Out 2"
engineConfiguration->injectionPins[1 - 1] = TLE8888_PIN_22;//GPIOE_7;
// LED #2
// TLE8888_PIN_23: "33 - GP Out 3"
engineConfiguration->injectionPins[10 - 1] = TLE8888_PIN_23;
// LED #3 - INJ#1
engineConfiguration->injectionPins[9 - 1] = GPIOE_13;
// LED #4 - INJ#2
engineConfiguration->injectionPins[4 - 1] = GPIOE_14;
// LED #5 - INJ#3
engineConfiguration->injectionPins[3 - 1] = GPIOE_12;
// LED #6 - INJ#4
engineConfiguration->injectionPins[6 - 1] = GPIOE_11;
// LED #7
// TLE8888_PIN_24: "43 - GP Out 4"
engineConfiguration->injectionPins[5 - 1] = TLE8888_PIN_24;
// LED #8
2019-08-09 20:45:35 -07:00
// TLE8888 half bridges (pushpull, lowside, or high-low) IN12
// GPIOE_8: "35 - GP Out 1"
engineConfiguration->injectionPins[8 - 1] = GPIOE_8;
2019-08-09 16:11:15 -07:00
// LED #9
// TLE8888 high current low side: IN10
// GPIOE_9: "7 - Lowside 1"
engineConfiguration->injectionPins[7 - 1] = GPIOE_9;
2019-08-05 20:00:35 -07:00
// LED #10
// TLE8888 high current low side: VVT2 IN9 / OUT5
// GPIOE_10: "3 - Lowside 2"
engineConfiguration->injectionPins[2 - 1] = GPIOE_10;
#endif /* BOARD_TLE8888_COUNT */
2019-08-05 20:00:35 -07:00
}
2020-02-25 18:35:21 -08:00
2020-02-25 19:38:08 -08:00
/**
* set engine_type 103
*/
2020-02-25 18:35:21 -08:00
void setTest33816EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
2020-02-25 19:38:08 -08:00
// grey
// default spi3mosiPin PB5
// white
// default spi3misoPin PB4
// violet
// default spi3sckPin PB3
// blue
2020-02-25 18:35:21 -08:00
CONFIG(mc33816_cs) = GPIOD_7;
2020-02-25 19:38:08 -08:00
// green
2020-02-25 18:35:21 -08:00
CONFIG(mc33816_rstb) = GPIOD_5;
2020-02-25 19:38:08 -08:00
// yellow
2020-02-25 18:35:21 -08:00
CONFIG(mc33816_driven) = GPIOD_6;
2020-04-13 16:01:22 -07:00
CONFIG(mc33816_flag0) = GPIOD_3;
2020-02-25 19:38:08 -08:00
// enable_spi 3
CONFIG(is_enabled_spi_3) = true;
// Wire up spi3
engineConfiguration->spi3mosiPin = GPIOB_5;
engineConfiguration->spi3misoPin = GPIOB_4;
engineConfiguration->spi3sckPin = GPIOB_3;
2020-02-25 18:35:21 -08:00
CONFIG(isSdCardEnabled) = false;
CONFIG(mc33816spiDevice) = SPI_DEVICE_3;
}