Coil Dwell on stock ECU...again
#16
This might help, its for 88580013 specifically:
<scaling name="ChargeTime" units="mS" toexpr="x*0.064" frexpr="x/0.064" format="%.2f" min="0" max="255" inc="0.064" storagetype="uint8" endian="big"/>
<table name="Ignition Coil - Dwell-Time" category="Timing" address="3cc6" type="2D" scaling="ChargeTime">
<table name="Battery" address="6f14" type="X Axis" elements="9" scaling="BatteryVoltage"/>
</table>
<table name="Ignition Coil - Dwell-Time Reduction Factor*" category="Timing" address="3cd6" type="2D" scaling="CF256">
<table name="Battery" address="6f14" type="X Axis" elements="9" scaling="BatteryVoltage"/>
</table>
<table name="Ignition Coil - Dwell-Time Correction #2*" category="Timing" address="3ce6" type="2D" scaling="Percent128">
<table name="Battery" address="6f14" type="X Axis" elements="9" scaling="BatteryVoltage"/>
</table>
<scaling name="ChargeTime" units="mS" toexpr="x*0.064" frexpr="x/0.064" format="%.2f" min="0" max="255" inc="0.064" storagetype="uint8" endian="big"/>
<table name="Ignition Coil - Dwell-Time" category="Timing" address="3cc6" type="2D" scaling="ChargeTime">
<table name="Battery" address="6f14" type="X Axis" elements="9" scaling="BatteryVoltage"/>
</table>
<table name="Ignition Coil - Dwell-Time Reduction Factor*" category="Timing" address="3cd6" type="2D" scaling="CF256">
<table name="Battery" address="6f14" type="X Axis" elements="9" scaling="BatteryVoltage"/>
</table>
<table name="Ignition Coil - Dwell-Time Correction #2*" category="Timing" address="3ce6" type="2D" scaling="Percent128">
<table name="Battery" address="6f14" type="X Axis" elements="9" scaling="BatteryVoltage"/>
</table>
Last edited by merlin.oz; Feb 20, 2012 at 01:44 AM.
#17
Thread Starter
Evolved Member
iTrader: (30)
Joined: Jan 2004
Posts: 11,400
Likes: 75
From: Northwest
Merlin,
The battery axis is different, but the time offset is the same as the 8859 roms. I will add the scaling to my xml and see what we come up with
Ceddy, I am sure my scaling is not correct. I was trying to map what I was seeing and work from there. I am going to do some actual hardware testing on a stock coil Evo (not too many of those around the shop) when I get back monday. I am gonna see if I can get a really good scope like John Reed's Fluke hopefully.
Aaron
The battery axis is different, but the time offset is the same as the 8859 roms. I will add the scaling to my xml and see what we come up with
Ceddy, I am sure my scaling is not correct. I was trying to map what I was seeing and work from there. I am going to do some actual hardware testing on a stock coil Evo (not too many of those around the shop) when I get back monday. I am gonna see if I can get a really good scope like John Reed's Fluke hopefully.
Aaron
#18
#19
For 96530006 (and probably all VIII ROMS) There is a value at ROM 00001746 that also has something to do with this routine. It gets compared to FFFF8F24 to determine if the routine gets branched off to another sub-routine.
The memory location FFFF8C08, FFFF8C0A, and FFFF9996 are all referenced as well.
Wish I knew the stuff better so I could make sense out of it.
The memory location FFFF8C08, FFFF8C0A, and FFFF9996 are all referenced as well.
Wish I knew the stuff better so I could make sense out of it.
#22
If memory serves me correctly, the charge time has been the same on all the roms I've checked, though thats probably only 4 or 5 roms.
I initially found this on an evo6, and the data was the same on my 88580013 rom.
Good 'ol Mitsu re-using everything that works!
I initially found this on an evo6, and the data was the same on my 88580013 rom.
Good 'ol Mitsu re-using everything that works!
#24
Thread Starter
Evolved Member
iTrader: (30)
Joined: Jan 2004
Posts: 11,400
Likes: 75
From: Northwest
I have a test subject to try them on. As soon as we get done with the 5 speed swap it will be getting some love. I still need to track down an oscilloscope to test and see what values we are corresponding these to. A little bit of disassembly to see if 2 of these tables are sposed to use an rpm lookup instead of all 3 using the battery offset.
#25
Is there any definite answers on the scale and what the three Ignition Coil Charge Time or Dwell time maps are?
Using the scale here, it looks like "Ignition Coil Charge Time" is Dwell time (2.12ms at 14v sounds about right for a modern ignition), and "Ignition Coil Charge Time Unknown 2" is Maximum Dwell Time. I'm not sure what "Ignition Coil Charge Time Unknown 1" is.
Using the scale here, it looks like "Ignition Coil Charge Time" is Dwell time (2.12ms at 14v sounds about right for a modern ignition), and "Ignition Coil Charge Time Unknown 2" is Maximum Dwell Time. I'm not sure what "Ignition Coil Charge Time Unknown 1" is.
This would be microSec scaling ( x/255*1000 --- x*255/1000) to put into possible perspective:
So maybe table 3 is the max allowed values and table 1 & 2 are the values that are processed/used? I wont be able to test any of this until monday at the earliest, but as always any input is appreciated.
So maybe table 3 is the max allowed values and table 1 & 2 are the values that are processed/used? I wont be able to test any of this until monday at the earliest, but as always any input is appreciated.
#27
While not conclusive, the following may help sort out when each table is used.
For 96530006
41EA and 420A are the two primary tables and they seem to be independently used.
41EA and 41F4 get multiplied together when FFFF8F24 > the word at 1746 (0xA77)
It appears which ever value out of the three is the largest gets used, but there is likely some additional manipulation to the values before it gets used.
Logging MUT2D should show the raw value that gets used.
For 96530006
41EA and 420A are the two primary tables and they seem to be independently used.
41EA and 41F4 get multiplied together when FFFF8F24 > the word at 1746 (0xA77)
It appears which ever value out of the three is the largest gets used, but there is likely some additional manipulation to the values before it gets used.
Logging MUT2D should show the raw value that gets used.
#28
the scalings in post #16 are correct.
I think 03whitegsr is on the right track, only more likley the offsets are added/subtracted, not multiplied.
LucasEnglish people, have you played with these parameters re-cdi equiped engines yet and how did it go? One of my evo mates here in Sydney is Mark from M&W ignitions and we are interested.
I think 03whitegsr is on the right track, only more likley the offsets are added/subtracted, not multiplied.
LucasEnglish people, have you played with these parameters re-cdi equiped engines yet and how did it go? One of my evo mates here in Sydney is Mark from M&W ignitions and we are interested.
#29
Did some testing and I'll have to look at the routine a bit more now that I have an idea of what the MUT channels are doing.
FFFF8F24 looks to be inversely proportional to RPM. As engine speed increases, FFFF8F24 decreases. 0xA77 seems to correlate to roughly 2800 RPM. The relationship looks non-linear so I would imagine it actually is an inverse relationship. Based on a few data points, the equation for FFFF8F24 is ROUGHLY RPM=7500000/x.
In a similar fashion, MUT1D decreases as RPM increases. Highest value I saw was 67 at idle, lowest was 39 at 7100 RPM. It also has a battey voltage dependency, however the RPM dependency seems to be the dominate controlling factor.
I have a feeling that the battery dependent tables (all of the tables listed) basically get multiplied by FFFF8F24 to create the RPM dependency. More to come.
FFFF8F24 looks to be inversely proportional to RPM. As engine speed increases, FFFF8F24 decreases. 0xA77 seems to correlate to roughly 2800 RPM. The relationship looks non-linear so I would imagine it actually is an inverse relationship. Based on a few data points, the equation for FFFF8F24 is ROUGHLY RPM=7500000/x.
In a similar fashion, MUT1D decreases as RPM increases. Highest value I saw was 67 at idle, lowest was 39 at 7100 RPM. It also has a battey voltage dependency, however the RPM dependency seems to be the dominate controlling factor.
I have a feeling that the battery dependent tables (all of the tables listed) basically get multiplied by FFFF8F24 to create the RPM dependency. More to come.
Last edited by 03whitegsr; Jan 21, 2010 at 08:04 AM.
#30
Sounds about right. As RPM's increase there's less time to charge the coil before the next ignition event. I'm wondering if unknown table #2 is the coil discharge time. The coil needs time to cool down before recharging for the next ignition event. The ecu needs to calculate how long of a time there is between ignition events, and shorten the charge and discharge time to fit the time between ignition events.