rusEFI
The most advanced open source ECU
board_configuration.cpp
Go to the documentation of this file.
1 /**
2  * See https://rusefi.com/s/uaefi121
3  *
4  * @author Andrey Belomutskiy, (c) 2012-2023
5  */
6 
7 #include "pch.h"
8 #include "defaults.h"
9 #include "hellen_meta.h"
10 #include "hellen_leds_100.cpp"
11 
12 static void setupDefaultSensorInputs() {
13  engineConfiguration->tps1_1AdcChannel = MM100_IN_TPS_ANALOG;
14  engineConfiguration->tps1_2AdcChannel = MM100_IN_AUX1_ANALOG;
15  engineConfiguration->map.sensor.hwChannel = MM100_IN_MAP1_ANALOG;
16 
17  setPPSInputs(MM100_IN_PPS_ANALOG, MM100_IN_AUX2_ANALOG);
18 
19  engineConfiguration->clt.adcChannel = MM100_IN_CLT_ANALOG;
20  engineConfiguration->iat.adcChannel = MM100_IN_IAT_ANALOG;
21 
22  engineConfiguration->triggerInputPins[0] = Gpio::MM100_UART8_TX; // VR2 max9924 is the safer default
23  engineConfiguration->camInputs[0] = Gpio::MM100_IN_D2; // HALL2
24  engineConfiguration->camInputs[1] = Gpio::MM100_IN_D3; // HALL3
25 
26  engineConfiguration->vehicleSpeedSensorInputPin = Gpio::MM100_IN_D1; // HALL1
27 }
28 
32 
35  engineConfiguration->sdCardCsPin = Gpio::H_SPI1_CS1;
36  engineConfiguration->sdCardSpiDevice = SPI_DEVICE_1;
37  engineConfiguration->spi1mosiPin = Gpio::A7; // not the usual H_SPI1_MOSI since that's CAN2RX
38  engineConfiguration->spi1misoPin = Gpio::H_SPI1_MISO;
39  engineConfiguration->spi1sckPin = Gpio::H_SPI1_SCK;
42 
45 
46 
47 }
48 
50  // GM stepper: DC2 positive#4/negative#5 to pins A/B
51  // DC1 positive#1/negative#2 to pin D/C
52  setupTLE9201IncludingStepper(/*PWM controlPin*/Gpio::MM100_OUT_PWM3, Gpio::MM100_OUT_PWM4, Gpio::MM100_SPI2_MISO);
53  setupTLE9201IncludingStepper(/*PWM controlPin*/Gpio::MM100_OUT_PWM5, Gpio::MM100_SPI2_MOSI, Gpio::MM100_USB1ID, 1);
54 
56 
57  engineConfiguration->mainRelayPin = Gpio::MM100_IGN7;
58  engineConfiguration->fuelPumpPin = Gpio::MM100_IGN8;
59 
60  engineConfiguration->injectionPins[0] = Gpio::MM100_COATED_INJ1;
61  engineConfiguration->injectionPins[1] = Gpio::MM100_INJ2;
62  engineConfiguration->injectionPins[2] = Gpio::MM100_INJ3;
63  engineConfiguration->injectionPins[3] = Gpio::MM100_INJ4;
64  engineConfiguration->injectionPins[4] = Gpio::MM100_INJ5;
65  engineConfiguration->injectionPins[5] = Gpio::MM100_INJ6;
66 
67  engineConfiguration->ignitionPins[0] = Gpio::MM100_IGN1;
68  engineConfiguration->ignitionPins[1] = Gpio::MM100_IGN2;
69  engineConfiguration->ignitionPins[2] = Gpio::MM100_IGN3;
70  engineConfiguration->ignitionPins[3] = Gpio::MM100_IGN4;
71  engineConfiguration->ignitionPins[4] = Gpio::MM100_IGN5;
72  engineConfiguration->ignitionPins[5] = Gpio::MM100_IGN6;
73 
75 }
76 
78  return 2;
79 }
80 
81 static Gpio OUTPUTS[] = {
82  Gpio::MM100_COATED_INJ1, // 44a INJ_1
83  Gpio::MM100_INJ2, // 45a INJ_2
84  Gpio::MM100_INJ3, // 46a INJ_3
85  Gpio::MM100_INJ4, // 47a INJ_4
86  Gpio::MM100_INJ5, // 48a INJ_5
87  Gpio::MM100_INJ6, // 49a INJ_6
88  Gpio::MM100_SPI2_CS, // 50a INJ_7
89  Gpio::MM100_COATED_SPI2_SCK, // 51a INJ_8
90  Gpio::MM100_INJ7, // 14a LS1
91  Gpio::MM100_INJ8, // 15a LS2
92  Gpio::MM100_OUT_PWM1, // 16a LS3
93  Gpio::MM100_OUT_PWM2, // 88a LS4
94  Gpio::MM100_IGN7, // 86a LS5_HOT
95  Gpio::MM100_IGN8, // 87a LS6_HOT fuelpump
96  Gpio::MM100_LED2_GREEN, // 43a High Side Output
97  Gpio::MM100_IGN1, // Coil 1
98  Gpio::MM100_IGN2, // Coil 2
99  Gpio::MM100_IGN3, // Coil 3
100  Gpio::MM100_IGN4, // Coil 4
101  Gpio::MM100_IGN5, // Coil 5
102  Gpio::MM100_IGN6, // Coil 6
103 };
104 
105 static Gpio SBC_OUTPUTS[] = {
106  Gpio::MM100_COATED_INJ1, // 44a INJ_1
107  Gpio::MM100_INJ2, // 45a INJ_2
108  Gpio::MM100_INJ3, // 46a INJ_3
109  Gpio::MM100_INJ4, // 47a INJ_4
110  Gpio::MM100_INJ5, // 48a INJ_5
111  Gpio::MM100_INJ6, // 49a INJ_6
112  Gpio::MM100_SPI2_CS, // 50a INJ_7
113  Gpio::MM100_COATED_SPI2_SCK, // 51a INJ_8
114  Gpio::MM100_IGN8, // 87a LS6_HOT fuelpump
115 
116 };
117 
120  return efi::size(SBC_OUTPUTS);
121  }
122  return efi::size(OUTPUTS);
123 }
124 
127  return getBoardMetaOutputsCount();
128  }
129  return getBoardMetaOutputsCount() - 1 - 6;
130 }
131 
134  return SBC_OUTPUTS;
135  }
136  return OUTPUTS;
137 }
void setBoardConfigOverrides()
Gpio
void setBoardDefaultConfiguration()
void setPPSInputs(adc_channel_e pps1, adc_channel_e pps2)
void setupTLE9201IncludingStepper(Gpio controlPin, Gpio direction, Gpio disable, int dcIndex)
int getBoardMetaOutputsCount()
Gpio * getBoardMetaOutputs()
int getBoardMetaLowSideOutputsCount()
int getBoardMetaDcOutputsCount()
static void setupDefaultSensorInputs()
static Gpio OUTPUTS[]
static Gpio SBC_OUTPUTS[]
void hellenMegaAccelerometerPreInitCS2Pin()
void setHellenVbatt()
void setHellenMegaEnPin(bool enableBoardOnStartUp)
void setHellenMMbaro()
Definition: hellen_meta.h:325
void setDefaultHellenAtPullUps()
Definition: hellen_meta.h:318
engine_configuration_s * engineConfiguration
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]
composite packet size