• 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

Revision97 (tree)
Time2020-09-06 21:38:41
Authormaharu

Log Message

PJSC ver1.02
- 排気バルブポジション入力を、排気バルブポジション入力とセカンダリAFセンサー入力のどちらかの選択式に変更
- Tuner StudionのTune Analyze Live!でVEテーブルのオートチューンを行う際、AFセンサー入力をプライマリとセカンダリのどちらを使用するか選択可能にした
- マニュアルの修正:デュアルMOS FETの回路記号を修正(U3 -> U4)

Change Summary

Incremental Difference

--- branches/Ver1.02/reference/PJSC.ini (revision 96)
+++ branches/Ver1.02/reference/PJSC.ini (revision 97)
@@ -6,8 +6,8 @@
66 MTversion = 2.25
77
88 queryCommand = "Q"
9-;[PJSC v1.01] signature = "speeduino 201902"
10- signature = "speeduino 201902" ;[PJSC v1.02]
9+ signature = "speeduino 201902"
10+;[PJSC v1.01] signature = "PJSC v102" ;[PJSC v1.02]
1111 versionInfo = "S" ;This info is what is displayed to user
1212
1313 [TunerStudio]
@@ -29,15 +29,15 @@
2929
3030 settingGroup = resetcontrol_group, "Reset Control Features"
3131 settingOption = resetcontrol_standard, "Basic Options Only"
32- settingOption = resetcontrol_adv, "Advanced Features (16u2 Firmware Update Required)"
32+;[PJSC v1.02] settingOption = resetcontrol_adv, "Advanced Features (16u2 Firmware Update Required)"
3333
3434 settingGroup = table4_usage_group, "Selection of table4 usage" ;[PJSC v1.01] For switching 4th table
35-;[PJSC v1.01]For debug settingOption = table4_spark, "Spark advance table" ;[PJSC v1.01] For switching 4th table
35+;[PJSC v1.01] For debug settingOption = table4_spark, "Spark advance table" ;[PJSC v1.01] For switching 4th table
3636 settingOption = table4_fuel, "VE table4" ;[PJSC v1.01] For switching 4th table
3737
38- settingGroup = menu_option, "Menu Option" ;[PJSC v1.02] For menu option
39- settingOption = simple_menu, "Simple menu" ;[PJSC v1.02] For menu option
40- settingOption = full_option, "Full option" ;[PJSC v1.02] For menu option
38+ settingGroup = menuoption_group, "Tuning menu option" ;[PJSC v1.02]
39+ settingOption = full_option, "Full option" ;[PJSC v1.02]
40+;[PJSC v1.02] settingOption = simple_menu, "Simple menu" ;[PJSC v1.02]
4141
4242 [PcVariables]
4343 ; valid types: boolean, double, int, list
@@ -483,7 +483,7 @@
483483 TrigEdge = bits, U08, 5,[0:0], "RISING", "FALLING"
484484 TrigSpeed = bits, U08, 5,[1:1], "Crank Speed", "Cam Speed"
485485 IgInv = bits, U08, 5,[2:2], "Going Low", "Going High"
486- TrigPattern= bits, U08, 5,[3:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata / 3000GT", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "Daihatsu +1", "Harley EVO", "36-2-2-2", "NSR", "KATANA", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
486+ TrigPattern= bits, U08, 5,[3:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata / 3000GT", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "Daihatsu +1", "Harley EVO", "36-2-2-2", "NSR", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
487487 TrigEdgeSec= bits, U08, 6,[0:0], "RISING", "FALLING"
488488 fuelPumpPin= bits , U08, 6,[1:6], "Board Default", "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", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID"
489489 useResync = bits, U08, 6,[7:7], "No", "Yes"
@@ -1493,20 +1493,20 @@
14931493 menuDialog = main
14941494
14951495 menu = "Settings"
1496-#if full_option ;[PJSC v1.02] For menu option
14971496 subMenu = engine_constants, "Engine Constants"
14981497 ;[PJSC v1.01] subMenu = injChars, "Injector Characteristics"
14991498 subMenu = triggerSettings, "Trigger Setup"
15001499 ;subMenu = OLED, "OLED Setup"
1501-#endif ;[PJSC v1.02] For menu option
15021500 subMenu = airdensity_curve, "IAT Density"
15031501 subMenu = barodensity_curve, "Baro Density", { baroCorr } ;[PJSC v1.01]
1504- subMenu = reset_control, "Reset Control"
15051502
15061503 subMenu = std_separator ;[PJSC v1.02]
15071504 subMenu = gaugeLimits, "Gauge Limits" ; |
1505+#if full_option ;[PJSC v1.02] For simple menu
15081506 subMenu = std_separator ; V
1507+ subMenu = reset_control, "Reset Control"
15091508 subMenu = io_summary, "I/O Summary" ;[PJSC v1.02]
1509+#endif ;[PJSC v1.02] For simple menu
15101510
15111511 menu = "&Tuning"
15121512 subMenu = std_realtime, "Realtime Display"
@@ -1529,11 +1529,11 @@
15291529 subMenu = veTable4Dialog, "&VE Table 4", 0, { multiVEmapEnabled } ;[PJSC v1.01]
15301530 #endif ;[PJSC v1.01] For switching table4
15311531 subMenu = afrTable1Tbl, "AFR Table", 5
1532+#if full_option ;[PJSC v1.02] For simple menu
15321533 subMenu = std_separator
1533-#if full_option ;[PJSC v1.02] For menu option
15341534 ;[PJSC v1.01] subMenu = inj_trimad, "Sequential fuel trim", 9
15351535 subMenu = stagingTableDialog, "Staged Injection", 10, { nCylinders <= 4 } ; Can't do staging on more than 4 cylinder engines
1536-#endif ;[PJSC v1.02] For menu option
1536+#endif ;[PJSC v1.02] For simple menu
15371537
15381538 #if table4_spark ;[PJSC v1.01] For switching table4
15391539 menu = "&Spark"
@@ -1549,7 +1549,6 @@
15491549 menu = "&Starting/Idle"
15501550 subMenu = crankPW, "Cranking Settings"
15511551 subMenu = warmup, "Warmup Enrichment"
1552-#if full_option ;[PJSC v1.02] For menu option
15531552 subMenu = std_separator
15541553 ;[PJSC v1.01] subMenu = idleSettings, "Idle Control"
15551554 ;[PJSC v1.01] subMenu = iacClosedLoop_curve, "Idle - Closed loop targets", 7, { iacAlgorithm == 3 || iacAlgorithm == 5 }
@@ -1563,7 +1562,6 @@
15631562 subMenu = iacClosedLoop_curve, "Idle - Closed loop targets", 7, { (iacAlgorithm == 3 || iacAlgorithm == 5) && (muxout1selection == 1 || muxout2selection == 1) } ; |
15641563 subMenu = iacPwm_curve, "Idle - PWM Duty Cycle", 7, { iacAlgorithm == 2 && (muxout1selection == 1 || muxout2selection == 1) } ; V
15651564 subMenu = iacPwmCrank_curve, "Idle - PWM Cranking Duty Cycle", 7, { iacAlgorithm == 2 && (muxout1selection == 1 || muxout2selection == 1) } ;[PJSC v1.01] For MUX selection
1566-#endif ;[PJSC v1.02] For menu option
15671565
15681566 menu = "&Accessories"
15691567 subMenu = muxoutSetting, "MUX Output Port Setting" ;[PJSC v1.01]
@@ -1593,7 +1591,6 @@
15931591 subMenu = std_separator ; V
15941592 subMenu = tacho, "Tacho Output", { muxout1selection == 7 || muxout2selection == 7 } ;[PJSC v1.01] For MUX selection
15951593
1596-#if full_option ;[PJSC v1.02] For menu option
15971594 subMenu = std_separator ;[PJSC]
15981595 subMenu = inputPortSetting, "Input Port Setting" ;[PJSC]
15991596
@@ -1612,7 +1609,6 @@
16121609 subMenu = Canin_config, "External Auxillary Input Channel Configuration", {enable_secondarySerial || (enable_intcan && intcan_available)}
16131610 subMenu = Auxin_config, "Local Auxillary Input Channel Configuration"
16141611 #endif
1615-#endif ;[PJSC v1.02] For menu option
16161612
16171613 menuDialog = main
16181614 menu = "Tools"
@@ -1903,7 +1899,9 @@
19031899
19041900 dialog = engine_constants_west, ""
19051901 panel = std_injection, North
1902+#if full_option ;[PJSC v1.02] For simple menu
19061903 panel = engine_constants_southwest
1904+#endif ;[PJSC v1.02] For simple menu
19071905
19081906 dialog = engine_constants_northeast, "Oddfire Angles"
19091907 field = "Channel 2 angle", oddfire2, { engineType == 1 }
@@ -1919,7 +1917,9 @@
19191917
19201918 dialog = engine_constants, "", border
19211919 panel = engine_constants_west, West
1920+#if full_option ;[PJSC v1.02] For simple menu
19221921 panel = engine_constants_east, East
1922+#endif ;[PJSC v1.02] For simple menu
19231923
19241924 dialog = muxWarningMessage, "" ;[PJSC v1.01]
19251925 field = "Don't select the same function for MUX out1 and MUX out2!" ; |
@@ -2337,6 +2337,7 @@
23372337 field = "Trigger Angle ", TrigAng
23382338 field = "This number represents the angle ATDC when "
23392339 field = "tooth #1 passes the primary sensor."
2340+#if full_option ;[PJSC v1.02] For simple menu
23402341 field = ""
23412342 field = "Skip Revolutions", SkipCycles
23422343 field = "Note: This is the number of revolutions that will be skipped during"
@@ -2347,6 +2348,7 @@
23472348 field = "Trigger Filter", TrigFilter, { TrigPattern != 13 }
23482349 field = "Trigger Filter during cranking", crankingFilter, { TrigPattern != 13 } ;[PJSC v1.02]
23492350 field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 || TrigPattern == 12 || TrigPattern == 9 || TrigPattern == 13 } ;Dual wheel, 4G63, Audi 135, Nissan 360, Miata 99-05
2351+#endif ;[PJSC v1.02] For simple menu
23502352
23512353 #if table4_spark ;[PJSC v1.01] For switching table4
23522354 dialog = sparkSettings,"Spark Settings",4
@@ -3778,10 +3780,8 @@
37783780 batCorrectGauge = batCorrection, "Voltage Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0
37793781 iatCorrectGauge = airCorrection, "IAT Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0
37803782 flexEnrich, = flexFuelCor, "Flex Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0
3781-#if table4_spark ;[PJSC v1.02]
37823783 advanceGauge = advance, "Spark Advance", "deg BTDC", 50, -10, 0, 0, 35, 45, 0, 0
37833784 dwellGauge = dwell, "Ign Dwell", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3
3784-#endif ;[PJSC v1.02]
37853785 boostTargetGauge = boostTarget, "Target Boost", "kPa", 0, {maphigh}, 0, 20, {mapwarn}, {mapdang}, 0, 0 ;[PJSC v1.02]
37863786 boostDutyGauge = boostDuty, "Boost Duty Cycle", "%", 0, 100, -1, -1, 101, 110, 1, 1 ;[PJSC v1.02]
37873787 afrTargetGauge = afrTarget, "Target AFR", "", 7, 25, 12, 13, 15, 16, 2, 2 ;[PJSC v1.02]
@@ -3791,6 +3791,7 @@
37913791 mapGauge_psi = map_psi, "Engine MAP (PSI)", "PSI", -15, 100, 0, 20, 200, 245, 0, 0
37923792 mapGauge_bar = map_bar, "Engine MAP (BAR)", "Bar", -1, 3, -1, -1, 5, 5, 2, 2
37933793 mapGauge_vacBoost = map_vacboost, "Engine MAP (in-Hg/PSI)", "in-Hg/PSI", -30, 30, -30, -30, 30, 30, 1, 1
3794+ baroGauge = baro, "Baro Pressure", "kPa", 0,{maphigh}, 0, 20,{mapwarn},{mapdang}, 0, 0 ;[PJSC v1.02]
37943795 batteryVoltage = batteryVoltage,"Battery Voltage", "volts", 0, 25, 8, 9, 15, 16, 2, 2
37953796
37963797 tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0
@@ -3806,13 +3807,14 @@
38063807 dutyRatioGauge = dutyRatio, "Duty Ratio", "%", 0, 100, 5, 10, 90, 95, 0, 0 ;[PJSC]For capturing duty pulse
38073808 dutyFreqGauge2 = dutyFreq2, "Duty Pulse Frequency 2", "Hz", 0, 100, 5, 10, 90, 95, 0, 0 ;[PJSC]For capturing duty pulse
38083809 dutyRatioGauge2 = dutyRatio2, "Duty Ratio 2", "%", 0, 100, 5, 10, 90, 95, 0, 0 ;[PJSC]For capturing duty pulse
3809- baroGauge = baro, "Baro Pressure", "kPa", 0,{maphigh}, 20, 60,{mapwarn},{mapdang}, 1, 0 ;[PJSC v1.02]
3810+ baroGauge = baro, "Barometric Pressure", "kPa", 0, 200, 20, 60, 140, 180, 1, 0 ;[PJSC]Add the gage for barometric sensor
38103811 injcountGauge = testCnt, "Injection Count", "pulses", 0, 1000, 65535, 65535,65535, 65535,0, 0 ;[PJSC v1.01] For test mode
38113812 afrAnalyzeGauge1 = afr_analyze1, "Air:Fuel Ratio for VE1", "", 7, 25, 12, 13, 15, 16, 2, 2 ;[PJSC v1.02] For AFR sensor selection
38123813 afrAnalyzeGauge2 = afr_analyze2, "Air:Fuel Ratio for VE2", "", 7, 25, 12, 13, 15, 16, 2, 2 ;[PJSC v1.02] For AFR sensor selection
38133814 afrAnalyzeGauge3 = afr_analyze3, "Air:Fuel Ratio for VE3", "", 7, 25, 12, 13, 15, 16, 2, 2 ;[PJSC v1.02] For AFR sensor selection
38143815 afrAnalyzeGauge4 = afr_analyze4, "Air:Fuel Ratio for VE4", "", 7, 25, 12, 13, 15, 16, 2, 2 ;[PJSC v1.02] For AFR sensor selection
3815-
3816+ syncLossGauge = syncLossCounter, "Sync Loss Count", "", 0, 120, -1, -1, 999, 999, 0, 0 ;[PJSC v1.02]
3817+
38163818 #if CELSIUS
38173819 cltGauge = coolant, "Coolant Temp", "TEMP", -40, 215, -15, 0, 95, 105, 0, 0
38183820 iatGauge = iat, "Inlet Air Temp", "TEMP", -40, 215, -15, 0, 95, 100, 0, 0
@@ -4121,10 +4123,8 @@
41214123 entry = dutyCycle, "DutyCycle1", float, "%.1f"
41224124 entry = dutyCycle, "DutyCycle2", float, "%.1f"
41234125 entry = TPSdot, "TPS DOT", int, "%d"
4124-#if table4_spark ;[PJSC v1.02]
41254126 entry = advance, "Advance", int, "%d"
41264127 entry = dwell, "Dwell", float, "%.1f"
4127-#endif ;[PJSC v1.02]
41284128 entry = batteryVoltage, "Battery V", float, "%.1f"
41294129 entry = rpmDOT, "rpm/s", int, "%d"
41304130 entry = flex, "Eth %", int, "%d", { flexEnabled }
--- branches/Ver1.02/speeduino/decoders.h (revision 96)
+++ branches/Ver1.02/speeduino/decoders.h (revision 97)
@@ -157,12 +157,19 @@
157157 int getCrankAngle_KATANA(); //[PJSC ver1.02] For supporting KATANA trigger
158158 void triggerSetEndTeeth_KATANA(); //[PJSC ver1.02] For supporting KATANA trigger
159159
160-void captureExtTrigger(); //[PJSC] For External Trigger
161-void captureDutyPulseONtime(); //[PJSC] For capturing duty pulse
162-void captureDutyPulseOFFtime(); //[PJSC] For capturing duty pulse
163-void captureDutyPulseONtime2(); //[PJSC] For capturing duty pulse
164-void captureDutyPulseOFFtime2(); //[PJSC] For capturing duty pulse
160+void triggerSetup_KATANA2(); //[PJSC ver1.02] For supporting KATANA trigger
161+void triggerPri_KATANA2(); //[PJSC ver1.02] For supporting KATANA trigger
162+void triggerSec_KATANA2(); //[PJSC ver1.02] For supporting KATANA trigger
163+uint16_t getRPM_KATANA2(); //[PJSC ver1.02] For supporting KATANA trigger
164+int getCrankAngle_KATANA2(); //[PJSC ver1.02] For supporting KATANA trigger
165+void triggerSetEndTeeth_KATANA2(); //[PJSC ver1.02] For supporting KATANA trigger
165166
167+void captureExtTrigger(); //[PJSC] For External Trigger
168+void captureDutyPulseONtime(); //[PJSC] For capturing duty pulse
169+void captureDutyPulseOFFtime(); //[PJSC] For capturing duty pulse
170+void captureDutyPulseONtime2(); //[PJSC] For capturing duty pulse
171+void captureDutyPulseOFFtime2(); //[PJSC] For capturing duty pulse
172+
166173 unsigned long MAX_STALL_TIME = 500000UL; //The maximum time (in uS) that the system will continue to function before the engine is considered stalled/stopped. This is unique to each decoder, depending on the number of teeth etc. 500000 (half a second) is used as the default value, most decoders will be much less.
167174
168175 volatile unsigned long curTime;
@@ -172,6 +179,7 @@
172179 volatile unsigned long lastGap;
173180 volatile unsigned long targetGap;
174181 volatile unsigned long compositeLastToothTime;
182+volatile unsigned long flipGap; //[PJSC v1.02]
175183
176184 volatile int toothCurrentCount = 0; //The current number of teeth (Onec sync has been achieved, this can never actually be 0
177185 volatile byte toothSystemCount = 0; //Used for decoders such as Audi 135 where not every tooth is used for calculating crank angle. This variable stores the actual number of teeth, not the number being used to calculate crank angle
@@ -194,6 +202,7 @@
194202 volatile int triggerActualTeeth;
195203 volatile unsigned long triggerFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering)
196204 volatile unsigned long triggerSecFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) for the secondary input
205+volatile unsigned long trigger12FilterTime; //[PJSC v1.02]
197206 volatile bool validTrigger; //Is set true when the last trigger (Primary or secondary) was valid (ie passed filters)
198207 unsigned int triggerSecFilterTime_duration; // The shortest valid time (in uS) pulse DURATION
199208 volatile uint16_t triggerToothAngle; //The number of crank degrees that elapse per tooth