• 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

Revision115 (tree)
Time2021-02-23 01:17:36
Authormaharu

Log Message

[PJSC v1.03]
燃調補正に大気圧補正(Barometric pressure correction)を追加
燃調補正スイッチを追加し、補正毎にOFF/ONを選択出来るように変更

Change Summary

Incremental Difference

--- branches/Ver1.03/reference/PJSC.ini (revision 114)
+++ branches/Ver1.03/reference/PJSC.ini (revision 115)
@@ -337,7 +337,8 @@
337337 dualFuelEnabled = bits, U08, 75, [4:4], "Disable", "Enable" ;[PJSC v1.01] For Dual Fuel Load
338338 secondaryFuelUsage = bits, U08, 75, [5:5], "additive", "multiply" ;[PJSC v1.01] For Dual Fuel Load
339339 ;[PJSC v1.01] unused2_75 = bits, U08, 75, [6:7] ;[PJSC v1.01]
340- fuelCorrectionEnabled = bits, U08, 75, [6:6], "Disable", "Enable" ;[PJSC v1.01]
340+;[PJSC v1.03] fuelCorrectionEnabled = bits, U08, 75, [6:6], "Disable", "Enable" ;[PJSC v1.01]
341+ swBatVCorrection = bits, U08, 75, [6:6], "Off", "On" ;[PJSC v1.03]
341342 ;[PJSC v1.03] unused2_75 = bits, U08, 75, [7:7] ;[PJSC v1.01]
342343 vvtSamplingRate = bits, U08, 75, [7:7], "4Hz", "30Hz" ;[PJSC v1.03]
343344 exTrigModeSelect = bits, U08, 76, [0:1], "Disable", "Spark timing capture", "MAP select switch", "INVALID" ;[PJSC]
@@ -353,10 +354,10 @@
353354 dutyPulseOnLevel = bits, U08, 77, [2:2], "High", "Low" ; |
354355 dutyPulseOnLevel2 = bits, U08, 77, [3:3], "High", "Low" ; V
355356 ;[PJSC v1.03] unused2_77 = bits, U08, 77, [4:7] ;[PJSC v1.01]
356- disableIATcorrection = bits, U08, 77, [4:4], "Enable", "Disable" ;[PJSC v1.03]
357- disableBAROcorrection = bits, U08, 77, [5:5], "Enable", "Disable" ;[PJSC v1.03]
358- disableWUE = bits, U08, 77, [6:6], "Enable", "Disable" ;[PJSC v1.03]
359- disableCrankingEnrichment= bits, U08, 77, [7:7], "Enable", "Disable" ;[PJSC v1.03]
357+ swIATcorrection = bits, U08, 77, [4:4], "Off", "On" ;[PJSC v1.03]
358+ swTAE = bits, U08, 77, [5:5], "Off", "On" ;[PJSC v1.03]
359+ swWUE = bits, U08, 77, [6:6], "Off", "On" ;[PJSC v1.03]
360+ swCrankingEnrichment = bits, U08, 77, [7:7], "Off", "On" ;[PJSC v1.03]
360361 #if table4_spark ;[PJSC v1.01] For switching table4
361362 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"
362363 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"
@@ -438,11 +439,11 @@
438439 muxout3selection = bits, U08, 118, [0:3], "Disable/Test Mode", "IDLE control", "Thermo Fan control", "INVALID", "Fuel pump control", "Boost control", "VVT control", "Tach output", "INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" ;[PJSC v1.01]
439440 muxout4selection = bits, U08, 118, [4:7], "Disable/Test Mode", "IDLE control", "Thermo Fan control", "INVALID", "Fuel pump control", "Boost control", "VVT control", "Tach output", "INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" ;[PJSC v1.01]
440441 #endif ;[PJSC v1.01]
441-;[PJSC v1.01] baroDenBins = array, U08, 102, [9], "kPa", 1.0, 0.0, 0.0, 255.0, 0 ;[PJSC v1.01] Bins for the Barometric density correction curve
442-;[PJSC v1.01] baroDenRates = array, U08, 111, [9], "%", 1.0, 0.0, 0.0, 255.0, 0 ;[PJSC v1.01] Values for the \Barometric density correction curve
443442 algorithm2 = bits, U08, 119, [0:2], $loadSourceNames ;[PJSC v1.01] For Dual Fuel Load
444443 algorithm3 = bits, U08, 119, [3:5], $loadSourceNames ;[PJSC v1.01]
445- unused2_119 = bits, U08, 119, [6:7] ;[PJSC v1.01]
444+;[PJSC v1.03] unused2_119 = bits, U08, 119, [6:7] ;[PJSC v1.01]
445+ swASE = bits, U08, 119, [6:6], "Off", "On" ;[PJSC v1.03]
446+ unused2_119 = bits, U08, 119, [7:7] ;[PJSC v1.03]
446447 table4Usage = bits, U08, 120, [0:0], "Fuel", "Spark" ;[PJSC v1.01]
447448 unused2_120 = bits, U08, 120, [1:7] ;[PJSC v1.01]
448449 inj1SquirtStartEnd = bits, U08, 121, [0:0], "End angle", "Start angle" ;[PJSC v1.01]
@@ -1516,8 +1517,7 @@
15161517 ;[PJSC v1.01] subMenu = injChars, "Injector Characteristics"
15171518 subMenu = triggerSettings, "Trigger Setup"
15181519 ;subMenu = OLED, "OLED Setup"
1519- subMenu = airdensity_curve, "IAT Density"
1520- subMenu = barodensity_curve, "Baro Density", { baroCorr } ;[PJSC v1.01]
1520+;[PJSC v1.03] subMenu = airdensity_curve, "IAT Density"
15211521
15221522 subMenu = std_separator ;[PJSC v1.02]
15231523 subMenu = gaugeLimits, "Gauge Limits" ; |
@@ -1532,6 +1532,9 @@
15321532 subMenu = std_separator ;[PJSC v1.01]
15331533 subMenu = injChars, "Injector Characteristics" ;[PJSC v1.01]
15341534 subMenu = accelEnrichments, "Acceleration Enrichment"
1535+ subMenu = airdensity_curve, "IAT Density", { swIATcorrection } ;[PJSC v1.03]
1536+ subMenu = barodensity_curve, "Baro Density", { baroCorr } ; V
1537+ subMenu = correctionSelect, "Fuel correnction" ;[PJSC v1.03]
15351538 subMenu = egoControl, "AFR/O2", 3
15361539 #if table4_spark ;[PJSC v1.01] For switching table4
15371540 subMenu = RevLimiterS, "Limiters", 2
@@ -2043,7 +2046,6 @@
20432046 dialog = analogInputPort2,"Analog Input Port2", xAxis ; | |
20442047 panel = analogInputPort2_controls ; | V
20452048 panel = analogInputPort2_r ; |[PJSC v1.03]
2046-
20472049 ; |
20482050 dialog = digitalInputPort1, "Digital Input Port1", border ; |
20492051 panel = digitalInputPort1select, West ; |
@@ -2163,12 +2165,22 @@
21632165 panel = accelEnrichments_center, Center
21642166 panel = accelEnrichments_south, South
21652167
2168+ dialog = correctionSelect, "Fuel correction" ;[PJSC v1.03]
2169+ field = "Barometric correction", baroCorr ; |
2170+ field = "IAT density correction", swIATcorrection ; |
2171+ field = "Acceleration Enrichment", swTAE ; |
2172+ field = "Decelleration Fuel Cutoff", dfcoEnabled ; |
2173+ field = "Cranking Enrichment", swCrankingEnrichment ; |
2174+ field = "Warmup Enrichment", swWUE ; |
2175+ field = "After Start Enrichment", swASE ; V
2176+ field = "Injector voltage correction", swBatVCorrection ;[PJSC v1.03]
2177+
21662178 dialog = veCorrectionSetting, "VE correction setting" ;[PJSC v1.01]
21672179 field = "Multiply VE value by MAP:Baro ratio", multiplyMAP ; |
2168- field = "Multiply by ratio of AFR to Target AFR", includeAFR, { egoType == 2 } ; V
2169- field = "Barometric correction", baroCorr, { useExtBaro } ;[PJSC v1.01]
2170-
2171- dialog = veMapSelectionSet1Pri, "Primary Table" ;[PJSC v1.01]
2180+ field = "Multiply by ratio of AFR to Target AFR", includeAFR, { egoType == 2 } ; |
2181+;[PJSC v1.03] field = "Barometric correction", baroCorr, { useExtBaro } ; |
2182+ ; |
2183+ dialog = veMapSelectionSet1Pri, "Primary Table" ; |
21722184 field = "Injector 1", veMapSelection1Pri ; |
21732185 field = "Injector 2", veMapSelection2Pri, { multiVEmapEnabled && mapSeparationEnabled } ; |
21742186 field = "Injector 3", veMapSelection3Pri, { multiVEmapEnabled && mapSeparationEnabled } ; |
@@ -2234,46 +2246,46 @@
22342246 ;[PJSC] dialog = veTableDialog, "VE Table"
22352247 ;[PJSC] panel = veTableDialog_north, North
22362248 ;[PJSC] panel = veTableDialog_south, South
2237- dialog = veTable1Dialog, "VE Table 1" ;[PJSC v1.01]
2238- panel = veTable1Tbl ; |
2239- ; |
2240- dialog = veTable2Dialog, "VE Table 2" ; |
2241- panel = veTable2Tbl ; |
2242- ; |
2243- dialog = veTable3Dialog, "VE Table 3" ; |
2244- panel = veTable3Tbl ; |
2245- ; |
2246- dialog = veTable4Dialog, "VE Table 4" ; V
2247- panel = sparkTbl ;[PJSC v1.01]
2249+ dialog = veTable1Dialog, "VE Table 1" ;[PJSC v1.01]
2250+ panel = veTable1Tbl ; |
2251+ ; |
2252+ dialog = veTable2Dialog, "VE Table 2" ; |
2253+ panel = veTable2Tbl ; |
2254+ ; |
2255+ dialog = veTable3Dialog, "VE Table 3" ; |
2256+ panel = veTable3Tbl ; |
2257+ ; |
2258+ dialog = veTable4Dialog, "VE Table 4" ; V
2259+ panel = sparkTbl ;[PJSC v1.01]
22482260
2249- dialog = squirtDeviceSelection_west, "" ;[PJSC v1.03]
2250- field = "Channel 1", squirtDeviceTypeCh1 ; |
2251- field = "Channel 2", squirtDeviceTypeCh2 ; |
2252- field = "Channel 3", squirtDeviceTypeCh3 ; V
2253- field = "Channel 4", squirtDeviceTypeCh4 ;[PJSC v1.03]
2261+ dialog = squirtDeviceSelection_west, "" ;[PJSC v1.03]
2262+ field = "Channel 1", squirtDeviceTypeCh1 ; |
2263+ field = "Channel 2", squirtDeviceTypeCh2 ; |
2264+ field = "Channel 3", squirtDeviceTypeCh3 ; |
2265+ field = "Channel 4", squirtDeviceTypeCh4 ; |
2266+ ; |
2267+ dialog = squirtDeviceSelection_east, "" ; |
2268+ field = "Valve Mode", solenoidValveDirectionCh1, { squirtDeviceTypeCh1 == 1 } ; |
2269+ field = "Valve Mode", solenoidValveDirectionCh2, { squirtDeviceTypeCh2 == 1 } ; |
2270+ field = "Valve Mode", solenoidValveDirectionCh3, { squirtDeviceTypeCh3 == 1 } ; |
2271+ field = "Valve Mode", solenoidValveDirectionCh4, { squirtDeviceTypeCh4 == 1 } ; |
2272+ ; |
2273+ dialog = squirtDeviceSelection, "Squirt Device selection", xAxis ; |
2274+ panel = squirtDeviceSelection_west ; |
2275+ panel = squirtDeviceSelection_east ; |
2276+ ; |
2277+ dialog = injCloseAngles_west, "" ; |
2278+ field = "Channel 1", inj1SquirtStartEnd, { squirtDeviceTypeCh1 == 0 } ; |
2279+ field = "Channel 2", inj2SquirtStartEnd, { indInjAng && squirtDeviceTypeCh2 == 0 } ; |
2280+ field = "Channel 3", inj3SquirtStartEnd, { indInjAng && squirtDeviceTypeCh3 == 0 } ; |
2281+ field = "Channel 4", inj4SquirtStartEnd, { indInjAng && squirtDeviceTypeCh4 == 0 } ; |
2282+ ; |
2283+ dialog = injCloseAngles_east, "" ; |
2284+ field = "", inj1Ang, { squirtDeviceTypeCh1 == 0 } ; |
2285+ field = "", inj2Ang, { indInjAng && squirtDeviceTypeCh2 == 0 } ; |
2286+ field = "", inj3Ang, { indInjAng && squirtDeviceTypeCh3 == 0 } ; V
2287+ field = "", inj4Ang, { indInjAng && squirtDeviceTypeCh4 == 0 } ;[PJSC v1.03]
22542288
2255- dialog = squirtDeviceSelection_east, "" ;[PJSC v1.03]
2256- field = "Valve Mode", solenoidValveDirectionCh1, { squirtDeviceTypeCh1 == 1 } ; |
2257- field = "Valve Mode", solenoidValveDirectionCh2, { squirtDeviceTypeCh2 == 1 } ; |
2258- field = "Valve Mode", solenoidValveDirectionCh3, { squirtDeviceTypeCh3 == 1 } ; V
2259- field = "Valve Mode", solenoidValveDirectionCh4, { squirtDeviceTypeCh4 == 1 } ;[PJSC v1.03]
2260-
2261- dialog = squirtDeviceSelection, "Squirt Device selection", xAxis ;[PJSC v1.03]
2262- panel = squirtDeviceSelection_west ; V
2263- panel = squirtDeviceSelection_east ;[PJSC v1.03]
2264-
2265- dialog = injCloseAngles_west, "" ;[PJSC v1.03]
2266- field = "Channel 1", inj1SquirtStartEnd, { squirtDeviceTypeCh1 == 0 } ; |
2267- field = "Channel 2", inj2SquirtStartEnd, { indInjAng && squirtDeviceTypeCh2 == 0 } ; |
2268- field = "Channel 3", inj3SquirtStartEnd, { indInjAng && squirtDeviceTypeCh3 == 0 } ; V
2269- field = "Channel 4", inj4SquirtStartEnd, { indInjAng && squirtDeviceTypeCh4 == 0 } ;[PJSC v1.03]
2270-
2271- dialog = injCloseAngles_east, "" ;[PJSC v1.03]
2272- field = "", inj1Ang, { squirtDeviceTypeCh1 == 0 } ; |
2273- field = "", inj2Ang, { indInjAng && squirtDeviceTypeCh2 == 0 } ; |
2274- field = "", inj3Ang, { indInjAng && squirtDeviceTypeCh3 == 0 } ; V
2275- field = "", inj4Ang, { indInjAng && squirtDeviceTypeCh4 == 0 } ;[PJSC v1.03]
2276-
22772289 ;[PJSC v1.03] dialog = injCloseAngles_west, "" ;[PJSC v1.01]
22782290 ;[PJSC v1.03] field = "Channel 1", inj1SquirtStartEnd, { squirtDeviceType == 0 } ; |
22792291 ;[PJSC v1.03] field = "Channel 2", inj2SquirtStartEnd, { (nCylinders > 1 || nInjectors > 1) && indInjAng && squirtDeviceType == 0 } ; |
--- branches/Ver1.03/speeduino/corrections.h (revision 114)
+++ branches/Ver1.03/speeduino/corrections.h (revision 115)
@@ -19,6 +19,7 @@
1919 static inline byte correctionIATDensity() __attribute__((always_inline)); //Inlet temp density correction
2020 static inline byte correctionLaunch() __attribute__((always_inline)); //Launch control correction
2121 static inline bool correctionDFCO() __attribute__((always_inline)); //Decelleration fuel cutoff
22+static inline byte correctionBARO() __attribute__((always_inline)); //[PJSC v1.03]Barometric pressure correction
2223
2324 int8_t correctionsIgn(int8_t advance);
2425 static inline int8_t correctionFixedTiming(int8_t);
--- branches/Ver1.03/speeduino/globals.h (revision 114)
+++ branches/Ver1.03/speeduino/globals.h (revision 115)
@@ -308,6 +308,7 @@
308308 struct table2D flexBoostTable; //6 bin flex fuel correction table for boost adjustments (2D)
309309 struct table2D knockWindowStartTable;
310310 struct table2D knockWindowDurationTable;
311+struct table2D barometricCorrectionTable; //[PJSC v1.03]9 bin barometric pressure correction (2D)
311312
312313 //These are for the direct port manipulation of the injectors, coils and aux outputs
313314 volatile PORT_TYPE *inj1_pin_port;
@@ -448,6 +449,7 @@
448449 byte launchCorrection; //The amount of correction being applied if launch control is active
449450 byte flexCorrection; //Amount of correction being applied to compensate for ethanol content
450451 int8_t flexIgnCorrection; //Amount of additional advance being applied based on flex. Note the type as this allows for negative values
452+ byte baroCorrection; //[PJSC v1.03]The amount of barometric pressure adjustment currently being applied
451453 byte afrTarget;
452454 byte idleDuty;
453455 bool idleUpActive;
@@ -657,8 +659,9 @@
657659 byte mapSwitchingEnabled: 1; // |
658660 byte dualFuelEnabled: 1; // |
659661 byte secondaryFuelUsage: 1; // |
660- byte fuelCorrectionEnabled: 1; // |[PJSC v1.01]
662+//[PJSC v1.03] byte fuelCorrectionEnabled: 1; // |[PJSC v1.01]
661663 //[PJSC v1.03] byte unused2_75: 1; // |
664+ byte swBatVCorrection: 1; // |[PJSC v1.03]
662665 byte vvtSamplingRate: 1; // |[PJSC v1.03]
663666 byte exTrigModeSelect : 2; // | For External Trigger
664667 byte externalTrigEdge: 1; // | 0: Rising, 1: Falling
@@ -672,26 +675,26 @@
672675 byte dutyPulseOnLevel: 1; // | For capturing duty pulse ch1, 0: high, 1: low
673676 byte dutyPulseOnLevel2: 1; // | For capturing duty pulse ch2, 0: high, 1: low
674677 //[PJSC v1.03] byte unused2_77: 4; // V
675- byte disableIATcorrection: 1; //[PJSCv1.03]
676- byte disableBAROcorrection: 1; // |
677- byte disableWUE: 1; // V
678- byte disableCrankingEnrichment: 1; //[PJSCv1.03]
679- byte veMapSelectionInj1Pri: 4; //[PJSCv1.10] For x4 Fuel table support
680- byte veMapSelectionInj1Sec: 4; //[PJSCv1.10] |
681- byte veMapSelectionInj2Pri: 4; //[PJSCv1.10] |
682- byte veMapSelectionInj2Sec: 4; //[PJSCv1.10] |
683- byte veMapSelectionInj3Pri: 4; //[PJSCv1.10] |
684- byte veMapSelectionInj3Sec: 4; //[PJSCv1.10] |
685- byte veMapSelectionInj4Pri: 4; //[PJSCv1.10] |
686- byte veMapSelectionInj4Sec: 4; //[PJSCv1.10] |
687- byte veMapSelectionInj1_2Pri: 4; //[PJSCv1.10] |
688- byte veMapSelectionInj1_2Sec: 4; //[PJSCv1.10] |
689- byte veMapSelectionInj2_2Pri: 4; //[PJSCv1.10] |
690- byte veMapSelectionInj2_2Sec: 4; //[PJSCv1.10] |
691- byte veMapSelectionInj3_2Pri: 4; //[PJSCv1.10] |
692- byte veMapSelectionInj3_2Sec: 4; //[PJSCv1.10] |
693- byte veMapSelectionInj4_2Pri: 4; //[PJSCv1.10] V
694- byte veMapSelectionInj4_2Sec: 4; //[PJSCv1.10] For x4 Fuel table support
678+ byte swIATcorrection: 1; //[PJSCv1.03]
679+ byte swTAE: 1; // |
680+ byte swWUE: 1; // V
681+ byte swCrankingEnrichment: 1; //[PJSCv1.03]
682+ byte veMapSelectionInj1Pri: 4; //[PJSCv1.01] For x4 Fuel table support
683+ byte veMapSelectionInj1Sec: 4; //[PJSCv1.01] |
684+ byte veMapSelectionInj2Pri: 4; //[PJSCv1.01] |
685+ byte veMapSelectionInj2Sec: 4; //[PJSCv1.01] |
686+ byte veMapSelectionInj3Pri: 4; //[PJSCv1.01] |
687+ byte veMapSelectionInj3Sec: 4; //[PJSCv1.01] |
688+ byte veMapSelectionInj4Pri: 4; //[PJSCv1.01] |
689+ byte veMapSelectionInj4Sec: 4; //[PJSCv1.01] |
690+ byte veMapSelectionInj1_2Pri: 4; //[PJSCv1.01] |
691+ byte veMapSelectionInj1_2Sec: 4; //[PJSCv1.01] |
692+ byte veMapSelectionInj2_2Pri: 4; //[PJSCv1.01] |
693+ byte veMapSelectionInj2_2Sec: 4; //[PJSCv1.01] |
694+ byte veMapSelectionInj3_2Pri: 4; //[PJSCv1.01] |
695+ byte veMapSelectionInj3_2Sec: 4; //[PJSCv1.01] |
696+ byte veMapSelectionInj4_2Pri: 4; //[PJSCv1.01] V
697+ byte veMapSelectionInj4_2Sec: 4; //[PJSCv1.01] For x4 Fuel table support
695698 //[PJSC v1.01] byte dutyFreqTst[4]; //[PJSC v1.01] For test mode
696699 //[PJSC v1.01] byte dutyRatioTst[4]; // |
697700 byte dutyFreqTst[12]; //[PJSC v1.01] For test mode
@@ -710,7 +713,9 @@
710713 byte muxout4Selection: 4; // |[PJSC v1.01] MUX output4 selection
711714 byte fuelAlgorithm2: 3; // |[PJSC v1.01] For Secondary Fuel Algorithm
712715 byte fuelAlgorithm3: 3; // |
713- byte unused2_118: 2; // |
716+//[PJSC v1.03] byte unused2_118: 2; // |
717+ byte swASE: 1; // |[PJSC v1.03]
718+ byte unused2_118: 1; // |[PJSC v1.03]
714719 byte table4Usage: 1; // | For switching usage of 3rd table Ignition/Fuel
715720 byte unused2_119: 7; // |
716721 byte inj1SquirtStartEnd: 1; // |