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 ()
 
void setUaefiDefaultETBPins ()
 
static void uaefi_boardDefaultConfiguration ()
 Board-specific configuration defaults.
 
int getBoardMetaOutputsCount ()
 
int getBoardMetaLowSideOutputsCount ()
 
GpiogetBoardMetaOutputs ()
 
int getBoardMetaDcOutputsCount ()
 
static void uaefi_slowCallback ()
 
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 207 of file board_configuration.cpp.

207 {
208 /* we do not check voltage for valid range yet */
209 (void)voltage;
210
211 switch (hwChannel) {
212 /* inputs that may be affected by incorrect reference voltage */
213 case MM100_IN_TPS_ANALOG:
214 case MM100_IN_PPS_ANALOG:
215 case MM100_IN_IAT_ANALOG:
216 case MM100_IN_CLT_ANALOG:
217 case MM100_IN_O2S_ANALOG:
218 case MM100_IN_O2S2_ANALOG:
219 case MM100_IN_MAP1_ANALOG:
220 case MM100_IN_AUX1_ANALOG:
221 case MM100_IN_AUX2_ANALOG:
222 case MM100_IN_AUX4_ANALOG:
223 /* TODO: more? */
224 return (boardGetAnalogDiagnostic() == ObdCode::None) ? 0 : -1;
225 /* all other inputs should not rely on output 5V */
226 default:
227 return 0;
228 }
229
230 return 0;
231}
ObdCode boardGetAnalogDiagnostic()
Here is the call graph for this function:

◆ getBoardMetaDcOutputsCount()

int getBoardMetaDcOutputsCount ( )

◆ getBoardMetaLowSideOutputsCount()

int getBoardMetaLowSideOutputsCount ( )

Definition at line 169 of file board_configuration.cpp.

169 {
170 return getBoardMetaOutputsCount() - 6;
171}
int getBoardMetaOutputsCount()
Here is the call graph for this function:

◆ getBoardMetaOutputs()

Gpio * getBoardMetaOutputs ( )

Definition at line 173 of file board_configuration.cpp.

173 {
174 return OUTPUTS;
175}
static Gpio OUTPUTS[]

◆ getBoardMetaOutputsCount()

int getBoardMetaOutputsCount ( )

Definition at line 165 of file board_configuration.cpp.

165 {
166 return efi::size(OUTPUTS);
167}

◆ setIgnitionPins()

static void setIgnitionPins ( )
static

Definition at line 28 of file board_configuration.cpp.

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

◆ setInjectorPins()

static void setInjectorPins ( )
static

Definition at line 19 of file board_configuration.cpp.

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

◆ setUaefiDefaultETBPins()

void setUaefiDefaultETBPins ( )

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:

◆ setup_custom_board_overrides()

void setup_custom_board_overrides ( )

Definition at line 201 of file board_configuration.cpp.

201 {
205}
std::optional< setup_custom_board_overrides_type > custom_board_periodicSlowCallback
Definition engine.cpp:148
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_slowCallback()
static void uaefi_boardDefaultConfiguration()
Board-specific configuration defaults.
Here is the call graph for this function:

◆ setupDefaultSensorInputs()

static void setupDefaultSensorInputs ( )
static

Definition at line 37 of file board_configuration.cpp.

37 {
38 engineConfiguration->tps1_1AdcChannel = MM100_IN_TPS_ANALOG;
39 engineConfiguration->tps1_2AdcChannel = MM100_IN_AUX1_ANALOG;
41
42 setPPSInputs(MM100_IN_PPS_ANALOG, MM100_IN_AUX2_ANALOG);
43
44 engineConfiguration->clt.adcChannel = MM100_IN_CLT_ANALOG;
45 engineConfiguration->iat.adcChannel = MM100_IN_IAT_ANALOG;
46
47 engineConfiguration->triggerInputPins[0] = Gpio::MM100_UART8_TX; // VR2 max9924 is the safer default
48 engineConfiguration->camInputs[0] = Gpio::MM100_IN_D1; // HALL1
49 engineConfiguration->camInputs[1] = Gpio::MM100_IN_D2; // HALL2
50
52}
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 54 of file board_configuration.cpp.

54 {
57
59
60 engineConfiguration->vrThreshold[0].pin = Gpio::MM100_OUT_PWM6;
61
63
65
66}
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.

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
103
104#if (EFI_CAN_BUS_COUNT >= 3)
105 engineConfiguration->can3TxPin = Gpio::MM100_CAN3_TX;
106 engineConfiguration->can3RxPin = Gpio::MM100_CAN3_RX;
107#endif
108
109 engineConfiguration->mainRelayPin = Gpio::MM100_IGN7;
110 engineConfiguration->fanPin = Gpio::MM100_IGN8;
111 engineConfiguration->fuelPumpPin = Gpio::MM100_OUT_PWM2;
112
113 // SPI3 for on-board EGT
115 // MOSI not needed, we have one-way communication here
120
121 // "required" hardware is done - set some reasonable defaults
124
125 engineConfiguration->etbFunctions[0] = DC_Throttle1;
126
127 // Some sensible defaults for other options
129
130 setAlgorithm(engine_load_mode_e::LM_SPEED_DENSITY);
131
132 engineConfiguration->injectorCompensationMode = ICM_FixedRailPressure;
133
134#ifndef EFI_BOOTLOADER
135 setCommonNTCSensor(&engineConfiguration->clt, HELLEN_DEFAULT_AT_PULLUP);
136 setCommonNTCSensor(&engineConfiguration->iat, HELLEN_DEFAULT_AT_PULLUP);
137#endif // EFI_BOOTLOADER
138
139 setTPS1Calibration(100, 650);
140 hellenWbo();
141}
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()
void setUaefiDefaultETBPins()
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:

◆ uaefi_slowCallback()

static void uaefi_slowCallback ( )
static

Definition at line 189 of file board_configuration.cpp.

189 {
190#ifndef EFI_BOOTLOADER
192 if (aem1.hasSeenRx) {
193 Gpio green = getRunningLedPin();
194 auto greenPort = getBrainPinPort(green);
195 auto greenPin = getBrainPinIndex(green);
196 palClearPad(greenPort, greenPin); // Hellen has inverted LED control
197 }
198#endif // EFI_BOOTLOADER
199}
Gpio getRunningLedPin()
AemXSeriesWideband aem1(0, SensorType::Lambda1)
int getBrainPinIndex(Gpio brainPin)
ioportid_t getBrainPinPort(brain_pin_e brainPin)

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 68 of file board_configuration.cpp.

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 143 of file board_configuration.cpp.

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

Go to the source code of this file.