Searched and couldn't find this discussed before...
Did some logging recently, and I'm almost sure that during cranking ECU manages mixture by 'backward' logic, i.e. opening throttle according to Cranking IPW. Searched through ROM in IDA, looking for functions that modify Throttle Opening Angle, and found reference to this table
Code:
1.19 , 1.5 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 , 7.0 , 8.0 , 10.0 , 12.0 , 14.0 , 18.0 , 22.0 , 26.0 , 30.0 , 35.0
0.0739, 0.3539, 0.7879, 1.5949 , 2.3339 , 3.0229 , 3.6829, 4.2549 , 4.8269 , 5.8549 , 6.8629 , 7.7649 , 9.4629 , 10.99 , 12.799 , 15.349 , 20.0
In A8DH100F address is DBBB0.
However I can't trace X Axis values, they do look like IPW, but in miliseconds, not in microseconds like elsewhere in the ECU.
Can anyone confirm/deny this?
Engine Running Status / ThresholdsCame across this while looking at Cranking throttle, it may be useful for diagnosing hard engine starts. There is a variable that determines if engine is running or cranking and 2 RPM thresholds that set this variable.
In A8DH100F
Code:
RAM:FFFF6D92 Engine_Running_FFFF6D92:.res.b 1 ; DATA XREF: Running_Condition_2A4D8:loc_2A578o
Raw value is 0 when engine is running, 192 when not, but ignition key in IGN ON/ Craniking position
Code:
ROM:000C791C RPM_thres_500_C791C:.float 500.0 ; DATA XREF: Running_Condition_2A4D8+82o
ROM:000C791C ; sub_2A5A6:off_2A714o
ROM:000C7920 RPM_thres_300_C7920:.float 300.0 ; DATA XREF: Running_Condition_2A4D8:loc_2A56Ao
It's pretty straightforward:
if RPM>500 ECU decides that engine is running
if RPM<300 - it's not, cranking tables are used to determine IPW
Plus some transition logic inbetween.