Trigger: "Single 60deg tooth before TDC" for Saruman, Sovek ignition (#5347)

* Trigger: "Single 60deg tooth before TDC" for Saruman, Sovek ignition triggers has been added

* Cosmetic: added usefull notions from https://github.com/rusefi/rusefi/pull/5347

---------

Co-authored-by: Denys Sobchuk <d.sobchuk@perenio.com>
This commit is contained in:
AvatarSD 2023-06-23 05:10:29 +03:00 committed by GitHub
parent 74e25c94a5
commit 087a1c2ccd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 46 additions and 3 deletions

View File

@ -422,7 +422,9 @@ enum class trigger_type_e : uint32_t {
TT_GM_24x_2 = 74,
TT_UNUSED_75 = 75,
TT_MITSU_4G63_CRANK = 76,
TT_UNUSED_77 = 77,
/* pull-up'ed(inverted in): pull down 2x 30 deg before tdc on cam, till tdc.
e.g. Sovek, Saruman ignition blind type */
TT_60DEG_TOOTH = 77,
TT_UNUSED_78 = 78,
// do not forget to edit "#define trigger_type_e_enum" line in integration/rusefi_config.txt file to propogate new value to rusefi.ini TS project

View File

@ -171,3 +171,27 @@ void configureBenelli(TriggerWaveform *s) {
s->addEvent360(angle, TriggerValue::FALL);
}
}
void configure60degSingleTooth(TriggerWaveform *s) {
/** @todo
* My approach was to utilize ::Both especially for single
* tooth and manual kikstarter, to be ready on both sides of blind.
* But unfortuneally, my experiments show me the Trigger can't
* become syncronized by 'last' and folowed 'first' events only.
* Also I observe phase-aligment mehanism is trying to consume a
* longer side of trigger as latest before TDC.
* I wish to setup SyncEdge::Both for my TT_60DEG_TOOTH after
* this case of scenario become work well. For now, ::Rise work
* well for my 60 degree trigger and both edges phase sync work
* as mush as expected for my engine startup. */
s->initialize(FOUR_STROKE_CRANK_SENSOR, SyncEdge::Rise);
s->addEvent360(300, TriggerValue::RISE);
s->addEvent360(360, TriggerValue::FALL);
s->tdcPosition = 60;
s->isSynchronizationNeeded = false;
s->useOnlyPrimaryForSync = true;
}

View File

@ -17,3 +17,9 @@ void configureTriTach(TriggerWaveform * s);
// TT_VVT_BARRA_3_PLUS_1
void configureBarra3plus1cam(TriggerWaveform *s);
void configureBenelli(TriggerWaveform *s);
/**
* @brief Configure trigger as Sovek or Saruman ignition
* @param s Trigger waveform visitor to config
*/
void configure60degSingleTooth(TriggerWaveform *s);

View File

@ -551,6 +551,9 @@ void TriggerWaveform::initializeTriggerWaveform(operation_mode_e triggerOperatio
break;
case trigger_type_e::TT_ONE:
/** @note TT_ONE setup events as 180 and 360 degrees. It uses SyncEdge::Rise
* for additionaly phase align on falling edge and will not work with non-
* symmetrical blind type where open and closed sections are not qual */
initializeSkippedToothTrigger(this, 1, 0, triggerOperationMode, SyncEdge::Rise);
break;
@ -634,9 +637,17 @@ void TriggerWaveform::initializeTriggerWaveform(operation_mode_e triggerOperatio
case trigger_type_e::TT_VVT_FORD_COYOTE:
configureFordCoyote(this);
break;
case trigger_type_e::TT_60DEG_TOOTH:
/** @note
* Have a something like TT_ONE_PHASED trigger with
* externally setuped blind width will be a good
* approach to utilize ::Rise(and::Both in future)
* with both edges phase-sync, but to stay simple I suggest
* just to use another enum for each trigger type. */
configure60degSingleTooth(this);
break;
case trigger_type_e::TT_UNUSED_11:
case trigger_type_e::TT_UNUSED_75:
case trigger_type_e::TT_UNUSED_77:
case trigger_type_e::TT_UNUSED_78:
case trigger_type_e::TT_MITSU_4G63_CAM:
initializeMitsubishi4g63Cam(this);

View File

@ -547,7 +547,7 @@ adc_channel_e fuelLevelSensor;This is the processor pin that your fuel level sen
struct trigger_config_s @brief Trigger wheel(s) configuration
! 'INVALID' for TT_VVT_* wheels
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "trg11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75", "Mitsu 4G63 Crank", "trg77", "trg78", "trg79"
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "trg11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75", "Mitsu 4G63 Crank", "x2 30 Deg camshaft BTDC", "trg78", "trg79"
custom trigger_type_e 4 bits, U32, @OFFSET@, [0:6], @@trigger_type_e_enum@@
trigger_type_e type;https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers\nset trigger_type X