• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

PJSC(Pump Jet Solenoid Controller)はArduinoを使用したバイク用燃料噴射コントローラです。このプロジェクトは、オープンソースECUプロジェクト『Speeduino』をベースにしています。


Commit MetaInfo

Revision137 (tree)
Time2022-03-05 23:45:13
Authormaharu

Log Message

[PJSC v1.03]スロットルスピード燃料カット(TPSdot DFCO)機能を追加。デジタル入力2をSMARTシフト入力に対応。

Change Summary

Incremental Difference

--- branches/Ver1.03/reference/PJSC.ini (revision 136)
+++ branches/Ver1.03/reference/PJSC.ini (revision 137)
@@ -311,7 +311,7 @@
311311 idleUpEnabled = bits, U08, 57, [7:7], "Off", "On"
312312 idleUpAdder = scalar, U08, 58, "% / Steps" 1.0, 0.0, 0.0, 250.0, 0
313313 taeTaperMin = scalar, U08, 59, "RPM", 100, 0.0, 1000, 10000, 0
314- taeTaperMax = scalar, U08, 60, "RPM", 100, 0.0, 2000, 10000, 0
314+ taeTaperMax = scalar, U08, 60, "RPM", 100, 0.0, 2000, 25500, 0
315315
316316 iacCLminDuty = scalar, U08, 61, "%", 1.0, 0.0, 0.0, 100.0, 0 ; Minimum and maximum duty cycles when using closed loop idle
317317 iacCLmaxDuty = scalar, U08, 62, "%", 1.0, 0.0, 0.0, 100.0, 0
@@ -322,8 +322,14 @@
322322 EMAPMin = scalar, S08, 67, "kpa", 1.0, 0.0, -100, 127.0, 0
323323 EMAPMax = scalar, U16, 68, "kpa", 1.0, 0.0, 0.0, 25500, 0
324324
325- fanWhenOff = bits, U08, 70, [0:0], "No", "Yes"
326- unused_fan_bits = bits, U08, 70,[1:7]
325+ fanWhenOff = bits, U08, 70, [0:0], "No", "Yes"
326+ dfcoTPSdotEnabled = bits, U08, 70, [1:1], "Off", "On" ;[PJSC v1.03]
327+;[PJSC v1.03] unused_fan_bits = bits, U08, 70,[1:7]
328+ swIATcorrection = bits, U08, 70, [2:2], "Off", "On" ;[PJSC v1.03]
329+ swTAE = bits, U08, 70, [3:3], "Off", "On" ;[PJSC v1.03]
330+ swWUE = bits, U08, 70, [4:4], "Off", "On" ;[PJSC v1.03]
331+ swCrankingEnrichment = bits, U08, 70, [5:5], "Off", "On" ;[PJSC v1.03]
332+ unused_fan_bits = bits, U08, 70, [6:7] ;[PJSC v1.03]
327333
328334 ;[PJSC] unused2-67 = array, U08, 71, [56], "%", 1.0, 0.0, 0.0, 255, 0
329335 pjscFreq = scalar, U08, 71, "Hz", 2.0, 0.0, 10, 511, 0 ;[PJSC]
@@ -346,21 +352,13 @@
346352 ;[PJSC v1.03] exTrigModeSelect = bits, U08, 76, [0:1], "Disable", "Spark timing capture", "MAP select switch", "Misfire Detection" ;[PJSC]
347353 ;[PJSC v1.03] externalTrigEdge = bits, U08, 76, [2:2], "Rising", "Falling" ; |
348354 externalTrigEdge = bits, U08, 76, [3:3], "Rising", "Falling" ;[PJSC v1.03]
349-;[PJSC v1.02] exValveCaptureEnabled = bits, U08, 76, [3:3], "Disable", "Exhaust Valve Position capture" ; |
350-;[PJSC v1.02] exValveCalibrationMode = bits, U08, 76, [4:4], "Off", "On" ;[PJSC]
351-;[PJSC v1.02] unused2_76 = bits, U08, 76, [5:7] ;[PJSC v1.01]
352-;[PJSC v1.03] exValveCalibrationMode = bits, U08, 76, [3:3], "Off", "On" ;[PJSC v1.02]
353355 analogInputPortSelect = bits, U08, 76, [4:5], "Disable", "Exhaust Valve Position capture", "Secondary AFR/O2", "INVALID" ;[PJSC v1.02]
354356 analogInputPortSelect2 = bits, U08, 76, [6:7], "Disable", "Barometric sensor", "Exhaust Gas Temperature", "INVALID" ;[PJSC v1.03]
355- dutyPulseCaptureEnabled = bits, U08, 77, [0:0], "Disable", "PWM input" ;[PJSC v1.01]
356- dutyPulseCaptureEnabled2 = bits, U08, 77, [1:1], "Disable", "PWM input" ; |
357- dutyPulseOnLevel = bits, U08, 77, [2:2], "High", "Low" ; |
358- dutyPulseOnLevel2 = bits, U08, 77, [3:3], "High", "Low" ; V
359-;[PJSC v1.03] unused2_77 = bits, U08, 77, [4:7] ;[PJSC v1.01]
360- swIATcorrection = bits, U08, 77, [4:4], "Off", "On" ;[PJSC v1.03]
361- swTAE = bits, U08, 77, [5:5], "Off", "On" ;[PJSC v1.03]
362- swWUE = bits, U08, 77, [6:6], "Off", "On" ;[PJSC v1.03]
363- swCrankingEnrichment = bits, U08, 77, [7:7], "Off", "On" ;[PJSC v1.03]
357+ dutyPulseCaptureEnabled = bits, U08, 77, [0:1], "Disable", "PWM input", "SMART shift", "INVALID" ; |
358+ dutyPulseCaptureEnabled2 = bits, U08, 77, [2:3], "Disable", "PWM input", "INVALID", "INVALID" ; |
359+ dutyPulseOnLevel = bits, U08, 77, [4:4], "High", "Low" ; |
360+ dutyPulseOnLevel2 = bits, U08, 77, [5:5], "High", "Low" ; V
361+ unused2_77 = bits, U08, 77, [6:7] ;[PJSC v1.03]
364362 #if table4_spark ;[PJSC v1.01] For switching table4
365363 veMapSelection1Pri = bits, U08, 78, [0:3], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"
366364 veMapSelection1Sec = bits, U08, 78, [4:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"
@@ -565,9 +563,9 @@
565563 #endif
566564 iatRetRates = array, U08, 54, [ 6], "deg", 1.0, 0.0, 0.00, 255.0, 0
567565 ;Decelleration Fuel Cut Off (DFCO)
568- dfcoRPM = scalar, U08, 60, "RPM", 10.0, 0.0, 100, 2550, 0
569- dfcoHyster = scalar, U08, 61, "RPM", 1.0, 0.0, 100, 255.0, 0
570- dfcoTPSThresh= scalar, U08, 62, "%", 1.0, 0.0, 0, 100.0, 0
566+ dfcoRPM = scalar, U08, 60, "RPM", 50.0, 0.0, 100, 12750, 0
567+ dfcoHyster = scalar, U08, 61, "RPM", 1.0, 0.0, 100, 255.0, 0
568+ dfcoTPSThresh= scalar, U08, 62, "%", 1.0, 0.0, 0, 100.0, 0
571569 ;Cranking ignition bypass
572570 ignBypassEnable = bits, U08, 63, [0:0], "Off", "On"
573571 ignBypassPin = bits , U08, 63, [1:6], "INVALID", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
@@ -592,8 +590,14 @@
592590 misfireDetectThresh = scalar, U08, 91, "rpm", 10, 0.0, 100, 1000, 0 ;[PJSC v1.03] For misfire detection
593591 numSpeedPulsePerRev = scalar, U08, 92, "pulse", 1, 0, 0, 255, 0 ;[PJSC v1.03] For capturing viecle speed
594592 tireCircumference = scalar, U16, 93, "mm", 1, 0, 0, 65535, 0 ;[PJSC v1.03] For capturing viecle speed
595- unused4-95 = array, U08, 95, [32], "%", 1.0, 0.0, 0.0, 255, 0 ;[PJSC v1.03] For misfire detection
596593
594+ dfcoTPSdotThresh = scalar, S16, 95, "%/s", 1.0, 0.0, -2000, 0, 0 ;[PJSC v1.03] For TPSdot DFCO
595+ dfcoTPSdotMulti = scalar, U08, 97, "%", 1.0, 0.0, 0.0, 100.0, 0 ;[PJSC v1.03] For TPSdot DFCO
596+ dfcoTPSdotDuration = scalar, U08, 98, "ms", 1.0, 0.0, 0.0, 2550, 0 ;[PJSC v1.03] For TPSdot DFCO
597+ dfcoTPSdotRPM = scalar, U08, 99, "RPM", 50.0, 0.0, 100, 12750, 0 ;[PJSC v1.03] For TPSdot DFCO
598+ dfcoTPSdotTPSThresh = scalar, U08, 100, "%", 1, 0, 0, 100, 0 ;[PJSC v1.03] For TPSdot DFCO
599+ unused4-101 = array, U08, 101, [26], "%", 1.0, 0.0, 0.0, 255, 0 ;[PJSC v1.03] For TPSdot DFCO
600+
597601 ;--------------------------------------------------
598602 ;Start AFR page
599603 ;--------------------------------------------------
@@ -2176,8 +2180,15 @@
21762180 dialog = accelEnrichments_south, "Decelleration Fuel Cutoff (DFCO)"
21772181 field = "Enabled", dfcoEnabled
21782182 field = "TPS Threshold", dfcoTPSThresh, { dfcoEnabled }
2179- field = "Cutoff RPM", dfcoRPM, { dfcoEnabled }
2183+ field = "Cutoff RPM", dfcoRPM, { dfcoEnabled }
21802184 field = "RPM Hysteresis", dfcoHyster, { dfcoEnabled }
2185+ field = "" ;[PJSC v1.03] For TPSdot DFCO
2186+ field = "TPSdot DFCO", dfcoTPSdotEnabled ; |
2187+ field = "TPSdot DFCO Threshold", dfcoTPSdotThresh, { dfcoTPSdotEnabled } ; |
2188+ field = "TPSdot DFCO Multipiier", dfcoTPSdotMulti, { dfcoTPSdotEnabled } ; |
2189+ field = "TPSdot DFCO Duration", dfcoTPSdotDuration, { dfcoTPSdotEnabled } ; |
2190+ field = "TPSdot DFCO RPM", dfcoTPSdotRPM, { dfcoTPSdotEnabled } ; V
2191+ field = "TPSdot DFCO TPS Threshold", dfcoTPSdotTPSThresh, { dfcoTPSdotEnabled } ;[PJSC v1.03] For TPSdot DFCO
21812192
21822193 dialog = accelEnrichments_north_south, ""
21832194 liveGraph = pump_ae_Graph, "AE Graph"
@@ -3949,6 +3960,7 @@
39493960
39503961 tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0
39513962 throttleGauge = throttle, "Throttle Position", "%TPS", 0, 100, -1, 1, 90, 100, 0, 0
3963+ tpsDotGauge = TPSdot, "Throttle Velocity", "%/s", -2000, 2000, -1800, -1500, 1500, 1800, 0, 0 ;[PJSC v1.03]
39523964
39533965 afrGauge = afr, "Air:Fuel Ratio", "", 10, 18, 11, 12, 16, 17, 2, 2
39543966 afrGauge2 = afr2, "Air:Fuel Ratio 2", "", 10, 18, 11, 12, 16, 17, 2, 2
@@ -4073,7 +4085,7 @@
40734085 ochGetCommand = "r\$tsCanId\x30%2o%2c"
40744086 ;[PJSC] ochBlockSize = 90
40754087 ;[PJSC v1.03] ochBlockSize = 116 ;[PJSC v1.02] Extend block size
4076- ochBlockSize = 132 ;[PJSC v1.03] Extend block size
4088+ ochBlockSize = 133 ;[PJSC v1.03] Extend block size
40774089
40784090 secl = scalar, U08, 0, "sec", 1.000, 0.000
40794091 status1 = scalar, U08, 1, "bits", 1.000, 0.000
@@ -4110,8 +4122,9 @@
41104122 veCurr = scalar, U08, 18, "%", 1.000, 0.000
41114123 afrTarget = scalar, U08, 19, "O2", 0.100, 0.000
41124124 pulseWidth = scalar, U16, 20, "ms", 0.001, 0.000
4113- TPSdot = scalar, U08, 22, "%/s", 10.00, 0.000
4114- advance = scalar, S08, 23, "deg", 1.000, 0.000
4125+;[PJSC v1.03] TPSdot = scalar, U08, 22, "%/s", 10.00, 0.000
4126+;[PJSC v1.03] advance = scalar, S08, 23, "deg", 1.000, 0.000
4127+ TPSdot = scalar, S16, 22, "%/s", 10.00, 0.000 ;[PJSC v1.03]
41154128 tps = scalar, U08, 24, "%", 1.000, 0.000
41164129 loopsPerSecond = scalar, U16, 25, "loops", 1.000, 0.000
41174130 freeRAM = scalar, U16, 27, "bytes", 1.000, 0.000
@@ -4201,6 +4214,7 @@
42014214 viecleSpeed = scalar, U16, 126, "km/h", 0.100, 0.000 ;[PJSC v1.03]For capturing viecle speed
42024215 dutyPulseOn_T = scalar, U16, 128, "ms", 0.001, 0.000 ;[PJSC v1.03]For capturing duty pulse
42034216 dutyPulseOn_T2 = scalar, U16, 130, "ms", 0.001, 0.000 ;[PJSC v1.03]For capturing duty pulse
4217+ advance = scalar, S08, 132, "deg", 1.000, 0.000 ;[PJSC v1.03]
42044218
42054219
42064220 #if CELSIUS
--- branches/Ver1.03/speeduino/cancomms.h (revision 136)
+++ branches/Ver1.03/speeduino/cancomms.h (revision 137)
@@ -1,7 +1,8 @@
11 #ifndef CANCOMMS_H
22 #define CANCOMMS_H
33
4-#define CAN_PACKET_SIZE 75
4+//[PJSC v1.03]#define CAN_PACKET_SIZE 75
5+#define CAN_PACKET_SIZE 133 //[PJSC v1.03]
56
67 uint8_t currentcanCommand;
78 uint8_t currentCanPage = 1;//Not the same as the speeduino config page numbers
--- branches/Ver1.03/speeduino/comms.h (revision 136)
+++ branches/Ver1.03/speeduino/comms.h (revision 137)
@@ -20,7 +20,7 @@
2020
2121 //[PJSC]#define SERIAL_PACKET_SIZE 90 //Must match ochBlockSize in ini file
2222 //[PJSC v1.03]#define SERIAL_PACKET_SIZE 116 //[PJSC v1.02] Extend serial packet block size
23-#define SERIAL_PACKET_SIZE 132 //[PJSC v1.03] Extend serial packet block size
23+#define SERIAL_PACKET_SIZE 133 //[PJSC v1.03] Extend serial packet block size
2424
2525 byte currentPage = 1;//Not the same as the speeduino config page numbers
2626 bool isMap = true;
--- branches/Ver1.03/speeduino/corrections.h (revision 136)
+++ branches/Ver1.03/speeduino/corrections.h (revision 137)
@@ -21,6 +21,7 @@
2121 static inline byte correctionLaunch() __attribute__((always_inline)); //Launch control correction
2222 static inline bool correctionDFCO() __attribute__((always_inline)); //Decelleration fuel cutoff
2323 static inline byte correctionBARO() __attribute__((always_inline)); //[PJSC v1.03]Barometric pressure correction
24+static inline int16_t setDecelerationCorrection() __attribute__((always_inline)); //[PJSC v1.03]
2425
2526 int8_t correctionsIgn(int8_t advance);
2627 static inline int8_t correctionFixedTiming(int8_t);
--- branches/Ver1.03/speeduino/globals.h (revision 136)
+++ branches/Ver1.03/speeduino/globals.h (revision 137)
@@ -269,6 +269,10 @@
269269 #define EXTRIG_MISFIRE_DETECTION 3 //[PJSC v1.03] For Misfire detection
270270 #define EXTRIG_VIECLE_SPEED 4 //[PJSC v1.03] For capturing viecle speed
271271
272+#define DIGITAL_INPUT2_DISABLE 0 //[PJSC v1.03]
273+#define DIGITAL_INPUT2_PWM_CAPT 1 //[PJSC v1.03]
274+#define DIGITAL_INPUT2_SHIFT 2 //[PJSC v1.03]
275+
272276 #define MUXOUT_OFF 0 //[PJSC v1.01] MUX output selection
273277 #define MUXOUT_IDLE 1 //[PJSC v1.01] MUX output selection
274278 #define MUXOUT_FAN 2 //[PJSC v1.01] MUX output selection
@@ -396,8 +400,8 @@
396400 int CRANK_ANGLE_MAX = 720;
397401 int CRANK_ANGLE_MAX_IGN = 360;
398402 int CRANK_ANGLE_MAX_INJ = 360; //The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential
399-
400403
404+
401405 //This needs to be here because using the config page directly can prevent burning the setting
402406 byte resetControl = RESET_CONTROL_DISABLED;
403407
@@ -422,7 +426,8 @@
422426 unsigned long TPS_time; //The time the TPS sample was taken
423427 unsigned long TPSlast_time; //The time the previous TPS sample was taken
424428 byte tpsADC; //0-255 byte representation of the TPS
425- byte tpsDOT;
429+//[PJSC v1.03] byte tpsDOT;
430+ int tpsDOT; //[PJSC v1.03]
426431 volatile int rpmDOT;
427432 byte VE;
428433 byte VE2; //[PJSC]
@@ -653,8 +658,14 @@
653658 int8_t EMAPMin; //Must be signed
654659 uint16_t EMAPMax;
655660
656- byte fanWhenOff : 1; // Only run fan when engine is running
657- byte fanUnused : 7;
661+ byte fanWhenOff : 1; // Only run fan when engine is running
662+ byte dfcoTPSdotEnabled : 1; //[PJSC v1.03] For TPSdotDFCO
663+ byte swIATcorrection: 1; //[PJSCv1.03]
664+ byte swTAE: 1; // |
665+ byte swWUE: 1; // V
666+ byte swCrankingEnrichment: 1; //[PJSCv1.03]
667+ byte fanUnused : 2; //[PJSC v1.03] For TPSdotDFCO
668+//[PJSC v1.03] byte fanUnused : 7;
658669
659670 //[PJSC] byte unused1_70[57];
660671 byte pjscFreq; //[PJSC] Offset 71
@@ -679,15 +690,11 @@
679690 //[PJSC v1.02] byte unused2_76: 3; // |
680691 byte analogInputPortSelection: 2; // |[PJSC v1.02] For Analog input port selection
681692 byte analogInputPortSelection2: 2; // |[PJSC v1.03]
682- byte dutyPulseCaptureEnabled: 1; // | For capturing duty pulse ch1
683- byte dutyPulseCaptureEnabled2: 1; // | For capturing duty pulse ch2
693+ byte dutyPulseCaptureEnabled: 2; // | For capturing duty pulse ch1
694+ byte dutyPulseCaptureEnabled2: 2; // | For capturing duty pulse ch2
684695 byte dutyPulseOnLevel: 1; // | For capturing duty pulse ch1, 0: high, 1: low
685696 byte dutyPulseOnLevel2: 1; // | For capturing duty pulse ch2, 0: high, 1: low
686-//[PJSC v1.03] byte unused2_77: 4; // V
687- byte swIATcorrection: 1; //[PJSCv1.03]
688- byte swTAE: 1; // |
689- byte swWUE: 1; // V
690- byte swCrankingEnrichment: 1; //[PJSCv1.03]
697+ byte unused2_77: 2; // V
691698 byte veMapSelectionInj1Pri: 4; //[PJSCv1.01] For x4 Fuel table support
692699 byte veMapSelectionInj1Sec: 4; //[PJSCv1.01] |
693700 byte veMapSelectionInj2Pri: 4; //[PJSCv1.01] |
@@ -832,8 +839,14 @@
832839 byte misfireDetectThresh; //[PJSC v1.03] For misfire detection
833840 byte numSpeedPulsePerRev; //[PJSC v1.03] For capturing viecle speed
834841 uint16_t tireCircumference; //[PJSC v1.03] For capturing viecle speed
835- byte unused2_95[32]; //[PJSC v1.03] For misfire detection
836842
843+ int16_t dfcoTPSdotThresh; //[PJSC v1.03] For TPSdot DFCO
844+ byte dfcoTPSdotMulti; //[PJSC v1.03] For TPSdot DFCO
845+ byte dfcoTPSdotDuration; //[PJSC v1.03] For TPSdot DFCO
846+ byte dfcoTPSdotRPM; //[PJSC v1.03] For TPSdot DFCO
847+ byte dfcoTPSdotTPSThresh; //[PJSC v1.03] For TPSdot DFCO
848+ byte unused2_101[26]; //[PJSC v1.03] For TPSdot DFCO
849+
837850 #if defined(CORE_AVR)
838851 };
839852 #else