mirror of https://github.com/rusefi/rusefi.git
only:alphax_4chan
This commit is contained in:
parent
e3452b37b1
commit
699d588849
|
@ -18,6 +18,9 @@
|
|||
|
||||
#define show_Hellen_presets true
|
||||
#define show_4chan_presets true
|
||||
#define ts_show_ign_key_analog_input true
|
||||
! todo: insert actual value here!
|
||||
#define IGN_KEY_DIVIDER 3
|
||||
|
||||
#define TS_TRIGGER_SCOPE_CHANNEL_1_NAME "C2/C3 Crank VR"
|
||||
#define TS_TRIGGER_SCOPE_CHANNEL_2_NAME "E5/E6 Cam VR"
|
||||
|
|
|
@ -4,6 +4,11 @@
|
|||
|
||||
void MainRelayController::onSlowCallback() {
|
||||
#if EFI_MAIN_RELAY_CONTROL
|
||||
#if defined(IGN_KEY_DIVIDER)
|
||||
if (isAdcChannelValid(engineConfiguration->ignKeyAdcChannel)) {
|
||||
hasIgnitionVoltage = Sensor::getOrZero(SensorType::IgnKeyVoltage) > 5;
|
||||
} else
|
||||
#endif // IGN_KEY_DIVIDER
|
||||
if (engineConfiguration->ignitionKeyDigitalPin != Gpio::Unassigned) {
|
||||
// separate digital input pin just for main relay logic since it's preferred to read voltage from main relay
|
||||
// key-on is usually a bit smaller voltage than main relay but sometimes even 1v off!
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
/*
|
||||
* @file mc33816.cpp
|
||||
*
|
||||
* TL,DR: GDI
|
||||
*
|
||||
* The NXP MC33816 is a programmable gate driver IC for precision solenoid control applications.
|
||||
*
|
||||
*
|
||||
|
|
|
@ -5,23 +5,42 @@
|
|||
#include "functional_sensor.h"
|
||||
#include "linear_func.h"
|
||||
|
||||
static LinearFunc vbattFunc;
|
||||
static FunctionalSensor vbattSensor(SensorType::BatteryVoltage, /* timeout = */ MS2NT(100));
|
||||
static FunctionalSensor ignBattSensor(SensorType::IgnKeyVoltage, /* timeout = */ MS2NT(100));
|
||||
|
||||
void initVbatt() {
|
||||
{
|
||||
static LinearFunc vbattFunc; // static with scoped visibility just to reduce change of code defect
|
||||
vbattFunc.configure(0, 0, 1, engineConfiguration->vbattDividerCoeff, 0, 50);
|
||||
vbattSensor.setFunction(vbattFunc);
|
||||
|
||||
if (!isAdcChannelValid(engineConfiguration->vbattAdcChannel)) {
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(IGN_KEY_DIVIDER)
|
||||
{
|
||||
static LinearFunc ignBattFunc; // static with scoped visibility just to reduce change of code defect
|
||||
ignBattFunc.configure(0, 0, 1, IGN_KEY_DIVIDER, 0, 50);
|
||||
ignBattSensor.setFunction(ignBattFunc);
|
||||
}
|
||||
#endif // IGN_KEY_DIVIDER
|
||||
|
||||
|
||||
if (isAdcChannelValid(engineConfiguration->vbattAdcChannel)) {
|
||||
// adcVoltsPerVolt is set to 1.0 because vbatt doesn't go thru the analog input divider
|
||||
AdcSubscription::SubscribeSensor(vbattSensor, engineConfiguration->vbattAdcChannel, /* filter HZ = */ 20, /* adcVoltsPerVolt = */ 1.0f);
|
||||
|
||||
vbattSensor.Register();
|
||||
}
|
||||
|
||||
#if defined(IGN_KEY_DIVIDER)
|
||||
if (isAdcChannelValid(engineConfiguration->ignKeyAdcChannel)) {
|
||||
AdcSubscription::SubscribeSensor(ignBattSensor, engineConfiguration->ignKeyAdcChannel, /* filter HZ = */ 20, /* adcVoltsPerVolt = */ 1.0f);
|
||||
ignBattSensor.Register();
|
||||
}
|
||||
#endif // IGN_KEY_DIVIDER
|
||||
}
|
||||
|
||||
void deinitVbatt() {
|
||||
AdcSubscription::UnsubscribeSensor(vbattSensor, engineConfiguration->vbattAdcChannel);
|
||||
#if defined(IGN_KEY_DIVIDER)
|
||||
AdcSubscription::UnsubscribeSensor(ignBattSensor, engineConfiguration->ignKeyAdcChannel);
|
||||
#endif // IGN_KEY_DIVIDER
|
||||
}
|
||||
|
|
|
@ -2213,6 +2213,8 @@ end_struct
|
|||
#define SIMULATOR_TUNE_BIN_FILE_NAME "generated/simulator_tune_image.bin"
|
||||
|
||||
! some board files override this value using prepend file
|
||||
#define ts_show_ign_key_switch false
|
||||
#define ts_show_ign_key_analog_input false
|
||||
#define ts_show_hip9011 false
|
||||
#define ts_show_tps_sent false
|
||||
#define ts_show_inj_diag false
|
||||
|
|
|
@ -3783,9 +3783,9 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
; Engine->Battery & Alternator
|
||||
dialog = batteryDialog, "Battery Settings", yAxis
|
||||
field = "vBatt ADC input", vbattAdcChannel
|
||||
field = "Ignition Key ADC input", ignKeyAdcChannel
|
||||
field = "Ignition Key Switch", ignitionKeyDigitalPin
|
||||
field = "Ignition Key Switch Mode", ignitionKeyDigitalPinMode
|
||||
field = "Ignition Key ADC input", ignKeyAdcChannel@@if_ts_show_ign_key_analog_input
|
||||
field = "Ignition Key Switch", ignitionKeyDigitalPin@@if_ts_show_ign_key_switch
|
||||
field = "Ignition Key Switch Mode", ignitionKeyDigitalPinMode@@if_ts_show_ign_key_switch
|
||||
field = "Battery Input Divider Coefficient", vbattDividerCoeff
|
||||
dialog = alternator, "Alternator Settings", yAxis
|
||||
field = "Enabled", isAlternatorControlEnabled
|
||||
|
|
Loading…
Reference in New Issue