rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Functions | Variables
board_configuration.cpp File Reference

Detailed Description

See https://rusefi.com/s/uaefi

Author
Andrey Belomutskiy, (c) 2012-2023

Definition in file board_configuration.cpp.

Functions

static void setInjectorPins ()
 
static void setIgnitionPins ()
 
static void setupDefaultSensorInputs ()
 
static void uaefi_boardConfigOverrides ()
 
bool validateBoardConfig ()
 
static void setDefaultETBPins ()
 
static void uaefi_boardDefaultConfiguration ()
 Board-specific configuration defaults.
 
int getBoardMetaOutputsCount ()
 
int getBoardMetaLowSideOutputsCount ()
 
GpiogetBoardMetaOutputs ()
 
int getBoardMetaDcOutputsCount ()
 
void setup_custom_board_overrides ()
 
int boardGetAnalogInputDiagnostic (adc_channel_e hwChannel, float voltage)
 

Variables

static Gpio OUTPUTS []
 

Function Documentation

◆ boardGetAnalogInputDiagnostic()

int boardGetAnalogInputDiagnostic ( adc_channel_e  hwChannel,
float  voltage 
)

Definition at line 191 of file board_configuration.cpp.

191 {
192 /* we do not check voltage for valid ragne yet */
193 (void)voltage;
194
195 switch (hwChannel) {
196 /* inputs that may be affected by incorrect reference voltage */
197 case MM100_IN_TPS_ANALOG:
198 case MM100_IN_PPS_ANALOG:
199 case MM100_IN_IAT_ANALOG:
200 case MM100_IN_CLT_ANALOG:
201 case MM100_IN_O2S_ANALOG:
202 case MM100_IN_O2S2_ANALOG:
203 case MM100_IN_MAP1_ANALOG:
204 case MM100_IN_AUX1_ANALOG:
205 case MM100_IN_AUX2_ANALOG:
206 case MM100_IN_AUX4_ANALOG:
207 /* TODO: more? */
208 return (boardGetAnalogDiagnostic() == ObdCode::None) ? 0 : -1;
209 /* all other inputs should not rely on output 5V */
210 default:
211 return 0;
212 }
213
214 return 0;
215}
ObdCode boardGetAnalogDiagnostic()
Here is the call graph for this function:

◆ getBoardMetaDcOutputsCount()

int getBoardMetaDcOutputsCount ( )

◆ getBoardMetaLowSideOutputsCount()

int getBoardMetaLowSideOutputsCount ( )

Definition at line 166 of file board_configuration.cpp.

166 {
167 return getBoardMetaOutputsCount() - 6;
168}
int getBoardMetaOutputsCount()
Here is the call graph for this function:

◆ getBoardMetaOutputs()

Gpio * getBoardMetaOutputs ( )

Definition at line 170 of file board_configuration.cpp.

170 {
171 return OUTPUTS;
172}
static Gpio OUTPUTS[]

◆ getBoardMetaOutputsCount()

int getBoardMetaOutputsCount ( )

Definition at line 162 of file board_configuration.cpp.

162 {
163 return efi::size(OUTPUTS);
164}

◆ setDefaultETBPins()

static void setDefaultETBPins ( )
static

Definition at line 75 of file board_configuration.cpp.

75 {
76 // users would want to override those if using H-bridges for stepper idle control
77 setupTLE9201IncludingStepper(/*PWM controlPin*/Gpio::MM100_OUT_PWM3, Gpio::MM100_OUT_PWM4, Gpio::MM100_SPI2_MISO);
78 setupTLE9201IncludingStepper(/*PWM controlPin*/Gpio::MM100_OUT_PWM5, Gpio::MM100_SPI2_MOSI, Gpio::MM100_USB1ID, 1);
79}
void setupTLE9201IncludingStepper(Gpio controlPin, Gpio direction, Gpio disable, int dcIndex)
Here is the call graph for this function:

◆ setIgnitionPins()

static void setIgnitionPins ( )
static

Definition at line 25 of file board_configuration.cpp.

25 {
26 engineConfiguration->ignitionPins[0] = Gpio::MM100_IGN1;
27 engineConfiguration->ignitionPins[1] = Gpio::MM100_IGN2;
28 engineConfiguration->ignitionPins[2] = Gpio::MM100_IGN3;
29 engineConfiguration->ignitionPins[3] = Gpio::MM100_IGN4;
30 engineConfiguration->ignitionPins[4] = Gpio::MM100_IGN5;
31 engineConfiguration->ignitionPins[5] = Gpio::MM100_IGN6;
32}

◆ setInjectorPins()

static void setInjectorPins ( )
static

Definition at line 16 of file board_configuration.cpp.

16 {
17 engineConfiguration->injectionPins[0] = Gpio::MM100_INJ1;
18 engineConfiguration->injectionPins[1] = Gpio::MM100_INJ2;
19 engineConfiguration->injectionPins[2] = Gpio::MM100_INJ3;
20 engineConfiguration->injectionPins[3] = Gpio::MM100_INJ4;
21 engineConfiguration->injectionPins[4] = Gpio::MM100_INJ5;
22 engineConfiguration->injectionPins[5] = Gpio::MM100_INJ6;
23}

◆ setup_custom_board_overrides()

void setup_custom_board_overrides ( )

Definition at line 186 of file board_configuration.cpp.

186 {
189}
std::optional< setup_custom_board_overrides_type > custom_board_ConfigOverrides
std::optional< setup_custom_board_overrides_type > custom_board_DefaultConfiguration
static void uaefi_boardConfigOverrides()
static void uaefi_boardDefaultConfiguration()
Board-specific configuration defaults.
Here is the call graph for this function:

◆ setupDefaultSensorInputs()

static void setupDefaultSensorInputs ( )
static

Definition at line 34 of file board_configuration.cpp.

34 {
35 engineConfiguration->tps1_1AdcChannel = MM100_IN_TPS_ANALOG;
36 engineConfiguration->tps1_2AdcChannel = MM100_IN_AUX1_ANALOG;
38
39 setPPSInputs(MM100_IN_PPS_ANALOG, MM100_IN_AUX2_ANALOG);
40
41 engineConfiguration->clt.adcChannel = MM100_IN_CLT_ANALOG;
42 engineConfiguration->iat.adcChannel = MM100_IN_IAT_ANALOG;
43
44 engineConfiguration->triggerInputPins[0] = Gpio::MM100_UART8_TX; // VR2 max9924 is the safer default
45 engineConfiguration->camInputs[0] = Gpio::MM100_IN_D1; // HALL1
46 engineConfiguration->camInputs[1] = Gpio::MM100_IN_D2; // HALL2
47
49}
void setPPSInputs(adc_channel_e pps1, adc_channel_e pps2)
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]
Here is the call graph for this function:

◆ uaefi_boardConfigOverrides()

static void uaefi_boardConfigOverrides ( )
static

Definition at line 51 of file board_configuration.cpp.

51 {
54
56
57 engineConfiguration->vrThreshold[0].pin = Gpio::MM100_OUT_PWM6;
58
60
62
63}
void hellenMegaSdWithAccelerometer()
void setHellenCan()
void setHellenVbatt()
void setHellenMegaEnPin(bool enableBoardOnStartUp)
void setDefaultHellenAtPullUps(float pullup=HELLEN_DEFAULT_AT_PULLUP)

Referenced by setup_custom_board_overrides().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uaefi_boardDefaultConfiguration()

static void uaefi_boardDefaultConfiguration ( )
static

Board-specific configuration defaults.

See also setDefaultEngineConfiguration

Definition at line 87 of file board_configuration.cpp.

87 {
91
93
96
98
99 engineConfiguration->canTxPin = Gpio::MM100_CAN_TX;
100 engineConfiguration->canRxPin = Gpio::MM100_CAN_RX;
101#ifndef HW_HELLEN_UAEFI121
102 // this same file is used for both uaefi and uaefi121
104#endif
105
106 engineConfiguration->mainRelayPin = Gpio::MM100_IGN7;
107 engineConfiguration->fanPin = Gpio::MM100_IGN8;
108 engineConfiguration->fuelPumpPin = Gpio::MM100_OUT_PWM2;
109
110 // SPI3 for on-board EGT
112 // MOSI not needed, we have one-way communication here
117
118 // "required" hardware is done - set some reasonable defaults
121
122 engineConfiguration->etbFunctions[0] = DC_Throttle1;
123
124 // Some sensible defaults for other options
126
127 setAlgorithm(engine_load_mode_e::LM_SPEED_DENSITY);
128
129 engineConfiguration->injectorCompensationMode = ICM_FixedRailPressure;
130
131#ifndef EFI_BOOTLOADER
132 setCommonNTCSensor(&engineConfiguration->clt, HELLEN_DEFAULT_AT_PULLUP);
133 setCommonNTCSensor(&engineConfiguration->iat, HELLEN_DEFAULT_AT_PULLUP);
134#endif // EFI_BOOTLOADER
135
136 setTPS1Calibration(100, 650);
137 hellenWbo();
138}
void setTPS1Calibration(uint16_t tpsMin, uint16_t tpsMax)
void setCrankOperationMode()
void setAlgorithm(engine_load_mode_e algo)
static void setupDefaultSensorInputs()
static void setIgnitionPins()
static void setInjectorPins()
static void setDefaultETBPins()
void hellenWbo()
void setHellenCan2()
void setHellenMMbaro()
void setCommonNTCSensor(ThermistorConf *thermistorConf, float pullup)

Referenced by setup_custom_board_overrides().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ validateBoardConfig()

bool validateBoardConfig ( )

Definition at line 65 of file board_configuration.cpp.

65 {
66#ifndef HW_HELLEN_UAEFI121
67 // this same file is used for both uaefi and uaefi121
70 }
71#endif
72 return true;
73}
Here is the call graph for this function:

Variable Documentation

◆ OUTPUTS

Gpio OUTPUTS[]
static
Initial value:
= {
Gpio::MM100_INJ6,
Gpio::MM100_INJ5,
Gpio::MM100_INJ4,
Gpio::MM100_INJ3,
Gpio::MM100_INJ2,
Gpio::MM100_INJ1,
Gpio::MM100_INJ7,
Gpio::MM100_IGN8,
Gpio::MM100_IGN7,
Gpio::MM100_OUT_PWM2,
Gpio::MM100_OUT_PWM1,
Gpio::MM100_INJ8,
Gpio::MM100_IGN6,
Gpio::MM100_IGN4,
Gpio::MM100_IGN3,
Gpio::MM100_IGN5,
Gpio::MM100_IGN2,
Gpio::MM100_IGN1,
}

Definition at line 140 of file board_configuration.cpp.

140 {
141 Gpio::MM100_INJ6, // B1 injector output 6
142 Gpio::MM100_INJ5, // B2 injector output 5
143 Gpio::MM100_INJ4, // B3 injector output 4
144 Gpio::MM100_INJ3, // B4 injector output 3
145 Gpio::MM100_INJ2, // B5 injector output 2
146 Gpio::MM100_INJ1, // B6 injector output 1
147 Gpio::MM100_INJ7, // B7 Low Side output 1
148 Gpio::MM100_IGN8, // B8 Fan Relay Weak Low Side output 2
149 Gpio::MM100_IGN7, // B9 Main Relay Weak Low Side output 1
150 Gpio::MM100_OUT_PWM2, // B16 Low Side output 4 / Fuel Pump
151 Gpio::MM100_OUT_PWM1, // B17 Low Side output 3
152 Gpio::MM100_INJ8, // B18 Low Side output 2
153 // high sides
154 Gpio::MM100_IGN6, // B10 Coil 6
155 Gpio::MM100_IGN4, // B11 Coil 4
156 Gpio::MM100_IGN3, // B12 Coil 3
157 Gpio::MM100_IGN5, // B13 Coil 5
158 Gpio::MM100_IGN2, // B14 Coil 2
159 Gpio::MM100_IGN1, // B15 Coil 1
160};

Go to the source code of this file.