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

Functions

static void setInjectorPins ()
 Board-specific configuration defaults.
 
Gpio getWarningLedPin ()
 
Gpio getCommsLedPin ()
 
Gpio getRunningLedPin ()
 
static void setIgnitionPins ()
 
static void s105_boardDefaultConfiguration ()
 
static void setupVbatt ()
 
static void s105_boardConfigOverrides ()
 
float getAnalogInputDividerCoefficient (adc_channel_e hwChannel)
 
void setup_custom_board_overrides ()
 

Function Documentation

◆ getAnalogInputDividerCoefficient()

float getAnalogInputDividerCoefficient ( adc_channel_e  hwChannel)

Definition at line 112 of file board_configuration.cpp.

112 {
113 switch (hwChannel) {
114 /* MAP, TPS, MAF (na), AC press (na) */
115 case EFI_ADC_0:
116 case EFI_ADC_1:
117 case EFI_ADC_11:
118 case EFI_ADC_6:
119 return (22.0 + 41.2) / 41.2;
120
121 /* IAT, CLT */
122 case EFI_ADC_3:
123 case EFI_ADC_14:
124 /* no divider, 1.5K pull-up to 3.3V, 22K pull-down */
125 /* TODO: handle both pull-up and pull-down */
126 return 1.0;
127
128 /* AFR 1, AFR 2 (na), knock (TBD) */
129 case EFI_ADC_7:
130 case EFI_ADC_5:
131 case EFI_ADC_2:
132 /* no divider */
133 return 1.0;
134
135 /* +12 sense, Ignition switch */
136 case EFI_ADC_9:
137 case EFI_ADC_8:
138 return (68.0 + 6.8) / 6.8;
139
140 /* 5V feedback */
141 case EFI_ADC_10:
142 return (10.0 + 10.0) / 10.0;
143
144 /* Ignition feedback */
145 case EFI_ADC_12:
146 case EFI_ADC_13:
147 /* TBD */
148 return 1.0;
149
150 default:
151 return engineConfiguration->analogInputDividerCoefficient;
152 }
153 return engineConfiguration->analogInputDividerCoefficient;
154}
static constexpr engine_configuration_s * engineConfiguration

◆ getCommsLedPin()

Gpio getCommsLedPin ( )

Definition at line 27 of file board_configuration.cpp.

27 {
28 // this board has no comms led
29 return Gpio::Unassigned;
30}
@ Unassigned

◆ getRunningLedPin()

Gpio getRunningLedPin ( )

Definition at line 32 of file board_configuration.cpp.

32 {
33 return Gpio::Unassigned;
34}

◆ getWarningLedPin()

Gpio getWarningLedPin ( )

Definition at line 22 of file board_configuration.cpp.

22 {
23 // this board has no warning led
24 return Gpio::Unassigned;
25}

◆ s105_boardConfigOverrides()

static void s105_boardConfigOverrides ( )
static

Definition at line 100 of file board_configuration.cpp.

100 {
101 setupVbatt();
102
103 //1.5K
104 engineConfiguration->clt.config.bias_resistor = 1500;
105 engineConfiguration->iat.config.bias_resistor = 1500;
106
107 //CAN 1 bus overwrites
108 engineConfiguration->canRxPin = Gpio::A11;
109 engineConfiguration->canTxPin = Gpio::A12;
110}
static void setupVbatt()

Referenced by setup_custom_board_overrides().

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

◆ s105_boardDefaultConfiguration()

static void s105_boardDefaultConfiguration ( )
static

Definition at line 45 of file board_configuration.cpp.

45 {
48
49 strcpy(engineConfiguration->engineMake, "UAZ");
50 strcpy(engineConfiguration->engineCode, "451");
51
52 // No LEDs on this board, do we need some unused pin tp toggle? PC14 of LSI did not work for blinking, any better alternatives?
53
54 engineConfiguration->malfunctionIndicatorPin = Gpio::E14;
55 engineConfiguration->malfunctionIndicatorPinMode = OM_OPENDRAIN;
56 engineConfiguration->tachOutputPin = Gpio::B8; /* not populated by default */
57 engineConfiguration->tachOutputPinMode = OM_OPENDRAIN;
58 //engineConfiguration->idle.solenoidPin = ?
59 engineConfiguration->idle.solenoidPinMode = OM_OPENDRAIN;
60 engineConfiguration->fanPin = Gpio::D6; /* not populated by default */
61 engineConfiguration->fanPinMode = OM_OPENDRAIN;
62 //engineConfiguration->mainRelayPin = ?;
63 engineConfiguration->mainRelayPinMode = OM_OPENDRAIN;
64
65 engineConfiguration->cylindersCount = 4;
66 engineConfiguration->firingOrder = FO_1_2_4_3;
67
68 engineConfiguration->ignitionMode = IM_WASTED_SPARK;
69 engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
70 engineConfiguration->injectionMode = IM_SEQUENTIAL;
71
72 engineConfiguration->verboseCan = true;
73
74 engineConfiguration->tps1_1AdcChannel = EFI_ADC_1;
75 engineConfiguration->mafAdcChannel = EFI_ADC_11;
76 engineConfiguration->map.sensor.hwChannel = EFI_ADC_0;
77 engineConfiguration->afr.hwChannel = EFI_ADC_NONE;
78 engineConfiguration->clt.adcChannel = EFI_ADC_3;
79 engineConfiguration->iat.adcChannel = EFI_ADC_14;
80 engineConfiguration->triggerInputPins[0] = Gpio::B10;
81}
static void setIgnitionPins()
static void setInjectorPins()

Referenced by setup_custom_board_overrides().

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

◆ setIgnitionPins()

static void setIgnitionPins ( )
static

Definition at line 36 of file board_configuration.cpp.

36 {
37 engineConfiguration->ignitionPins[0] = Gpio::D13;
38 engineConfiguration->ignitionPins[1] = Gpio::D12;
39 engineConfiguration->ignitionPins[2] = Gpio::D15;
40 engineConfiguration->ignitionPins[3] = Gpio::D14;
41
42 engineConfiguration->ignitionPinMode = OM_OPENDRAIN;
43}

◆ setInjectorPins()

static void setInjectorPins ( )
static

Board-specific configuration defaults.

Definition at line 13 of file board_configuration.cpp.

13 {
14 engineConfiguration->injectionPins[0] = Gpio::D8;
15 engineConfiguration->injectionPins[1] = Gpio::D9;
16 engineConfiguration->injectionPins[2] = Gpio::D10;
17 engineConfiguration->injectionPins[3] = Gpio::D11;
18
19 engineConfiguration->injectionPinMode = OM_OPENDRAIN;
20}

◆ setup_custom_board_overrides()

void setup_custom_board_overrides ( )

Definition at line 156 of file board_configuration.cpp.

156 {
159}
std::optional< setup_custom_board_overrides_type > custom_board_ConfigOverrides
std::optional< setup_custom_board_overrides_type > custom_board_DefaultConfiguration
static void s105_boardDefaultConfiguration()
static void s105_boardConfigOverrides()
Here is the call graph for this function:

◆ setupVbatt()

static void setupVbatt ( )
static

Definition at line 83 of file board_configuration.cpp.

83 {
84 // There are two different input dividers:
85 // 22K (high) + 22K (low) on IAT and CLT
86 // 22K (high) + 41.2K (low) on TPS and MAP
87 engineConfiguration->analogInputDividerCoefficient = (22.0 + 22.0) / 22.0;
88 // TODO: TPS and MAP
89 //engineConfiguration->analogInputDividerCoefficient = (22.0 + 41.2) / 22.0;
90
91 // 68K + 6.8k
92 engineConfiguration->vbattDividerCoeff = (68 + 6.8) / 6.8;
93
94 // pin input +12 from Main Relay
95 engineConfiguration->vbattAdcChannel = EFI_ADC_9;
96
97 engineConfiguration->adcVcc = 3.3f;
98}

Go to the source code of this file.