rusefi/firmware/config/engines/me7pnp.cpp

191 lines
6.4 KiB
C++

/*
* me7pnp.cpp
*
* Created on: 1. mai 2019
* Author: Ola
*/
#include "pch.h"
#include "me7pnp.h"
#include "fsio_impl.h"
#include "cj125.h"
/**
* set engine_type 102
*/
void vag_18_Turbo() {
//Base Engine Settings
setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR);
engineConfiguration->trigger.type = TT_60_2_VW;
engineConfiguration->useOnlyRisingEdgeForTrigger = true;
setAlgorithm(LM_SPEED_DENSITY);
engineConfiguration->specs.cylindersCount = 4;
engineConfiguration->specs.firingOrder = FO_1_3_4_2;
engineConfiguration->injector.flow = 205;
engineConfiguration->specs.displacement = 1.839;
engineConfiguration->globalTriggerAngleOffset = 114;
engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
engineConfiguration->crankingInjectionMode = IM_SEQUENTIAL;
engineConfiguration->injectionMode = IM_SEQUENTIAL;
engineConfiguration->ignitionPinMode = OM_INVERTED;
engineConfiguration->injectionPinMode = OM_OPENDRAIN_INVERTED;
engineConfiguration->rpmHardLimit = 8000;
engineConfiguration->cranking.baseFuel = 28;
//Analog Inputs
engineConfiguration->map.sensor.type = MT_GM_3_BAR;
setCommonNTCSensor(&engineConfiguration->clt, 2700);
setCommonNTCSensor(&engineConfiguration->iat, 2700);
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_7;
//engineConfiguration->tps1_1AdcChannel = PF3; TODO: ADC channel 3
engineConfiguration->map.sensor.hwChannel = EFI_ADC_10;
engineConfiguration->clt.adcChannel = EFI_ADC_6;
//engineConfiguration->iat.adcChannel = PF4; TODO: ADC channel 3
engineConfiguration->afr.hwChannel = EFI_ADC_NONE;
engineConfiguration->vbattAdcChannel = EFI_ADC_4;
engineConfiguration->vbattDividerCoeff = ((float) (10.0 + 33)) / 10 * 2;
engineConfiguration->mafAdcChannel = EFI_ADC_8;
//CAN Settings
engineConfiguration->canNbcType = CAN_BUS_NBC_VAG;
engineConfiguration->canReadEnabled = true;
engineConfiguration->canWriteEnabled = true;
engineConfiguration->canTxPin = GPIOB_6;
engineConfiguration->canRxPin = GPIOB_12;
// Injectors
engineConfiguration->injectionPins[0] = GPIOE_4; // #1
engineConfiguration->injectionPins[1] = GPIOE_2; // #2
engineConfiguration->injectionPins[2] = GPIOE_3; // #3
engineConfiguration->injectionPins[3] = GPIOE_1; // #4
engineConfiguration->injectionPins[4] = GPIOE_6; // #5
engineConfiguration->injectionPins[5] = GPIOE_5; // #6
engineConfiguration->injectionPins[6] = GPIOB_9; // #7
engineConfiguration->injectionPins[7] = GPIOE_0; // #8
//Ignition Outputs
engineConfiguration->ignitionPins[0] = GPIOD_1; // #1
engineConfiguration->ignitionPins[1] = GPIOD_6; // #2
engineConfiguration->ignitionPins[2] = GPIOD_3; // #3
engineConfiguration->ignitionPins[3] = GPIOD_4; // #4
engineConfiguration->ignitionPins[4] = GPIOD_0; // #5
engineConfiguration->ignitionPins[5] = GPIOD_2; // #6
engineConfiguration->ignitionPins[6] = GPIOA_15; // #7
engineConfiguration->ignitionPins[7] = GPIOC_12; // #8
//SPI Settings
engineConfiguration->is_enabled_spi_1 = true;
engineConfiguration->is_enabled_spi_3 = false;
#if EFI_CJ125
cj125defaultPinout();
engineConfiguration->cj125ur = EFI_ADC_11; // PC3
engineConfiguration->cj125CsPin = GPIOB_11;
#endif
engineConfiguration->debugMode = DBG_CJ125;
//Digital Inputs/Outputs
#if (BOARD_TLE8888_COUNT > 0)
engineConfiguration->tle8888spiDevice = SPI_DEVICE_1;
engineConfiguration->fuelPumpPin = TLE8888_PIN_22;
engineConfiguration->tachOutputPin = TLE8888_PIN_16;
engineConfiguration->alternatorControlPin = TLE8888_PIN_17;
engineConfiguration->vvtPins[0] = TLE8888_PIN_6; // VVT solenoid control
#endif /* BOARD_TLE8888_COUNT */
engineConfiguration->mainRelayPin = GPIO_UNASSIGNED;
engineConfiguration->idle.solenoidPin = GPIO_UNASSIGNED;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
engineConfiguration->clutchDownPin = GPIOD_11;
engineConfiguration->brakePedalPin = GPIOE_10;
engineConfiguration->camInputs[0] = GPIOA_2;
#if defined(STM32_HAS_GPIOG) && STM32_HAS_GPIOG
// engineConfiguration->triggerInputPins[0] = GPIOG_7;
#endif /* STM32_HAS_GPIOF */
#if defined(STM32_HAS_GPIOF) && STM32_HAS_GPIOF
// engineConfiguration->vehicleSpeedSensorInputPin = GPIOF_14;
#endif /* STM32_HAS_GPIOF */
//Alternator Settings
engineConfiguration->alternatorControlPinMode = OM_OPENDRAIN;
engineConfiguration->targetVBatt = 13.8;
engineConfiguration->alternatorControl.offset = 40;
engineConfiguration->alternatorControl.pFactor = 14;
engineConfiguration->alternatorControl.iFactor = 0.1;
engineConfiguration->alternatorControl.dFactor = 0;
engineConfiguration->alternatorControl.periodMs = 10;
//ETB Settings
#if EFI_FSIO
// todo lua setFsio (14, GPIOF_13, "1");
// todo lua setFsioExt (3, GPIOE_0, "0.15 90 coolant 120 min max 90 - 30 / 0.8 * +", 25);
#endif
// is this needed? engineConfiguration->vvtOutputFrequency[3] = 25;
engineConfiguration->etb_use_two_wires = true;
#if defined(STM32_HAS_GPIOF) && STM32_HAS_GPIOF
engineConfiguration->etbIo[0].directionPin1 = GPIOF_15;
engineConfiguration->etbIo[0].directionPin2 = GPIOF_14;
engineConfiguration->etbIo[0].disablePin = GPIOF_12;
#endif /* STM32_HAS_GPIOF */
engineConfiguration->isHip9011Enabled = false;
#if EFI_FSIO
// todo lua setFsio (15, GPIOE_6, "1");
#endif
engineConfiguration->etbIo[1].directionPin1 = GPIOE_2;
engineConfiguration->etbIo[1].directionPin2 = GPIOE_4;
engineConfiguration->etbIo[1].disablePin = GPIOE_5;
engineConfiguration->etb.pFactor = 1.07;
engineConfiguration->etb.iFactor = 0.18;
engineConfiguration->etb.dFactor = 0.24;
engineConfiguration->etb.offset = 80;
engineConfiguration->etb_iTermMin = -300;
engineConfiguration->etb_iTermMax = 300;
// VVT Settings
engineConfiguration->vvtOutputFrequency[0] = 300;
engineConfiguration->auxPid[0].pFactor = 2;
engineConfiguration->auxPid[0].iFactor = 0.005;
engineConfiguration->auxPid[0].dFactor = 0;
engineConfiguration->auxPid[0].offset = 33;
engineConfiguration->auxPid[0].minValue = 24;
engineConfiguration->auxPid[0].maxValue = 44;
engineConfiguration->vvtOutputFrequency[0] = 300;
//AC Settings
//Configuration 1 : bidirectional Wire
//Configuration 2 : Over CAN with variable Kompressor(CAN: Input=B_sacc,B_skoc Output: B_kov)
//Configuration 3 : 2 Wires
engineConfiguration->acRelayPin = GPIO_UNASSIGNED;
engineConfiguration->acIdleRpmBump = 200;
// TODO: AC driver request input PE13 and AC compressor input-output PE7
//Cruise Control
//TODO: Implement Criuse Control
//TODO: Thermostat Control TLE8888_PIN_5
//TODO: N75 Boost Control TLE8888_PIN_21
}