rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
board_configuration.cpp
Go to the documentation of this file.
1/**
2 * @file boards/Prometheus/board_configuration.h
3 *
4 * @brief In this file we can override engine_configuration.cpp.
5 *
6 * @date Apr 22, 2017
7 * @author andreika, (c) 2017
8 */
9
10#include "pch.h"
11#include "board_overrides.h"
12
13#ifdef STM32F469xx
14static bool is469 = true;
15#else
16static bool is469 = false;
17#endif
18
20 // this board has no comms led
21 return Gpio::Unassigned;
22}
23
25 // this board has no warning led
26 return Gpio::Unassigned;
27}
28
29static void setPrometheusDefaults() {
30 engineConfiguration->useCicPidForIdle = true;
31
32 engineConfiguration->cylindersCount = 4;
33 engineConfiguration->firingOrder = FO_1_3_4_2;
34
35 engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK
36 engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
37 engineConfiguration->injectionMode = IM_SIMULTANEOUS;//IM_BATCH;// IM_SEQUENTIAL;
38
39 engineConfiguration->globalTriggerAngleOffset = 114; // the end of 19th tooth?
40
41 engineConfiguration->displacement = 1.645;
42 engineConfiguration->injector.flow = 200;
43
44 setTable(config->crankingCycleBaseFuel, 25);
45 engineConfiguration->cranking.rpm = 600;
46
47 engineConfiguration->map.sensor.type = MT_MPX4250;
48
49 engineConfiguration->idleStepperReactionTime = 10;
50 engineConfiguration->stepperDirectionPinMode = OM_INVERTED;
51 engineConfiguration->useLinearCltSensor = true;
52
53 engineConfiguration->canNbcType = CAN_BUS_MAZDA_RX8;
54 engineConfiguration->canReadEnabled = true;
55 engineConfiguration->canWriteEnabled = false;
56
59 engineConfiguration->tpsErrorDetectionTooLow = -10; // -10% open
60 engineConfiguration->tpsErrorDetectionTooHigh = 110; // 110% open
61
62 engineConfiguration->mapMinBufferLength = 4;
63
64}
65
67#if 0
68 engineConfiguration->injectionPins[0] = is469 ? Gpio::D9 : Gpio::B14; // #1
69 engineConfiguration->injectionPins[1] = is469 ? Gpio::D15 : Gpio::C7; // #2
70 engineConfiguration->injectionPins[2] = is469 ? Gpio::D10 : Gpio::B15; // #3
71 engineConfiguration->injectionPins[3] = is469 ? Gpio::D14 : Gpio::C6; // #4
72
73 engineConfiguration->ignitionPins[0] = Gpio::A10;
74 engineConfiguration->ignitionPins[1] = Gpio::A9;
75 engineConfiguration->ignitionPins[2] = Gpio::A8;
76 engineConfiguration->ignitionPins[3] = Gpio::A11;
77 engineConfiguration->ignitionPinMode = OM_INVERTED;
78
81
82 for (int i = 0; i < 4; i++) {
85 }
86#else
87 palSetPadMode(GPIOA, 10, PAL_MODE_OUTPUT_PUSHPULL);
88 palWritePad(GPIOA, 10, 1);
89 palSetPadMode(GPIOA, 9, PAL_MODE_OUTPUT_PUSHPULL);
90 palWritePad(GPIOA, 9, 1);
91 palSetPadMode(GPIOA, 8, PAL_MODE_OUTPUT_PUSHPULL);
92 palWritePad(GPIOA, 8, 1);
93 palSetPadMode(GPIOA, 11, PAL_MODE_OUTPUT_PUSHPULL);
94 palWritePad(GPIOA, 11, 1);
95
96 palSetPadMode(GPIOD, 9, PAL_MODE_OUTPUT_PUSHPULL);
97 palWritePad(GPIOD, 9, 0);
98 palSetPadMode(GPIOD, 15, PAL_MODE_OUTPUT_PUSHPULL);
99 palWritePad(GPIOD, 15, 0);
100 palSetPadMode(GPIOD, 10, PAL_MODE_OUTPUT_PUSHPULL);
101 palWritePad(GPIOD, 10, 0);
102 palSetPadMode(GPIOD, 14, PAL_MODE_OUTPUT_PUSHPULL);
103 palWritePad(GPIOD, 14, 0);
104#endif
105}
106
107/**
108 * @brief Board-specific configuration defaults.
109
110 */
112 // give a chance to trigger SWD programmer... Wait for 2 secs (=2000 ms).
113// chThdSleepMilliseconds(2000);
114
115 engineConfiguration->binarySerialTxPin = Gpio::A0;
116 engineConfiguration->binarySerialRxPin = Gpio::A1;
117 engineConfiguration->tunerStudioSerialSpeed = SERIAL_SPEED;
118 engineConfiguration->uartConsoleSerialSpeed = SERIAL_SPEED;
119
120 engineConfiguration->vbattAdcChannel = EFI_ADC_13;
121 engineConfiguration->tps1_1AdcChannel = is469 ? EFI_ADC_7 : EFI_ADC_14;
122 engineConfiguration->map.sensor.hwChannel = is469 ? EFI_ADC_8 : EFI_ADC_15;
123 engineConfiguration->clt.adcChannel = EFI_ADC_3;
124 engineConfiguration->iat.adcChannel = EFI_ADC_4;
125 engineConfiguration->afr.hwChannel = is469 ? EFI_ADC_9 : EFI_ADC_8;
126
127 engineConfiguration->adcVcc = ADC_VCC;
128
129 engineConfiguration->baroSensor.hwChannel = EFI_ADC_NONE;
130 engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_NONE;
131
132 engineConfiguration->injectionPins[0] = is469 ? Gpio::D9 : Gpio::B14; // #1
133 engineConfiguration->injectionPins[1] = is469 ? Gpio::D15 : Gpio::C7; // #2
134 engineConfiguration->injectionPins[2] = is469 ? Gpio::D10 : Gpio::B15; // #3
135 engineConfiguration->injectionPins[3] = is469 ? Gpio::D14 : Gpio::C6; // #4
136
137 engineConfiguration->ignitionPins[0] = Gpio::A10;
138 engineConfiguration->ignitionPins[1] = Gpio::A9;
139 engineConfiguration->ignitionPins[2] = Gpio::A8;
140 engineConfiguration->ignitionPins[3] = Gpio::A11;
141 engineConfiguration->ignitionPinMode = OM_INVERTED;
142
143 engineConfiguration->vbattDividerCoeff = ((float) (2 + 10)) / 2;
144 engineConfiguration->clt.config.bias_resistor = 2700;
145 engineConfiguration->iat.config.bias_resistor = 2700;
146
147 engineConfiguration->useStepperIdle = true;
148 engineConfiguration->idle.stepperDirectionPin = is469 ? Gpio::B14 : Gpio::B12;
149 engineConfiguration->idle.stepperStepPin = is469 ? Gpio::B15 : Gpio::B13;
150 engineConfiguration->stepperEnablePin = Gpio::Unassigned;
151
152 engineConfiguration->triggerInputPins[0] = Gpio::A5;
153 engineConfiguration->triggerInputPins[1] = Gpio::Unassigned;
154 engineConfiguration->camInputs[0] = is469 ? Gpio::E9 : Gpio::A6;
155
156 engineConfiguration->tachOutputPin = Gpio::C8;
157 engineConfiguration->fuelPumpPin = is469 ? Gpio::D6 : Gpio::B7;
158 engineConfiguration->mainRelayPin = is469 ? Gpio::B11 : Gpio::B2;
160 engineConfiguration->malfunctionIndicatorPin = Gpio::C1;
161
162
163 // debug pad
164 engineConfiguration->triggerSimulatorPins[0] = Gpio::D8;
165
166 // not used
167 engineConfiguration->triggerSimulatorPins[1] = Gpio::Unassigned;
168 engineConfiguration->vehicleSpeedSensorInputPin = Gpio::Unassigned;
169
170 engineConfiguration->is_enabled_spi_2 = false;
171 engineConfiguration->is_enabled_spi_3 = true;
172
173 engineConfiguration->spi1mosiPin = Gpio::B5;
174 engineConfiguration->spi1misoPin = Gpio::B4;
175 engineConfiguration->spi1sckPin = Gpio::B3;
176
177 engineConfiguration->spi3mosiPin = Gpio::C12;
178 engineConfiguration->spi3MosiMode = PO_OPENDRAIN; // 4
179 engineConfiguration->spi3misoPin = Gpio::C11;
180 engineConfiguration->spi3MisoMode = PO_PULLUP; // 32
181 engineConfiguration->spi3sckPin = Gpio::C10;
182 engineConfiguration->spi3SckMode = PO_OPENDRAIN; // 4
183
184 engineConfiguration->canTxPin = Gpio::B9;
185 engineConfiguration->canRxPin = Gpio::B8;
186
188
189 engineConfiguration->is_enabled_spi_1 = true;
190 engineConfiguration->sdCardSpiDevice = SPI_DEVICE_1;
191 engineConfiguration->sdCardCsPin = Gpio::A2;
192 engineConfiguration->isSdCardEnabled = true;
193}
194
196 return Gpio::A13; //Gpio::A13; // yellow LED
197}
198
Gpio getWarningLedPin()
Gpio getCommsLedPin()
Gpio getRunningLedPin()
void setup_custom_board_overrides()
void startIgnitionPins()
Definition efi_gpio.cpp:321
void startInjectionPins()
Definition efi_gpio.cpp:337
InjectorOutputPin injectors[MAX_CYLINDER_COUNT]
Definition efi_gpio.h:127
IgnitionOutputPin coils[MAX_CYLINDER_COUNT]
Definition efi_gpio.h:129
void setLow() override
Definition efi_gpio.cpp:530
void setLow() override
@ Unassigned
EnginePins enginePins
Definition efi_gpio.cpp:24
std::optional< setup_custom_board_overrides_type > custom_board_DefaultConfiguration
static constexpr persistent_config_s * config
static constexpr engine_configuration_s * engineConfiguration
static void setPrometheusDefaults()
static bool is469
static void prometheus_boardDefaultConfiguration()
Board-specific configuration defaults.
void setPinConfigurationOverrides()
constexpr void setTable(TElement(&dest)[N][M], const VElement value)
constexpr int convertVoltageTo10bitADC(float voltage)
Definition tps.h:21