rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
board_configuration.cpp
Go to the documentation of this file.
1/**
2 * See https://rusefi.com/s/super-uaefi
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 "board_overrides.h"
11//#include "connectors/generated_board_pin_names.h"
12
14 return Gpio::MM100_LED3_BLUE;
15}
16
18 // this one is used to drive 20D - High side output
19 return Gpio::Unassigned;
20}
21
23 return Gpio::MM100_LED4_YELLOW;
24}
25
26static void setInjectorPins() {
27 engineConfiguration->injectionPins[0] = Gpio::MM100_INJ1;
28 engineConfiguration->injectionPins[1] = Gpio::MM100_INJ2;
29 engineConfiguration->injectionPins[2] = Gpio::MM100_INJ3;
30 engineConfiguration->injectionPins[3] = Gpio::MM100_INJ4;
31 engineConfiguration->injectionPins[4] = Gpio::MM100_INJ5;
32 engineConfiguration->injectionPins[5] = Gpio::MM100_INJ6;
33}
34
35static void setIgnitionPins() {
36 engineConfiguration->ignitionPins[0] = Gpio::MM100_IGN1;
37 engineConfiguration->ignitionPins[1] = Gpio::MM100_IGN2;
38 engineConfiguration->ignitionPins[2] = Gpio::MM100_IGN3;
39 engineConfiguration->ignitionPins[3] = Gpio::MM100_IGN4;
40 engineConfiguration->ignitionPins[4] = Gpio::MM100_IGN5;
41 engineConfiguration->ignitionPins[5] = Gpio::MM100_IGN6;
42}
43
45 engineConfiguration->tps1_1AdcChannel = MM100_IN_TPS_ANALOG;
46 engineConfiguration->tps1_2AdcChannel = MM100_IN_AUX1_ANALOG;
47// engineConfiguration->map.sensor.hwChannel = PIN_D9;
48
49 setPPSInputs(MM100_IN_PPS_ANALOG, MM100_IN_AUX2_ANALOG);
50
51 engineConfiguration->clt.adcChannel = MM100_IN_CLT_ANALOG;
52 engineConfiguration->iat.adcChannel = MM100_IN_IAT_ANALOG;
53
54 engineConfiguration->triggerInputPins[0] = Gpio::MM100_UART8_TX; // VR2 max9924 is the safer default
55 engineConfiguration->camInputs[0] = Gpio::MM100_IN_D1; // HALL1
56 engineConfiguration->camInputs[1] = Gpio::MM100_IN_D2; // HALL2
57
59}
60
74
76 return true;
77}
78
80 // users would want to override those if using H-bridges for stepper idle control
81 setupTLE9201IncludingStepper(/*PWM controlPin*/Gpio::MM100_OUT_PWM3, Gpio::MM100_OUT_PWM4, Gpio::MM100_SPI2_MISO);
82 setupTLE9201IncludingStepper(/*PWM controlPin*/Gpio::MM100_OUT_PWM5, Gpio::MM100_SPI2_MOSI, Gpio::MM100_USB1ID, 1);
83}
84
85/**
86 * @brief Board-specific configuration defaults.
87 *
88
89 *
90 */
95
97
100
102
103 engineConfiguration->canTxPin = Gpio::MM100_CAN_TX;
104 engineConfiguration->canRxPin = Gpio::MM100_CAN_RX;
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}
139
140static Gpio OUTPUTS[] = {
141 Gpio::MM100_INJ1, // 13B INJ_1
142 Gpio::MM100_INJ2, // 12B INJ_2
143 Gpio::MM100_INJ3, // 11B INJ_3
144 Gpio::MM100_INJ4, // 10B INJ_4
145 Gpio::MM100_INJ5, // 9B INJ_5
146 Gpio::MM100_INJ6, // 8B INJ_6
147 Gpio::MM100_SPI2_CS, // 19B INJ_7
148 Gpio::MM100_SPI2_SCK, // 18B INJ_8
149 Gpio::MM100_INJ7, // 20B LS1
150 Gpio::MM100_INJ8, // 21B LS2
151 Gpio::MM100_OUT_PWM1, // 22B LS3
152 Gpio::MM100_OUT_PWM2, // 31C LS4
153 Gpio::MM100_IGN7, // 30C LS5_HOT
154 Gpio::MM100_IGN8, // 29C LS6_HOT
155 Gpio::MM100_IGN1, // Coil 1
156 Gpio::MM100_IGN2, // Coil 2
157 Gpio::MM100_IGN3, // Coil 3
158 Gpio::MM100_IGN4, // Coil 4
159 Gpio::MM100_IGN5, // Coil 5
160 Gpio::MM100_IGN6, // Coil 6
161 Gpio::MM100_LED2_GREEN, // 20D High Side Output
162};
163
165 return efi::size(OUTPUTS);
166}
167
171
173 return OUTPUTS;
174}
175
177 return 2;
178}
179
Gpio getWarningLedPin()
Gpio getCommsLedPin()
Gpio getRunningLedPin()
void setup_custom_board_overrides()
@ Unassigned
void setTPS1Calibration(uint16_t tpsMin, uint16_t tpsMax)
void setPPSInputs(adc_channel_e pps1, adc_channel_e pps2)
void setupTLE9201IncludingStepper(Gpio controlPin, Gpio direction, Gpio disable, int dcIndex)
std::optional< setup_custom_board_overrides_type > custom_board_ConfigOverrides
std::optional< setup_custom_board_overrides_type > custom_board_DefaultConfiguration
void setCrankOperationMode()
static constexpr engine_configuration_s * engineConfiguration
void setAlgorithm(engine_load_mode_e algo)
static void setupDefaultSensorInputs()
static Gpio OUTPUTS[]
static void setIgnitionPins()
int getBoardMetaOutputsCount()
Gpio * getBoardMetaOutputs()
static void setInjectorPins()
int getBoardMetaLowSideOutputsCount()
int getBoardMetaDcOutputsCount()
void setUaefiDefaultETBPins()
static void super_uaefi_boardConfigOverrides()
bool validateBoardConfig()
static void super_uaefi_boardDefaultConfiguration()
Board-specific configuration defaults.
void hellenMegaSdWithAccelerometer()
void setHellenCan()
void hellenWbo()
void setHellenVbatt()
void setHellenMegaEnPin(bool enableBoardOnStartUp)
void setHellenMMbaro()
void setDefaultHellenAtPullUps(float pullup=HELLEN_DEFAULT_AT_PULLUP)
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]
void setCommonNTCSensor(ThermistorConf *thermistorConf, float pullup)