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/hellen/hellen128/board_configuration.cpp
3 *
4 * All fabricated boards use 176 pin MCU
5 *
6 * @brief Configuration defaults for the hellen128 board
7 *
8 * See https://rusefi.com/s/hellen128
9 *
10 * @author andreika <prometheus.pcb@gmail.com>
11 * @author Andrey Belomutskiy, (c) 2012-2020
12 */
13
14#include "pch.h"
15#include "hellen_all_meta.h"
16#include "i2c_bb.h"
17#include "defaults.h"
18#include "m111.h"
19#include "board_overrides.h"
20
21static void setInjectorPins() {
22 engineConfiguration->injectionPins[0] = H176_LS_1;
23 engineConfiguration->injectionPins[1] = H176_LS_2;
24 engineConfiguration->injectionPins[2] = H176_LS_3;
25 engineConfiguration->injectionPins[3] = H176_LS_4;
26 engineConfiguration->injectionPins[4] = H176_LS_5;
27 engineConfiguration->injectionPins[5] = H176_LS_6;
28 engineConfiguration->injectionPins[6] = H176_LS_7;
29 engineConfiguration->injectionPins[7] = H176_LS_8;
30}
31
42
44 // trigger inputs
47 // Direct hall-only cam input
49
50 setTPS1Inputs(EFI_ADC_4, EFI_ADC_8);
51
52 engineConfiguration->mafAdcChannel = H144_IN_MAP1;
54
55 engineConfiguration->clt.adcChannel = H144_IN_CLT;
56
57 engineConfiguration->iat.adcChannel = H144_IN_IAT;
58}
59
60static bool isFirstInvocation = true;
61
62static void setHellen128ETBConfig() {
63 BitbangI2c m_i2c;
64 uint8_t variant[2] = {0xff, 0xff};
65
66 //same pins as for LPS25
68 isFirstInvocation = false;
69 m_i2c.init(Gpio::B10, Gpio::B11);
70
71 /* TODO: release pis for LPS25 */
72 }
73 // looks like we support PCF8575 i2c I/O expander
74 m_i2c.read(/*address*/0x20, variant, sizeof(variant));
75
76 //Rev C is different then Rev A/B
77 if ((variant[0] == 0x63) && (variant[1] == 0x00)) {
78 efiPrintf("rev C Board Detected");
79 // TLE9201 driver
80 // This chip has three control pins:
81 // DIR - sets direction of the motor
82 // PWM - pwm control (enable high, coast low)
83 // DIS - disables motor (enable low)
84
85 //ETB1
86 // PWM pin
87 engineConfiguration->etbIo[0].controlPin = H176_OUT_PWM3;
88 // DIR pin
89 engineConfiguration->etbIo[0].directionPin1 = H176_OUT_PWM2;
91 // Disable pin
92 engineConfiguration->etbIo[0].disablePin = H176_OUT_PWM1;
93
94 //ETB2
95 // PWM pin
97 // DIR pin
99 // Disable pin
101
102 // we only have pwm/dir, no dira/dirb
104
105 } else {
106 efiPrintf("A/B BoardID [%02x%02x] ", variant[0], variant[1]);
107 //Set default ETB config
108 engineConfiguration->etbIo[0].directionPin1 = H176_OUT_PWM2;
109 engineConfiguration->etbIo[0].directionPin2 = H176_OUT_PWM3;
110 engineConfiguration->etbIo[0].controlPin = H176_OUT_PWM1; // ETB_EN
113 }
114}
115
116#include "hellen_leds_176.cpp"
117
120
122
124
125 // this specific Hellen has less common pull-up value R49
128
129 setHellenCan();
130}
131
132/**
133 * @brief Board-specific configuration defaults.
134 *
135 * See also setDefaultEngineConfiguration
136 *
137
138 */
142
145 engineConfiguration->fanPin = Gpio::D12; // OUT_PWM8
147
148 engineConfiguration->starterControlPin = H176_OUT_IO10;
151
152 // "required" hardware is done - set some reasonable defaults
154
156
157 /**
158 * Jimmy best tune
159 * https://rusefi.com/online/view.php?msq=626
160 * md_sanci latest tune
161 * https://rusefi.com/online/view.php?msq=630
162 */
163 setPPSInputs(H144_IN_PPS, EFI_ADC_14);
164 setPPSCalibration(1.49, 4.72, 1.34, 4.24);
165
167 hellenWbo();
168}
169
void setup_custom_board_overrides()
void read(uint8_t addr, uint8_t *data, size_t size)
Definition i2c_bb.cpp:210
bool init(brain_pin_e scl, brain_pin_e sda)
Definition i2c_bb.cpp:37
@ Unassigned
void setPPSInputs(adc_channel_e pps1, adc_channel_e pps2)
void setTPS1Inputs(adc_channel_e tps1, adc_channel_e tps2)
void setPPSCalibration(float primaryUp, float primaryDown, float secondaryUp, float secondaryDown)
std::optional< setup_custom_board_overrides_type > custom_board_ConfigOverrides
std::optional< setup_custom_board_overrides_type > custom_board_DefaultConfiguration
static constexpr engine_configuration_s * engineConfiguration
static void setupDefaultSensorInputs()
static void setIgnitionPins()
static void setInjectorPins()
static void setHellen128ETBConfig()
static void hellen128_boardConfigOverrides()
static bool isFirstInvocation
static void hellen128_boardDefaultConfiguration()
Board-specific configuration defaults.
void setHellenCan()
void hellenWbo()
void setHellenVbatt()
void setHellenSdCardSpi2()
Bit-banged I2C driver.
void setMercedesM111EngineConfiguration()
Definition m111.cpp:21
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]