EcoModder.com

EcoModder.com (https://ecomodder.com/forum/)
-   EcoModding Central (https://ecomodder.com/forum/ecomodding-central.html)
-   -   Please explain DFCO (Deceleration Fuel Cut Off) (https://ecomodder.com/forum/showthread.php/please-explain-dfco-deceleration-fuel-cut-off-14362.html)

trikkonceptz 08-27-2010 12:06 PM

Please explain DFCO (Deceleration Fuel Cut Off)
 
Hey guys,

I know that it stands for Deceleration Fuel Cut Off and I also know that most modern vehicles including my Scion employs it because I see it on my scangauge. However what I would like is a definition of how it works.

Meaning, I still here the engine running while its doing it, despite the fact that it is not getting any fuel (Supposedly), how does that work? Why would it do it while decelerating in gear and not while neutral coasting?

And most importantly how does it restart the engine while rolling and without any bump start feeling?

Thank you ..

Daox 08-27-2010 12:12 PM

DFCO can only happen while your transmission is in gear. So, the wheels are spinning the engine. To restart, it just injects fuel since its already spinning. If you were in neutral and DFCO happened (which it can't), the engine rpms would drop to 0 and you would have to bump start or key start.

Phantom 08-27-2010 01:02 PM

Some cars have what is referred to as DFCO but is actually Deceleration Enleanment. My car with the Buick 3800 is one of those cars but I'm not sure how common that is.

RobertSmalls 08-27-2010 01:36 PM

You're not using any fuel while you DFCO, but it saps the vehicle's momentum to keep the engine turning. You're going to have to burn fuel to get that momentum back. DFCO will give you better mileage than using the brake pedal, but less mileage than driving without brakes and engine-off (or maybe even engine-on) coasting to a stop.

round.boater 08-27-2010 01:51 PM

Momentum isn't a problem going down a hill... My question is how come the DFCO turns off while still engine braking? I'll be watching the ScanGuage and it will just change from 9999 to ~60mpg after a minute or two. I have to alternate between engine-on coasting and no-fuel engine braking while on long descents. It's like the Ford engineers in Michigan couldn't conceive of the hills we have here in Colorado. Is there a reason for this? Is there a way to change it?

user removed 08-27-2010 03:37 PM

DFCO is employed because when you are engine braking the effective compression is very low, and any fuel injected into the engine has a very good chance of not igniting and being exhausted with very high amounts of unburned hydrocarbons, as well as damage to the converter when the unburned fuel passes through the converter.

With manifold vacuum of higher than 22 inches, the amount of air in the cylinders is only a small percentage of the amount that would create the designed compression ratio. This is a recipe for misfires.

Determining if your car has DFCO is easy, just let the car slow down in gear until you feel the fuel injection engage and the car will either stop slowing down altogether or slow down at a much lower rate. The point is easy to feel.

regards
Mech

euromodder 08-27-2010 06:42 PM

Quote:

Originally Posted by RobertSmalls (Post 191129)
DFCO will give you better mileage than using the brake pedal, but less mileage than driving without brakes and engine-off (or maybe even engine-on) coasting to a stop.

Not maybe. :)

Engine-on coasting is what got me above 47mpg (or below 5L/100km) .
I was using DFCO and braking as little as possible before I started coasting, so the combination of both is inferior to engine-on coasting.


My engine uses 0.5L/H while idling.
So it takes 10H to use up 5L.
As long as I do 100km in those 10H of idling, or 10 km/h, I'm still only using 5L/100km and getting 47mpg.
As long as I'm coasting faster than 10 km/h (6 mph), I'm doing (far) better than 47mpg even with the engine on.

cfg83 08-27-2010 06:52 PM

euromodder -

Quote:

Originally Posted by euromodder (Post 191173)
Not maybe. :)

Engine-on coasting is what got me above 47mpg (or below 5L/100km) .
I was using DFCO and braking as little as possible before I started coasting, so the combination of both is inferior to engine-on coasting.

...

Yes, but I think DFCO has a strategic purpose for us. Going down a steep grade while coasting is not a great idea from a brake-overheating POV. However, if I can get engine-braking + DFCO on the downhill, I can avoid using my brakes and risking dangerous speeds.

If I had a fuel-injector cutoff switch, I could use it for manual DFCO.

CarloSW2

cfg83 08-27-2010 06:55 PM

round.boater -

Quote:

Originally Posted by round.boater (Post 191132)
Momentum isn't a problem going down a hill... My question is how come the DFCO turns off while still engine braking? I'll be watching the ScanGuage and it will just change from 9999 to ~60mpg after a minute or two. I have to alternate between engine-on coasting and no-fuel engine braking while on long descents. It's like the Ford engineers in Michigan couldn't conceive of the hills we have here in Colorado. Is there a reason for this? Is there a way to change it?

For me that usually happens at a specific MPH+RPM. Have you noted the point where this happens to you?

CarloSW2

VegasDude 08-27-2010 07:41 PM

Basically the car knows it doesn't need to dump fuel into the engine to keep it going so it cuts it off. If you took your car out of gear it would respond by turning the injectors back on. Also, if your RPMs fall below some pre-set number it does the same.

DCFO used with EOC can indeed give you better FE than EOC alone in certain circumstances. I can give you an example: On my drive home from work there are so many chances to EOC for long distances that the headlights can drain the battery so low I may not be able to restart the engine if I mis-time a light and have to stop. In order to prevent this from happening, I frequently would bump-start the engine at times just to get the alternator to charge the battery slightly. I would do this at lights to make sure I wouldn't be stranded. Thus, burning gas that was getting me nowhere.

Now I have an injector cut off switch that allows me to DCFO at any RPM and will not restart the engine when I take it out of gear. I use it when approaching lights that are red or I know will be red before I can get to them. I'm not wasting momentum, since I use it when I know I'm going to be stopping anyway. DCFO also keeps all the underhood pumps working, including A/C if it's on.

some_other_dave 08-27-2010 08:06 PM

As to why your car drops out of DFCO after a while, there are almost always RPM limits for DFCO. After all, if they left the injectors off all the way down to 0 RPM, you'd have to use the key to start again and that wouldn't be so great.

It is also possible that Ford engineers decided that running in DFCO for more than X amount of time ran some risk they didn't want to run. I'm not sure what sort of risk that could be, though. You should still be pulling a vacuum so the brakes should keep working; with no fuel and no spark you shouldn't be putting a thermal load on the engine (just compression heating which isn't nearly as much as combustion heating); the field coil on the alternator should still be energized so the charging system should still be charging... No, no idea why they'd do that.

-soD

cfg83 08-27-2010 08:17 PM

some_other_dave -

Quote:

Originally Posted by some_other_dave (Post 191181)
As to why your car drops out of DFCO after a while, there are almost always RPM limits for DFCO. After all, if they left the injectors off all the way down to 0 RPM, you'd have to use the key to start again and that wouldn't be so great.

It is also possible that Ford engineers decided that running in DFCO for more than X amount of time ran some risk they didn't want to run. I'm not sure what sort of risk that could be, though. You should still be pulling a vacuum so the brakes should keep working; with no fuel and no spark you shouldn't be putting a thermal load on the engine (just compression heating which isn't nearly as much as combustion heating); the field coil on the alternator should still be energized so the charging system should still be charging... No, no idea why they'd do that.

-soD

My car usually exits DFCO around 2500 RPM in 3rd or 4th gear. I wish it was around 1000 RPM, but maybe that's too close for comfort because idle RPM is about 850.

If the Ford has unheated oxygen sensors, then a long period of time would cool off the sensor and it wouldn't read correctly. A cold oxygen sensor would encourage the ECU/PCM to switch from closed-loop to open-loop mode, which is not good for MPG.

CarloSW2

euromodder 08-28-2010 03:27 AM

Quote:

Originally Posted by cfg83 (Post 191174)
Yes, but I think DFCO has a strategic purpose for us.
However, if I can get engine-braking + DFCO on the downhill, I can avoid using my brakes and risking dangerous speeds.

Going down a rather steep incline, you obviously have no choice but to remain in gear and use engine braking.

If gravity is propelling your car, DFCO is better than coasting with the engine on as there is no fuel use at all using DFCO.

But on the near-flat terrain where I live, engine-on coasting is definitely better for FE than DFCO and trying to brake as little as possible.

comptiger5000 08-28-2010 10:06 AM

Exactly as Euromodder said. DFCO is best used for when you have no choice but to bleed off momentum. At least you can keep the engine from using fuel while doing so, plus it saves wear on your brakes.

round.boater 08-29-2010 10:12 PM

The beauty of many of the roads I drive, I suppose, is lots of time to watch the guages.
My DFCO cuts off at ~2000 rpm regardless of time.
Coming down a hill, the water temp will drop to ~192 with engine-on coasting, temps hold ~198 with RPM's in the mid 2000's and no fuel, temps climb to ~206 with RPM's in the mid 3000's during prolonged no fuel engine braking. An 8 mile down grade of consistent 6 or 7% (I-70 tunnel to Silverthorne) will have me cycle between DFCO and engine-on coasting several times. Pulling a trailer I can't really coast out of gear though or I'll melt my brakes.
I'll bet the exhaust gas temps are the reason for cutting off the cut off. Too bad, most of those descents transition into climbs, and temps will jump right back up with hardly any wait at all.

trikkonceptz 09-01-2010 11:29 PM

Understanding its purpose and use how come DFCO reads 9999 on the scangauge while EOC reads somewhere in the ball park of lets say 2800 mpg's, why not 9999 as well?

320touring 09-02-2010 07:57 AM

In my daily commute, I've started adding a DFCO phase to the endo of my EO(n)C sections..

this presents the ideal opportunity to slow the car for the ROundabout/junction

Using no fuel and being in the right gear for picking away again!

The OBC shows its a positive step..

fingers crossed it works on this tank!

euromodder 09-02-2010 01:15 PM

Quote:

Originally Posted by 320touring (Post 192099)
In my daily commute, I've started adding a DFCO phase to the end of my EO(n)C sections..

If you can't start coasting from further out, DFCO is the way to go for the last part of the glide.

I've done the opposite, adding E-On-Coasting to a long habit of DFCO ;)

euromodder 09-02-2010 01:24 PM

Quote:

Originally Posted by trikkonceptz (Post 192065)
Understanding its purpose and use how come DFCO reads 9999 on the scangauge while EOC reads somewhere in the ball park of lets say 2800 mpg's, why not 9999 as well?

As you're not using any fuel anymore, both should see "infinite" mileage ...
It's got to be a software thing.


Driving my sister's Skoda Fabia 1.4 Diesel, I've noticed its fuel consumption indicator switches to the hourly fuel consumption when you're stopped.
(I got 3,6 L/100 km or 65.3 mpg BTW, without even trying hard)

NachtRitter 09-02-2010 01:45 PM

Quote:

Originally Posted by trikkonceptz (Post 192065)
Understanding its purpose and use how come DFCO reads 9999 on the scangauge while EOC reads somewhere in the ball park of lets say 2800 mpg's, why not 9999 as well?

When you say EOC, do you mean Engine On Coast or Engine Off Coast?

NachtRitter 09-02-2010 05:46 PM

Quote:

Originally Posted by trikkonceptz (Post 192065)
Understanding its purpose and use how come DFCO reads 9999 on the scangauge while EOC reads somewhere in the ball park of lets say 2800 mpg's, why not 9999 as well?

Ya, I've got to guess that you mean Engine On Coast, since Engine Off Coast would mean no fuel going through the injectors and therefore infinite (9999 and then some) miles per gallon.

With Engine On Coast, you're still using some fuel to keep the engine idling while coasting. Otherwise (obviously) your engine will stop running. So the mpg's can be really really high, potentially even so high that the scangauge will show 9999 mpg, but never infinite.

320touring 09-02-2010 06:32 PM

Quote:

Originally Posted by euromodder (Post 192136)
If you can't start coasting from further out, DFCO is the way to go for the last part of the glide.

I've done the opposite, adding E-On-Coasting to a long habit of DFCO ;)

i use the coast from circa 60mph to 35ish (over about 400m)then engage 3rd and dfco down to 15 selecting 2nd and ready to stop or accel if the give way is clear:-)

Good luck with the coasting!

trikkonceptz 09-03-2010 06:56 PM

Quote:

Originally Posted by NachtRitter (Post 192144)
When you say EOC, do you mean Engine On Coast or Engine Off Coast?


Sorry about that, I meant Enine OFF Coasting, they do not read the same, or at least not the same on my Scangauge.

brucepick 09-03-2010 07:39 PM

Re. coasting downhill in gear to control speed - with injectors off.

IF your car burns oil in any significant amount, you might not want to do this a lot. The high cylinder vacuum will likely suck in a lot of oil - either through the rings or the valve seals, where it comes through to let it burn oil. You'll have a batch of oil in the cylinders when you fire it up with fuel. If so, you'd just be causing it to burn oil

You should be able to test for this. Try it, with medium-high engine rpms, on a longish hill. Restart it when needed, give it maybe 2/3 throttle, and watch for a blue-white oil cloud from the tailpipe. If you see it, it's from the slug of oil built up in the cylinders in that long coast with high vacuum.

NachtRitter 09-03-2010 10:00 PM

Quote:

Originally Posted by trikkonceptz (Post 192331)
Sorry about that, I meant Enine OFF Coasting, they do not read the same, or at least not the same on my Scangauge.

If you are reading ~2800 mpg with Engine Off Coast (as you mention previously), then I can only guess that you've got a software problem, as euromodder said:

Quote:

Originally Posted by euromodder
As you're not using any fuel anymore, both should see "infinite" mileage ...
It's got to be a software thing.

When your engine is truly off, you are using 0 gallons fuel (0.0000 etc forever), so your miles per gallon would be some number greater than 0 miles divided by 0, which is infinite. There's nothing else it could be, to the best of my knowledge.

NachtRitter 09-03-2010 10:02 PM

Quote:

Originally Posted by brucepick (Post 192336)
Re. coasting downhill in gear to control speed - with injectors off.

IF your car burns oil in any significant amount, you might not want to do this a lot. The high cylinder vacuum will likely suck in a lot of oil - either through the rings or the valve seals, where it comes through to let it burn oil. You'll have a batch of oil in the cylinders when you fire it up with fuel. If so, you'd just be causing it to burn oil

You should be able to test for this. Try it, with medium-high engine rpms, on a longish hill. Restart it when needed, give it maybe 2/3 throttle, and watch for a blue-white oil cloud from the tailpipe. If you see it, it's from the slug of oil built up in the cylinders in that long coast with high vacuum.

Would it burn any more oil in DFCO than not? Seems that it'd be the same amount of oil getting sucked in whether fuel is coming in or not... the valves still open the same...

comptiger5000 09-04-2010 07:31 AM

Valves open the same, yes, but the throttle plate is closed, causing the engine to build a significant amount of vacuum (more than any other normal condition). The effort of sucking air past a closed throttle plate is what provides the engine braking effect during DFCO.

RobertSmalls 09-04-2010 08:12 AM

Quote:

Originally Posted by comptiger5000 (Post 192372)
The effort of sucking air past a closed throttle plate is what provides the engine braking effect during DFCO.

I thought so too, but then I hit the fuel kill toggle switch for DFCO on demand. When I open the throttle plate, all that changes is the exhaust note, not the rate of deceleration.

user removed 09-04-2010 03:22 PM

Quote:

Originally Posted by NachtRitter (Post 192345)
Would it burn any more oil in DFCO than not? Seems that it'd be the same amount of oil getting sucked in whether fuel is coming in or not... the valves still open the same...

Combustion pressure casues the rings to seal the cylinder walls more closely, because the pressure increases the force applied to the cylinder walls by the rings.

This is the same reason you will see a certain amount of blue smoke between gear changes in an engine with significant wear.

DFCO with your foot off the throttle creates highest engine vacuum readings, which combined with no combustion will cause higher amounts of oil to be sucked past the rings and valve seals, as was previously mentioned.

regards
Mech

comptiger5000 09-04-2010 06:05 PM

RobertSmalls - With smaller engines, the effect is less significant, and friction/windage, etc contribute a greater proportion of the engine braking effect. In my Jeep, it doesn't get a ton of braking on downshifts at first. Then, after 1 - 2 seconds when DFCO cuts in and the IAC closes, it's like someone slammed on the brakes (big engine gives lots of engine braking).

It also depends on the cam setup, etc of the engine. Some simply provide more braking than others. For example, the engine braking in my sister's 94 Camry 4 cyl is pretty strong, but dad's 05 Camry V6 has much weaker engine braking, even though the engine is bigger.

cfg83 09-04-2010 06:30 PM

Hello -

Is "lots of DFCO" a good place for a PCV oil catch can thingy? Or will it "not help much"?

CarloSW2

trikkonceptz 09-09-2010 01:01 PM

With regards to my scangauge not reading 9999 when Engine Off Coasting;

As mentiuoned earlier, it is likely a problem with my scangauge ... After reading through this I changed one of my settings to read GPH and when the car is off and the key is in the ON position I still reads .02 GPH usage instead of 0.00 when the car engages the DFCO while cruising in gear ...

Oh well, at least I found my problem ...

Thanks guys ...

euromodder 09-09-2010 01:08 PM

Quote:

Originally Posted by trikkonceptz (Post 193282)
Oh well, at least I found my problem ...

Maybe if you set the cutoff value a bit higher it'll work ?

cfg83 09-09-2010 02:00 PM

trikkonceptz -

Quote:

Originally Posted by trikkonceptz (Post 193282)
With regards to my scangauge not reading 9999 when Engine Off Coasting;

As mentiuoned earlier, it is likely a problem with my scangauge ... After reading through this I changed one of my settings to read GPH and when the car is off and the key is in the ON position I still reads .02 GPH usage instead of 0.00 when the car engages the DFCO while cruising in gear ...

Oh well, at least I found my problem ...

Thanks guys ...

Can you do me a favor and tell me what your RPM and MAP are when the car is off and the key is in the ON position? The reason I ask is that when my key is in the ON position, I still see 61 RPM. That leads me to believe that the SG thinks the engine is still running, however slightly. The 61 RPM could be an error in the sensor at 0 RPM (likely), or some kind of failsafe non-zero value reported by the ECU/PCM to avoid divide-by-zero errors (not likely, otherwise why not 1 RPM for that case).

CarloSW2

trikkonceptz 09-09-2010 02:19 PM

Quote:

Originally Posted by cfg83 (Post 193294)
trikkonceptz -



Can you do me a favor and tell me what your RPM and MAP are when the car is off and the key is in the ON position? The reason I ask is that when my key is in the ON position, I still see 61 RPM. That leads me to believe that the SG thinks the engine is still running, however slightly. The 61 RPM could be an error in the sensor at 0 RPM (likely), or some kind of failsafe non-zero value reported by the ECU/PCM to avoid divide-by-zero errors (not likely, otherwise why not 1 RPM for that case).

CarloSW2

Will do, I will try it on my way home and I will post my results as soon as I can ...

Olympiadis 09-09-2010 08:49 PM

I would talk to Linear Logic about your display errors. It sounds to me like a problem with the conversions of the raw data into decimal values.

When I tune an ECM I normally program in aggressive DFCO values as possible. DFCO does create a lot of engine braking, though it is possible to reduce this down to a minimum by setting the DFCO IAC steps to the maximum value of 255. This reduces the engine vacuum during coast-down DECEL, but be aware that if you have a manifold pressure sensor it is often used as one of the threshold parameters for the DFCO logic routine. That means that if you reduce engine vacuum too much after DFCO is initiated, then it will just kick back out of DFCO. There is a hysteresis that will keep DFCO from pulsing on and off.
Also, there is a parameter to unlock the TCC when DFCO is activated, which will reduce the amount of time that you can keep DFCO on. I like to keep the TCC locked and the lower limit TCC threshold as low as possible to prevent unlocking during coast-down.

I always run filters on my PCV system, but during DFCO most of the oiling will be coming from the intake valve guides and past the piston rings.

I will try to post some of the calibration and code for DFCO that is used in my 1991 Chevy truck.

Olympiadis 09-09-2010 09:07 PM

DFCO strategy
 
This is about 95% of the calibration and algorithm concerning DFCO in one particular ECM.


Quote:

;---------------------------------------------
; DFCO DECELERATION FUEL CUT-OFF 4 LINE TABLE
;---------------------------------------------
LD2E3 FCB 56 ; 1400 RPM, FUEL CUT-OFF, UPPER LIMIT 2500
LD2E4 FCB 40 ; 1000 RPM, FUEL CUT-OFF, LOWER LIMIT 1200
LD2E5 FCB 18 ; 18 MPH, FUEL CUT-OFF, UPPER LIMIT
LD2E6 FCB 15 ; 15 MPH, FUEL CUT-OFF, LOWER LIMIT
LD2E7 FCB 8 ; 22.5 Kpa, S/D MAP DECEL FUEL Cut-Off Thresh, Lower ((X * 0.3125)+20)
LD2E8 FCB 64 ; 40.0 Kpa, S/D MAP DECEL FUEL Cut-Off Thresh, Upper ((X * 0.3125)+20)
LD2E9 FCB 255 ; 3188 RPM/12.5, RPM DIFF DECREMENT (decel rate) THRESH To disable DFCO
LD2EA FCB 255 ; 79.7 Kpa, S/D MAP DIFF INCREMENT THRESH to disable DFCO (X * 0.3125)
LD2EB FDB 0464 ; 7.07 msec, Fuel PW IF EXITING DFCO BY RPM, OR Park/Neut PW * 65.536
LD2ED FCB 160 ; 2 sec REQ FOR DFCO
LD2EE FCB 32 ; 400 Msec AFTER DFCO FOR BPW
LD2EF FCB 240 ; 3 secs MIN TIME BETWEEN DFCO (Sec * 80)
LD2F0 FCB 14 ; 5% MAX TPS FOR DECEL FUEL Cut Off
LD2F1 FCB 96 ; 0.375 MULTIPLIER FOR BPW IN DFCO EVERY 12.5 msec LOOP (sub'd, not mult)
LD2F2 FCB 128 ; 75c/167f, LINEAR COOLANT THRESHOLD TO DISABLE DFCO

__________________________________________


LD5D3 FDB 40 ; 40 Steps, ADDED TO IAC WHEN DFCO IN EFFECT (single byte)

__________________________________________


D87A: LD87A LDAA L0021 ; GET LINEAR COOLANT
D87C: CMPA LD2F2 ; COMPARE A TO (75c/167f, DISABLE DFCO BELOW COOLANT THRESHOLD)
D87F: BCC LD884 ; IF COOLANT GT THRESH, BRANCH TO $D884 (DO DFCO CHECKS)
D881: JMP LD946 ; JUMP TO $D946 (TURN DFCO OFF)
;---------------------------------
D884: LD884 LDAA L000F ; GET STATUS, b4=1= (IN PARK/NEUT)
D886: BITA #$10 ; TEST b4 (IN PARK/NEUT?)
D888: BNE LD8B5 ; IF b4 BRANCH TO $D8B5 (EXIT FUEL DFCO ROUTINE)
D88A: LDAB L0009 ; GET STATUS WORD
D88C: BITB #$24 ; TEST b5,b2
D88E: BNE LD89F ; IF b5,b2 BRANCH TO $D89F
D890: LDAA L0049 ; GET CURRENT TPS
D892: CMPA LD2F0 ; COMPARE TO 5% MAX TPS FOR DECEL FUEL Cut Off
D895: BCS LD89F ; IF TPS LT 5% BRANCH TO $D89F (SKIP DFCO UPDATE)
D897: LDAA L0003 ; GET STATUS WORD FOR DFCO
D899: ORAA #$10 ; SET b4, IN FUEL DFCO
D89B: STAA L0003 ; UPDATE STATUS WORD FOR DFCO
D89D: BRA LD8CB ; BRANCH ALWAYS TO $D8CB
;---------------------------------
D89F: LD89F LDAA L0020 ; GET OLD RPM/12.5
D8A1: SUBA L001F ; SUBTRACT FILTERED RPM/12.5 (OLD - CURRENT FILTERED)
D8A3: BCS LD8AA ; IF RPM INCREASING, BRANCH TO $D8AA
D8A5: CMPA LD2E9 ; COMPARE TO RPM/12.5, 3188 RPM DIFF To disable DFCO (Decel rate)
D8A8: BHI LD8B5 ; IF DIFF RPM GT CALIBRATION, BRANCH TO $D8B5 (EXIT DFCO ROUTINE)
D8AA: LD8AA BITB #$48 ; TEST b6 & b3, L0009
D8AC: BNE LD8E2 ; IF b6,b3, BRANCH TO $D8E2
D8AE: LDAA L0032 ; GET DIFF MAP (S/D MAP)
D8B0: CMPA LD2EA ; COMPARE TO 100 kpa MAP INCREASE TO DISABLE DFCO
D8B3: BLS LD8D0 ; IF MAP INCREASE LT THRESH TO DISABLE, BRANCH TO $D8D0 (CONTINUE DFCO CHECKS)
;=================================================
; HERE TO EXIT DECEL FUEL CUT/0FF (DFCO)
;=================================================
D8B5: LD8B5 LDAA L00A0 ; GET POST DFCO TIMER
D8B7: BEQ LD8CB ; BRANCH IF TIMER = 0
D8B9: LDD L0096 ; GET BPW, ASYN
D8BB: ADDD LD2EB ; ADD FUEL PULSE WHEN EXITING DFCO, 7.07 Msec BY RPM < OR Park/Neut
D8BE: BCC LD8C3 ; BRANCH IF NO OVERFLOW
D8C0: LDD #$7FFF ; GET USE MAX VALUE
D8C3: LD8C3 STD L0096 ; UPDATE BPW, ASYN
D8C5: LDAA L000D ; GET STATUS WORD
D8C7: ORAA #$80 ; SET b7
D8C9: STAA L000D ; UPDATE STATUS WORD
D8CB: LD8CB CLR L00A0 ; CLEAR POST DFCO TIMER
D8CE: BRA LD937 ; BRANCH ALWAYS TO $D937
;---------------------------------
D8D0: LD8D0 LDAA L0026 ; GET S/D MAP
D8D2: LDAB L0008 ; GET STATUS WORD FOR DFCO
D8D4: CMPA LD2E7 ; COMPARE MAP TO DFCO MAP Thresh, Lower, 22.5 Kpa
D8D7: BCS LD8E2 ; IF S/D MAP LT DFCO MAP THRESH LOWER, BRANCH TO $LD8E2 (DO OTHER CHECKS)
D8D9: BITB #08 ; TEST b3, (IN DFCO ALREADY?)
D8DB: BEQ LD937 ; IF NOT b3, BRANCH TO $LD937 (TURN DFCO OFF)
D8DD: CMPA LD2E8 ; COMPARE MAP TO DFCO MAP Thresh, Upper, 45 Kpa
D8E0: BCC LD937 ; IF MAP GT DFCO MAP THRESH UPPER, BRANCH TO $LD937 (TURN DFCO OFF)
;=================================================
; Limits for FUEL CUT-OFF In decel (DFCO)
; 1000/1400 RPM 4-LINE TABLE 15/18 MPH
;=================================================
D8E2: LD8E2 LDX #$D2E3 ; POINT TO 4 LINE TABLE DFCO PARAMS
D8E5: LDAB L0008 ; GET STATUS WORD
D8E7: BITB #$08 ; TEST BIT 3 (IN DFCO ALREADY?)
D8E9: BEQ LD8EC ; IF NOT B3, BANCH TO $LD8EC (NO DFCO, CHECK RPM LIMIT UPPER)
D8EB: INX ; INCREMENT REGISTER X BY ONE (IN DFCO, CHECK RPM LIMIT LOWER)
D8EC: LD8EC LDAA L001C ; GET RPM/25
D8EE: CMPA 0,X ; COMPARE RPM TO 1000/1400 RPM HYSTERESIS
D8F0: BLS LD8B5 ; IF RPM LT 1000/1400 LIMIT, (EXIT DFCO)
D8F2: LDAA L0034 ; GET FILTERED VSS MPH/1
D8F4: CMPA 2,X ; COMPARE TO 15/18 MPH
D8F6: BCS LD8B5 ; IF MPH LT 15/18 MPH, (EXIT DFCO)
;=================================================
; CHECK DECEL FUEL CUT/OFF TIMER (DFCO)
;=================================================
D8F8: LDAA L00A1 ; GET DFCO TIMER
D8FA: BNE LD934 ; IF NOT TIMED OUT, BRANCH TO $D934 (DECREMENT TIMER, TURN DFCO OFF)
D8FC: LDAB LD2EF ; GET CALIB 3 Secs MIN BETWEEN DFCO
D8FF: LDAA L0003 ; GET STATUS WORD
D901: BITA #$10 ; TEST b4, (IN FUEL DFCO?)
D903: BEQ LD90B ; IF NOT b4, BRANCH TO $D90B
D905: ANDA #$EF ; CLEAR b4
D907: STAA L0003 ; UPDATE STATUS WORD
D909: STAB L009F ; UPDATE BETWEEN DECEL FUEL C/0 TIMER
D90B: LD90B CMPB L009F ; COMPARE TO BETWEEN DECEL FUEL C/0 TIMER
D90D: BLS LD914 ; IF LOWER OR SAME, BRANCH TO $D914
D90F: INC L009F ; INCREASE DECEL FUEL C/0 TIMER
D912: BRA LD946 ; BRANCH ALWAYS TO $D946 (TURN DFCO OFF)
;---------------------------------
D914: LD914 LDAB L0008 ; GET STATUS WORD
D916: ORAB #8 ; SET b3,
D918: STAB L0008 ; UPDATE STATUS WORD
D91A: LDAA LD2EE ; GET CALIBRATION, 400msec AFTER DFCO FOR BPW
D91D: STAA L00A0 ; UPDATE POST DFCO TIMER (AFTER DFCO TIL PW)
D91F: LDAA L000D ; GET STATUS WORD
D921: ORAA #$10 ; SET b4, (DECEL ENLEANMENT IN EFFECT)
D923: STAA L000D ; UPDATE STATUS WORD
D925: LDAA L009E ; GET DECEL FUEL MULTIPLIER
D927: SUBA LD2F1 ; SUBTRACT ( A - CALIBRATION, 10.2% MULT FOR BPW IN DFCO)
D92A: BCC LD92D ; IF DECEL FUEL MULT GT CALIBRATION, BRANCH TO $D92D (DO NOT RESET MULT)
D92C: CLRA ; CLEAR A REGISTER (RESET DECEL MULTIPLIER TO ZERO)
D92D: LD92D STAA L009E ; UPDATE DECEL FUEL MULTIPLIER
D92F: JSR LD839 ; GOSUB $D839 (POINT TO BPW SYNC, AND DO CALC)
;---------------------------------
D932: BRA LD9A4 ; BRANCH ALWAYS TO $D9A4
D934: LD934 DECA ; DECREMENT DECEL FUEL TIMER
D935: BRA LD93A ; BRANCH ALWAYS TO $D93A
;---------------------------------
D937: LD937 LDAA LD2ED ; GET 2 Sec REQ FOR DFCO
D93A: LD93A STAA L00A1 ; DECEL FUEL CUT/OFF TIMER
D93C: CLR L009F ; CLEAR BETWEEN DECEL FUEL CUT/OFF TIMER
D93F: LDAA L00A0 ; GET POST DFCO TIMER
D941: BEQ LD946 ; IF TIMED OUT, BRANCH TO $D946 (SKIP DECREASE POST DFCO TIMER)
D943: DEC L00A0 ; DECREASE POST DFCO TIMER
D946: LD946 LDAA L0008 ; GET STATUS WORD
D948: ANDA #$F7 ; CLEAR b3 (TURN DFCO OFF)
D94A: STAA L0008 ; UPDATE STATUS WORD
D94C: LDAA #255 ; LOAD A REGISTER WITH MAX VALUE (255)
D94E: STAA L009E ; UPDATE DECEL FUEL MULTIPLIER
D950: LDD L004D ; GET FILTERED TPS (TWO BYTES) INTO D
D952: ASLB ; REGISTER Bx2
D953: ADCA #0 ; REGISTER A ROUND OFF
D955: BCC LD958 ; IF NO OVERFLOW, BRANCH TO $D958
D957: DECA ; DECREMENT A REGISTER
D958: LD958 SUBA L0049 ; SUBTRACT (A FILTERED TPS - CURRENT TPS)
D95A: BCS LD99E ; IF A LT CURRENT TPS, BRANCH TO $D99E (TPS INCREASING, TURN DECEL OFF)
D95C: CMPA LD2E0 ; COMPARE DIFF TPS TO 1% TPS, DECEL ENLEAN INCREMENT THRESH
D95F: BLS LD99E ; IF DIFF TPS LT 1% DECEL THRESH, BR TO $D99E(NOT DECREASING ENOUGH FOR DECEL)
D961: LDD L002F ; GET FILTERED MAP (TWO BYTES) INTO D
D963: ASLB ; REGISTER Bx2
D964: ADCA #0 ; REGISTER A ROUND
D966: BCC LD969 ; IF NO OVERFLOW, BRANCH TO $D969 (DON'T DECREMENT A)
D968: DECA ; DECREMENT A REGISTER
D969: LD969 SUBA L0026 ; SUBTRACT (A, FILTERED MAP - CURRENT S/D MAP)
D96B: BCS LD99E ; IF A LT S/D MAP, BRANCH TO $D99E (MAP INCREASING, TURN DECEL OFF)
D96D: CMPA LD2E1 ; COMPARE DIFF MAP TO 2.5 Kpa S/D MAP DIFF DECREMENT THRESH FOR DECEL ENLEAN
D970: BLS LD99E ; IF DIFF LT 2.5 THRESH, BRANCH TO $D99E (NOT DECREASING ENOUGH FOR DECEL)
D972: LDAB LD2E2 ; GET 0.375 ENLEAN MAP FACTOR (Mult .375 * DIFF MAP for calc)
D975: MUL ; MULTIPLY A x B = D
D976: LDAB L009D ; GET DECEL COOLANT FACTOR
D978: MUL ; MULTIPLY A x B = D
D979: ASLD ; REGISTER Dx2
D97A: BCS LD982 ; IF OVERFLOW, BRANCH TO $D982
D97C: ASLD ; REGISTER Dx2
D97D: BCS LD982 ; IF OVERFLOW, BRANCH TO $D982
D97F: ASLD ; REGISTER Dx2
D980: BCC LD984 ; IF NO OVERFLOW, BRANCH TO $D984 (DON'T USE MAX VALUE)
D982: LD982 LDAA #255 ; USE MAX VALUE
D984: LD984 NEGA ; INVERT
D985: BEQ LD99E ; IF ZERO, BRANCH TO $D99E (TURN DECEL ENLEAN OFF)
D987: LDAB L000D ; GET STATUS WORD
D989: ORAB #$10 ; SET b4, (TURN ON DECEL ENLEAN)
D98B: STAB L000D ; UPDATE STATUS WORD
D98D: STAA L0058 ; UPDATE PROP DURATION, Secs
D98F: LDX #L0096 ; POINT TO L0096 & L0097 BPW, ASYNC
D992: JSR LFBB9 ; GOSUB $FBB9 (FUEL OUT ROUTINE)
;------------------------------------
D995: STD L0096 ; UPDATE L0096 & L0097, BPW, ASYNC
D997: LDAA L0058 ; GET PROP DURATION, SECs
D999: JSR LD839 ; GOSUB $D839 (POINT TO BPW SYNC, AND DO CALC)
;------------------------------------
D99C: BRA LD9A7 ; BRANCH ALWAYS TO $D9A7
;------------------------------------
D99E: LD99E LDAA L000D ; GET STATUS WORD
D9A0: ANDA #$EF ; CLEAR b4 (TURN DECEL ENLEAN OFF)
D9A2: STAA L000D ; UPDATE STATUS WORD
D9A4: LD9A4 LDX #L00AB ; GET L00AB & L00AC BPW, SYNC INTO X
D9A7: LD9A7 LDAA L00B2 ; GET BATTERY COMPENSATION MULTIPLIER INTO A
D9A9: JSR LFBB9 ; GOSUB $FBB9 (FUEL OUT ROUTINE)
;------------------------------------


trikkonceptz 09-10-2010 10:47 AM

OK as requested I checked my RPM and MAP data while Engine Off Coasting.

My RPM's drop to 0 once the engine shuts off, as far as the MAP reading .... well that must not report through my OBT port because it remained blank with no reading whether the car is running or OFF. So sorry about that one ..


The only one that still puzzles me is the GPM that reads .02 while the car is off and key is on. I have to assume that is the only thing keeping the mileage from going to 9999 while EOCing.

Good luck with your quirky SG ..lol

Olympiadis 09-10-2010 11:54 AM

Here is a screen-shot of some of the (stock) DFCO calibrations on my 1991 Chevy Truck.
link for larger photo:
http://i702.photobucket.com/albums/w...FCOscreen1.jpg

http://i702.photobucket.com/albums/w...FCOscreen1.jpg

Note that the factory calibrations shown are not very aggressive at all, and during normal driving conditions it is rare for DFCO to engage.

Also, DFCO and DECEL-enleanment are two completely different things.
DECEL-enleanment commands leaner than stoich AFRs during most deceleration conditions, but only functions when in open-loop mode.

Though it is very wasteful of fuel, closed-loop mode maintains a 14.6:1 AFR during deceleration conditions unless DFCO is engaged.

mwebb 09-13-2010 10:04 PM

no map sensor ?
 
...."OK as requested I checked my RPM and MAP data while Engine Off Coasting.

My RPM's drop to 0 once the engine shuts off, as far as the MAP reading .... well that must not report through my OBT port because it remained blank with no reading whether the car is running or OFF. So sorry about that one .."....


the car may not be a speed density system
it may use a MAF sensor as the primary load sensor
in which case
it would not report MAP value in
Generic OBD2 which is all you get with Scangauge2


All times are GMT -4. The time now is 01:22 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Content Relevant URLs by vBSEO 3.5.2
All content copyright EcoModder.com